Software engineer · Accra, Ghana

Open to new opportunities

Nana AboagyeBoateng.

I build APIs, data pipelines, and web applications. I have 5+ years of experience across financial data, healthcare, and internal business tools.

Recent work:CediRates’ move from MongoDB to PostgreSQL

About / 02

A bit about me.

I’m Nana, a software engineer based in Accra. At Persol Systems, I build web applications with a product team. At CediRates, I lead backend development for a platform tracking exchange rates and fuel prices in Ghana.

Most of my work uses TypeScript, Node.js, Next.js, and PostgreSQL. I’ve also worked with MongoDB and C#/.NET. Recently, I’ve been building tools for image processing and email delivery alongside a mobile booking marketplace.

Outside work, I take photos, play video games, and usually have Rod Wave on repeat.

Nana Aboagye Boateng
Experience / 03

Where I’ve worked.

Web applications, backend services, and internal tools across financial data, healthcare, and internal business tools.

01 / Jan 2023
Jan 2023 - Present
Accra, Ghana

Software Engineer

at Persol Systems Limited

Enterprise software and IT services in Ghana.

Building web applications with a product team, including shared React components, API integrations, and automated tests.

  • Built reusable React/Redux components that lifted team delivery speed ~30%
  • Integrated frontend applications with backend APIs
  • Set up automated testing patterns that caught regressions before release
  • Reviewed pull requests and helped maintain shared component patterns
ReactReduxTypeScriptNode.jsJest
02 / 2022
2022 - Present
Remote · Ghana

Lead Backend Engineer

at CediRates

A financial data platform tracking FX rates and fuel prices across Ghana's banks, forex bureaus, and OMCs.

Visit website

Lead backend development for a platform tracking exchange rates and fuel prices in Ghana, reaching approximately 15K monthly organic visitors from Google search.

  • Designed the caching + read path that holds p95 under 125ms on recent production traffic
  • Built the ingestion pipeline around retries and stale-while-revalidate so upstream flakiness stays off the front end
  • Led the v2 rewrite onto Postgres + Redis when the access patterns outgrew the original document-store model
  • Added structured request logs, latency percentiles, and error summaries for production monitoring
  • Led infrastructure and DevOps: Docker-composed stack on a single EC2, Nginx TLS termination, and memory-bounded containers
TypeScriptNext.jsNode.jsPostgreSQLRedisDockerAWS
03 / 2021
2021 - 2022
Accra, Ghana

Software Engineer

at Rare Disease Ghana

A healthcare NGO supporting people living with rare diseases in Ghana.

Visit website

Built a Next.js website, volunteer-registration service, and admin tools for the NGO’s team.

  • Rebuilt the sign-up flow end-to-end, lifting volunteer conversions ~75%
  • Wrote the volunteer-registration service and the admin tooling around it
  • Shipped WCAG-aligned components used across the site
  • Reduced page-load time by approximately 60% through image and rendering improvements
Next.jsReduxTailwind CSSSEO
04 / Sep 2020
Sep 2020 - Oct 2022
Accra, Ghana

Software Engineer

at Ghana Standards Authority

Ghana’s national standards and quality assurance body.

Built internal inventory and operational tools for staff at the Ghana Standards Authority.

  • Designed and built an internal inventory-tracking tool used across teams
  • Cut page-load time ~40% by profiling the render path and trimming the bundle
  • Refactored legacy React/Redux stores into patterns a new hire could navigate
  • Tightened the API contract between frontend and backend teams
ReactReduxJavaScriptCSS3HTML5

Tools I use

Web & mobile
TypeScript, React, Next.js, React Native, Tailwind CSS
APIs & data
Node.js, Express, C#/.NET, PostgreSQL, MongoDB, Redis
Infrastructure
Docker, AWS, Azure, Nginx, GitHub Actions

Approach / 04

How I work.

  1. Start with the data model

    At CediRates, company, date, and currency pair identify a daily rate. A unique constraint lets repeated scrapes update the same record instead of creating duplicates.

  2. Make retries predictable

    In RenditionKit, output keys include the asset ID and rendition version. Retrying a failed job writes to the same location instead of leaving duplicate files behind.

  3. Keep builds off the production server

    My deployment setup builds container images in GitHub Actions and stores them in GHCR. The server pulls the image and runs it, leaving its CPU and memory available for the application.

Now / 05

On my desk.

Building

Diimple

A marketplace for finding beauty professionals, booking appointments, and making payments.

Learning

Multi-tenancy and service isolation

Exploring how applications share infrastructure, and where Kubernetes fits.

Contact / 06

Have a project in mind?
Get in touch.

I’m open to engineering roles and collaborations. Email me to talk about the work you have in mind.

[email protected]

Based in Accra, Ghana · GMT