Independent Product Engineer / Builder
Product strategy · UX · Full-stack · System design · Payments · Infrastructure
Cloudflare Workers · D1 SQL · Edge Auth · Webhooks
Live Production with Subscriptions
Orbit is a personal attention system for goals, projects, habits, ideas, and responsibilities that matter — but don't always belong on today's to-do list.

Independent Product Engineer / Builder
Product strategy · UX · Full-stack · System design · Payments · Infrastructure
Cloudflare Workers · D1 SQL · Edge Auth · Webhooks
Live Production with Subscriptions
Some things lived in a task manager. Others were buried in notes, chats, reminders, bookmarks, or simply in memory.
The problem became obvious with things without an immediate deadline: preparing for a future career move, exploring a product idea, learning a skill, improving a habit, or revisiting an unfinished decision.
“Nothing explicitly told me these things had failed. They simply became quieter until I stopped thinking about them.”
Something can matter deeply without needing to happen today. Traditional task managers force everything into today's tasks, generating backlog bloat and guilt.
Orbit treats an item as something the user wants to keep in attention over time — whether it is a goal, project, task, habit, idea, responsibility, or dream.
The goal isn't: “You haven't completed this.”
It is: “This has gone quiet. Does it still deserve your attention?”
I reduced the product to four focused behaviours that eliminate cognitive overhead and administrative friction:
The cost of adding something had to be extremely low. A user shouldn't need to decide category, priority, schedule, status, tags, or a complete plan before saving it.
Instead of dragging cards across Kanban columns, a check-in can simply be: “Spoke to three potential users and understood the problem better.” That tells the system movement happened.
Orbit watches for inactivity, missed review points, unclear next steps, or missing check-ins over time to determine what items are quietly drifting out of attention.
When Orbit brings something back, the user makes a lightweight decision: Check in · Start · Leave for later. No streak counters, guilt, or alarm fatigue.
Attention cannot be a simple database flag (`item.status = needs_attention`). It must be derived dynamically from temporal events and movement over time:
The entities and intentions the user wants to keep visible across time.
Immutable historical records of incremental movement, insight, or state change.
Configured cadences for when something should intentionally resurface for evaluation.
Bidirectional connections between projects, dependencies, goals, and sub-intentions.
Auditable timeline of edits, check-ins, pauses, and resurface decisions.
Deterministic evaluation engine deciding what deserves to surface on the dashboard right now.
Orbit was engineered from day one to survive production realities — global low latency, relational persistence, zero cold starts, and reliable billing state:
The entire full-stack application runs on Cloudflare Workers edge runtimes with Cloudflare D1 persistent relational SQL.
This architecture provides zero cold starts, global edge caching, instant query execution, and atomic transaction guarantees without running expensive dedicated server fleets.
Payments are not just checkout buttons. Orbit strictly separates:
This handles duplicate webhooks, failed subscription renewals, mid-cycle cancellations, and manual tier overrides idempotently and safely.
Building an independent product required coordinating decisions across every layer of the software stack:
Problem definition · Positioning · Pricing · Onboarding · Interaction design
Responsive web application · Capture & check-in UX · Attention states · Account settings
Edge APIs · Session authentication · Domain rules · Entitlement enforcement · Webhook processing
Relational SQL modeling · Check-in history · Review schedules · Entitlement records
Cloudflare Workers · Custom domains · Secrets management · Production environments
Telemetry · Error monitoring · Account deletion & privacy · Subscription lifecycle
The difficult question wasn't what SQL tables Orbit needed. It was defining concepts like: 'What does drifting actually mean?' Once the product language became precise, the system became significantly easier to model.
'Show me what needs attention' sounds simpler than a 50-item task board. It isn't. The complexity moves from user administration into the product rules deciding what surfaces and why.
The interesting engineering begins after payment: entitlements, webhook retries, expiration, cancellation, idempotency, and failure recovery.
AI can dramatically accelerate implementation. But someone still needs to decide what can go wrong, what state is authoritative, and what the user sees when systems disagree.
Orbit is a live product built around a deliberately small loop: capture something that matters, check in when it moves, let Orbit notice when it goes quiet, and decide whether it deserves attention again.
I bring this exact full-stack product ownership to client initiatives, platform architectures, and engineering advisory.