Two years ago I started building software for businesses in my city. Today seven
locations run on it every day — registers ringing up sales, client records, cash counted at close,
the reports an owner opens before coffee. I work directly with the people who use what I build,
which means I learn a business fast and I care about the part most developers skip: what happens
after launch, when the thing has to keep working.
Multi-brand point of sale — El Cárcamo Park
In build · opens 2026
Food and entertainment park · 7 in-house brands · sole developer
One platform running three completely different sales channels — a counter
register, a self-service kiosk and a drive-thru — off a single shared product and modifier engine.
Seven brands configure their own menus through the same admin, and a price change lands everywhere
at once, including the mobile app.
Shared modifier engine — per-product overrides for required groups, selection caps and per-option quantity limits, so each brand configures its own menu without forking the code.
Payments and messaging — Stripe via webhooks into serverless functions, Twilio Verify for SMS phone verification, Resend for transactional email on an authenticated domain.
Security boundary — no client device can write a balance or trigger a charge. Every money operation runs server-side behind service-role credentials.
In daily use by front-desk staff · client names blurred for privacy
Scheduling across treatment rooms, client records, treatment and payment history,
account credit, and revenue reporting — for four branches that each need their own view and a
shared one for the owner. I built it, rolled it out and trained the staff at every location.
Branch-aware data model — clients belong to an origin branch and can be transferred, so four locations share one system without stepping on each other.
Account credit tracked as movements rather than a stored number, so a balance can always be traced back to the session that created it.
Onboarding, configuration and training per location, plus documentation written for front-desk staff, not developers.
Two cashier shifts · tablet PWA · real cash reconciliation
Sales, shift handover, cash reconciliation and reporting for a venue that runs
until midnight. Sales bucket on a 1 a.m. business-day cutoff, because the day a venue closes is not
the day a calendar thinks it is.
A bug worth naming — monthly revenue was quietly under-reporting with no error thrown. An undocumented 1,000-row API limit was truncating the query. I moved reporting to server-side aggregation and back-filled four months of financials.
Uptime watchdog — a scheduled job polls the production API every two minutes and pushes a Telegram alert on failure. Outage detection went from hours to minutes, with a written recovery playbook behind it.
Fault tracking per machine surfaced which cages were eating tokens without dispensing, which is a maintenance problem the owner could not see before.
A two-balance wallet — prepaid money and earned cashback, never mixed — built on
a ledger rather than a stored number, so a balance is always the sum of its movements and can be
audited back to the transaction that caused it.
Rotating QR identification that expires on a timer and is validated server-side without being consumed, so a customer can identify at the start of an order and still pay at the end.
Cashback rules live in configuration, not in code — the business changes its own rates without a deploy.
Cashback never earns cashback. The two balances are separate ledgers on purpose, and the rule is enforced in the database rather than trusted to the client.
React NativeExpoTypeScriptPostgreSQLStripeTwilio
Brand websites
Live · 10 sites
Design, build, DNS migration, SSL, page-speed tuning
Ten brand sites taken from blank page to live domain — responsive builds, DNS
moved without downtime, certificates, and performance work after launch rather than before it.
Each one gets its own visual language rather than a house template. Three of them below.
Built for the phone first — nearly all the traffic arrives on mobile, from a map listing or a social profile, so the layout is designed there and scaled up.
Migrations without downtime — DNS moved, certificates issued and redirects mapped so the old URLs kept resolving.
REST APIs and webhooks. Stripe, Twilio, Resend, Telegram, payment-terminal APIs. Wiring third-party services into systems that have to stay consistent when one of them fails.
Client systems
CRM design and rollout, onboarding and configuration per location, staff training, and documentation written for people who are not developers.
Infrastructure
DNS and domain configuration, SSL, site migrations, hosting, CI/CD, deploys, and monitoring after the thing is live.
Performance & SEO
Core Web Vitals and page-speed work, Google Analytics 4, Search Console, uptime monitoring and alerting.
Data
PostgreSQL schema design, migrations, row-level security, and reporting queries that stay correct as the data grows.