John Swanson - Software Engineer

971-331-1800
john.d.swanson@gmail.com
johnswanson.dev

A seasoned software engineer with a decade of industry experience, expertise in functional programming, a passion for observability, and a dedication to mentorship and collaboration in remote work environments. I enjoy thinking about idempotency, transactionality, and other challenges of distributed systems.

Professional Experience

2020 - now: Senior Software Engineer @ Reserve (remote)

  • Automated the (previously hours-long, manual) process of refreshing our blocklists of sanctioned individuals, improved precision/recall of the search, and reduced search time by over 50%
    • Implemented a system to rerun blocklist checks (with refreshed blocklists) across entire userbase on a regular basis
      • Designed and implemented an integration with Unit21 for fraud detection
        • Automated cryptocurrency deposits/withdrawals, currently handling $1M+ volume per week
          • Designed and implemented a robust, reliable and observable system for delivering webhooks to customers
            • Improved observability and reliability: containerized dependencies for local development, added observability tools to generate timing metrics and log contexts, propagated log contexts when running asyncronous jobs

              2018 - 2020: Senior Software Engineer @ CircleCI (remote)

              • Designed and built a microservice to preprocess user config, used this preprocessing stage to add additional features, such as reusable, shared commands and jobs
                • Planned and implemented SLIs, SLOs, and error budgets for team services
                  • Took on a failure-prone, expensive system for scaling VMs for user builds, made incremental improvements:
                    • Circuit breaker (automatically switch between compute regions)
                    • Auto-scaler (automatically determine demand for various machine sizes/types and scale them appropriately)
                    • Improved isolation between different regions and compute types
                    • Added Windows and GPU executors

                  2013 - 2018: Software Developer @ DreamHost (remote since 2015)

                  • Led team of engineers in building a single-page app wysiwyg webpage editor
                    • Designed and built out continuous integration/deployment using CircleCI and Kubernetes
                      • Extracted financial data from culstomer billing records, used to obtain/stay complaint with a $30M loan from Goldman Sachs
                        • Identified causes of customer churn based on statistical analysis of customer data

                          Side projects

                          • TicTag - a stochastic time tracker. Used Slack to ping users at random intervals (averaging once per 45 minutes), allowing them to tag their time. Over long periods, you'd get a highly accurate picture of how you spend time with little effort. Integration with the Beeminder API provided a mechanism for setting up commitment contracts for how you spend time.
                          • I've also made contributions to open-source projects like clj-time and chezmoi.

                          Education

                          BA Economics - Pomona College '10

                          Selected Technical Skills

                          Clojure / PostgreSQL / Linux / Git / Kubernetes / distributed systems