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 2016–April 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 withpy-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 customFPGA
feature extractor withTensorFlow
, allowing inference pipelines to execute on 15 concurrent video streams
- Refactored computer vision
- 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 acontainerized
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
- Refactored backend test suites to use isolated, in-memory
- Re-architected data handling from HTTP APIs to database
leveraging
Pydantic
andSQLAlchemy
- 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
- Designed and implemented database architecture and backend services
leveraging
- Boosted team velocity and testing efficiency by
creating a
Python
tool that converts a living “database” of tens of thousands of files in a proprietaryYAML
-like syntax into a single compressedJSON
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
andasyncio 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
- Containerized sensor application and emulated hardware protocol layer
using
Intel, Assembly Test Technology DevelopmentSeptember 2014–December 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 2012–August 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 2013–August 2013
Graduate Software Engineering Intern
Garmin InternationalMay 2010–July 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 2013–August 2014
- Major: Computer Science
- Focus: Machine Learning & AI
- GPA: 4.0/4.0
Bachelor of Science — University of Tennessee, KnoxvilleAugust 2008–May 2013
- Major: Computer Science
- Minors: Mathematics & Psychology
- GPA: 3.85/4.0