I develop software using object-oriented languages for Unix-like and Microsoft operating systems on desktop, embedded, and mobile platforms. I create complete software products (design, code, documentation, test suites, build system, user experience studies) from as little as a few sentences of requirements.
Experience
2023 — Now
Gonzales, California, United States
Analyzing/coding/testing/documenting applications that use machine learning of digital images acquired in real time by tractor-pulled device to distinguish between crop plants and weeds in order to improve efficiency and sanitation of common operations (thinning, weeding, side dressing, fertilizer application) performed as part of growing lettuce and other vegetables, while using 90% less chemicals than more conventional practices. Supporting product sales, staff of agricultural service providers.
Adding professional touch to software development.
* created GitHub organization account, transferred all source code to it
* upgraded .NET dependency from 3.1 to 8.0
* replaced existing graphics control NuGet package with ScottPlot
* replaced PDF generation control NuGet package with free, open-source NuGet package
* hired former colleague to set up build/test system using GitHub Actions, SmartBear TestComplete
* created documentation of product code, created GitHub repo wiki containing documentation
* documented release process
** helped document and review test plans for release candidates
** decided on structure for release notes
* developed machine state logging and graphing
* wrote handlers for database operation exceptions
* created system to cryptographically sign configuration files and validate signed files on program startup
2016 — 2023
2016 — 2023
San Francisco Bay Area
Helped develop/maintain BitTorrent's main product as well as helping create a new product.
1) uTorrent Web
Back-end engineer for BitTorrent protocol client with web-based front end oriented toward less-technical media consumers.
* created notification system for back end using Windows notifications
* created system for assessment and registration of file extension associations
* set up Google Breakpad crash handling and dump generation/uploading
* created passwordless authentication system for web client on localhost
* created scoring calculator used to encourage usage of product
Developed in C++ (C++11, STL, Boost).
2) uTorrent client for Windows - innumerable actions, including:
* created new wiki pages in GitHub repos containing overviews of various areas of code
* reworked Remote support to support Android client
* reworked resume data loading/storage, encapsulating it within a single class
* implemented 'add torrent by hash' feature
* found cause, fixed security vulnerability
* integrated WebView2 as browser control for displaying web content including advertisements, upsell offers, other content
* installed and launched BTFS executable from the client
* integrated cryptotoken wallet
* advised new senior software engineers on how to integrate webtorrent support
3) uTorrent Server for Linux (based on code common to uTorrent client for Windows)
* updated source code, unit tests, system tests to use latest version of core uTorrent client code
* identified and fixed generic uTorrent problems via run-time analysis using valgrind
2007 — 2016
2007 — 2016
San Francisco Bay Area
First seven years worked on BitTorrent client on numerous Linux-based embedded devices.
1) Embedded BitTorrent client for NASes, Internet media appliances. Sole engineer on project starting in 2008.
* modified existing libtorrent and uTorrent code bases
* coded multi-threaded core product in C++
* added features to open-source UI in HTML, CSS, Javascript
* wrote pre- and post-sales technical literature
* created tests: unit, system, platform evaluation, stress
* developed product release process
* created build/test system framework in Python using Amazon Web Services (EC2, S3), including
** product building using GNU make
** unit/system testing
** valgrind analysis
* provided technical support
Worked on somewhere between 40 and 60 different embedded devices to integrate the BitTorrent client with them.
Product profitable based on royalties minus expenses for me and part-time business manager.
Created developer wiki for product, trained manager and 4 engineers joining the department.
2) uTorrent Server for Linux
* developed all releases
* provided technical support in company web-based forum
3) BitTorrent/uTorrent for Android
* customized BitTorrent C++ client to serve as product core
* reorganized source code, build system to be compatible with Android build tools
* reviewed work of UI group to ensure compatibility with core client
* developed POC port to early-stage SoC Android television
* coded features in Java
* used standard Android tools (NDK, SDK) and Eclipse
4) Android/native embedded BitTorrent client for Internet media player with 10-foot remote control TV UI integrating Internet Archive contents via torrents
* designed/coded services used by front-end developers
5) Sync
* back-end/API C++ engineer, providing services to web UI developers
* RESTful-like API: co-designed, co-implemented, wrote system tests
* migrated embedded system test framework to work with Sync
* designed/coded embedded-related features
2007 — 2007
2007 — 2007
Petaluma, California
Developed software using Python and Cheetah
2004 — 2004
Novato, California
Financial analytic services startup licensing access to web-based HTML application running on Apache and Linux for Mozilla and IE browsers.
Participated in development of major release (2.3) and maintenance releases.
* Designed and implemented object-oriented application development/testing infrastructure in C++, including classes for strings, file/directory handling, exceptions, HTML generation, automated unit testing.
* Improved automated build system using make.
* Initiated practice of developing automated regression tests for all new features.
* Designed and implemented report engine that was more than twice as fast as the previous one.
* Implemented new UI design for main pages of application.
* Ported formerly-IE-only application to Mozilla.
* Worked with in-house domain experts to resolve ambiguities/conflicts in specifications.
* Installed and administered FreeBSD 4.x on my workstation.
Education
Napa Valley College
A.S.
University of California, Berkeley
M. S.
UC Santa Barbara