Rust · TypeScript · Backend architecture · Product engineering
I’m a software developer in Nairobi, Kenya. I take products from the data model and API through to the interface, testing, and deployment. I enjoy the parts of software that need careful engineering: authentication, permissions, background work, resilient workflows, and relationships that are more complex than a simple CRUD screen.
Magenta is my native, local-first AI chat client for Linux. It is built in Rust with GPUI—no Electron or embedded browser—and currently supports ChatGPT sign-in, OpenAI streaming, SQLite-backed conversation history, full-text search, image prompts, rich Markdown, and editable local settings.
The project is also where I’m exploring provider-neutral architecture, bounded memory, cancellable streaming, secure credential storage, and polished native desktop interaction.
| Project | Focus |
|---|---|
| Magenta | Native, local-first AI chat with GPUI, provider-neutral architecture, streaming, and durable SQLite history. |
| Cadence | Local-first Rust and GPUI desktop timetable with SQLite storage, recurring schedules, drag and resize interactions, scoped edits, undo and redo, backups, and recovery. |
| Grove | Native Rust issue tracker, monitor, and manager. |
| Demux | Native Rust app for extracting audio from video with FFmpeg, queue management, media probing, live progress, cancellation, pause and resume, and safe output handling. |
| Rusty Editor | Focused native code editor with multi-document sessions, workspaces, syntax highlighting, search and replace, async file I/O, and a polished desktop shell. |
| Silk | Fashion commerce platform with a Rust/Axum API, React admin application, PostgreSQL, Redis workers, cookie-based authentication, permissions, and catalogue management. |
| Elektronika | Cloud-native electronics commerce system covering storefront, administration, inventory, authentication, testing, and observability. |
| Rust Auth | Stateless authentication service using Axum, PostgreSQL, SQLx migrations, RS256 access and refresh tokens, environment configuration, and structured tracing. |
| JSON Parser | Hand-built lexer and recursive-descent JSON parser with Unicode escape handling, library APIs, and integration tests. |
| Area | Tools |
|---|---|
| Systems and services | Rust, Axum, Tokio, Hono, SQLx, Drizzle ORM |
| Data and messaging | PostgreSQL, SQLite, Redis, SurrealDB, Kafka, Serde |
| Security and APIs | JWT, Argon2, RBAC, OpenAPI, Scalar, Utoipa, Zod |
| Native and terminal | GPUI, Iced, Ratatui, Crossterm, Tauri, Clap, FFmpeg, wgpu |
| Web | TypeScript, React, TanStack, Next.js, SvelteKit, Astro, Tailwind CSS |
| Quality and operations | Docker, Cloudflare, GitHub Actions, Playwright, Vitest, Prometheus, Grafana |
- Own the path from architecture through product experience.
- Define explicit boundaries for tenants, permissions, sessions, jobs, and recovery.
- Prefer small, testable components with documentation for decisions that matter.
- Build interfaces that make complex workflows easier to understand and operate.
- Polaris: multi-organization livestock management with roles, production records, and a Rust/Axum backend.
- Tasks Auth: authenticated TypeScript task API using Hono, Drizzle, PostgreSQL, validation, structured logging, and OpenAPI.
- Rusty Kafka: async Rust messaging experiments with Kafka, Axum, PostgreSQL, and containerized integration testing.
I’m open to collaborations around Rust, native applications, backend systems, developer tooling, and modern web products.

