Q3 2026Booking 2 remaining slots
All Work
2021–22Consumer Electronics · Trade-InSenior Full-Stack

Designed the GraphQL/AppSync + Lambda APIs serving millions of IMEI device-check requests daily across EcoATM kiosks and the Gazelle storefront.

Millions / dayIMEI device-check requests
AppSync + LambdaCore serverless architecture
Rails + ReactEnd-to-end CMS and product
Scroll to explore
ecoatm.com LIVE
EcoATM
Senior Full-Stack
Shipped to production
deployed
— Project Brief
Client
EcoATM / Gazelle
Industry
Consumer Electronics · Trade-In
Location
San Diego, CA
Year
2021–22
Stack
TypeScriptReactRailsAppSyncLambdaStep FunctionsEvent BridgeCognito

Designed the GraphQL/AppSync + Lambda APIs serving millions of IMEI device-check requests daily across EcoATM kiosks and the Gazelle storefront.

EcoATM/Gazelle process millions of device trade-ins. Kiosks needed fast, accurate IMEI lookups — carrier checks, activation-lock status, condition grading — and the consumer-facing Gazelle storefront needed the same trust-worthy pricing signal, all within the few-second window a customer will wait.

01The Challenge

Trade-ininfrastructurethathadtokeepupwithkiosksrunningaroundtheclock

EcoATM/Gazelle process millions of device trade-ins. Kiosks needed fast, accurate IMEI lookups — carrier checks, activation-lock status, condition grading — and the consumer-facing Gazelle storefront needed the same trust-worthy pricing signal, all within the few-second window a customer will wait.

Behind it: a CMS managing product data and storefront content, plus third-party integrations that had to stay reliable under real retail traffic.

02The Solution

GraphQL/AppSyncgateway,Lambda+StepFunctionsforthelongtail

Designed and implemented scalable APIs on AWS AppSync (GraphQL) fronting multiple in-house and third-party services. Lambda + Step Functions orchestrated the IMEI validation, carrier-lock, and pricing workflows; Event Bridge fanned out changes across the storefront and CMS.

Built and maintained the device trade-in system and the CMS used to edit products and page content — React on the front, Ruby on Rails + Postgres on the back, Cognito for auth, Fargate for workloads, New Relic for observability, Shopify Liquid + Contentful for storefront rendering, and CircleCI + RSpec as the test / release backbone.

01GraphQL / AppSync
02Lambda Microservices
03Step Functions Orchestration
04Event Bridge Fan-Out
05CMS (Rails + Contentful)
06Shopify Liquid Storefront
— System Architecture · Live
KIOSKEDGE APIPRICING COREDATA SOURCESKIOSK UIGAZELLE WEBAPPSYNC GRAPHQLLAMBDA: GRADEREDIS CACHEPRICING RULESGSMA IMEI DBCARRIER LOCK APIMARKET FEED
03The Results

MillionsofIMEIchecksperday,acrosskiosksandstorefront

Millions / day
IMEI device-check requests
AppSync + Lambda
Core serverless architecture
Rails + React
End-to-end CMS and product

The platform powered both the EcoATM kiosk network and the Gazelle consumer storefront — one backbone, two very different front ends. Ops teams managed products and content through the CMS; customers got pricing decisions fast enough to trust.

— Selected Work

More case studies

View all →
— Let's Build Something

Have a problem like EcoATM's?

Start a conversation