Software engineer and technical leader with 20+ years of experience delivering solid, well-written projects in many languages and frameworks. Experience includes six years of successful remote work and leadership of a successful open source project effort. I design and develop testable code, work with stakeholders, and lead projects. Seeking remote development positions with opportunity for project leadership and architecture contribution.
Experience
Senior Software Engineer (remote)
Canonical Ltd. - Lexington, MA
2011 – 2017
- Architect and developer on Keeper, Unity 8's cloud backup and restore tool. Evaluated approaches for our security model and customer requirements, presented design, and co-wrote Keeper with other developers.
- Architect and developer on Ubuntu Pay Service's QtPurchasing implementation.
- Ran Ubuntu Linux's User Services / Indicators project (services working behind those little panel icons). Worked with and coordinated teams of UX designers, QA, users, and developers to ensure features landed smoothly and bugs got fixed. Updated desktop services to also run on phones for Ubuntu Touch, added calendaring and phone alarms, and management of data transfers, USB connections, and bluetooth connections.
- Expanded test coverage in all my projects and introduced tests into several inherited projects that were difficult to test, wrote harnesses for integration testing, and wrote reusable test mocks.
Project Lead (remote)
Transmission
2008 - 2012
- Led a small group of volunteer developers on Transmission, a popular open source networking app. Planned features, triaged bugs, reviewed/committed patches, and coordinated developers, sysadmins, testers, and forum assistants.
- Negotiated with prominent Linux distributions (e.g. OpenSUSE and Ubuntu) to ship with Transmission preinstalled and also with Fon to preinstall on Fonera routers. Wrote and documented a JSON-RPC extension API that led to dozens of third-party apps on virtually every platform, expanding Transmission's reach beyond our team's own resources.
- Wrote Transmission's backend to be highly efficient. The app uses about half the memory and a third less CPU as similar apps, appealing to users on resource-limited systems (e.g. routers, Raspberry Pis, and metered cloud.)
- Primary author of Transmission’s web UI and the Qt client, which began as personal projects to learn JavaScript, CSS, and Qt but gained user interest and became shipping code.
- Wrote upstream patches accepted by projects such as libcurl, libevent, and GMime.
Senior Software Engineer
University of Oklahoma, Natl. Severe Storms Lab
1999 - 2011
*promoted from Software Engineer in 2005
- Co-wrote the WDSS-II display, a large-scale data visualization tool for severe weather research. Contributed to the OpenGL rendering, wrote much of the UI, and ported it from Linux to Windows.
- Co-wrote OPUP, a 2D visualization system for the US Air Force that combines regional radar data for visualization and algorithm processing. Worked closely with customers during delivery, including documentation authoring, acceptance testing, and onsite visits to explain code base and operations to IT staff.
- Collaborated with research meteorologists to determine code and system requirements for their weather algorithms. Wrote and maintained code for weather algorithms and their WDSS-II visualization.
- Identified and fixed bottlenecks in multi-radar data at the code level and helped coordinate weather algorithm processes at the system level.
Volunteer Project Lead
Pan Newsreader
1999 - 2006
Primary developer of
Pan, the only Linux GUI Usenet client to earn a Good Net-Keeping Seal of Approval (still maintained by other developers today). Led a redesign and C++ rewrite that included improved threading, added multiserver support, cut memory use by two-thirds, and cut the codebase size by half.
Software Support & Developer
FAA / Kenrob
1994 - 1999
*Student intern, 1993-1994
Helped write and maintain
SATORI (replays prerecorded air traffic flow),
SIGNAL (simulator for teaching Air Traffic Controllers), and an OpenGL modeling tool to create virtual airports and runways for immersive ATC training simulation. Wrote lesson plans and taught programming classes to university interns.
Skills
- Languages: C++, C, JavaScript, Python, Java, BASH. Older: C#, PHP, Perl
- Technologies: Linux, HTML/CSS, REST, Qt, GTK+, TCP/IP, DBus, jQuery. Older: Oracle, SQL, OpenGL, Win32
- Tools: Git & GitHub, CMake, Valgrind, adb, Autotools, perf,, Subversion, SASS
- Techniques: Remote Work, Agile, Test-Driven Development, Continuous Integration, Scrum
Education
Bachelor of Science in Computer Science, University of Oklahoma, 1994
Publications
- Stumph GJ, Filiaggi MT, Magsig MA, Hondl KD, Stephan BS, Toomey R, Kerr C. Status on the Integration of the NSSL Four-Dimensional Stormcell Investigator (FSI) into AWIPS. 2006
- Vaughan T, Toomey R, Lakshmanan V, Hondl KD, Brogden J, Kerr C, Song L, Smith T, Stumph G, Scharfenberg K. The Warning Decision Support System – Integrated Information (WDSS-II) Display. OU Disclosure No. 04NOr047C
- Rodgers MD, Manning CA, Kerr CS. Demonstration of Power: Performance and Objective Workload Evaluation Research. Proceedings of the Human Factors and Ergonomics Society Annual Meeting, Vol 32 Issue 15, pp 941. Oct 1 1994.