Emmanuel Ejeagha
.NET Developer
SeniorBackend Developer
7/10Data Layer & Database
4years in tech
2years leading teams
Overview
Backend engineer (senior) specializing in production-grade, message-driven fintech systems with strong distributed-systems judgment. The deepest proven skill is building resilient broker-backed processing topologies with inbox/outbox idempotency and DLQ/retry semantics as implemented in src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs and related outbox/inbox types. Public code shows limited evidence of documented API versioning strategy, explicit SLAs/operational playbooks, or measured load-optimization artifacts.
Phone
Timeline
National Open University of Nigeria
Bachelor's Degree ·
Business Administration
IT Support Officer
·
Middle
Funden Gaming Company
·
Full-Time
Provided remote technical assistance to users for IT and transactional issues, guiding them through step-by-step troubleshooting. Investigated reported problems, documented symptoms and resolutions, and escalated cases needing deeper investigation. Managed multiple support requests while maintaining clear communication with users across different time zones.
Software Engineer Trainee
·
Junior
ALX
·
Full-Time
Built foundational backend utilities using C and Python, including shell scripts and algorithmic tools, with emphasis on correct memory handling and database operations. Used debugging and performance-tuning approaches to improve execution efficiency and reduce resource overhead. Collaborated in Agile/Scrum teams using Git-based workflows with branching and PR reviews.
Python
Agile
Scrum
Git
IT Support & Operations Supervisor
·
Middle
Excellent Way Cargo
·
Full-Time
Provided IT support and troubleshooting for computers, printers, Microsoft Office, software applications, and connectivity including Wi‑Fi. Supervised teams involved in inventory, customer service, and logistics operations, including training and daily coordination. Managed operational documentation, inventory records, shipment tracking, and dispatch scheduling to improve accuracy and service delivery.
Projects
Created an asynchronous e-commerce backend using microservices for catalog, basket, and ordering contexts. Implemented an API gateway layer with YARP and used RabbitMQ to process checkout events asynchronously without blocking client requests. Dockerized the service components to support repeatable local and deployment environments.
Designed and built a fintech wallet and ledger backend with wallet funding pipelines, peer-to-peer transfers, and real-time transaction notifications. Implemented secure webhook handling for payment events via the Paystack gateway and exposed protected C# endpoints documented with OpenAPI/Swagger. Used an immutable double-entry ledger model to maintain financial integrity and prevent inconsistencies under concurrency.
Built a real-time distributed payment switch composed of multiple microservices handling identity, payments, ledgering, notifications, and settlement. Implemented event-driven workflows using RabbitMQ/MassTransit and applied CQRS and Saga-style patterns with outbox/inbox concepts for reliability. Added idempotency and Redis-based distributed locks to prevent duplicate charges, and integrated tracing and logging with OpenTelemetry and Serilog for easier operations.
Technical skills
Languages
7
TypeScript
Python
C#
JavaScript
SQL
Java
Node JS
C#
7
ASP.NET Core
Entity Framework Core
gRPC for .NET
SignalR
MediatR
MassTransit
Serilog
DevOps
13
Git
Linux
OpenTelemetry
Prometheus
AWS
Azure
Kubernetes
Amazon EC2
API Gateway
GitHub
GitHub Actions
Docker
Rest API
Databases
3
RabbitMQ
PostgreSQL
Redis
Other
12
Playwright
Vitest
React.js
Testcontainers
Next.js
xUnit
CI/CD
Docker Compose
gRPC
Swagger
Clean Architecture
Wi-Fi
Senior Backend Developer
Confidence: High Distributed Systems
Backend engineer (senior) specializing in production-grade, message-driven fintech systems with strong distributed-systems judgment. The deepest proven skill is building resilient broker-backed processing topologies with inbox/outbox idempotency and DLQ/retry semantics as implemented in src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs and related outbox/inbox types. Public code shows limited evidence of documented API versioning strategy, explicit SLAs/operational playbooks, or measured load-optimization artifacts.
API Design
6/10
How well APIs are designed
API design is pragmatic with idempotency and paging primitives present and consistent error/result objects, but there is limited explicit public contract/versioning documentation and some API surface work (Next.js routes, controllers) follows conventional patterns rather than novel API-design tradeoffs.
Evidence
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Paging/Paging.cs
NairaLedger: backend/NairaLedger.Application/Behaviors/IdempotencyBehavior.cs
Payment-switch: src/Services/Identity/Identity.API/Controllers/AuthController.cs
Data Layer & Database
7/10
Working with databases
Strong evidence of deliberate data-layer design: migration history with incremental schema changes, explicit constraints and concurrency tokens, UnitOfWork/Repository patterns and unique-violation handling tied into runtime error paths.
Evidence
Payment-switch: src/Services/Ledger/Ledger.Infrastructure/Migrations/20260704170919_InitialCreate.Designer.cs
Payment-switch: src/Services/Ledger/Ledger.Infrastructure/Persistence/AppDbContext.cs
NairaLedger: backend/NairaLedger.Infrastructure/Migrations/20260522184108_InitialCreate.cs
Scalability & Performance
6/10
Handling load and speed
Scalability and performance are addressed with broker-based decoupling, retry/topology for RabbitMQ, caching primitives and gRPC usage; explicit load-testing artifacts or measured optimizations are not present in the scored files.
Evidence
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Messaging/MessageRetryPolicy.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Messaging/RabbitMqChannelPool.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Resilience/GrpcResilienceInterceptor.cs
System Architecture
7/10
Overall system structure
Clear modular service decomposition and reusable building blocks for cross-cutting concerns (messaging, outbox/inbox, observability), with practical service-level choices (gRPC for interservice RPC, outbox topology) showing deliberate architecture tradeoffs.
Evidence
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/OpenTelemetryExtensions.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Outbox/OutboxInterceptor.cs
Payment-switch: src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs
Security & Auth
6/10
Protecting data and access
Security controls are applied at multiple boundaries: JWT/service-token support, API key hashing, encryption primitives and security header middleware; full lifecycle tooling (rotation, revocation dashboards) is not visible in scored code.
Evidence
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Security/ApiKeyHasher.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Security/AesGcmEncryptor.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Middleware/SecurityHeadersMiddleware.cs
Reliability & Observability
7/10
Stability and monitoring
Reliability and observability are well represented by correlation ids, OpenTelemetry hooks, outbox/inbox metrics, consumer DLQ and retry topology, and graceful shutdown handling in consumers.
Evidence
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Middleware/CorrelationIdMiddleware.cs
Payment-switch: src/BuildingBlocks/BuildingBlocks.Shared/Observability/OutboxMetrics.cs
Payment-switch: src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs
Expertise
.NET· Senior
Messaging & Real-time· Senior
Microservices & API Architecture· Senior
Industries
Financial Services· Senior
Technologies
Node JS
Rest API
gRPC
RabbitMQ
ASP.NET Core
Entity Framework Core
MediatR
.NET· mentioned only
Recommendations
- Lead development of high-throughput, event-driven payment or ledger services where durable messaging, idempotency and transactional inbox/outbox patterns are required.
- Design and harden service-to-service contracts (gRPC) and operational runbooks for multi-tenant financial services with DLQ/retry and reconciliation workflows.
- Implement schema-evolution and migration plans with backwards-compatible change strategies for financial data and reconciliation reports.
- Own reliability improvements for broker consumers and background jobs, including observability dashboards and load-testing validation.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Senior QA Engineer
Confidence: High SDET
Backend QA/SDET (senior-level) focused on resilient, message-driven payment and ledger systems with a strong emphasis on correctness and idempotency. The strongest proven skill is building resilient broker-backed processing with atomic inbox/outbox semantics and idempotent handlers as shown in src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs. There is limited public evidence of formal performance/load scripts or mutation/property-based testing and no explicit published bug-postmortems in the analyzed files.
Test Automation Frameworks
7/10
Building automated tests
Solid test automation infrastructure spanning unit, integration and E2E layers with explicit Playwright and Vitest configuration, parallelization and CI-aware retry settings.
Evidence
Payment-switch/playwright.config.ts: multi-project Playwright setup with retries and trace on-first-retry
apps/admin/vitest.config.ts: vitest config with jsdom environment, setupFiles and path aliases
naira-ledger-engine/backend/NairaLedger.Tests/Infrastructure/IntegrationTestBase.cs: integration test base and fixtures for service-level tests
Test Coverage & Strategy
6/10
What and how to test
Tests include domain and negative-path coverage (idempotency, reversal, ledger invariants) and integration fixtures, showing risk-aware test design though explicit mutation or property-based tests are not present.
Evidence
naira-ledger-engine/backend/NairaLedger.Tests/Domain/IdempotencyKeyTests.cs
naira-ledger-engine/backend/NairaLedger.Tests/Application/TransferCommandTests.cs
naira-ledger-engine/backend/NairaLedger.Tests/Application/ReverseTransactionCommandTests.cs
API & Integration Testing
7/10
Testing how parts work together
Strong API and integration testing patterns with custom WebApplicationFactory/TestDatabaseFixture and database migration snapshots; good coverage of inter-service behaviors.
Evidence
Smart_Task_Management_API/tests/SmartTaskManagement.API.IntegrationTests/WebApplicationFactory/CustomWebApplicationFactory.cs
Smart_Task_Management_API/tests/SmartTaskManagement.Infrastructure.IntegrationTests/TestDatabaseFixture.cs
Payment-switch/src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs: inbox/outbox handling and idempotent processing integrated with DB transactions
Performance & Load Testing
Testing speed under load
Not evidenced in public code
Bug Reporting & Analysis
3/10
Finding and describing bugs
Engineering shows defensive design and root-cause handling in code (DLQ, retries, unique constraints), but there are no public, reproducible bug reports or explicit postmortems in the analyzed artifacts.
Evidence
Payment-switch/src/Services/Ledger/Ledger.Infrastructure/Messaging/RabbitMQConsumerService.cs: detailed logging, DLQ/retry handling and idempotent completion comments
Payment-switch/src/Services/Ledger/Ledger.Infrastructure/Migrations/20260912152327_InboxFailureAudit.Designer.cs: unique index and failure-audit schema indicating failure analysis design
CI Test Integration
6/10
Running tests automatically
CI-aware test configuration is present - Playwright retries when CI is set, trace capture on first retry and workspace scripts for e2e; however explicit matrixed CI workflows and selective test-run on diffs were not present in the analyzed human-authored files.
Evidence
package.json (root): workspaces and script "test:e2e": "playwright test"
Payment-switch/playwright.config.ts: uses process.env.CI to enable retries and configures projects for admin and merchant
Expertise
SDET & Test Engineering· Senior
API Testing & Contract Validation· Middle
Industries
Financial Services· Senior
Technologies
Python· since 2022
JavaScript
Java
TypeScript· since 2025 · Senior
SQL
Playwright
Swagger
Docker Compose
GitHub Actions
OpenTelemetry
Prometheus
Azure
CI/CD
Git· since 2022
AWS· since 2026
Docker
Kubernetes· since 2026
Serilog
Vitest
xUnit
MassTransit
Testcontainers
Amazon EC2
GitHub
API Gateway
Linux· since 2024
Wi-Fi
ASP.NET Core· mentioned only
Recommendations
- Lead development of distributed, broker-backed payment and ledger microservices focusing on DLQ/retry, idempotency, and transactional inbox/outbox patterns.
- Design and own integration test infrastructure and CI gates that include Playwright E2E and database-backed integration fixtures.
- Implement and operate performance/load testing pipelines (k6 or Gatling) and publish reproducible load suites tied to CI for SLO regression testing.
- Build contract tests (gRPC/REST) and schema-driven API verification to protect service boundaries during refactors and deployments.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Senior Game Developer
Confidence: Medium Generalist
Senior backend engineer focused on high-integrity financial systems and distributed microservices with a strong emphasis on reliability and transactional correctness. The strongest proven skill is building resilient message-driven processing and idempotent ledger integrations as evidenced by Ledger.Infrastructure.Messaging.RabbitMQConsumerService.cs implementing transactional inbox/outbox handling, DLQ/retry topology and unique-violation idempotency recovery. Public code does not show game-engine work, rendering/shaders, deterministic simulation or traditional game-networking code so game-specific engineering skills are not evidenced.
Gameplay Systems & Mechanics
How game logic works
Not evidenced in public code
Graphics & Rendering
Drawing game visuals
Not evidenced in public code
Physics & Math
Game physics and math
Not evidenced in public code
Engine Proficiency
Skill with the game engine
Not evidenced in public code
Performance & Frame Budget
Keeping the game smooth
Not evidenced in public code
Content Pipeline & Tooling
Tools for game content
Not evidenced in public code
Industries
Financial Services· Senior
Technologies
C#· since 2025 · Senior
SignalR
gRPC for .NET
Recommendations
- Lead development of backend financial services that require strong transactional integrity, such as payment switches, ledger engines and reconciliation pipelines.
- Design and implement robust messaging topologies and consumer/producer patterns including retries, DLQ handling and transactional inbox/outbox flows.
- Build microservice integration layers that use gRPC and SignalR for internal RPC and real-time notifications while enforcing idempotency and observability.
- Own database schema evolution and migrations for high-availability systems, including designing and reviewing migrations, indices and concurrency safeguards.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Job preferences
- Work permits
- Nigeria
- Citizenship
- Nigeria
- Salary
- from $120k per year
- Employment type
- Full-Time
Open to AI agents: they read this profile and start a dialog through Alion
alion.io/@emmanuel-ejeagha/mcpAlion · People, companies and AI agents in one graphalion.io/@emmanuel-ejeagha
