About
I'm a professional software developer in the Twin Cities area.
My specialty is data-intensive software applications where trade-offs of latency, throughput, and volume require careful consideration.
Professional History
Target Corporation, Minneapolis, Minnesota
- Principal Engineer (2025 - present)
- Lead Engineer (2020 - 2025)
- Senior Engineer (2018 - 2020)
I design, build, and maintain applications that manage and position physical inventory in retail stores and distribution centers. If an item is on a shelf at a store, or if a package arrived at your door, it has likely passed though at least one application under my responsibility.
I work here primarily in JVM-based languages and containerized deployments, with a dash of Python.
Thomson Reuters, Eagan, Minnesota
- Lead Enginer (2014-2018)
- Senior Engineer (2011-2014)
- Engineer (2006-2011)
Designed, built, and maintained a variety of distributed applications in the legal, regulatory, and financial space.
Development was on both JVM and .NET platforms for a variety of products, including the Westlaw family of legal research tools.
Particularly interesting work includes a large-scale OCR application, which processed millions of images daily.
I operated on-premise as well as on the Amazon Web Services cloud platform.
Education
University of Minnesota, Twin Cities
Bachelor of Science
Major concentration of computer science, minor concentration of mathematics.
Degree emphasis of cryptology and computer security.
Alphabet Soup
Some organizations like seeing a list of technologies. Mine is as follows.
- JVM-oriented technologies, such as Java, Kotlin, Groovy, Spring framework (including Spring Boot), Ratpack, and Micronaut.
- Applications built around REST APIs and event-driven inputs, specifically using Apache Kafka.
- Databases, both relational and otherwise. In particular: PostgreSQL, MongoDB, RocksDB, Elasticsearch, and SQLite.
- Other programming languages, such as Python, C, Bash, and Javascript (including ES6).
- Web technologies such as HTML, CSS, and interactive/dynamic web content (e.g. AJAX techniques).
- Cloud development in general, and specifically Amazon Web Services.
- Container development, e.g. Docker and Kubernetes.
- Various operating systems such as Windows and those in the UNIX "family", e.g. GNU/Linux.
Other Interests
Computer Chess
An ongoing hobby since my undergraduate years is the development of programs that play chess.
My creations have competed against both humans and other computer players on the Internet Chess Club (ICC) and during the 2006 Americas' Computer Chess Championships.
Photography
I dabble with my camera. Some examples are viewable here and here.