JK

Uses

The full stack I build with — languages, frameworks, infrastructure, and tooling.

Editor & Terminal

  • VS CodePrimary editor for everything.
  • GitHub CopilotInline completions — useful for boilerplate, never trusted for logic.
  • WeztermGPU-accelerated terminal. Fast and scriptable.
  • Zsh + StarshipShell with a minimal, informative prompt.

Languages

  • TypeScriptDefault for all frontend and Node.js work. No plain JS.
  • PythonML pipelines, data work, and scripting.
  • SQLWritten by hand — I want to know what hits the database.

Frontend

  • Next.jsReact framework of choice. Server components for data, client components for interaction.
  • Vue 3Composition API for dedicated frontend apps — used in Techrise POS.
  • PiniaState management for Vue. Clean API, good DevTools support.
  • Tailwind CSSUtility-first styling. Consistent spacing and no CSS files to maintain.
  • shadcn/uiComponent primitives built on Radix — copy in, own the code, style as needed.
  • Radix UIAccessible headless primitives for custom component work.

Backend

  • Node.js + ExpressREST APIs and service layers — straightforward, well-understood.
  • BullMQRedis-backed job queues for async work like PDF generation and email dispatch.
  • StreamlitFast internal UIs for ML tools — used for the Credit Risk Assessor.

Databases

  • PostgreSQLPrimary database for everything relational. Hosted on Neon for serverless projects.
  • RedisCaching, job queues via BullMQ, and session storage.
  • Drizzle ORMType-safe queries that stay close to SQL. Preferred over Prisma for new projects.
  • PrismaUsed in older projects and monorepos where the schema-first workflow fits.

Infrastructure & DevOps

  • DockerContainerized environments for POS terminals — database consistency and fast machine swap.
  • VercelDeployment for Next.js projects. Zero-config, edge functions, instant previews.
  • ElectronPackaging web apps for POS hardware — kiosk mode, native printer access.

Payments & Integrations

  • M-Pesa Daraja APISTK push payments and transaction polling for Kenyan retail and fintech.
  • PaystackCard, bank transfer, and mobile money for East African SaaS.

Testing

  • VitestUnit and integration tests for TypeScript projects. Fast, native ESM, great watch mode.
  • PlaywrightEnd-to-end tests across real browsers — used for critical checkout and auth flows.
  • Testing LibraryComponent tests that exercise behaviour rather than implementation details.

Design & Tooling

  • FigmaDesign and prototyping before touching code.
  • PostmanAPI testing and documenting collections for team handoff.
  • TablePlusDatabase GUI — query, inspect, and edit without writing migrations for one-offs.
  • LinearIssue tracking. Simple, fast, no ceremony.
  • ObsidianNotes and thinking. Local-first, Markdown, no lock-in.