Passionate, hardworking polyglot programmer with a strong CS background and 20+ years applying engineering practices (TDD, CI, SOLID, DRY, YAGNI) to build scalable backend services, web applications, and client applications.
APX architect, building the platform underpinnings of Axon's software offerings with a focus on distributed system resiliency

Compute interfaces team member, building segmentation and augmentation tools for customer marketing campaigns

Led backend engineering for Epic Online Services social systems (friends, messaging, parties, clip-sharing).

Worked on Core Tweet Service and Developer Platform, storing and serving Tweets at global scale.

Cross-Platform team, built Common Services Tier middleware service layer and customer-facing web portals.

Agile Lifecycle Management team, developed work and ticket tracking system for scaled enterprise agile adoption.

"Perpetual student" taking supplementary MOOC classes online, attending professional conferences annually, and reading constantly
Specialization in Machine Learning, Theory, and Algorithms

Focus on Systems

Below is a collection of assorted writings, a lot of them are from my old blog, "Absolutely No Machete Juggling." Most of the posts are about technology and programming, but odds are you landed here because I once wrote a very long post about Star Wars and it blew up like the second Death Star.
Strap in folks, this sucker's over 10,000 words for, like, Mario and stuff.
Every Java developer is familiar with javac for compiling, java for running, and probably jar for packaging Java applications. However, many other useful tools come installed with the JDK. They are already on your computer in your JDK’s bin/directory and are invokable from your PATH
It's better to have a hole in your team than an asshole
If you can't find a way to phrase your constructive criticism so that it wouldn't offend the recipient, the absolute last person on the planet you should share your poorly-worded feedback with is the person who signs their paychecks.
Three-Flow has exactly three branches - no more, no less: master, candidate, release.
Here are five more Guiding Principles I use when making technical decisions as a software engineer. You can also check out Part 1.
I find that I repeat myself often at work. There are a handful of things I say so often when discussing decisions that I’ve been called out for it on occasion for acting like a broken record.
Various public projects I work on from time to time.
A Scala application that uses Linguistic Geometry concepts to quickly compute trajectory positions for chess boards
Uses Genetic Algorithms to search for solutions to Rectangle Visibility problem
Extensible framework with CLI and GUI for using genetic algorithms to decrypt messages encrypted with a substitution cipher
Ruby gem for formatting and printing tabular data in commandline scripts, over 100,000 downloads
Zero-compilation Object Oriented Metrics analyzer for Java code, 13 forks on GitHub
If you have a question, a comment, or want to arrange a time to chat, send me a note.