Software engineer

Steven Gonzalez

I build web apps and the APIs and services behind them.

About

I'm a full-stack engineer, strongest on the web. I've built React and Angular front ends, the .NET APIs and databases behind them, iOS and Android apps in React Native, and a desktop app that runs industrial saws. Before the saws I worked on a SaaS platform that gyms and studios across the country run on, and co-founded Virtual Trainer, which I built end to end.

I love automation, and it's how I get to quality. Letting machines run the checks frees people to spend their attention on the hard problems. Virtual Trainer has more than 6,000 automated tests across the app and the API. At work I moved our build pipelines into shared, versioned YAML templates that every team builds on.

I sweat the details people feel: how fast a page loads, how it holds up on a cheap phone, whether it works from the keyboard. The world at the top of this page is drawn in a background worker, so the page stays responsive while it moves.

Front end
TypeScript, React, Angular, React Native
Back end
C#, .NET, SQL Server, Cosmos DB, RabbitMQ
Testing
Jest, React Native Testing Library, xUnit, Moq
Delivery
Azure, Azure DevOps pipelines, Electron.NET

Selected work

What I've built

Co-founder • Sole engineer

Virtual Trainer

A fitness app I co-founded and built: React Native on iOS and Android, a .NET API on Azure, and an AI trainer that answers from your own workout history.

  • Live on the App Store and Google Play
  • Customizable dashboard, cached per user
  • AI trainer that answers from the user's own training history
  • Generates routines and progresses workouts automatically
  • Background work runs through Azure Service Bus

React Native / .NET Core / Azure / SQL Server / Cosmos DB / Azure AI

Personal project

Sky Islands

The painted world at the top of this site: plain JavaScript on canvas in web workers, with no images and no libraries.

  • Mobile Lighthouse went from 61 to 94–97 once all drawing moved into web workers
  • The theme switch swaps layers painted ahead of time, so it never freezes
  • Slow devices get lower resolution instead of dropped frames

JavaScript / Canvas 2D / Web Workers / Web Audio

Lead engineer

Industrial Saw Control Platform

Led the rewrite of the software that runs industrial saws: a new C# API with the machine-control endpoints, an Angular operator interface and Electron.NET desktop packaging.

  • Designed and built the new API from scratch, machine control included
  • UI and API ship as one desktop build, so their versions always match
  • Planned the architecture and features across teams

Angular / C# / Electron.NET / RabbitMQ

Software developer

Fitness Business Management Platform

Multi-tenant SaaS for studios, gyms and multi-location operators: scheduling, billing, CRM, member experience and reporting.

  • Helped build a new ASP.NET Core API, with endpoints across several service areas
  • Sped up high-impact queries and pages, and rewrote legacy stored procedures
  • Shipped features used by national operators across hundreds of locations

C# / ASP.NET Core / SQL / LINQ

Lead engineer

.NET Framework to .NET 8 Upgrade

Moved a business-critical application from .NET Framework 4.7.1 to .NET 8 in stages, without a rewrite and without disrupting the workflows people relied on.

  • Audited high-risk dependencies before changing targets
  • Replaced obsolete encryption with current APIs

C# / .NET 8 / Migration / Security

Lead engineer

Azure DevOps Pipeline Templates

Moved classic pipelines to YAML and built a versioned template repository that teams can adopt without being broken by changes.

  • Semantic version tags, so each team chooses when to upgrade
  • Complex pipelines take less time to set up

Azure DevOps / YAML / CI/CD

Writing

Notes on building software

All 8 articles

Colophon

How the world up top works

There are no images in it. Every rock, leaf and cloud is drawn in code when the page loads, from a fixed random seed, so it's the same island on every visit.

The scenery is painted once, then stacked in layers that slide with your pointer, and only the things that move are redrawn each frame. All of the drawing happens in background workers, so the page itself stays free. It's plain JavaScript on canvas with no libraries, about 110 KB gzipped, and it holds still if your system asks for reduced motion.

How it's built, in more detailRead the source on GitHub (opens in a new tab)

Contact

Hiring, or building something interesting? Send me a message.