Twelve years experience designing and developing large-scale projects. Most recently, designed and implemented in Java and Ruby a high-performance grid processing system in the REST architectural style, which improved throughput 50x over its predecessor. Prior to that, developed user interfaces, web applications, frameworks, and hardware drivers in C++ for various PCs, handhelds, and embedded devices, shipping many releases to paying customers. Sixteen years total experience developing, testing, documenting, building, shipping, and supporting software, with a passion for learning and applying best practices.
Señor Software Engineer @ From March 2011 to Present (4 years 10 months) Senior Software Engineer @ Designed and built a grid-based natural language processing system in the REST architectural style. The web services were implemented in Java using Restlet and Hibernate on Tomcat and MySQL, and the clients were implemented in Java, Ruby, and C++.
Lead developer for the complete redesign of the grid scheduling and model processing web services, which provided customers with updated results 4 times per day instead of once every two weeks.
Mentored three new hires, enabling them to be productive in their first sprints. From April 2008 to February 2011 (2 years 11 months) Software Engineer @ Rapidly developed a grid scheduling web application using Ruby on Rails, HTML, and CSS, which improved grid utilization while a larger redesign was in progress.
Implemented a grid-based ETL program in C++ which converted crawled weblog and message board content into primary business objects. From January 2008 to April 2008 (4 months) Contract Software Developer @ Convergent Living acquired the assets of CorAccess. Continued work on AudioMate2, and developed UI and backend support for new HVAC, lighting, and security systems for the Companion home automation device. From May 2005 to January 2008 (2 years 9 months) Senior Software Engineer @ Designed, implemented, and shipped several major versions of AudioMate 2, an audio/video control application for CorAccess's Linux/x86-based Companion touch screen home automation device.
Designed and implemented a plugin framework in C++ to enable rapid development of support for new A/V components.
Designed and implemented a peer-to-peer networking protocol to allow multiple touch screens to control the same A/V component.
Designed and implemented the Flash-based UI, including custom widgets to accommodate finger-touch control and an object-oriented ActionScript framework.
Implemented an embedded HTML/XML/JavaScript-based web application to allow easy configuration of the device with standard web browsers. From February 2003 to May 2005 (2 years 4 months) Software Engineer @ Ported the Palm OS Expansion and Virtual File System managers—the system components and APIs that supported removable storage and devices on Palm Powered handheld devices—from Palm OS 4.x/5.x to the next-generation Palm OS, using C, C++ and ARM/Thumb assembly.
Developed next-generation Palm OS drivers for SD/MMC and SmartMedia removable storage devices on Intel and other ARM-based hardware reference platforms, including DMA support. From November 2001 to February 2003 (1 year 4 months) Application Software Engineer @ Developed new product features for the highly-multithreaded BeOS/BeIA in C++.
Implemented optimized container classes for the BeOS/BeIA public API.
Integrated the screen saver functionality from BeOS into BeIA, including developing new features to support the BeIA preference-saving and inter-application communication models. From February 2001 to November 2001 (10 months) Prototype Development Support Engineer @ Provided engineering support to several third party companies using BeIA on their hardware devices.
Developed device drivers in C to enhance the hardware support of BeIA. From February 2000 to February 2001 (1 year 1 month) Developer Technical Support Engineer @ Responsible for extending and maintaining Be's sample code library.
Wrote example code in C++ and developer newsletter articles to demonstrate correct use of BeOS APIs for digital audio, video, and other functions.
Wrote the BeOS Driver FAQ, to centralize many disparate sources of information on driver development for BeOS. From November 1999 to February 2000 (4 months) Software Engineer 1 @ Investigated and fixed bugs; designed and implemented new features in C and C++ for both Mac and Windows versions of QuarkXPress. From January 1999 to November 1999 (11 months) Associate Software Engineer @ Investigated and fixed bugs; designed and implemented new features in C and C++ for both Mac and Windows versions of QuarkXPress. From September 1998 to January 1999 (5 months) Software Configuration Engineer @ Responsible for all builds and product assembly of Quark Publishing System from alpha to final release of version 2.0. From July 1997 to September 1998 (1 year 3 months) Quality Assurance Technician @ Developed test scripts, wrote documentation, performed testing, and provided detailed bug reports to ensure the performance and reliability of QuarkXPress 3.32 and QuarkImmedia 1.0 and 1.5. From October 1995 to July 1997 (1 year 10 months)
B.S., Physical Science @ Humboldt State University From 1992 to 1994 Todd Thomas is skilled in: C++, Ruby, Grid Computing, Java, REST, Object Oriented Design, Web Services, Scalability, C, XML, JavaScript, Linux, Ruby on Rails, MySQL, HTML