Professional Experience

Apollo.io

Senior Software Engineer

July 2023 - Present

  • Senior engineer and tech lead on the Conversation Intelligence team
  • Defines high-level architecture requirements and reviews the team's engineering design reviews
  • Efficiently builds new features using Rails and React, complete with automated tests
  • Analyzes performance and stability of existing code and effectively fixes the more important issues
  • Performs interviews and mentors new members of the team
  • Improved the observability of our system by adding detailed metrics

Rails
React
TypeScript
Docker
Kubernetes
New Relic

Amazon

Software Development Engineer II

Apr 2018 - June 2023

Project preview image for "Alexa, What Should I Watch?"
"Alexa, What Should I Watch?"
"What Should I Watch?" (WSIW) is a conversational Alexa skill for FireTV that recommends content to watch. I worked closely with PMs/TPMs to align on the desired features, with UX on how to best design the features, and with the Alexa Conversations team to implement our dialog model and improve the Alexa Conversations platform.
The backend skill code was written using Java/Spring and was deployed on EC2, the UI was written using Alexa APL, and the dialog model was written using ACDL.

Other Notable Achievements
  • Managed multiple beta releases before the public release of WSIW.
  • Collaborated with an Alexa Science team to improve the level of personalization of our recommendations.
  • Ran A/B tests to measure how new features and UX changes impact our key metrics.
  • Developed an Android application to enable Amazon Music and other media apps to integrate with Alexa for fully featured voice support.
  • Worked with the Alexa Video team to enable playing a specific season and episode of a show using Alexa.
  • Ran a working group to improve the operational excellence of my team's (and our sister team's) code.
  • Actively involved in mentoring, code reviews, and interviewing.
Software Development Engineer

Aug 2016 - Apr 2018

  • Developed an Android service to automatically enable using Alexa for transport controls (play/pause/etc) in 3P applications.
  • Added auto-scrolling lyrics to the Alexa Music UI on FireTV.
  • Ran sprint planning, sprint retrospectives, and standup as my team's Scrum Master.
Software Development Engineer Intern

May 2015 - Aug 2015

  • Created a developer tool to help with analyzing Android log files.

Java
Spring
Alexa
Android
AWS
Rust

Box

Software Engineering Intern

Jun 2014 - Aug 2014

  • Created a web app for tracking incident retrospectives using the LAMP stack and a custom REST API.

Angular
PHP
MySQL
LAMP

Personal Projects

Roadster
A "Batteries Included" web framework for rust designed to get you moving fast 🏎️. Inspired by other fully-featured frameworks such as Rails, Django, Laravel, Loco, and Poem.
  • Built on Tokio's web stack (axum, tower, hyper, tracing). App behavior can be easily extended by taking advantage of all the resources in the tokio ecosystem.
  • Provides sane defaults so you can focus on building your app. Most of the built-in behavior can be customized or even disabled via per-environment configuration files.
  • Auto-generates an OpenAPI schema for routes defined with aide.
  • Built-in support for SeaORM, including creating DB connections and running DB migrations.
  • Built-in support for Sidekiq.rs for running async/background jobs.
  • Structured logs/traces using Tokio's tracing crate. Traces/metrics can be exported using OpenTelemetry.

Rust
Sidekiq
Postgres
SeaORM
OpenAPI
OpenTelemetry
Project preview image for Mass Dissent
Mass Dissent
Mass Dissent is a website that provides an easy way to send a short message as physical mail to your representatives in the U.S. Congress. The site reduces the effort required to send a letter to an elected official, hopefully resulting in more people writing to their representatives regarding the issues they care about.

Next.js
React
Node.js
TypeScript
tRPC
Postgres
SQL
Rust
Stripe
Sendgrid
Supabase
Project preview image for Grouped Timers for Pebble
Grouped Timers for Pebble
A timer app for Pebble watches written in C that allows grouping timers into lists.

C
Pebble
MVC
Financial Transaction Processor
A simple CLI application written to transform transaction records of financial accounts to different formats for the purpose of importing into personal budgeting software.

Rust
GitHub Actions

Technologies

Rails
React
TypeScript
JavaScript
Rust
Java
Next.js
Python
C
C++
C#
Git
Android
AIDL
Linux
AWS
New Relic
GraphQL
tRPC
REST
Postgres
Supabase
SQL
MongoDB
Spring
Guice
Dagger
Mockito
TestNG
JUnit
Robolectric
Godot
Unity
GitHub Actions
IntelliJ
Pebble
Raspberry Pi
Jira