Mark Rakes – Remainder One, Inc810 E. Elm Ave.
Coeur d’Alene, ID 83814-4439
OBJECTIVEIncreased knowledge and experience in computing, hardware, networking, interconnectivity, and software
engineering through professional and personal projects, especially in the areas of embedded devices and the Internet of Things.
EDUCATIONEastern Washington University — B.S. Computer Science, B.S. Computer Information Systems, 1998
Systems — x86, ARM, Xscale, MIPS and PowerPC embedded and desktop systems
Operating Systems — Linux, Mac OS X/Darwin, iOS, Android, NetBSD, UEFI, U-Boot
Languages and Technologies — C, C++, Objective C, IOKit, Unix shell scripting, Tcl, Expect, x86/PPC/ARM assembly
EXPERIENCECONTRACT SOFTWARE DEVELOPMENT – Adecco — SEPTEMBER 2014 – Present
Contract Software Engineering at Nest (Google/Alphabet).
Work with the Nest Communications Group, handling networking (primarily Wi-Fi) feature development and support of Nest Product Family. This includes new feature development, especially around power usage, as well as troubleshooting existing products in the field via log analysis.
CONTRACT SOFTWARE DEVELOPMENT – Skillstorm commercial services, llc — April 2013 – SEPTEMBER 2014
Contract Software Engineering work at Qualcomm Atheros:
Feature development lead for partial firmware offloaded TDLS (Tunneled Direct Link Setup – originally IEEE 802.11z, now part of IEEE 802.11-2012 specification) implementation for new 802.11ac WiFi chipset.
Feature development for firmware offloaded Cisco CCKM Authentication/Roaming for 802.11ac WiFi chipset.
Test development for device firmware automated feature test suites.
President/Principal, remainder one, Inc. — CONTRACT SOFTWARE DEVELOPMENT — 2006 – April 2013
Support and feature development on ABC/Disney’s video streaming apps (ABC, ABC Family, Disney Channel, Disney XD, Disney Jr) for iOS (iPhone/iPad/iPod Touch), including support and integration of many 3rd party analytics and feature packages (Facebook integration, ForeSee surveys, Omniture tracking, among others).
Developed/Ported a functional UEFI wireless (802.11a/b/g/n) driver/supplicant for Atheros chipsets to be used for Apple’s “Internet Recovery” feature released with OS X “Lion” (10.7)
Worked with Atheros (now Qualcomm Atheros) to develop/support the “AirDrop” feature (similar to WiFi Direct) for Apple’s OS X 10.7 “Lion” release.
Wireless driver/stack development and support for 802.11n (draft and official) hardware for the darwin/OS X operating systems (10.4 “Tiger”, 10.5 “Leopard”, 10.6 “Snow Leopard” releases and beyond). A sampling of features include: WMM support, dual 32/64-bit driver support, IOKit-based timer implementation, monitor (promiscuous) mode, multiple (virtual) interface support, single driver supporting multiple hardware types, and more.
Wireless driver/stack development and support for 802.11n (draft and official) hardware for a line of NetBSD-based access point/routers.
Port/bringup of wireless hardware diagnostic driver and applications to EFI, the Extensible Firmware Interface.
Port/bringup of wireless hardware diagnostic driver and applications to Mac OS X/darwin.
INDEPENDENT CONTRACTOR — 2004 – 2006
Wireless supplicant development and support for Palm PDAs using Marvell WiFi chipsets.
Developed Intel IXP42x-based Linux distribution/toolchain/bootloader/build systems for:
a reference wireless gateway software implementation for a Taiwanese ODM.
a reference gateway/firewall/router platform
Developed an x86 Linux distribution/toolchain/bootloader/build system as a reference mesh wireless software platform for embedded x86 devices (such as WRAP and Soekris).
Developed RTL8181-based Linux distribution/toolchain/bootloader/build system as a reference wireless gateway software implementation.
Developed MIPS-based Linux distribution/toolchain/bootloader/build system for Atheros wireless reference hardware and other ODM/OEM platforms.
Worked improving/testing the MadWiFi open-source driver for Atheros 802.11 chipsets.
Senior software engineer, vivato — 2002 – 2004
Brought up the i2c subsystem in both ppcboot and the linux kernel on a Motorola 8245 reference system.
Brought up the Linux kernel / operating system on the 8245 platform
Developed ethernet driver for Intel “e1000” (82546EB/GB) 10/100/1000 NIC for ppcboot bootloader (now u-boot).
Developed ethernet driver for National DP83820 10/100/1000 NIC for ppcboot.
Developed ethernet driver for National DP83815 10/100 NIC for ppcboot.
Ported ppcboot to custom Motorola 8245-based (ppc603e) system
Brought up a uClibc-based GNU toolchain (gcc, binutils, gdb) for the PowerPC chipset.
Helped fix/diagnose issues with the PCMCIA subsystem in a ported 802.11 kernel driver
Brought up many versions of the linux kernel from 2.4.18 to 2.4.24 on both the Xscale and PowerPC platforms.
Discovered and fixed endianness issues in “e1000” gigabit NIC linux driver.
Ported/Supported various open source tools to embedded PowerPC and Xscale systems: uClibc (C-library), Busybox, Tinylogin, bridge-tools, gdb, gdbserver, hostAP, iproute2, iptables, openssl, openssh, netperf, libnet, tcpdump, udhcp, zlib, Clearsilver HTML templating system, sed, mini_httpd, wireless-tools, and others.
Wrote custom applications, command line utilities, and scripts in both the bootloader and linux system to support Vivato manufacturing requirements.
Wrote a linux driver for the MPC8245’s 2 on-board PCI DMA controllers in an attempt to reduce PCI bus idle time.
Wrote drivers for both bootloader and kernel to control custom FPGA/CPLD chips on both PowerPC and Xscale Platforms, both over i2c, and over direct-to-cpu expansion busses.
Cowrote an ARM “FIQ” (fast interrupt) routine in assembly to control the transmissions of 6 802.11 radios in under 4 microseconds.
Ported “redboot” bootloader and a linux kernel/system to the Vivato IXP42x (422/425) based boards.
In preparation for next-generation Vivato product (VP22x0), brought up Vivato wireless software on the Intel Ixdp425 reference platform.
Brought up a uClibc-based GNU toolchain (gcc, binutils, gdb) for the Intel IXP42x Xscale platform.
Helped design and implement an extensible multi-platform build system
Added GBIC interface support for the Intel “e1000” (82546EB/GB) MACs on the MPC8245 platform in both bootloader and the linux system.
Maintained/Updated “ppcboot” bootloader and linux kernel/system through 2 additional Vivato MPC8245 board generations (VP1200).
Senior software engineer, allegro networks — 2000 – 2002
Identified requirements and made implementation recommendations for the infrastructure (Core OS and Applications) group.
Implemented a multi-threaded, client/server based, runtime data store for the multi-cpu Allegro Router, with a flexible plug-in architecture for custom use by other Allegro developers.
Documented and supported the use of the data store API by other Allegro developers.
Did performance analysis and modified code based on findings, including switching the data store’s traversal algorithms from linked list to a skiplist library, and added the ability to easily switch algorithms as required.
Ported the OpenSSH secure-shell implementation to the Allegro platform, with custom modifications for Allegro-specific AAA (Authentication, Authorization, and Accounting)
Modified open-source traceroute and ping code for compatibility with Cisco router behavior.
Implemented command line front-ends for the usage and debugging of: runtime data store, secure shell, traceroute, ping, and other parts of the system.
Software engineer, alcatel/packet engines — 1998 – 2000
Worked on addressing customer issues with various protocols: OSPF, Route Redistribution, AppleTalk.
Implemented new CLI commands for OSPF, BGP, and other protocols as required.
Developed custom TCL/Expect application to automatically configure Packet Engines Switches and Linux PCs to run ANVL protocol conformance tests. Helped create scripted performance demos for industry trade shows like Networld+Interop.