career
3 roles since 2020Newest first. Each role has the work in plain words, a few things I'm glad I did, and the projects that came out of it.
- 2023
Senior Frontend Engineer, Nexora
Lead front-end at a small software studio. Took five client apps from an empty repository to production in a bit over three years, and own the mobile release train end to end.
- Three React Native apps, a React + Flutter GIS platform, and a WebGL configurator, every one shipped to the App Store, Google Play, or 100+ customer sites.
- Weekly App Store releases through a peak season, about 15 in twelve months, with OTA hotfixes in between and no dedicated native developer.
- Map and rendering performance on mid-range phones: Mapbox overlays and offline packs, PostGIS tiles, Babylon.js scenes with instancing and LOD.
- A JSON auth-error contract co-designed with backend that ended a mass-logout incident.
React Native, Expo, TypeScript, Mapbox GL, Babylon.js, Supabase, RevenueCat
- 2021
Frontend Developer, The Weather Company
weather.com's server-rendered platform, used by millions of people a day in 200+ locales. I owned the Samsung partner experience on mobile and worked on the move to Next.js.
- Samsung-themed component variants and a 320px foldable breakpoint for the Today, Hourly and Daily webviews, driven by device-class headers instead of UA sniffing.
- Replaced viewport media queries with container queries so one forecast card worked in a sidebar, full width, or a partner webview.
- Ported forecast pages to React Server Components with a shared typed data layer and per-route cache tiers; CI stayed around three minutes.
- Found and fixed a production hydration mismatch, pinned it with a failing-first test, and wrote the pattern up for the team.
React, TypeScript, Next.js, Redux-Saga, Storybook, Playwright, Kubernetes
- 2020
Web Developer, Sports Media Inc
First job, and remote from the start because of the pandemic. Core engineer on an AWS streaming platform for a 24/7 sports channel and its video library, plus twenty-odd WordPress sites for the agency's divisions.
- MediaConnect to MediaLive to MediaPackage to CloudFront, with HLS/DASH, FairPlay and Widevine DRM, and server-side ad insertion.
- A serverless ingestion pipeline that parsed provider feeds with per-provider mapping templates; onboarding a provider went from days to hours.
- A React operator CMS with a real CDN playback check before an asset could be marked playable.
React, AWS Lambda, Step Functions, AWS Elemental, DynamoDB, WordPress
- 2014–2020
University of South Florida. A bachelor's in accounting, then a Master of Accountancy. The master's ceremony in May 2020 was online, USF's first virtual commencement, because of COVID. I started work that June, remote, for the same reason.
skills
what I'd like to be asked about- web
- React, Next.js (App Router, RSC), TypeScript, Redux, Zustand, Storybook, container queries, SSR, accessibility
- mobile
- React Native, Expo (EAS build, submit, update), Flutter, Riverpod, Reanimated, RevenueCat, Firebase, store releases
- maps and 3D
- Mapbox GL, GeoJSON, offline packs, PostGIS, QGIS, DEM tiles, Babylon.js, Three.js, GLSL, glTF, WebXR
- backend and cloud
- Node.js, Fastify, Supabase, PostgreSQL, MySQL, DynamoDB, AWS Lambda, Step Functions, AWS Elemental, CloudFront
- quality
- Jest, Vitest, Testing Library, Playwright, GitHub Actions, Sentry, Mixpanel, TypeScript strict
education
- 2018–2020
- Master of Accountancy, University of South Florida. GPA 3.06. Aug 20, 2018 – May 8, 2020. The ceremony was virtual, USF's first, because of COVID-19.
- 2014–2018
- Bachelor's degree, Accounting, University of South Florida. GPA 3.39. Aug 25, 2014 – May 4, 2018.