ograh.dev
Open to work

Hi, I'm Bernard OgrahBackend Engineer

Building scalable APIs, distributed systems, and the infrastructure they run on.


About

I’m a backend engineer with 3.5+ years of experience building and maintaining production systems across fintech, healthcare, e-commerce, and logistics.

I primarily work with Java and Spring Boot, as well as Go, with PostgreSQL for data modeling and Redis and RabbitMQ for caching and asynchronous processing. I’ve worked across the backend lifecycle, from designing database schemas and APIs to testing, deployment, and maintaining containerized applications.

I’m particularly interested in building reliable systems, designing clear application workflows, handling authentication and authorization, and keeping databases and services performant as they scale.

Outside of client work, I enjoy building small infrastructure and developer tools to better understand how systems work. Some of these include a self-hosted PaaS, an error-tracking platform, and a clipboard manager written in Rust.

Education

BSc. Computer Science

Kwame Nkrumah University of Science and Technology

Kumasi, Ghana · Graduated Nov 2025


Stack
Languages
JavaGoTypeScriptPythonRustPHP
Frameworks
Spring BootSpring SecuritySpring Data JPAGinChiNext.jsNestJSFlask
Data & Infra
PostgreSQLRedisRabbitMQKafkaDockerTraefikAWSCloudflare R2FlywayLinux
APIs & Tooling
RESTGraphQLWebSocket / STOMPSOAP / WS-SecurityJWTPaystackOpenAPIJUnitGit

Experience
  1. Jun 2026 — Present

    Software Engineer, Backend · Rpl Technologies

    Remote

    GoPostgreSQLSOAPWS-SecurityDocker
  2. Nov 2025 — Present

    Software Engineer, Backend · AmaliTech Services

    Kumasi, Ghana

    Java 21Spring BootGraphQLPostgreSQLKafkaJUnit
  3. Feb 2026 — Present

    Backend Developer · Kova Delivery

    Remote

    Java 21Spring Boot 3.5PostgreSQLRedisRabbitMQWebSocketMinIO/S3
  4. Nov 2025 — Mar 2026

    Backend Developer, Contract · JustGo Health

    Remote

    JavaSpring BootPostgreSQLRedisCloudflare R2
  5. Dec 2024 — Present

    Backend Developer, Contract · KOVA Marketplace

    Remote

    JavaSpring BootPostgreSQLGoGinRabbitMQRedis

PublicLive

Cargo

Self-hosted Platform-as-a-Service

A Dokploy/Coolify-style PaaS shipped as a single Go binary serving the API, embedded React UI, River job queue, and deploy engine. Takes an app from a GitHub repo or registry image to a live HTTPS URL with Dockerfile/Nixpacks auto-detection, one-click rollback, multi-tenant orgs with RBAC, and Let's Encrypt certificates via Traefik.

GoReactPostgreSQLTraefikDockerRiver
PrivateLive

Kova Delivery Platform

Multi-sided logistics backend

The full Spring Boot 3.5 backend behind a live delivery marketplace: merchant API, rider mobile API, and admin operations across 35+ controllers. Real-time dispatch over RabbitMQ and STOMP WebSockets, Redis-backed rider presence and distributed locks, a constrained delivery state machine with audit history, and a webhook outbox for merchant callbacks.

Java 21Spring BootRabbitMQRedisPostgreSQLFlyway
PrivateLive

KeysVault

API key management platform

Cryptographically secure API key generation and lifecycle management for teams. Hash-based storage so plaintext keys are never persisted, JWT auth with refresh tokens, four-tier RBAC, per-project organization, and real-time usage analytics with 90-day retention, rate-limit monitoring, and geographic distribution.

GoNext.jsPostgreSQLRedisJWT
PrivateLive

AmaliScribe

Local-first meeting transcription

A desktop app that transcribes meetings entirely on-device — nothing leaves the machine. Electron + React shell over a native Go sidecar that owns audio capture, mixing, resampling, voice activity detection, WAV recording, and orchestration of a local whisper.cpp runtime. Cross-platform capture via WASAPI, CoreAudio, and PulseAudio/ALSA.

GoElectronReactwhisper.cppCGO
Private

Form Configurator

Metadata-driven form service

A multi-tenant service that replaces the "admin uploads a PDF, user downloads and re-uploads it" workflow with structured data. Form definitions are versioned JSON documents, immutable once published; the service owns the definition registry, payload validation against a definition version, and rendering the official PDF artifact.

JavaSpring BootPostgreSQLJSON SchemaPDF
Private

Send Money BT

Offline peer-to-peer payments

Value transfer between two phones over Bluetooth LE, with no server and no network. The hard part is double-spending: a device that moves money offline can spend the same balance twice. Each sender's vouchers are hash-chained, so spending twice forces the payer to fork their own chain — producing a self-verifying, non-repudiable fraud proof signed by the offender and checkable by anyone, with no ledger and no connectivity.

GoTypeScriptBLEPostgreSQLHash chains
Public

Error Tracking Platform

A minimal Sentry, rebuilt

An error tracking system built to understand how Sentry works from the inside. Errors land on a Go/Chi API, get buffered into Redis for a fast ack, and drain to PostgreSQL via background workers — with API-key auth per project, TTL-cached reads, and a Next.js dashboard for triage.

GoChiRedisPostgreSQLNext.js
Private

Portfolio Analyzer

LLM pipeline over your GitHub

Connects through a GitHub App, pulls every repository in the installation, and runs a two-pass LLM pipeline to understand each project and rank a portfolio-worthy shortlist. NestJS + BullMQ job orchestration, TypeORM/Postgres run history, language filters, pinned candidates, and Markdown/JSON export — with a switch between direct LLM calls and AWS Bedrock.

NestJSBullMQTypeORMPostgreSQLAWS BedrockOctokit
Public

Clipwise

Keyboard-first clipboard manager

A Linux clipboard manager in Rust that captures everything you copy, persists it across reboots, and surfaces it through a Raycast-style launcher. Fuzzy search, pinning, auto-dedup, and a 500-item cap that never evicts pinned entries. Ships as a single binary with no daemon — X11 and Wayland.

RustX11WaylandSQLite
PublicLive

Amali-RMBP

Twi-language conversational AI

Led a team building a Twi-language chatbot with both text and speech interaction, on a Flask backend wiring Meta's Llama-3 (8B) to the GhanaNLP Translate API — bridging a low-resource language into a general-purpose model.

PythonFlaskLlama-3 8BGhanaNLP API

Contact

Have something you need built on the backend?

I'm open to backend and platform engineering roles, and to contract work. The fastest way to reach me is email.

ograhbernard@gmail.com