Software & Infrastructure Engineer · Kigali, Rwanda

I build software systems — and the infrastructure that runs them.

Versatile Software & Infrastructure Engineer with over 5 years of experience building products and operating the systems they run on. Across Fintech, Edutech, and Agritech I've shipped microservices, ETL pipelines, and cloud-native infrastructure — and I'm just as comfortable on bare-metal Linux servers, hardening them and keeping them secure.

5+
Years building products
$6M+
Fintech transactions processed
99.99%
Uptime SLO maintained

Selected work

04 roles
  1. 01

    Lybertine Senior Software Engineer

    07/2025 — Present
    United Kingdom
    • Supporting engineering leadership by assisting the Head of Engineering in defining team direction, architectural standards, and delivery processes.
    • Driving full-stack development across Lybertine's microservices, including version-control integrations (GitHub, GitLab), CI/CD, and databases.
    • Authored and maintained the company's engineering documentation, development guidelines, and onboarding materials.
    • Championed reliability improvements via regression safeguards, expanded test coverage, and UAT/acceptance-criteria validation.
    TypeScriptNext.jsMicroservicesObservabilityLinuxStakeholder Engagement/ManagementVideo StreamingTicketing
  2. 02

    Upfirst Software Engineer II

    02/2025 — 05/2025
    Miami, Florida
    • Implemented AI-assisted workflows enabling customers to seamlessly configure agents to carry out user-defined actions.
    • Spearheaded maintenance and devops efforts to keep the existing system stable through new feature rollouts on cloud-based serverless infrastructure.
    • Managed automation around observability so issues from the system are handled promptly.
    TypeScriptOpenAI APIServerlessDistributed SystemsGCPObservability
  3. 03

    Periteleios Senior Software Engineer

    04/2023 — 02/2025
    USA
    • Developed automated data transformation pipelines for on-premise and cloud data systems.
    • Implemented multiple SQL-dialect compilers (HQL, Athena SQL) using Rascal MPL.
    • Generated and managed Terraform modules for cross-platform infrastructure provisioning on AWS.
    • Built and deployed Oozie artifacts for ETL workflow orchestration.
    • Implemented a websocket solution in Java to extend RascalMPL functionality, enabling LSP/CLI cross-platform integration.
    JavaRascal MPLTerraformAWSOozieETLSQLCompilersMetaprogrammingCI/CDData Engineering
  4. 04

    Dedukt Software Engineer

    11/2021 — 04/2023
    Lagos, Nigeria
    • Implemented a saving system using Apache Fineract and Mifos to process, log, and monitor transactions — 30% workload reduction.
    • Authored and maintained APIs and documentation for smooth system integration.
    • Implemented ETL pipelines for loan data migration into a Loan Origination System (LOS).
    • Championed maintenance efforts for system stability and better UX.
    JavaJavaScriptApache FineractMifosETLREST APIs

How I work

09 principles

Reliability first

Regression safeguards, expanded test coverage, and acceptance-criteria validation aren't a phase — they're the contract. The system stays stable while features land.

Documentation is leverage

Clear engineering docs and onboarding materials compound. They turn one engineer's context into the team's shared baseline.

Cloud-agnostic by design

Architecture should survive a cloud migration. Decisions favor portability, infrastructure-as-code, and Terraform modules over vendor lock-in.

Test what matters

From SQL-dialect compilers to API contracts, tests guard the boundaries that fail loudly. Coverage is a means, not the goal.

Cross-functional defaults

Design, Product, and Infrastructure aren't downstream of engineering — they're how delivery actually happens. Build the workflow with them, not for them.

Maintainability over cleverness

The best system is the one the next person can extend. Boring, predictable code beats a clever abstraction every time.

Clean-room engineering

When rebuilding a system, the new code is driven by specs and observable behavior — never by reading the legacy source. That keeps inherited bugs, hidden assumptions, and IP risk on the other side of the wall.

Observability over guesswork

Logs, metrics, and traces aren't a nice-to-have — they're how the system warns you before users do. Mature observability is what turns 3am pages into morning tickets and shrinks MTTR by the only number that matters: actual incidents.

Security as the default state

Hardening, TLS, least-privilege, and patched dependencies aren't bolted on at the end — they start at the kernel and shape every API contract. Treating security as a feature is paid for in incident reports.

Projects

04 side bets

Bankvole

Live demo

A banking platform built for a client — production-adjacent fintech UX, account flows, and core money movement.

FintechBankingLive demo

SeekMake

11/2024 — 03/2025

A SaaS platform that helps manufacturers manage their business and customers directly — invoicing, customer relationships, and product timeline tracking in one place.

SaaSAngularMicroservicesMonoreposManufacturingFintech

WakeFlow

03/2022 — 05/2022

A workflow automation experiment exploring scheduling and event-driven triggers.

WorkflowAutomation

Crop2Cash

01/2022 — 03/2022

Built backend for the Crop2Cash Marketplace — an agritech e-commerce platform helping smallholder farmers in Nigeria source seeds, fertilizers, and other inputs. Implemented chart APIs to surface live database data and introduced a programming system that streamlined integration with existing services.

AgritechBackendAPIsMarketplacePostgresqlFintech

Technical expertise

stack

Primary stack

Languages
TypeScriptJavaPythonGolangScalaKotlinRascal MPL
Frameworks
NestJSNext.jsAngularNode / ExpressJavaFX
Architecture
MicroservicesMonolithsMonoreposServerlessEvent-drivenETL pipelines

Tools & specialties

Cloud & Infra
AWSGCPTerraformKubernetes (K8s)
Linux & Security
Linux (Ubuntu/Debian)Bash scriptingSSH / TLSNginxUFW / iptablesFail2banServer hardeningLet's Encrypt
Data
PostgresqlMySQLMongoDBSQL
Messaging
KafkaRabbitMQ
CI/CD & Tools
GitHub ActionsCI/CDOpenAI APIApache Fineract
Editors
VimNeovim (favorite)