NNabeel HassanBook a call

Writing

Field notes from building AI voice agents, automations and products — written from shipped work, not theory.

October 6, 2026 · 8 min read

Call Summaries Staff Actually Read: Designing the Note an AI Voice Agent Leaves Behind

How I design post-call summaries for AI voice agents built on Retell for clinics, garages, real estate and the CallSetter AI product: lead with the outcome and next action, generate structured fields instead of prose, keep actionable details in fixed slots, state what the agent did not do, flag uncertainty, route by outcome to where staff already work, and link the transcript instead of pasting it.

Read →

October 5, 2026 · 8 min read

Plans, Not Chat: How to Build AI Personalization That People Actually Follow

Lessons from co-founding Lifemaxxing AI, an AI self-improvement app with personalized plans and tracking: why a chat window is the wrong default for personalization, and the plan, track and adjust loop that works instead. Structured plans the app owns, one-tap tracking stored as data, a narrow adjustment step, hard boundaries on sensitive advice, small model context and retention metrics over first impressions.

Read →

October 4, 2026 · 8 min read

Your Old App Versions Never Die: Designing a Backend for Mobile Clients You Can't Force-Update

How I keep a backend compatible with every mobile app version still in the wild, learned shipping React Native, Unity and Next.js clients against one backend as CTO at RAQTS and building the Repocket SDK at Geonode: send the app version on every request, change the API additively, make clients tolerate unknown data, ship a minimum-version gate and remote flags in version one, keep logic on the server, and test old builds against new backends.

Read →

October 3, 2026 · 8 min read

Which LLM Should Power Your AI Voice Agent? How I Choose the Model Behind a Retell Agent

How I choose the language model behind production voice agents on Retell (Tested Media's CallSetter AI, Fortell AI lines for hospitals, vet clinics, garages and estate agents): judge models on time to first token, instruction following, tool calling and honest uncertainty, start with a fast mid-tier model and small nodes, test candidates on a fixed scenario set, upgrade only the nodes that need reasoning, and check the prompt, tools and flow before swapping models.

Read →

October 2, 2026 · 8 min read

Every Free User Costs You Money: The Unit Economics of an AI Consumer App

Lessons from co-founding LectureNotes AI (15M organic Instagram views, ~10k users, $1k MRR) on why AI apps break the free-users-are-free assumption: price one core action end to end, model your heaviest users not the average, design the free tier around the expensive step, cache and reuse paid outputs, match the model to the step, keep the model layer swappable and measure cost per user next to growth.

Read →

October 1, 2026 · 8 min read

How I Use Claude Code on Client Projects: Where AI Coding Tools Earn Their Place and Where I Keep Them Out

A working engineer's take on using Claude Code and Cursor across Unity, React Native, Next.js, n8n and Retell voice agents: where AI coding tools earn their place (spec-to-draft scaffolding, config in files, reading unfamiliar codebases, tests), where they need a short leash (native platform code, Unity scenes and prefabs, spatial AR work), what never gets delegated (production numbers, money, patient data, secrets, irreversible decisions) and the review rules behind it.

Read →

September 30, 2026 · 8 min read

What Leading Volunteers Taught Me About Leading Engineers: Lessons From a Year as IEEE NUCES President

Engineering leadership lessons from a year as elected President of the IEEE student chapter at FAST NUCES, alongside an ICPC World Finals run: hand out outcomes not tasks, write briefs with defaults, make the first contribution small and winnable, treat the date as fixed and scope as the variable, stop being the hub as the group grows, credit in public and correct in private, and how it carries into fractional CTO work.

Read →

September 27, 2026 · 8 min read

Building a VPN App in React Native: Why the Tunnel Is Never in JavaScript

Lessons from building a React Native VPN at Geonode: the tunnel runs in native code the OS controls (Android VpnService, iOS Network Extension), so keep the JavaScript bridge thin, let the OS own connection state, make the tunnel start without the app, read the store rules for VPN apps in week one, and test on real devices with both platforms on CI.

Read →

September 26, 2026 · 8 min read

Being the Technical Co-Founder From Lahore With a US Partner: What Makes a Remote Founding Team Work

Lessons from co-founding LectureNotes AI and Lifemaxxing AI from Lahore with US partners: splitting ownership instead of tasks, turning a nine to twelve hour time difference into a relay with written handoffs and defaults, keeping the build fast enough to react to organic growth, knowing the cost per active user of a consumer AI app before growth arrives, agreeing on what the metrics mean, and a seven point checklist for technical co-founders starting remote.

Read →

September 25, 2026 · 8 min read

Putting Live Data in AR: Lessons From Building a Crypto Market Viewer and an NFT Viewer

AR data visualization is easy to demo and hard to justify. From building a CCXT Crypto Viewer and an AR NFT Viewer at ARCortex: the test for whether depth carries information or is just decoration, why text is the hardest thing to render in AR, normalizing live data and making staleness visible, keeping the network out of the frame loop in Unity, why the asset pipeline decides whether an AR viewer feels real, and a five question checklist for any AR data product.

Read →

September 24, 2026 · 8 min read

Building an AI Chat Agent for a Business Website: What Changes When the Customer Types Instead of Calls

A website chat agent shares a pipeline with a voice agent and almost nothing else. From building chat agents next to voice agents at Tested Media and Fortell AI: what chat gets for free (no latency budget, no turn taking, exact identifiers), why a visitor who leaves instead of hanging up means the pipeline fires on idle and the capture moment has to be designed, why a handoff with no transfer button is a written promise the CRM has to keep, writing for the screen and offering choices as buttons, the knowledge layer doing more of the conversion work, abuse limits for a public endpoint, keeping voice and chat as one pipeline, the widget's cost to page speed, and a nine step build order.

Read →

September 20, 2026 · 9 min read

Replacing the Phone Menu: What an AI Voice Agent Does That Press 1 Never Could

A phone menu asks the caller to translate their problem into your org chart before they are allowed to describe it. A voice agent inverts that, and the routing happens on your side. From migrating businesses off IVR menus at Fortell AI and Tested Media: why option one always carries more traffic than anyone expects, what the menu was hiding from your reporting, the four places the keypad still wins, why porting the tree into the prompt produces a slower menu, the clarification loop that replaces the menu loop, barge in as a regression risk, and the deflection versus resolution shift in the cost model.

Read →

September 18, 2026 · 9 min read

When Everyone Calls at Once: What Actually Breaks in a Voice Agent Under Load

Ten simultaneous callers are ten answered calls, but only if the back half can take it. The agent almost never runs out of capacity; the CRM, the calendar and the automation instance do, and they fail by getting slow rather than going down, which the caller hears as silence. From production voice agents at Fortell AI and Tested Media: the four ceilings and which one you actually hit, how to size the tool layer for the busiest ten minutes, timeouts with fallbacks a caller can live with, the double booking race, retries that duplicate, shared state that leaks between overlapping calls, pacing outbound campaigns, and how to load test the back half for free.

Read →

September 16, 2026 · 9 min read

Handing Over an AI Voice Agent: What the Client Actually Gets

A voice agent handover is a property transfer, not a demo. The deliverable is a system the client can still own if the builder disappears. From production voice agent work at Fortell AI and Tested Media: the five accounts that must be in the client's name, the one page system map, a runbook for the four failures that actually happen, the green/amber/red list of what a client may edit, the saved scenario set that makes future changes testable, the three things clients break in month one, and how to state a support window so it ends cleanly.

Read →

September 15, 2026 · 9 min read

Barge-In and Background Noise: The Layer That Decides If Your Voice Agent Survives a Real Call

Agents that talk over callers and agents that will not stop talking are the same bug seen from two sides, and it lives in turn taking rather than in the prompt. Endpointing decides when the caller stopped, barge-in decides when the caller started, and background noise attacks barge-in specifically because that decision is made on audio energy before any words exist. From production voice agents at Fortell AI and Tested Media: four real rooms that need four configurations (a car garage, a vet waiting room, a car on the motorway, a hospital corridor), the tuning I actually apply, why short agent turns fix both failure modes at once, and how to test it by ear.

Read →

September 14, 2026 · 9 min read

How Long Does It Take to Build an AI Voice Agent? An Honest Timeline

A demo you can phone takes a day. A live agent answering a real business line is usually two to four weeks, and almost none of that time is spent building the agent. From production voice agent builds at Fortell AI and Tested Media: where the weeks actually go (access to other people's systems, knowledge nobody wrote down, the automation behind the call, approval of the words, telephony lead times), a realistic week by week calendar, the five things that turn two weeks into six, and what a client can do to halve it.

Read →

September 13, 2026 · 9 min read

Multilingual Voice Agents: One Number Per Language Beats One Clever Agent

Accents and languages are two different problems sold as one. Accent variation breaks identifiers rather than conversation, so you fix it at the capture layer with confirmation, shape validation and a keypad fallback. Language is an architecture decision: a language is a voice, a knowledge base, a transfer target and a post-call pipeline, not a config toggle. From building UK and US production voice agents at Fortell AI and Tested Media: default to one number and one agent per language, switch mid call only when callers actually do, and never offer a language your humans cannot take the transfer in.

Read →

September 12, 2026 · 9 min read

AI Voice Agents for Hospitals: The Switchboard Is a Routing Problem

A hospital agent is not a bigger clinic agent. Almost nobody calling a hospital wants to book something, they want to reach a ward, a department or a secretary without three transfers. From building production voice agents for hospitals at Fortell AI: put the emergency branch first, build the routing map from caller language rather than the org chart, disambiguate with one question and never guess a transfer, own wayfinding and directory calls, and stay read-only against clinical systems until the misroute rate earns write access.

Read →

September 8, 2026 · 9 min read

Function Calling for Voice Agents: Designing Tools That Survive a Live Call

A tool your voice agent calls mid conversation is not an API call, it is a turn with a human waiting through it. From building the Retell custom function and n8n layer behind production agents: give every tool a deadline and a line to say when it expires, return something speakable instead of a record, fill parameters from the call rather than from the caller, treat an empty result as an answer, and keep reads apart from idempotent writes. Everything that does not change the next sentence belongs after the call.

Read →

September 7, 2026 · 9 min read

Cutting No-Shows With an AI Voice Agent: Reminders, Confirmations and the Reschedule Path

A no-show is a scheduling failure, not a memory failure, so a louder reminder does not fix it. From building appointment and reminder plumbing behind production voice agents for vet clinics, garages and clinics: bucket the last twenty missed appointments, remind early enough that the slot is still sellable, make rescheduling the easiest action available, escalate silence to one outbound call, and refill the freed slot automatically. Reminders sent is a vanity metric.

Read →

September 6, 2026 · 9 min read

AI Receptionist vs Answering Service vs Hiring: How to Choose

These are not three prices for the same product. An answering service buys human judgment and hands you back a message. An AI receptionist buys resolution and structured data on calls that repeat, at any volume and any hour. A receptionist is not a phone system at all. Decide from your last twenty calls: repeatable requests whose outcome must land in a calendar or CRM point to an agent, genuine judgment calls point to humans, and the hybrid only works if there is one place a message lands.

Read →

September 5, 2026 · 9 min read

How to Choose an XR Headset for an Enterprise Deployment

Headsets get chosen in a demo room and used in a fire ground, a clinic or a warehouse aisle, and that gap is where enterprise XR projects quietly die. From shipping the ERIS XR platform for the fire service at ARCortex and clinical eye-tracking diagnostics on Vive Focus 3 at Nystag: start from the sensor you cannot fake in software, design around the wearer, treat device management and battery logistics as features, test tracking in the real environment, and keep your logic portable because the per-device tuning gets thrown away.

Read →

September 4, 2026 · 8 min read

The First Two Weeks After a Voice Agent Goes Live

Everything before go-live is a hypothesis. The forwarding rule flips and real callers start testing every assumption you made. Here is how I run the launch window: ramp instead of switching, listen to whole calls before touching the prompt, triage lost callers before lost data before awkwardness, batch changes into quiet traffic, and hold the numbers until week two. Most of what breaks is hours, transfer destinations and assumptions about who calls, not the model.

Read →

September 3, 2026 · 8 min read

Choosing the Voice for Your AI Phone Agent

Almost every voice decision I have watched go badly was made in a browser preview player, which is the one place a phone agent will never be heard. The voice is an engineering component: it costs time on every turn, it carries a locale, it mispronounces your client's business name, and it is the least portable asset in the whole build. Here is how I shortlist, test over a real phone line, and pick one without spending a week on it.

Read →

September 2, 2026 · 8 min read

How Many Voice Agents Do You Actually Need?

A client with four locations asks for four agents. An agency with eleven clients assumes eleven. Usually the right answer is one agent and a lookup table. Different hours, addresses, calendars and phone numbers are data, not architecture. Here are the four boundaries that genuinely force a separate agent, the four costs every clone adds, and how to keep per-location reporting without per-location configuration.

Read →

September 1, 2026 · 9 min read

Unity CI/CD: Who Else On Your Team Can Ship a Build?

The dangerous state on a Unity project is not a broken build. It is a working build that exactly one laptop can produce, with the keystore, the SDK versions and eight months of manual fixes living in one person's memory. Here is the order I actually set up a Unity build pipeline, from running CI/CD at Geonode to App Store and Play Console releases at RAQTS: build on a machine nobody uses, stamp every artifact with its commit, get signing off laptops, automate delivery, and put test automation last.

Read →

August 31, 2026 · 8 min read

If Your Voice Platform Doubled Its Price Tomorrow, What Would You Rebuild?

Vendor lock-in on a voice AI platform is not about the prompt, which is the most portable thing you own. It is about the phone number, the post-call automation and a year of call history. Here is the inventory I run on every build: what moves to another platform in an afternoon, what costs a week of retuning, what does not move at all, and the four boundaries that turn a migration into a week of work instead of a rebuild.

Read →

August 29, 2026 · 9 min read

You Changed One Line of the Prompt. What Else Did You Break?

A live voice agent is software you cannot diff and cannot replay. You soften one sentence to fix one complaint, the change lands globally in branches you were not thinking about, and nothing errors. Here is the change discipline I run on agents already answering real phones: a small frozen set of real call scenarios with written expected outcomes, config versioned outside the platform so rollback is one action, one change at a time into the quietest traffic available, and a re-run triggered by the changes you did not make.

Read →

August 28, 2026 · 9 min read

What a Lecture Recorder and a Phone Agent Taught Me About Speech-to-Text

Speech-to-text is two engineering problems wearing the same name. Transcribing a fifty minute lecture is a batch job where the capture path and what you do after the transcript decide quality. Transcribing a caller on a narrowband phone line is a turn-based job where you get one attempt, latency is the product, and failures are silent. Here is what actually moved accuracy in each, from building LectureNotes AI and from shipping production voice agents.

Read →

August 27, 2026 · 9 min read

The Questions I Ask Before Building Anyone an AI Voice Agent

Most voice agent projects that go badly were lost on the first call, not in the build. Nobody defined which calls were actually being lost, nobody wrote down what the agent must never do, and nobody checked who can log into the calendar. Here is the scoping conversation I run instead: find the leak, get four numbers, watch how a call is handled today, write the refusals before the happy path, confirm system ownership, name who owns the words, and agree what working means before anything is built.

Read →

August 26, 2026 · 9 min read

Can Someone Talk Your AI Voice Agent Into Doing Something It Shouldn't?

Clients ask whether their voice agent can be hacked, and the honest answer is that the prompt is the least of it. The risk is that the agent has capabilities: it reads a CRM, cancels bookings, sends texts, transfers calls. A caller with a phone and some patience gets to aim those. Here is the security pass I run before an agent takes a live call, from scoping tools instead of instructing the model, to why caller ID is a hint rather than an identity, to the indirect injection that arrives through your own web form.

Read →

August 25, 2026 · 9 min read

The Call Went Perfectly and Nothing Happened: Post-Call Automation That Fails Loudly

The scariest failure in a production voice agent is not a bad call. It is a perfect call where nothing happened afterwards: the caller was booked, thanked and hung up, and the calendar event, the CRM record and the confirmation text never existed. The conversation has a human watching it in real time; the automation behind it has nobody. Here is how I build that layer so it fails loudly instead of silently, across idempotency, ordering, partial failures, retries and alerting on absence.

Read →

August 23, 2026 · 9 min read

Five Years of Unity, Then AI Agents: What Actually Transferred

I spent five-plus years in Unity before I built a single AI voice agent: freelance game work, AR for fire response at ARCortex, clinical XR on a Vive Focus 3, a cross-platform C# SDK at Geonode, a sports-tech platform as CTO at RAQTS. People treat that as an unrelated previous life. Five things transferred almost intact, because a voice agent is a real-time system with a human in the loop and so is a game. Three things did not transfer at all, and those were the expensive lessons.

Read →

August 22, 2026 · 8 min read

Write Your Voice Agent Prompt for the Ear, Not the Page

Most bad voice agents are not badly engineered, they are badly written. The prompt was written to be read and it is being heard. Here is how I write scripts for production Retell agents: one idea per sentence, never a list out loud, explicit rules for how times, numbers and the business name are pronounced, exact wording only for the lines that carry risk, turns that survive being interrupted, and a final editing pass done by ear on a real phone line.

Read →

August 22, 2026 · 9 min read

What Breaks When a US-Built Voice Agent Answers a UK Phone Line

Almost every voice AI guide is American, and so are the defaults in the tooling. Building agents at Fortell AI for UK hospitals, vet practices, estate agents and car garages, hardly anything that broke was a model problem. It was locale: reversed dates, postcodes captured as gibberish, confirmation texts sent from a sender nobody can reply to, a calendar an hour out for three weeks a year, and an agent that heard a routine vet booking as a surgical procedure. Here is the list I work through before a UK agent takes a live call.

Read →

August 14, 2026 · 9 min read

The Hardest Part of a Voice Agent Is Writing Down an Email Address

Voice agents rarely fail at conversation. They fail at capture: emails transcribed as 'g mail', surnames heard four different ways, confirmations emailed into the void while the dashboard counts the call as a success. Here is how I design the data capture layer on production agents: look it up before asking, collect only what the next step needs, confirm identifiers in chunks, validate structure in n8n rather than in the prompt, and always give the repair loop an exit.

Read →

August 11, 2026 · 8 min read

What Should an AI Voice Agent Actually Know?

Most voice agents that fail in production do not fail at conversation, they fail at facts, and the failure is usually staleness rather than hallucination. Here is how I design the knowledge layer on production agents: a small audited set of stable facts in the prompt, a knowledge base written as spoken answers for the long tail, live lookups for anything that can change today, a named owner on the client side, and refusal designed as a behaviour instead of a failure state.

Read →

August 10, 2026 · 9 min read

An Outbound Voice Agent Is Not an Inbound Agent Dialing Out

Inbound, the caller chose to talk to you and will forgive a lot. Outbound, you interrupted someone, and every part of the build changes: the first eight seconds have to earn the rest of the call, the list matters more than the prompt, answering machines are the majority outcome, and retry cadence is a compliance decision rather than a tuning knob. Here is how I structure outbound campaigns on Retell wired into n8n and GoHighLevel, and the metrics that replace resolution rate.

Read →

August 9, 2026 · 8 min read

Your Voice Agent Dashboard Is Measuring the Wrong Things

Calls handled and minutes used tell nobody whether an AI voice agent is working. The numbers that do: pickup rate, resolution rate, booking rate measured against callers who actually wanted to book, transfer success as distinct from transfer rate, and cost per booked appointment. Here is how I define the denominator before launch, extract a fixed outcome schema after every call, audit the agent's self-report against human labelling, and watch latency at the worst turn instead of the average.

Read →

August 8, 2026 · 8 min read

Booking Is the Hardest Thing You Will Ask an AI Voice Agent to Do

Most voice agents I get handed to fix can hold a conversation fine. What they cannot do is reliably put an appointment on a calendar. Booking is where the agent stops being a language problem and becomes a systems problem: a live availability lookup the caller pays for in silence, relative time like tomorrow afternoon resolving against the wrong time zone, a race with the receptionist booking the same slot, and a source of truth nobody agreed on. Here is how I build the booking layer on production Retell agents wired into n8n and GoHighLevel.

Read →

August 7, 2026 · 8 min read

Geospatial AR Is a Coordinate Problem, Not a Graphics Problem

Pointing a device at the sky and seeing a real aircraft labelled in place looks like a rendering feature. It is not. It is the job of reconciling a global coordinate system that knows where the Earth is with a local one that only knows where the device started, using sensors that disagree. Heading is the error users actually see, distance quietly breaks the renderer, altitude means three different things, and telemetry always arrives late. Lessons from building AR Planes, AR Properties and MQ-9 tracking on AR maps at ARCortex.

Read →

August 6, 2026 · 8 min read

The Phone Number Is the Hardest Part of Launching an AI Receptionist

Almost nothing that breaks in launch week is the agent. It is the telephony layer nobody budgeted an afternoon for: porting when you should have forwarded, an unregistered outbound number quietly labeled Spam Likely, confirmation texts filtered before delivery, and a transfer destination that rings straight back into the agent. Here is the setup order I use on production voice agents, and the launch checklist I run before any client's calls touch one.

Read →

August 5, 2026 · 9 min read

When Should an AI Voice Agent Hand the Call to a Human?

The hardest part of building an AI receptionist is not the talking, it is knowing when to stop. Every production agent I ship has three exits, not one: transfer the live call, take a structured message and escalate, or refuse and route. Here is how I design the escalation layer, the four trigger types that catch real calls, what the handoff has to carry, and what happens when nobody picks up.

Read →

August 4, 2026 · 9 min read

Why Your AI Voice Agent Feels Slow (It Is Almost Never the Model)

When a client tells me their voice agent feels slow, the model is almost never the cause. The delay lives in endpointing, in work the agent does while the caller sits in silence, and in the length of the agent's own sentences. Here is the latency budget I use on production Retell agents, the rule that fixes most slow-agent complaints, and how I test for the worst turn instead of the average one.

Read →

August 1, 2026 · 8 min read

What ICPC Actually Taught Me About Shipping Software (And What It Did Not)

In 2021 my team won our ICPC regional as national champions and qualified for the World Finals. People assume that means I write faster code than everyone else. It does not. Here is the honest accounting: the four things competitive programming transferred almost perfectly into production engineering, and the two habits I had to actively unlearn before I could be useful on a real team.

Read →

July 31, 2026 · 8 min read

Chat Agent or Voice Agent? How I Decide Which One a Business Needs

At Fortell AI and Tested Media I built both voice and chat agents, and the question I get most is which one a business actually needs. Here is how I decide: a voice agent exists so no phone call hits a voicemail, a chat agent catches the visitor who will never call, and the real mistake is treating them as separate projects instead of two doors onto one pipeline.

Read →

July 30, 2026 · 8 min read

Being Fractional CTO for Three Startups at Once: What It Actually Takes

For a stretch I held the CTO title at three startups at the same time, in three countries and three domains: a US sports-tech platform at RAQTS, a US clinical XR product at Nystag Healthcare, and an Amazon-seller analytics app at Bettershop in Italy. Here is how a fractional CTO actually works: you are hired for a handful of decisions and not for hours, the transferable skill is the discipline and not the stack, and saying no is most of the value.

Read →

July 29, 2026 · 8 min read

Building a GraphQL Admin Dashboard for Amazon Sellers: A Fractional CTO's Playbook

At Bettershop Consulting I give CTO-level guidance on a React, TypeScript and GraphQL app that puts an admin dashboard and analytics in front of Amazon sellers. Here is what building analytics people act on taught me: why GraphQL earns its place, why the hard part is the fee-and-returns data model and not the charts, and why one definition of profit everywhere is the whole game.

Read →

July 28, 2026 · 8 min read

White-Labeling Voice AI: What Building VoiceDash Taught Me About Agencies

Any agency can build a Retell voice agent. Far fewer can hand the client a branded place to watch it work. I built VoiceDash, a white-label client portal that turns voice agents into branded dashboards with an agency's own logo, domain and analytics. Here is what it taught me: the agent wins the demo, the portal keeps the client, and why multi-tenant branding and a swappable voice layer decide whether an agency is a business or a stack of one-off projects.

Read →

July 24, 2026 · 8 min read

AI Voice Agents for Medical Clinics: The HIPAA-Safe Playbook

I built voice and chat agents for hospitals and clinics at Fortell AI. Here's the honest playbook: what the agent should own (booking, reminders, refill routing, FAQs), the clinical and PHI lines it must never cross (no triage, no advice, no loose health data), and the Retell plus n8n stack with the HIPAA plumbing done properly.

Read →

July 20, 2026 · 8 min read

Building a Clinical Eye-Tracking Diagnostic in XR: Lessons from Nystag Healthcare

As CTO of Nystag Healthcare XR I led a clinical eye-tracking diagnostics application on Augmented Reality and the Vive Focus 3. Here is the honest account of building XR a clinician will trust: why a headset is a genuinely good instrument for eye tracking, why clinical-grade means boring and repeatable long before impressive, and how that discipline carries straight into the AI agents I build now.

Read →

July 19, 2026 · 8 min read

Stepping In as CTO Mid-Build: Shipping a Sports-Tech Platform Across Unity, React Native and Next.js

At RAQTS I joined as CTO during a critical phase and led a sports-tech platform that lives in three runtimes at once: a Unity interactive layer, React Native mobile apps, and a Next.js web portal, tied together by live leaderboards and shipped through the App Store and Play Console. Here is what it takes to steady a project mid-flight, hold one product together across Unity, mobile and web, and make real-time scores every screen agrees on.

Read →

July 18, 2026 · 8 min read

A Voice Agent Is Only Half the Build: The Dashboard and CRM Behind It

At Tested Media I build voice and chat agents on Retell for CallSetter AI, and wire the whole system: the agents, a chat-dash client dashboard, and GoHighLevel as the CRM. Here is the back half most demos skip, where leads live and how a client sees them, and why it decides whether a voice agent survives past the first month.

Read →

July 17, 2026 · 8 min read

Shipping One C# SDK to Windows, Android and iOS: Lessons from Building Repocket

At Geonode I built the Repocket C# SDK, a single networking core that had to run on Windows, Android and iOS and handle internet sharing on all three. Here is what shipping one cross-platform SDK taught me: where to draw the line between shared and native code, why background execution is the hard part, and the CI that kept three targets honest.

Read →

July 14, 2026 · 8 min read

Building AR for Firefighters: What the ERIS XR Platform Taught Me

I helped build the ERIS XR platform and AR tools at ARCortex, work that reached the U.S. Fire Administration. Here is what public-safety augmented reality demands that a demo never does: honest uncertainty, latency as a safety property, and designing for a gloved operator in the sun, plus how those lessons shape the AI systems I build now.

Read →