I build production systems end to end, and I keep them running.
I studied telecommunications and information engineering, which is a long way of saying I spent four years learning how a signal survives an unreliable link. That turned out to be good preparation for building software in places where the network drops, the server is a single VPS, and there is nobody else on call.
Day to day I write Laravel and PHP, build the dashboards that sit on top of the data, and manage the hosting, SSH and deployment work that most people would rather not own. Working across all of it is deliberate: the expensive problems usually live in the gap between the application and the machine it runs on.
Right now I am deepening the JavaScript side of my work — Node.js, Next.js and MongoDB — because more of what I build starts in the browser than it did three years ago. This site is part of that: it is written in Next.js and React, and I built it to learn the stack properly rather than to read about it.

Where I have worked
Most recent firstDeveloper Operations & Software Automation Engineer
Red Giant Media Agency — Nairobi, hybrid
Leading software development and technology operations across the agency, from the ERP roadmap down to the servers everything runs on.
Own the roadmap, development and rollout of RedGiant Heartbeat, a Laravel ERP covering project management, HR, recruitment, staff records, asset tracking, inventory and field check-ins.
Designed and built data dashboards and analytics for activations, events and consumer insights — data processing, visualisation and reporting.
Built and maintain company platforms including the revamped agency website and internal training system, and integrated AI-powered utilities using the OpenAI API.
Manage hosting, SSH environments, deployments and system migrations, plus ongoing technical support for internal teams.
Software Engineer (Freelance)
Upwork — remote
Building and maintaining web applications, business systems, dashboards and WordPress sites for clients, end to end.
Delivered Laravel/PHP development, frontend work, UI/UX improvements, database management and API integrations for client platforms including Radian.
Handled deployment, server management, SSH configuration and migrations as part of delivery, not as a separate handover.
Built reporting and data visualisation dashboards shaped around each client’s own reporting needs.
DevOps Trainee
CMC Motors Group Ltd — Nairobi, on-site
Five months supporting the day-to-day operation of the company’s software systems and IT infrastructure.
System monitoring, application deployments, user support and troubleshooting across internal systems.
First hands-on exposure to deployment workflows and server administration at enterprise scale.
Software Developer & IoT Instructor
TinkaCode Kenya — part-time
Developing digital learning tools while teaching the children who used them, which is a fast way to find out what your UI actually communicates.
Built and maintained the learning tools behind tinkacode.com.
Delivered practical coding, robotics and IoT training through age-appropriate, sensor-based projects.
Web Developer & Instructor
Digital Opportunity Trust (DOT Kenya) — remote
Training young people in website development while leading the revamp of the organisation’s own sites.
Delivered practical training in WordPress and core web technologies.
Led site revamps for Digital Opportunity Trust Kenya as part of the digital skills programme.
Education
BSc Telecommunications and Information Engineering
Kenyatta University
Second Class Honours, Upper Division
Signal processing, network architecture and embedded systems. The degree is why unreliable links, bandwidth limits and latency still shape how I design systems well above that layer.
Diploma, Full-Stack Software Engineering
African Leadership Experience (ALX)
Completed
A year-long full-stack programme run alongside full-time work — the structured counterpart to what I had been learning on the job.
What I hold to
Four commitmentsOwn it through to production
Code that works on my machine is half a job. I would rather design the database, ship the deployment and carry the pager than hand over at the edge and hope.
Make the number trustworthy
A dashboard nobody believes is worse than no dashboard, because people start keeping a private spreadsheet instead. Getting the data right upstream is most of the work.
Ship the boring integration
A nightly file drop that works today beats an elegant API that arrives next year. I would rather remove a dependency than argue with it.
Learn it by building it
Every framework I have picked up stuck because I shipped something real in it and had to live with the decisions afterwards.