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 as a production product with lightweight edge infrastructure, relational persistence, explicit authentication boundaries, and a reliable entitlement model:
The full-stack application runs on Cloudflare Workers, with Cloudflare D1 providing relational persistence for product and entitlement data.
The architecture keeps the infrastructure lightweight while giving the product clear API, data, authentication, and entitlement boundaries without maintaining dedicated application servers.
Payments are not just checkout buttons. Orbit strictly separates:
The entitlement model is designed to handle duplicate webhooks, failed renewals, cancellations, and manual access changes through explicit state transitions and idempotent processing.
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 the same product-engineering mindset to client initiatives: working across product decisions, UX, frontend, backend, system design, and production delivery where the problem calls for it.