Summary

Software-Related Professional Experience

Java Developer IV @ Employee Trust Funds (2022-present)

Helping to maintain Java web services that allow organizations and individuals to manage their employee benefits (insurance, pension, etc).

Designed and building out a new microservice-based ETL system to simplify APIs used by customers and streamline the importing of employee data into various legacy systems.

Architect @ SynthGen (2021-present)

Building a declarative framework for application development, especially for (but not strictly limited to) DSP plugins.

Languages/frameworks used: RDF, Deno (TypeScript), Rust, C++, several plugin SDKs (Reason, VST3, VCV Rack), WebAudio.

Software Engineer III @ Johnson Health Tech (2019-2021)

Helped to maintain the retail branch of an android-based OS that provides a user interface on workout equipment. Developed a framework to more easily implement Bluetooth-LE services based on the definitions from bluetooth.org, and a custom RPC protocol to communicate with on-device partner apps. Created tools to automate UI testing. Assisted QA team with manual testing.

Developer @ Wube Software (2017-2019)

Helped develop Factorio, a game about automating away as much work as possible. Improved terrain generation by replacing a monolithic and specialized data structure that described coherent noise functions with a functional language similar to that used by TMCMG, giving modders much more control over how maps are generated on a per-surface basis.

Developer / Architect @ Earthling Interactive (2007-2019)

Designed and maintained back-end systems for a variety of web applications, including:

Specific technologies used include Apache, PHP (4, 5, and 7), Java (servlets), JavaScript, MySQL, PostgreSQL, MSSQL, various flavors of Linux, Docker, and HIPPA compliance.

Some specific projects:

Dan's Computer Help and Repair (2003-2006)

Helped people learn to use their e-mail, clean up Windows installations, set up wired and wireless networks, and install drivers for and clean the jets of cheap printers.

Schooling

University of Wisconsin-Platteville (2002-2006)

BS in Software Engineering, minor in Mathematics.

Technical Experience

Computer Languages, APIs, Tools

(Languages with which I am currently especially familiar are bold.)

I am familiar with C, C++, C#, D, Forth, Haskell, Java, Javascript, Kotlin, Lua, Perl, PHP, Python, REBOL, Ruby, Rust, Scala, Scheme, SQL, TypeScript, Tcl, x86, 8051, MIPS, and PIC assembly, and various scripting languages, including ones I've designed and implemented myself.

I have used either CVS, Subversion, or Git for pretty much all of my personal, professional, or academic projects since 2004. I have also created and used unit tests (and a test-driven development approach) for many of these projects, and prefer to have automated tests when possible (to improve confidence and help keep software rot at bay).

I have frequently worked with Apache (installation and configuration). I am familiar with the basics of OpenGL, Android, Java Servlets, and a few different PHP frameworks (my favorite being Phrebar), and have written programs that interface with many other application-specific APIs.

Computer Networking

Extensive experience in writing networked applications using various standard protocols (HTTP, XML-RPC, SOAP) and formats (HTML, XML, RDF, JSON, SVG, PNG), as well administrating Ethernet and 802.11x TCP/IP networks with Windows and Linux machines and various modems and routers/gateways/NATs.

I am certified as a 'Guru' by Helium Electric's IPv6 certification program.

Audio Software

Frequent user of VCV Rack, Ableton Live, and Reason.

Operating Systems

Windows (95, 98, NT, 2000, XP, 7, 10), Linux (various distributions, lately Ubuntu), MSDOS, VMS.

Electronics/Embedded Systems

Experience working with FPGAs and microcontrollers, IO (to other devices, communication controllers, memory), and microprocessor design.

Have programmed PIC microcontrollers, ESP32, Arduino, and Pi Pico devices.

Interests