Software Engineer — Kampala, Uganda
BUILDING SOFTWARE
THAT LASTS._
I design and build backend systems, SaaS products and enterprise applications that solve real business problems.
about
Background
I'm Enoch, a Backend Software Engineer based in Uganda.
I enjoy building software that solves real business problems. Over the past five years, I've worked on enterprise systems, SaaS platforms, payment integrations, and developer tools across education, property management, e-commerce, and business automation.
What keeps me interested in software isn't just writing code—it's understanding the problem, designing a practical solution, and building systems that are reliable, maintainable, and capable of evolving as requirements change.
Most of my experience is centered around backend engineering using PHP and Laravel, but I'm equally interested in system architecture, API design, database modelling, cloud infrastructure, and product development. I enjoy taking products from an idea to a production-ready system and continuously improving them through feedback and iteration.
Outside client work, I spend much of my time building my own products. I'm currently developing SEO Injector, a developer-first platform that simplifies SEO management for modern web applications. Building products from scratch has taught me that successful software is not only about good engineering—it also requires understanding users, prioritizing features, and making thoughtful technical trade-offs.
I believe software should be dependable, easy to maintain, and designed with longevity in mind. My goal is to build systems that create lasting value for the people and businesses that rely on them.
work
Case studies
Problem, solution, architecture, and what I'd change — for each system.
Developer Infrastructure — 2026
SEO Injector
Centralized SEO metadata platform
→
Developer Infrastructure — 2026
SEO Injector
Centralized SEO metadata platform
Problem
Updating SEO metadata usually means a deploy — new title tags, Open Graph data, structured data, all gated behind a release cycle. On multi-tenant or legacy sites, a five-minute marketing request turns into a week of coordination.
Solution
A universal SDK sits in front of any website and rewrites metadata in the response stream itself — no source code changes required. Rules are managed centrally, billed by usage, and protected by bot detection so the layer can't be abused as a free CDN.
Website ──▶ Universal SDK ──▶ API Gateway ──▶ Cache Layer ──▶ Metadata Engine ──▶ Database
- What went well
- Rewriting metadata in the stream, rather than buffering the full response first, kept the latency overhead small enough that customers don't notice the extra hop.
- Challenges
- Early onboarding logic validated every step the same way, even steps that didn't collect form data — it broke silently rather than loudly, which is worse.
- If I built it again
- I'd design the metadata rules schema before the onboarding UI. The UI kept getting rebuilt to match schema decisions that should have come first.
- Next evolution
- Support for edge providers beyond Cloudflare, and richer structured-data authoring so non-technical users can add schema.org markup without touching JSON-LD.
Enterprise ERP · Education — 2023–present
eSchool Manager
Multi-tenant school administration platform
→
Enterprise ERP · Education — 2023–present
eSchool Manager
Multi-tenant school administration platform
Problem
Most schools run admissions, fees, and academic records across paper files and spreadsheets. Parents applying to several schools fill out the same information every time.
Solution
A multi-tenant ERP covering admissions, fee collection, and academic records for individual schools, plus a public marketplace where a parent fills out one application and sends it to several schools at once. An Arabic curriculum module later extended it to Islamic schools.
Students ──▶ REST API ──▶ Business Layer ──▶ Database
- What went well
- Keeping tenants isolated at the data layer from day one meant onboarding a new school never risked another school's records.
- Challenges
- Every school runs admissions slightly differently. Building one core product flexible enough for that, without turning every feature into a settings toggle, took longer than the original build.
- If I built it again
- I'd build the applications marketplace before the school-side admin tools — it turned out to be what parents actually wanted first.
- Next evolution
- Deeper academic analytics for administrators, and more localized curriculum modules beyond Arabic.
Property SaaS · Cross-border E-commerce — 2022–present
eRental & StockAuto
Property management SaaS and international e-commerce infrastructure
→
Property SaaS · Cross-border E-commerce — 2022–present
eRental & StockAuto
Property management SaaS and international e-commerce infrastructure
Problem
Two different products, one shared constraint: distributed teams and customers operating across borders, currencies and languages, with no single payment gateway covering all of them.
Solution
eRental manages listings, tenants, leases and rent collection for property managers. StockAuto runs multilingual storefronts with payment orchestration across multiple gateways — including local mobile money rails like Pesapal and Yo Payment — so a transaction routes to whichever gateway actually works for that customer's currency and country.
Customer ──▶ Storefront ──▶ Payment Orchestrator ──▶ Gateway (Pesapal / Yo / Card) ──▶ Ledger
- What went well
- Treating payment gateways as interchangeable providers behind one orchestration layer made adding a new gateway a config change, not a rewrite.
- Challenges
- Multilingual support got retrofitted onto a codebase that assumed English-only strings in a few too many places.
- If I built it again
- Separate the i18n layer on day one, even if only one language ships at launch.
- Next evolution
- Wider regional payment gateway coverage and consolidated multi-currency reporting across both products.
architecture
System flows
Two systems, two very different traffic patterns.
01
SEO Injector — request path
Request ──▶ Edge Cache ──▶ Metadata Service ──▶ Database
Every hop between the SDK and the database is stateless and horizontally scalable — the cache layer is what keeps p95 latency flat under load.
02
eSchool Manager — request path
Students ──▶ REST API ──▶ Business Layer ──▶ Database
Tenant scoping happens at the business layer, not the database layer, which keeps a single schema serving every school.
journal
Engineering journal
Long-form write-ups on the systems above. Publishing here as they're ready.
Building a Multi-Tenant SaaS in Laravel
What tenant isolation actually costs at the database layer, and when it's worth paying for.
Designing Usage-Based Billing
Metering, grace periods, and the edge cases that break a billing system on day one.
What I Learned Building ERP Systems
Three ERPs later — the parts of "enterprise software" that are actually hard, and the parts that just look hard.
Caching Strategies for High-Traffic APIs
Where caching helps, and where it just moves the bug somewhere harder to find.
Payment Gateway Integration Lessons
Notes from wiring up Pesapal, Yo Payment, and mobile money rails that don't behave like Stripe.
timeline
Engineering Journey
2022 · Building Foundations
Junior Developer
My engineering journey began by building internal automation tools—from IT asset tracking to workflow management. This early experience taught me that great software starts with understanding real-world operational problems.
September 2023 – August 2024 · Building International Products
Full Stack Developer
At Vibrica Solutions, I worked on StockAuto, an international automotive e-commerce platform for the Korean market. Collaborating with a distributed engineering team across Vietnam, I built backend and frontend systems, integrated payment gateways, implemented multilingual support, and added AI-driven customer service features—broadening my experience in internationalization and cross-border team collaboration.
September 2024 – Present · Enterprise Software & SaaS Platforms
Software Engineer
At Halvek Technologies, I lead the development of enterprise SaaS platforms—including eSchool Admission, eSchool Manager, eRental Manager, eBusiness Manager, and the AUUS Digital System. Beyond core application development, my work spans database and system architecture, payment integrations, production deployments, and mentoring junior engineers to maintain high architectural standards across long-term, scalable products.
2025 · Engineering Beyond Features
Software Engineer
Growth shifted my focus from delivering features to system design. Today, I prioritize API design, database modeling, caching, security, and performance. Every architectural decision is guided by technical trade-offs, maintainability, and building systems that remain reliable as they scale.
2026 · Building Developer Platforms
Lead Engineer
SEO Injector represents the convergence of my engineering work: multi-tenant architecture, REST APIs, intelligent caching, and developer tooling built into a centralized metadata engine. It brings together technical architecture, usage analytics, and product strategy to simplify SEO management for modern web applications.
contact
Get in touch
Best reached by email. Based in Kampala, Uganda, and open to working with distributed teams.