Services · Featured work · Private work · Telemetry · Case studies · Experience · Tech stack · Contact
── SERVICES
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#f97316','primaryTextColor':'#ffffff','primaryBorderColor':'#fdba74','lineColor':'#0ea5e9','cScale0':'#4f46e5','cScale1':'#0284c7','cScale2':'#059669','cScale3':'#9333ea','cScale4':'#db2777','cScale5':'#b45309','cScale6':'#0d9488','cScaleLabel0':'#ffffff','cScaleLabel1':'#ffffff','cScaleLabel2':'#ffffff','cScaleLabel3':'#ffffff','cScaleLabel4':'#ffffff','cScaleLabel5':'#ffffff','cScaleLabel6':'#ffffff'}}}%%
mindmap
root((Felix<br/>PCB to cloud))
💻 Software
Django · FastAPI · Laravel
Vue 3 · Next.js · TypeScript
Electron desktop apps
Capacitor offline mobile
🌐 Networks
MikroTik CHR dual-WAN
FreeRADIUS · UniFi Wi-Fi
Proxmox · Docker · BIND
🔌 Embedded
STM32 · Arduino · C/C++
BMS · PAYGO · MQTT
KiCad PCB
🧠 On-prem AI
Ollama · RAG
InsightFace face match
📈 Trading
MQL5 Expert Advisors
Python risk tooling
⚡ Power and industrial
Solar PV · SMA inverters
Lifts · cranes · pumps
🧭 Architecture
Discovery · module maps
Costed delivery plans
| Service | What you get | Typical stack |
|---|---|---|
| Web platforms and SaaS | Multi-tenant APIs, admin dashboards, CMS, payments, real-time features | Django REST, Laravel, Node, Next.js, Vue 3, PostgreSQL, Redis, Stripe |
| Desktop and mobile apps | Cross-platform installers for Windows, macOS and Linux; offline-first Android/iOS apps with sync | Electron, Vue, TypeScript, Capacitor |
| Self-hosted AI | Private LLM assistants, retrieval-augmented search over your documents, face verification, all running on your own hardware | FastAPI, Ollama, ONNX Runtime, InsightFace, OpenCV |
| Network and infrastructure | Campus or office networks: dual-WAN failover, identity-based Wi-Fi, VLAN separation, virtualised servers, self-hosted mail and video | MikroTik RouterOS/CHR, FreeRADIUS, UniFi, Proxmox, Docker, BIND, Mailcow, Jitsi |
| Embedded and IoT | Firmware, sensor telemetry to the cloud, device dashboards, pay-as-you-go hardware | C/C++, STM32, Arduino, Raspberry Pi, MQTT, KiCad |
| Trading systems | Rule-based MT5 Expert Advisors with strict risk controls, backtesting and monitoring tools | MQL5, Python, pandas |
| Solution architecture | Discovery workshops, system design, module maps and costed delivery plans before any code is written | Mermaid / C4-style diagrams, technical breakdowns, BOQs |
── SELECTED WORK
AEMMS is a full ecosystem I designed and built for teacher-training and TVET (technical and vocational) colleges. Staff author, mark, and release exams on a desktop app; trainees sit exams on a locked-down desktop client; supervisors assess teaching practice and industrial attachment from a mobile app that works offline; and an on-campus AI service handles face verification and learning assistance. It's all tied together by a Django API and licensed from a central vendor server.
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#16162a','primaryTextColor':'#f0f0ff','primaryBorderColor':'#4f46e5','lineColor':'#0ea5e9','clusterBkg':'#0d0d1a','clusterBorder':'#4f46e5','titleColor':'#0ea5e9','edgeLabelBackground':'#16162a'}}}%%
flowchart TB
subgraph vendor["☁️ Savvytex cloud"]
VS["🔑 Vendor control plane<br/>plans · releases · Ed25519 licences"]:::cloud
end
subgraph campus["🏫 Campus network · data stays on site"]
SM["🖥️ SystemMate<br/>staff desktop<br/>author · mark · release · LMS"]:::staff
EM["🔒 ExamMate<br/>locked-down trainee client"]:::trainee
PF["📱 Field app<br/>teaching practice · attachment<br/>offline-first"]:::field
API{{"⚙️ Institution API<br/>Django REST · JWT · Celery"}}:::core
DB[("🗄️ PostgreSQL<br/>Redis")]:::data
RT["⚡ Soketi<br/>live events"]:::data
AI["🧠 AI service<br/>face match · RAG tutor<br/>marking assist"]:::ai
NM["🛡️ NetworkMate<br/>Wi-Fi identity · exam mode"]:::net
end
VS ==>|signed licence| API
SM --> API
EM --> API
PF -.->|sync when online| API
API <--> DB
API --> RT
API <-->|on-prem inference| AI
API -->|people and rooms for Wi-Fi login| NM
classDef staff fill:#4f46e5,stroke:#a5b4fc,stroke-width:2px,color:#ffffff
classDef trainee fill:#0284c7,stroke:#7dd3fc,stroke-width:2px,color:#ffffff
classDef field fill:#059669,stroke:#6ee7b7,stroke-width:2px,color:#ffffff
classDef ai fill:#9333ea,stroke:#d8b4fe,stroke-width:2px,color:#ffffff
classDef core fill:#ea580c,stroke:#fdba74,stroke-width:3px,color:#ffffff
classDef data fill:#1e1b4b,stroke:#818cf8,stroke-width:2px,color:#e0e7ff
classDef cloud fill:#db2777,stroke:#f9a8d4,stroke-width:2px,color:#ffffff
classDef net fill:#0d9488,stroke:#5eead4,stroke-width:2px,color:#ffffff
style vendor fill:#1a0b16,stroke:#db2777,stroke-width:2px,color:#f9a8d4
style campus fill:#0d0d1a,stroke:#4f46e5,stroke-width:2px,color:#7dd3fc
linkStyle default stroke:#0ea5e9,stroke-width:2px
One exam, end to end:
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','actorBkg':'#4f46e5','actorBorder':'#a5b4fc','actorTextColor':'#ffffff','actorLineColor':'#6b6b8a','signalColor':'#0ea5e9','signalTextColor':'#0ea5e9','labelBoxBkgColor':'#f97316','labelBoxBorderColor':'#fdba74','labelTextColor':'#ffffff','loopTextColor':'#f97316','noteBkgColor':'#16162a','noteTextColor':'#f0f0ff','noteBorderColor':'#f97316','activationBkgColor':'#0ea5e9','activationBorderColor':'#7dd3fc','sequenceNumberColor':'#ffffff'}}}%%
sequenceDiagram
autonumber
participant S as 🖥️ SystemMate
participant A as ⚙️ Institution API
participant N as 🛡️ NetworkMate
participant E as 🔒 ExamMate
participant I as 🧠 AI service
rect rgba(79, 70, 229, 0.18)
Note over S,N: Prepare
S->>A: Author paper, set exam type and window
N->>N: IT turns exam mode on: internet blocked, exam hosts allowed
end
rect rgba(14, 165, 233, 0.18)
Note over A,E: Sit
E->>A: Trainee signs in on the campus LAN
A->>I: Face match, if the exam type requires it
I-->>A: Verified (or proctor override)
E->>E: Display guard blocks extra monitors
E->>A: Submit answers
end
rect rgba(249, 115, 22, 0.18)
Note over S,E: Mark and release
S->>A: Mark, with AI assist on long answers
S->>A: Release results
A-->>E: Results and transcript available
N->>N: IT turns exam mode off
end
|
🖥️ SystemMate Exam authoring with maths, marking and release; LMS with syllabus, schemes of work, notes and live Campus Meet; results and transcripts. |
🔒 ExamMate Locked-down exam sitting with a display guard and site blocking, face check when the exam type needs it; lessons and results. |
⚙️ Institution API Multi-tenant REST API: JWT auth, per-exam-type proctoring policy, real-time events, device workers. |
|
📱 Field apps Teaching-practice and industrial-attachment visits, rubrics and attendance. Works offline, syncs when back in signal. |
🧠 AI service Face verification, a RAG learning assistant over course material, marking assist and agents. No student data leaves the building. |
🔑 Vendor control plane Plans, subscriptions, releases and Ed25519-signed licence files that campuses verify offline. |
AEMMS by the numbers
Measured from git on 2026-09-27 by telemetry.py: tracked files only, non-blank lines, CDACC forks counted once; dependencies, builds, migrations and third-party themes excluded.
➡️ Read the AEMMS case study · See screenshots in the showcase repo
Lead engineer for a full production deployment at a college in West Pokot, Kenya:
- Dual-WAN resilience: Starlink primary with Airtel failover, so the campus stays online through an ISP outage.
- Identity-based Wi-Fi: FreeRADIUS and UniFi, with every student logging in with their own credentials instead of a shared password.
- Exam lockdown: during exams, student internet is blocked except for approved exam servers, device limits are enforced, and staff networks stay online.
- Self-hosted services: the AEMMS platform, Mailcow email and Jitsi video conferencing, all running on Proxmox.
- NetworkMate control room: a web portal that lets the IT team manage students, devices and exam mode without touching router configs.
- Full handover: equipment inventory and operations runbooks for the client's own team.
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#16162a','primaryTextColor':'#f0f0ff','primaryBorderColor':'#4f46e5','lineColor':'#0ea5e9','clusterBkg':'#0d0d1a','clusterBorder':'#4f46e5','titleColor':'#0ea5e9','edgeLabelBackground':'#16162a'}}}%%
flowchart TB
SL["🛰️ Starlink<br/>primary WAN"]:::wan
AT["📶 Airtel<br/>failover WAN"]:::wan
GW{{"🧭 MikroTik CHR gateway<br/>dual-WAN · firewall · exam mode"}}:::core
SL ==> GW
AT -.->|if Starlink drops| GW
subgraph lan["🏫 Campus LAN"]
direction TB
ST["🎓 Student network<br/>identity Wi-Fi"]:::trainee
SF["🧑💼 Staff network<br/>online during exams"]:::staff
RAD["🔐 FreeRADIUS + UniFi<br/>per-student login · device limits"]:::net
ST <--> RAD
end
subgraph px["🗄️ Proxmox VE host"]
direction TB
NM["🛡️ NetworkMate<br/>control room"]:::net
AE["🏫 AEMMS"]:::ai
MC["📧 Mailcow"]:::data
JT["🎥 Jitsi Meet"]:::data
end
GW --> ST
GW --> SF
GW -.-|RouterOS API · exam mode| NM
GW --> AE
GW --> MC
GW --> JT
classDef wan fill:#b45309,stroke:#fcd34d,stroke-width:2px,color:#ffffff
classDef core fill:#ea580c,stroke:#fdba74,stroke-width:3px,color:#ffffff
classDef trainee fill:#0284c7,stroke:#7dd3fc,stroke-width:2px,color:#ffffff
classDef staff fill:#4f46e5,stroke:#a5b4fc,stroke-width:2px,color:#ffffff
classDef net fill:#0d9488,stroke:#5eead4,stroke-width:2px,color:#ffffff
classDef ai fill:#9333ea,stroke:#d8b4fe,stroke-width:2px,color:#ffffff
classDef data fill:#1e1b4b,stroke:#818cf8,stroke-width:2px,color:#e0e7ff
style lan fill:#0d0d1a,stroke:#0284c7,stroke-width:2px,color:#7dd3fc
style px fill:#0d0d1a,stroke:#9333ea,stroke-width:2px,color:#d8b4fe
linkStyle default stroke:#0ea5e9,stroke-width:2px
➡️ Read the campus network case study
Firmware, electronics and cloud in one closed loop. This is the pattern behind the PAYGO e-bike and e-mobility battery-management projects:
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#16162a','primaryTextColor':'#f0f0ff','primaryBorderColor':'#4f46e5','lineColor':'#0ea5e9','clusterBkg':'#0d0d1a','clusterBorder':'#4f46e5','titleColor':'#0ea5e9','edgeLabelBackground':'#16162a'}}}%%
flowchart LR
subgraph vehicle["🛵 On the vehicle"]
CELLS["🔋 Battery cells"]:::hw
BMS["BMS board<br/>cell sensing"]:::hw
MCU["🧩 STM32 firmware<br/>embedded C"]:::staff
MOT["⚙️ Motor controller"]:::hw
end
subgraph cloud["☁️ Cloud"]
API{{"Laravel IoT API<br/>MySQL"}}:::core
DASH["📊 Vue dashboard<br/>alerts · fleet view"]:::trainee
PAY["💳 Payment status<br/>pay-as-you-go"]:::cloud
end
CELLS --> BMS --> MCU
MCU <-->|feedback| MOT
MCU ==>|cell telemetry| API
API --> DASH
PAY --> API
API -.->|enable / disable| MCU
classDef hw fill:#b45309,stroke:#fcd34d,stroke-width:2px,color:#ffffff
classDef staff fill:#4f46e5,stroke:#a5b4fc,stroke-width:2px,color:#ffffff
classDef core fill:#ea580c,stroke:#fdba74,stroke-width:3px,color:#ffffff
classDef trainee fill:#0284c7,stroke:#7dd3fc,stroke-width:2px,color:#ffffff
classDef cloud fill:#db2777,stroke:#f9a8d4,stroke-width:2px,color:#ffffff
style vehicle fill:#1a1206,stroke:#f59e0b,stroke-width:2px,color:#fcd34d
style cloud fill:#0d0d1a,stroke:#4f46e5,stroke-width:2px,color:#7dd3fc
linkStyle default stroke:#0ea5e9,stroke-width:2px
|
PAYGO e-bikes and battery management STM32 firmware in embedded C, with a Laravel/Vue IoT backend. Battery cell telemetry streams to the cloud with alerts and motor-controller feedback. |
Ventilator reverse engineering A low-cost mechanical ventilator prototype with remote-monitoring web UI, plus real-time temperature and pressure firmware for medical equipment. |
|
Smart home control Arduino, Raspberry Pi, Django, Android and MQTT, running in a real home. |
Solar PV and power systems SMA inverter commissioning, control-PCB troubleshooting, UPS, generators, pumps and RO water systems. |
|
Lifts, cranes and medical equipment Lift LED displays, industrial motherboards, escalator reprogramming, overhead cranes, and autonomous dental-chair hydraulics. |
Vending and M-Pesa Vending machine controllers with mobile-money payment integration. |
➡️ Read the embedded and IoT case study
── PRIVATE PORTFOLIO
Most of what I build is client or product IP, so the source is private. This is the full list; I'm happy to demo any of it on a call.
| 🎓 Education, exams and campus software | ||
|---|---|---|
| AEMMS platform | Education management and exam system: staff desktop, locked-down exam client, offline field app, institution API, on-prem AI, vendor licensing | Django · Electron · Vue 3 · Capacitor · FastAPI |
| Exam server (2025) | Earlier exam backend with queue workers and schedulers | Laravel · TypeScript · Docker |
| VoteMate | Campus election platform: voter registers, ballots and live results over WebSockets, as one Docker stack | Django · Vue 3 · PostgreSQL · Redis · Soketi |
| Research survey platform | Self-hosted SurveyMonkey alternative with validated Likert instruments, deadlines, analytics and Excel export | Laravel · Vue · MySQL |
| Institutional IT | Active Directory and Group Policy rollout, admissions web app, library database, notice and tender portals, desktop-to-SMS integration | Windows Server · web apps |
| 🌐 Networks and infrastructure | ||
| NetworkMate | Campus network control room: identity Wi-Fi, device control, one-click exam lockdown | Django · Vue 3 · MikroTik API · FreeRADIUS |
| Chesta campus stack | Dual-WAN, RADIUS + UniFi identity Wi-Fi, exam lockdown, self-hosted mail and video, full handover runbooks | MikroTik CHR · Proxmox · Mailcow · Jitsi |
| Campus AI Lab | Browser console for testing self-hosted LLMs and agents with a model picker, running on Proxmox | Vue 3 · Ollama · FastAPI |
| 🏢 Business platforms and SaaS | ||
| Savvytex platform | Company API and website: CMS-driven public site, staff operations console, portfolio, social publishing, field sync ledger and vendor licensing | Django · Vue 3 · TypeScript · PostgreSQL |
| upgo insurance platform | Customer-facing insurance agency platform with online payments | Next.js · React · Node.js · MySQL · Stripe |
| Nyumbané | Household budgeting product shipped as four clients (web, desktop, iOS, Android) on one API | Django · Electron · Capacitor |
| Industrial services marketplace | CMS where industrial clients post technical problems for engineers to solve | Web CMS |
| 💳 Fintech and trading | ||
| TradeMate | Risk-first MT5 Expert Advisor and Python monitoring app for 8 assets: six filter layers, daily loss halt, no martingale | MQL5 · Python · pandas |
| Vending and M-Pesa | Vending machine controllers with mobile-money payment integration | Embedded controllers · M-Pesa |
| 🔌 Embedded, IoT and hardware | ||
| PAYGO e-bike | Pay-as-you-go e-mobility: STM32 firmware with a cloud payment-status loop | STM32 · embedded C · Laravel · Vue |
| E-mobility BMS | Battery cell telemetry to the cloud with web alerts and motor-controller feedback | Firmware · MySQL · web UI |
| Smart home | Home automation running in a real home, with an Android app | Arduino · Raspberry Pi · Django · MQTT |
| Ventilator prototype | Low-cost mechanical ventilator reverse-engineered with remote monitoring, plus real-time temperature and pressure firmware for medical equipment | Firmware · web UI |
| Field engineering | SMA inverter commissioning, control-PCB repair, lift and escalator electronics, overhead cranes, pumps, RO plants, dental-chair hydraulics | Power electronics · PLC · diagnostics |
| 🧭 Solution architecture | ||
| Intelligent maize milling platform (proposal) | End-to-end design for a milling business: weighbridge intake, production and yield, warehouses, sales, KRA e-invoicing, M-Pesa reconciliation, offline field sync and an AI roadmap. Delivered as a technical breakdown, module maps and costed packages | Architecture · Mermaid · BOQ |
── BY THE NUMBERS
Most of my code is private, so GitHub's public graphs miss it. These charts are measured straight from the private repos.
Every line by language
Commits per month in 2026 (bars: all products · line: AEMMS · September to date)
%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '14px', 'xyChart': {'backgroundColor': 'transparent', 'plotColorPalette': '#4f46e5, #f97316', 'titleColor': '#8b8ba7', 'xAxisLabelColor': '#8b8ba7', 'yAxisLabelColor': '#8b8ba7', 'xAxisTitleColor': '#8b8ba7', 'yAxisTitleColor': '#8b8ba7', 'xAxisLineColor': '#4f46e5', 'yAxisLineColor': '#4f46e5', 'xAxisTickColor': '#4f46e5', 'yAxisTickColor': '#4f46e5'}}, 'xyChart': {'width': 900, 'height': 380, 'plotReservedSpacePercent': 60}}}%%
xychart-beta
x-axis ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"]
y-axis "Commits" 0 --> 700
bar [21, 14, 17, 96, 75, 663, 289, 142, 594]
line [0, 9, 15, 96, 75, 506, 257, 22, 481]
Where the code lives: product by language
- 1.03M lines across six products, almost all written in the last ten months.
- 1,461 commits on AEMMS alone: 686 API routes and 145 data models behind 441 screens and components.
- 873 automated tests and 13 CI workflows guard releases.
- Full stack in one head: Python back ends, TypeScript/Vue front ends, MQL5 trading code and PHP legacy systems, plus the networks and hardware they run on.
Measured from git on 2026-09-27 with telemetry.py. Private repos only; tracked files, non-blank lines; CDACC forks counted once; dependencies, builds, migrations and third-party themes excluded.
── DEEP DIVES
| Architecture and decisions behind a campus-owned education platform: signed offline licensing, self-hosted real-time, on-prem AI. | Dual-WAN failover, identity Wi-Fi, exam lockdown and self-hosted services for a rural college. | PAYGO e-bike firmware, battery telemetry, a ventilator prototype, smart home and industrial field work. |
Product showcases with screenshots, architecture and engineering notes (source code stays private):
── TRACK RECORD
Over ten years I've owned systems end to end, from the circuit board to the cloud and from the first diagram to the handover binder.
What you get when you hire me
|
🎯 One accountable engineer Architecture, build, deployment and handover across software, networks and hardware. You don't have to coordinate three vendors. |
🛡️ Built for bad days Dual internet links, offline-first mobile apps, and an exam lockdown that keeps the admin office online. Things keep running when one part fails. |
📦 Handover, not lock-in Every deployment ships with an inventory and runbooks your own team can follow. The software runs on your servers, under a signed licence. |
⚡ Ships at pace 1,989 commits across six products in 2026. AEMMS went from its first commit in February to a live campus the same year. |
Roles
NAIROBI · REMOTE-READY · PRODUCT, ARCHITECTURE AND DELIVERY
I set product direction and lead the engineering for everything the company ships.
- Designed AEMMS: 10 codebases and 6 apps, in two regulator editions (KNEC and CDACC) on one shared architecture.
- Set the business model: customers subscribe, but the system runs on the campus's own servers. Ed25519-signed licences control modules, seats and expiry.
- Built the product line: NetworkMate (campus network control), the Savvytex company platform (website, operations, social publishing, licensing), VoteMate and TradeMate.
- Wrote the code: 1.03M lines and 1,989 commits across 16 private repositories (measured, see telemetry).
- Design solutions with the client: I work directly with college principals on local-network exams, named-user Wi-Fi and exam-week operations.
PRODUCTION CAMPUS STACK · TEACHING, ADMINISTRATION AND NATIONAL EXAM WEEKS
| Problem | What I built | Result |
|---|---|---|
| A single internet provider was a single point of failure | Starlink primary with Airtel failover on MikroTik | Teaching and admin stay online when one provider drops |
| Shared Wi-Fi passwords, no idea who is online | FreeRADIUS + UniFi login with each trainee's assessment number, whole roster imported, device limits | A named user for every device |
| Exams need the internet shut for students, not for the office | Separate student and staff networks, plus a gateway exam mode that allows only KNEC and SABE exam hosts | Exam lockdown with one switch, and administration keeps working |
| Exams and results had to run on campus, not in someone else's cloud | AEMMS on campus with release control and transcripts; SystemMate and ExamMate clients | Exams, marking and results run on the campus's own hardware |
| The college needed email and video meetings it controls | Self-hosted Mailcow mail and Jitsi video, NetworkMate ops portal, all on Proxmox | Communication the college owns |
Handed over with an inventory for the principal and operations cookbooks for IT staff. Next phase: a fibre modernisation proposal with a bill of quantities (proposed, not built).
INSURANCE · MOBILITY · SMART HOME · RETAIL · INDUSTRIAL
- Insurance agency platform: React / Next.js front end, Node and MySQL back end, Stripe payments.
- Pay-as-you-go e-bikes: STM32 firmware in embedded C, plus a Laravel / Vue IoT backend that tracks payment status.
- Smart home control: Arduino and Raspberry Pi devices, a Django server and an Android app, connected over MQTT and used day to day in a lived-in home.
- Vending with M-Pesa: mobile-money payment modules for vending machines.
- Diagnostics and repair: dental-chair automation, lift and escalator electronics, motherboards and appliances, plus a marketplace website where industrial clients post technical problems.
GAVITON ENTERPRISES · C.P. POWER EA · NEURAL POWER · KONZA ELEVATORS · LATENIGHT DENTIST
- E-mobility battery management: cell data sent to the cloud (MySQL), a web dashboard with alerts, and feedback to the motor controller.
- Solar and power: commissioned SMA inverters, fixed faults on control boards, and built spare-parts inventory systems.
- Heavy plant: motors, relays, overhead cranes, borehole and dosing pumps, generators and reverse-osmosis water systems.
- Lifts and escalators: lift LED displays and industrial motherboards, and escalators reprogrammed on live sites under time pressure.
Engineering track record:
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#4f46e5','primaryTextColor':'#ffffff','primaryBorderColor':'#a5b4fc','lineColor':'#0ea5e9','titleColor':'#0ea5e9','cScale0':'#4f46e5','cScale1':'#0284c7','cScale2':'#b45309','cScale3':'#9333ea','cScale4':'#0d9488','cScale5':'#ea580c','cScaleLabel0':'#ffffff','cScaleLabel1':'#ffffff','cScaleLabel2':'#ffffff','cScaleLabel3':'#ffffff','cScaleLabel4':'#ffffff','cScaleLabel5':'#ffffff','cScaleInv0':'#0ea5e9','cScaleInv1':'#0ea5e9','cScaleInv2':'#0ea5e9','cScaleInv3':'#0ea5e9','cScaleInv4':'#0ea5e9','cScaleInv5':'#0ea5e9'}}}%%
timeline
2015 → : Freelance full-stack, firmware and electronics
: Insurance platform · smart home · vending with M-Pesa
2016 : Founded Savvytex Marines Ltd
2019 – 20 : Ventilator prototype with remote monitoring
: Medical temperature and pressure firmware
2022 : E-mobility BMS telemetry
: SMA inverters · lifts · escalators · cranes
2025 : Laravel exam server
: NetworkMate campus control room
2026 : AEMMS platform in production
: Chesta campus network build
: Savvytex platform · TradeMate · VoteMate
- Bachelor of Engineering, Electrical & Electronic Engineering
- Huawei ISP Implementation certification
- Communications Authority of Kenya (CAK) licence
- Engineering Technology professional certification · IETTK certification
── TOOLBOX
── PROCESS
%%{init: {'theme':'base','themeVariables':{'fontSize':'15px','primaryColor':'#16162a','primaryTextColor':'#f0f0ff','primaryBorderColor':'#4f46e5','lineColor':'#0ea5e9','edgeLabelBackground':'#16162a'}}}%%
flowchart TB
subgraph r1[" "]
direction LR
A(["💬 Message<br/>email · WhatsApp"]):::s1 --> B(["📞 30-min call<br/>your timezone"]):::s2 --> C(["📝 Proposal<br/>scope · price"]):::s3
end
subgraph r2[" "]
direction LR
D(["🛠️ Build<br/>weekly demos"]):::s4 --> E(["🚀 Deploy<br/>cloud or on-prem"]):::s5 --> F(["📚 Handover<br/>docs · runbooks"]):::s6
end
r1 --> r2
style r1 fill:transparent,stroke:transparent
style r2 fill:transparent,stroke:transparent
classDef s1 fill:#4f46e5,stroke:#a5b4fc,stroke-width:2px,color:#ffffff
classDef s2 fill:#0284c7,stroke:#7dd3fc,stroke-width:2px,color:#ffffff
classDef s3 fill:#0d9488,stroke:#5eead4,stroke-width:2px,color:#ffffff
classDef s4 fill:#059669,stroke:#6ee7b7,stroke-width:2px,color:#ffffff
classDef s5 fill:#ea580c,stroke:#fdba74,stroke-width:2px,color:#ffffff
classDef s6 fill:#db2777,stroke:#f9a8d4,stroke-width:2px,color:#ffffff
linkStyle default stroke:#0ea5e9,stroke-width:2px
- Message me by email or WhatsApp with a short description of what you need.
- 30-minute discovery call on Google Meet, Zoom or WhatsApp, at a time that suits your timezone.
- Written proposal with scope, milestones, timeline and a fixed price or monthly retainer.
- Build in the open: a private repo you own, weekly demos, and progress you can see.
- Handover: documentation, deployment runbooks and post-launch support.
I'm open to fixed-scope projects, monthly retainers and long-term remote roles (contract or full-time).
── ACTIVITY
Most of my work lives in private client and product repositories, so public stats show only part of it. Happy to walk you through the code on a call.
── CONTACT
|
Have a project, a role, or just a question? Reach me any way you like.
📧 Email: eng.felixnyachio@gmail.com |
![]() Scan to save my contact |





