The content below is available in the PDF version of my resume, which includes my contact information.

While I have enjoyed the technical challenges of my current role, I am currently seeking a new opportunity that would allow me to be more closely connected to the end-users of my work and have a tangible, positive impact on society.

Work Experience

Intel, Network and Edge GroupDecember 2016April 2024

Lead Backend Software Engineer — Action recognition inference system with Python, TensorFlow, and MySQL

  • Enabled rapid product delivery to high-priority customer against an aggressive schedule
    • Refactored computer vision Python code by profiling with py-spy and rewriting critical paths, improving single-camera frame rates 10-fold and permitting operation in cloud environments without specialized hardware
    • Created GStreamer plugin that integrates a custom FPGA feature extractor with TensorFlow, allowing inference pipelines to execute on 15 concurrent video streams
  • Drove ML improvements across datasets
    • Explored new model architectures and training approaches, reducing training time 80% with negligible impact on recall or precision
    • Replaced ad-hoc frame stride algorithm with one based on statistical model of the expected data, preventing many edge-case failures
    • Implemented ability to collect, visualize, and filter neuronal activation during inference process, managing the complexity of asynchronous data collection, video manipulation, and color theory to provide an accessible and visually appealing presentation with an easy-to-understand API
  • Transformed test processes to catch issues faster and provide developers actionable insights
    • Refactored backend test suites to use isolated, in-memory SQLite instances, reducing their execution time and eliminating order-dependent failures
    • Parallelized with xdist, reducing execution times >75% (from 17 minutes to 4 minutes and 40 seconds to 16 seconds for comprehensive and quick test suites, respectively)
    • Engineered test runner options to execute against MySQL server using an ephemeral database and user per test, then automated process to use a containerized instance, revealing issues only reproducible with the production database
    • Integrated into build pipeline to generate automated coverage reports, providing guidance for additional improvements, in addition to quick failure alerts for developers and reviewers
  • Re-architected data handling from HTTP APIs to database leveraging Pydantic and SQLAlchemy
    • Led major refactor of API request/response handling, greatly simplifying codebase and dropping primary routes’ response times from 2000ms to 20ms
    • Automated documentation generation, standardized error messages, and developed an for detailed progress reporting, leading to a better user experience and fewer support requests
    • Redesigned database constraints and hooked into the ORM to automate filesystem clean-up, resolving long-standing resource-usage and data integrity bugs

Software Application Engineer — Distributed-edge, IoT solutions with Go, Python, PostgreSQL, and Angular

  • Developed multi-camera surveillance platform showcasing the company’s hardware and software capabilities to strategic partners
    • Designed and implemented database architecture and backend services leveraging OpenVINO and AI accelerators to annotate and record large quantities of video from multiple sources in real-time
    • Architected secure-by-default, low-friction deployment featuring automated Vault setup, dynamic database credential generation, and short-lived, limited-access service tokens
    • Authored a comprehensive Security Hardening Guide to foster a collaborative approach to security among stakeholders
  • Boosted team velocity and testing efficiency by creating a Python tool that converts a living “database” of tens of thousands of files in a proprietary YAML-like syntax into a single compressed JSON object, slashing processing time of downstream tools from hours to seconds and reducing data transfer sizes >97%
  • Containerized and automated the setup, build, and test processes for local development and CI build environments in EdgeX Foundry’s UI, reducing new developer barriers-to-entry and improving overall code quality

Software Application Engineer — RFID inventory tracking with Java, Go, AWS, and C

  • Authored open-source Go implementation of the Low-Level Reader Protocol (LLRP) library for EdgeX Foundry
    • Designed a simple-to-use, highly concurrent client API that enforces correct and race-free usage at compile time
    • Created tools to generate optimized code, tests, and documentation from a formal specification of the protocol, simplifying the development, verification, and extension of the library
    • Provided reviewers an extensive test suite of functional, replay, and properties-based tests, resulting in them accepting the work after a lengthy peer-review process without finding a single bug in the project’s core protocol library
  • Developed graph-theoretic RFID network scheduler that learns about and adapts to RF interference in real-time, maintaining near-optimal utilization at configurable interference tolerances, improving read accuracy while simplifying customer setup
  • Mentored summer intern team and significantly increased their productivity with extended support and software development guidance, dropping their Pandas data analysis processing time from hours to seconds
  • Created a distributed RFID network simulator for testing and experimentation
    • Containerized sensor application and emulated hardware protocol layer using Docker and asyncio Python
    • Developed a web UI for network visualization and control
    • Shared with team via presentations and documentation, increasing development velocity through automated protocol, integration, and stress testing
Intel, Assembly Test Technology DevelopmentSeptember 2014December 2016

Software Engineer — Automated silicon manufacturing equipment with C#

  • Took initiative by developing automated testing environment and equipment simulator, saving weeks of development and testing time per quarter, improving tool reliability, and enforcing vendors’ compliance with protocol standards
  • Optimized power delivery and shifted organizational problem solving by providing code, research, and guidance utilizing genetic programming in critical circuit design process
  • Recognized for speed and quality while delivering critical new equipment features that improved yield 35%, saving $800,000/week
Machine Intelligence LaboratoryFebruary 2012August 2014

Graduate Research Assistant

  • Investigated methods to mitigate catastrophic forgetting in AI networks
  • Developed a self organizing map library for topological data analysis and visualization
Intel, Materials Properties LabMay 2013August 2013

Graduate Software Engineering Intern

Garmin InternationalMay 2010July 2010

Software Engineering Intern

Skills

Languages
  • Python
  • Rust
  • Go
  • C#
  • Java
  • TypeScript
  • C
  • SQL
  • Bash
Tools
  • Docker
  • PostgreSQL
  • AWS
  • HashiCorp Vault
  • TensorFlow
  • FastAPI
  • Axum
  • Vue
  • GStreamer
Disciplines
  • Machine Learning
  • Microservices
  • Relational Databases
  • Computer Vision
  • IoT & Embedded
  • Cryptography
  • Group Theory
  • Genetic Programming

Academics

Master of Science — University of Tennessee, KnoxvilleAugust 2013August 2014
  • Major: Computer Science
  • Focus: Machine Learning & AI
  • GPA: 4.0/4.0
Bachelor of Science — University of Tennessee, KnoxvilleAugust 2008May 2013
  • Major: Computer Science
  • Minors: Mathematics & Psychology
  • GPA: 3.85/4.0