About
I'm a software engineer with a decade of applied CS experience spanning Unity gameplay and simulation systems, full-stack web development, and technical curriculum design. I write and ship production software: a commercial game on Steam, a scalable cloud-hosted leaderboard backend in active use, and a Unity project framework that has guided 250+ students in CPSC 386 through their first complete game project. On the backend side, I work in Python with FastAPI, PostgreSQL, and Redis, deployed on scalable cloud infrastructure with cache invalidation, concurrent-write handling, and testing.
Before and alongside teaching, I took on contract engineering work: migrating legacy desktop applications, building prototypes for external clients, and managing cloud infrastructure. Earlier in my career, I worked full-stack on a marketplace startup: Go and React, Postgres, payments, and AWS-deployed services. I architect systems with intention, write clean code, and communicate technical work clearly to both engineers and non-engineers.
I'm based in Blacksburg, VA and looking for what's next. My heart's in games and simulation, but I'm just as happy building backend systems, supporting other developers through tooling and advocacy, or working in education and edtech. Open to remote roles, hybrid in the DC/Virginia corridor, or local to the New River Valley area.
Download Resume (PDF)
Projects
High Score Server
Production REST backend for Unity game leaderboards. Handles concurrent score submissions across multiple game modes and time periods, with rate limiting, authentication, cached reads with invalidation, and a clean C# SDK for Unity client integration. Hosted on Heroku with PostgreSQL and an opt-in Redis add-on. Integration tests run on GitHub Actions against an ephemeral PostgreSQL service on every push and PR, with continuous deploys from main. Production observability via Sentry with sampled performance tracing.
Minesweeper Madness
Feature-complete Minesweeper with classic and custom gameplay modes. Full production pipeline ownership: design, implementation, QA, and shipping to Steam and Google Play with post-launch support.
UBear Framework
Cross-project Unity library of reusable systems, components, and tooling —
including the C# SDK client for the High Score Server. Designed as
composable primitives rather than opinionated frameworks.
Published as a versioned UPM package (com.ericmay.ubear),
MIT-licensed and installable via Unity Package Manager from the repo's git URL.
Intro Game Dev Course
The Unity project backbone for CPSC 386: Introduction to Game Development course. Designed to introduce zero-experience students to the full range of Unity concepts through hands-on incremental implementation. Used by 550+ students across multiple semesters.
Experience
Lecturer, Computer Science
- Taught over 2,700 students total across the full course range.
- Mentored over 1,000 students through full-cycle software development projects, from concept to deployment.
- Redesigned improved Game Development course (CPSC 386) curriculum; augmented theory-only focus with a hands-on Unity/C# project track. Served over 500 students.
- Managed 3–5 sections per semester; built automated grading infrastructure on GitHub Classroom submissions with GitHub Actions CI to assess code submissions at scale.
- Introduced Git-based assignment workflows via GitHub Classroom, configured for Canvas LMS.
- Independently authored AI academic integrity policy during the initial wave of generative AI adoption.
- Courses span game development, software engineering, and introductory CS, taught across lower and upper-division levels.
Independent Developer / Contractor
- Contract engagements including migrating a legacy VB.NET application to C# with a newly designed SQL schema, and delivering playable game prototypes for external clients.
- Full ownership of personal projects (architecture, scope, version control, and post-launch support) across Unity/C# game and backend work.
- Built and deployed a production Python/FastAPI leaderboard backend on Heroku (PostgreSQL, Redis, CI/CD pipeline, authentication, rate limiting, and cache invalidation) with a C# SDK for Unity client integration.
Full-Stack Software Developer
- Generalist full-stack contributor across the codebase: React/Redux frontend and Go backend using go-gorm for PostgreSQL access.
- Developed payment processing features using Braintree, working on the flows that handled transactions across the marketplace.
- Deployed and maintained Dockerized services on AWS (EC2, Elastic Beanstalk, RDS, S3) as part of the team's shared backend responsibilities.
Writing
I write on Medium about software engineering, Unity and game development, and the intersection of technical education and industry practice. Targeted at engineering, developer advocacy, and technical education audiences.
-
Schemas as Claims: What I Learned Building a High Score Server
On building a FastAPI/Postgres backend for game leaderboards — in the end, I arrived at the same pattern those mobile games used all along, and now I understand why it works.
-
Platforms as Cost: Why Shipping Small Games on Google Play Isn't Free
On the Steam vs. Google Play tradeoff after shipping Minesweeper Madness — every platform charges ongoing maintenance in developer hours, not just fees.
Contact
Based in Blacksburg, VA. Available for remote roles, hybrid in the DC/Virginia corridor, or on-site in the New River Valley. Contract and employment inquiries both welcome.
US citizen, eligible for security clearance.