Hello, Presto team
This page is the long version of my application. It covers the production app I have built and run on my own for three years, two apps about to ship, and an honest line-by-line read of your posting against what I have actually done. Everything on it is also served by a small GraphQL API at the bottom, because your posting asks for GraphQL and I would rather show it than list it.
- Based in
- Toronto, ON, can work on site
- Status
- Canadian permanent resident
- yalmeida.rj@gmail.com
- Phone
- 647-632-6597
- Code
- github.com/yalmeidarj
Why Presto
Before I wrote software I worked in hospitality in Rio de Janeiro, in hotels and restaurants around Sugarloaf. I know what a loud counter at peak hour feels like, what a wrong order costs, and how much operators care about speed and accuracy. Presto builds software for the people I used to work beside, in exactly the noisy, customer-facing environment your posting describes. That is why this role stood out.
For the last three years I have been the only developer on Door2Door, the system fiber sales teams at TDX use daily to run door-to-door canvassing. Field work is the same kind of messy, real-world problem: agents on phones in the rain, bad signal, dispatchers watching a live map, data that has to be right because someone acts on it. The interfaces have to be fast, obvious, and correct. That is the work I like.
I also build with AI tooling every day: an AI assistant inside the Door2Door dashboard, a model-fallback chat in NerdyPup, a proxy that keeps coding agents running when a provider goes down. “We move at the pace of AI” reads like a description of how I already work.
Door2Door, in production since 2023
Multi-tenant platform for door-to-door field sales. Admins run sites, streets and houses from a real-time web dashboard; agents log visits from a mobile app. In daily production use by TDX fiber sales teams since 2023.
Sole developer: product, frontend, backend, auth, integrations, support. The company moved from spreadsheets to this app in 2023, and more than 120,000 households have been engaged through it since. There is no team behind it; if it breaks, I fix it. Source is private because it carries customer data, so this section describes the parts that matter for your role.
What the dashboard does
- Real-time operations. A live agent map and list over Convex subscriptions, shift clock-in and clock-out with breaks, and inactivity detection. Dispatchers watch the field as it happens.
- Data-heavy views. House records layered from Salesforce and ArcGIS FieldMaps integrations, filterable street and house lists, KPI charts, and spreadsheet exports.
- A configurable form engine. Admins design door-knock forms (fields, validation rules, KPIs, card layouts) in a builder and publish immutable versions per site. Agents render whatever schema is assigned and submit into an atomic, idempotent, audited pipeline.
- Auth done carefully. NextAuth with Google OAuth and a custom Convex adapter; every backend call is authorized from a short-lived signed JWT, never from an id the client sends. The enforce mode went live in production on October 7, 2026 behind a compat flag so it could be rolled back in one command.
- Tests and docs. Vitest on the pure server logic (form evaluator, identity, stats), an architecture overview, a forms-engine spec, and a dashboard redesign spec written for the next engineer.
Stack: Next.js 15 · React 19 · TypeScript · Convex · NextAuth · shadcn/ui · Tailwind · Leaflet · Recharts · Stripe · Vitest · Vercel
The mobile app, shipping now
Offline-first field agent app. Local SQLite with a sync queue, conflict handling, background GPS during shifts, native camera, and a visible pending/failed mutation state so agents trust what was saved.
The hard part was not the UI. It was making saves trustworthy when the GPS stream, the sync pusher and the agent’s edits all write to the same local database. On React Native’s new architecture that showed up as house saves that failed only while a shift was active. The fix was to serialize every write through one helper and leave reads concurrent.
Stack: Expo · React Native · TypeScript · expo-sqlite · react-native-maps · Convex



Product site: door2door.systems
NerdyPup, in closed testing
Shared dog-care tracker for households and sitters. One-tap logging, a live shared timeline, duration timers, reminders with push, webhooks, and a Pro tier with an AI assistant. Closed testing on Google Play.
It is the same real-time backend pattern as Door2Door applied to a consumer app: every phone in the household sees a log the moment it happens. Subscriptions run through RevenueCat, reminders fire from a cron with per-user subscriptions and push delivery, and the Pro assistant calls Claude with a timeout and an automatic fallback model so a slow provider never hangs the UI.
Before any feature goes into store copy or the marketing site I check it against the code and on a device and record the result in a product-facts ledger. Several items in that ledger are defects I found in my own work and fixed before testers hit them.
Stack: Expo Router · React Native · NativeWind · Clerk · Convex · RevenueCat · Expo Push · Next.js 16
Site: nerdypup.app
Your posting, line by line
Each requirement from the Web Developer posting, and where I have done it. One of them is a gap and it is marked as one.
| Hands-on HTML, CSS and JavaScript Strong | Every project here, plus this page: hand-written semantic HTML and CSS, no UI framework, light and dark themes from system preference. |
|---|---|
| Production React Strong | Door2Door dashboard: React 19 and Next.js 15 App Router, in daily use by field teams since 2023. Reusable component library on shadcn/ui, Convex hooks for live state. |
| Node.js for tooling, services or full-stack work Strong | Next.js route handlers, release and data scripts, Convex functions in TypeScript, and this site's GraphQL server running on Node. |
| REST API integration Strong | Salesforce, ArcGIS FieldMaps, Geocodio, Expo Push, RevenueCat and Stripe integrations in Door2Door and NerdyPup. The GitHub activity on this page comes from the GitHub REST API. |
| GraphQL API integration Honest gap | Used on freelance work a few years back, not in my current stack. So instead of claiming it, this site exposes its own GraphQL API built with GraphQL Yoga, and the playground below queries it. |
| Software fundamentals: data structures, debugging, testing Solid | Vitest suites on the pure server logic (form evaluator, identity resolution, stats). One debugging story: house saves failing only mid-shift turned out to be SQLite lock contention with the GPS writer on React Native's new architecture, fixed by serializing all writers through one helper. |
| Responsive and mobile-first design Strong | Door2Door agents used the web dashboard on phones for two years before the native app existed. This page is written mobile-first. |
| Accessibility (WCAG 2.1) Solid | This page: landmarks, skip link, visible focus states, 4.5:1 contrast in both themes, no information carried by color alone, reduced-motion respected. Form components in Door2Door use labelled Radix primitives. |
| Thrives in fast-paced, ambiguous startup environments Strong | Three years as the only developer on a product real teams depend on daily: I pick what to build, build it, ship it, and answer the phone when it breaks. |
| Strong written and verbal communication Solid | Door2Door has an architecture overview, a forms-engine spec and a dashboard redesign spec written for the next engineer. NerdyPup keeps a product-facts ledger: no claim goes into marketing copy unless it is verified in code or on a device. |
| Nice to have: CI/CD (GitHub Actions) Solid | This site runs typecheck, tests and a build in GitHub Actions on every push, with Vercel preview deployments per branch. Mobile releases use scripted EAS and Gradle builds. |
| Nice to have: real-time or data-heavy dashboards Strong | Door2Door's admin dashboard: live agent map and list over Convex subscriptions, shift and inactivity tracking, KPI charts, and spreadsheet exports over house records layered from Salesforce and ArcGIS. |
| Nice to have: AI-native company experience Solid | Built Dori, an AI assistant inside the Door2Door dashboard on the Vercel AI SDK; NerdyPup's Pro assistant with a model fallback and timeouts; claude-proxy; an MCP server. I use agents daily and know where they break. |
This page as a GraphQL API
Everything above is served by a GraphQL endpoint on this site, built with GraphQL Yoga on Node inside a Next.js route handler, with a Vitest suite that runs in GitHub Actions on every push. Edit the query and run it.
// Result appears here.
Open source and recent activity
- claude-proxy (Python): Lightweight HTTP proxy that routes Claude Code requests through alternative LLM providers with automatic failover on rate limits or outages.
- mcp-football-server (TypeScript, Node.js): MCP server exposing football data to LLM agents.
- auto-notifier (Python): Python package on PyPI: decorator and context-manager APIs that fire a desktop notification when a script finishes or fails.
Most recently pushed public repositories, from the GitHub REST API:
Loading from GitHub…
Next step
I would like to walk you through the Door2Door dashboard live. Email yalmeida.rj@gmail.com or call 647-632-6597. A printable resume is at yalmeida.dev/resume.