Founder | Software Engineer2006 - PRESENTSeashore Software
- Founded my own consulting company in 2006, and since then, have been doing a mix of independent projects and client work.
- Acted as both a technical leader and hands-on developer, I delivered a variety of apps for mobile, the web, and the enterprise.
- Developed custom software for companies ranging in size from one-person start-ups to Fortune 50 multinationals.
- Worked on a variety of projects in a number of industries; for more details, please see my portfolio.
Senior Firmware Engineer2004 - 2006Gemstar | TV Guide Onscreen
Technologies: C#.NET, .NET, Firmware, Python, C#, C
- Designed and wrote embedded real-time software in C for an electronic program guide (EPG) for televisions, DVD recorders, DVRs, and more.
- Developed graphical debugging tools in C# .NET using advanced features such as remoting and multithreading.
- Worked directly with multinational customers to integrate the TV Guide Onscreen EPG into their products.
- Acted as the lead engineer for several integration projects.
- Contributed to onsite meetings and weekly international conference calls.
- Designed and developed an automated test suite in Python and C#.
- Worked in a large international team.
Senior Software Engineer2001 - 2004Juniper Networks (formerly Unisphere)
Technologies: Firmware, Networking, VxWorks, C++, C
- Designed and developed embedded software in C and C++, using the VxWorks RTOS.
- Worked on control processor software for the following network protocols: SONET, DS3, DS1, HDLC, and Ethernet.
- Designed and implemented low-level device drivers.
- Brought up and debugged new hardware, including PCI controllers, network interface controllers, and custom FPGAs and ASICs.
- Developed system-level software for redundancy, hardware monitoring, CLI interactions, and software downloads.
- Collaborated with hardware engineers, testers, and customers.
Software Engineer2001 - 2001Starent Networks
Technologies: Perl, Wireless, Embedded Linux, C++, C
- Developed software in C, C++, and Perl for a Linux platform as part of a startup company creating the next generation of high-speed mobile wireless infrastructure (3G wireless).
- Designed and implemented the system startup sequence and dynamic task creation sequence for a large-scale, carrier-class networking product.
- Designed and implemented a software simulation environment in the Linux operating system—to simulate the entire software system on a desktop PC.
- Wrote performance-critical embedded software.
- Worked within a standard of "five-nines" reliability (99.999% uptime).
Software Engineer Level Two1999 - 2000Arris Interactive (formerly part of Nortel Networks)
Technologies: Firmware, Embedded Software, Assembly, C++, C
- Developed embedded software in C, C++, and assembly (MIPS and PowerPC) for DOCSIS 1.1 broadband cable devices (data and voice over cable television lines). Worked as part of a multi-site team developing large-scale carrier-grade equipment.
- Ported a large base of software from the Nucleus Plus embedded operating system to VxWorks 5.4.
- Designed and developed low-level device drivers for Broadcom and Texas Instruments controller chips.
- Developed a suite of automated test scripts written in Tcl on a Linux server, utilizing Netcom Smartbits network testing devices.
- Worked in the office that was the original inventor of the cable modem.
Teaching Assistant1998 - 1999Harvard University Extension School
- Taught an advanced-level C++ programming class.
- Mentored 30 students for one hour per week.
- Graded projects and tests.
- Held office hours to assist students with assignments.
Intern1998 - 1999MERL | A Mitsubishi Electric Research Laboratory
Technologies: PIC, OpenGL, C++
- Researched and developed electronic devices: self-describing building blocks. The project was presented at Siggraph 2000.
- Created a graphical application in OpenGL and Visual C++.
- Developed embedded software in PIC Assembly Language.
- Was named as a co-inventor for two patents.