Product Building Blocks
The features nearly every product needs, and the pitfalls hidden inside them.
Backend Engineer
Junior
Write correct code, ship small changes safely, ask good questions.
Core: start here
- Double SubmissionA user clicking twice and creating two orders, and how to prevent it.
3 more junior concepts
- Rounding and MoneyNever store money as a float; use integers or decimals.
- Sign-Up and Email VerificationCreating accounts and confirming the user owns the email address.
- Slugs and Readable URLsTurning titles into URL-safe identifiers, and handling duplicates and renames.
Mid-level
Own a feature end to end without hand-holding.
- Approval WorkflowsMulti-step approvals modeled as explicit states and transitions.
- Data ExportLetting users download their data, often as a background job.
- Finite State MachineA model with a fixed set of states and allowed transitions, e.g. an order going from paid to shipped.
- Password Reset FlowDesigning reset links that are single-use, short-lived and don't leak account existence.
- Payments IntegrationUsing providers like Stripe safely, with webhooks and idempotency.
- Record History and VersioningKeeping previous versions of rows with history tables or temporal tables.
- Subscription BillingPlans, trials, renewals, failed payments and dunning.
- Invoices and ReceiptsGenerating immutable, numbered billing documents.
- Organizations, Teams and MembershipsModeling accounts that many users share, with roles per membership.
- User-Facing Activity LogShowing users who changed what and when.
- InvitationsInviting people into an organization or team with expiring, single-use links.
- Account DeletionDeleting or anonymizing a user across every table and system.
- Entitlements and Plan LimitsDeciding which features and quotas each plan unlocks.
- Coupons and DiscountsPromotions without letting them stack or be abused.
Senior
Own a system, its failure modes, and its trade-offs.
- Multi-TenancyServing many customers from one system while keeping their data apart.
- Ledger and Double-Entry BookkeepingRecording money movements as balanced, append-only entries.
- Inventory and ReservationsTemporarily holding stock or seats so two buyers can't get the last one.
- Recurring EventsRepeating schedules, RRULE, and their time zone edge cases.
- Sales Tax and VATCharging the right tax for each customer's location.
- ProrationCharging fairly when a customer changes plans mid-cycle.
- Usage MeteringCounting billable usage accurately, without double-counting.
- Multi-Currency HandlingStoring, converting and displaying money in several currencies.
Data Engineer
Junior
Build and fix pipelines from clear specs; write correct SQL.
- Rounding and MoneyNever store money as a float; use integers or decimals.
Mid-level
Own pipelines and models end to end, including their quality.
- Data ExportLetting users download their data, often as a background job.
- Finite State MachineA model with a fixed set of states and allowed transitions, e.g. an order going from paid to shipped.
- Record History and VersioningKeeping previous versions of rows with history tables or temporal tables.
Senior
Design the platform's storage, processing and modeling choices.
- Ledger and Double-Entry BookkeepingRecording money movements as balanced, append-only entries.
- Usage MeteringCounting billable usage accurately, without double-counting.
Frontend Engineer
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- Double SubmissionA user clicking twice and creating two orders, and how to prevent it.
3 more junior concepts
- Rounding and MoneyNever store money as a float; use integers or decimals.
- Sign-Up and Email VerificationCreating accounts and confirming the user owns the email address.
- Slugs and Readable URLsTurning titles into URL-safe identifiers, and handling duplicates and renames.
Mid-level
Own a feature end to end without hand-holding.
- Approval WorkflowsMulti-step approvals modeled as explicit states and transitions.
- Data ExportLetting users download their data, often as a background job.
- Finite State MachineA model with a fixed set of states and allowed transitions, e.g. an order going from paid to shipped.
- Password Reset FlowDesigning reset links that are single-use, short-lived and don't leak account existence.
- Payments IntegrationUsing providers like Stripe safely, with webhooks and idempotency.
- Subscription BillingPlans, trials, renewals, failed payments and dunning.
- Organizations, Teams and MembershipsModeling accounts that many users share, with roles per membership.
- User-Facing Activity LogShowing users who changed what and when.
- InvitationsInviting people into an organization or team with expiring, single-use links.
- Account DeletionDeleting or anonymizing a user across every table and system.
- Entitlements and Plan LimitsDeciding which features and quotas each plan unlocks.
Senior
Own an app's architecture, performance, and failure modes.
- Recurring EventsRepeating schedules, RRULE, and their time zone edge cases.
- Multi-Currency HandlingStoring, converting and displaying money in several currencies.
Tech Entrepreneur
MVP
Ship the smallest thing someone will use or pay for, and set up the company properly.
- Subscription BillingPlans, trials, renewals, failed payments and dunning.
- Invoices and ReceiptsGenerating immutable, numbered billing documents.
- Multi-TenancyServing many customers from one system while keeping their data apart.
Product-Market Fit
Get users who stay, pay and tell others; raise your first real round.
- Account DeletionDeleting or anonymizing a user across every table and system.
- Entitlements and Plan LimitsDeciding which features and quotas each plan unlocks.
- Coupons and DiscountsPromotions without letting them stack or be abused.
- Sales Tax and VATCharging the right tax for each customer's location.
- ProrationCharging fairly when a customer changes plans mid-cycle.
- Usage MeteringCounting billable usage accurately, without double-counting.
Growth
Make acquisition and revenue repeatable; hire, raise and build a board.
- Multi-Currency HandlingStoring, converting and displaying money in several currencies.