Founder’s engineering notes · Francis Annor

The interface is only half the work.

I build across the application: data models, APIs, payments, permissions, and the interfaces people use. My strongest work is on rules that must not break, like payments, stock and staff permissions.

Where I work

  • Next.js
  • React
  • TypeScript
  • Node.js
  • Supabase
  • Postgres
  • Flutter
  • Paystack
  • Redis
  • Vitest

Data models · APIs · payments · permissions · interfaces

Selected engineering decisions

01 / Team project

SAMTEC · Contract before implementation.

I own the API and database; Samuel owns the dashboard. An OpenAPI contract and generated-type drift checks let us develop the two halves against the same agreement.

CI checks lint, contracts, types, tests, and builds. Actions are pinned to commit SHAs with read-only default permissions. A dependency policy checks publishing age and trust changes before accepting new packages.

The trade-off: a contract needs maintaining. The benefit is catching a broken agreement before it reaches the other developer.

Explore the public repository
02 / In development

Weave · A worker must know when it no longer owns the work.

My Flutter and Supabase app includes a push sender with lease-token batch claiming, renewal during processing, and a conditional finish. If another run takes over a row, the old worker cannot mark it complete.

A fake-clock test runs two workers concurrently. Retryable provider errors and a bounded execution time are part of the design, rather than happy-path assumptions.

The trade-off: retries can duplicate delivery. Lease ownership protects state; it does not create an exactly-once guarantee at an external provider.

Read the engineering note
03 / Live learning product

POLI 443 · A course that shows every step of the working.

I built an interactive statistics course with worked examples, guided attempts, saved notes, and practice scoring. Plain JavaScript modules keep the teaching experience independent of a UI framework.

Personal-key access uses per-lesson AES-256-GCM keys derived with HMAC, signed tokens, timing-safe comparisons, and a Redis mutex around device slots. Rate limits account for campus Wi-Fi and carrier NAT, where many legitimate students share an IP.

The trade-off: custom access control keeps dependencies low but increases review responsibility. Encryption alone does not prevent an authorized reader from copying content; device limits also need a humane recovery path.

Explore the live course

A wider view

Different problems. The same care.

View more projects

Delivered client work · Solo developer

Letteropedia

A quote-request website the owner updates without a developer, with backup contact options if a connected service goes down.

Visit the live website

Verified learning

A foundation in systems & support.

Start a project

Which part of your business needs better software?

Send one message on WhatsApp or email. We reply personally and agree the scope and price with you before any work starts.