💼 Hiring Quest – Senior Backend Engineer (.NET) @ MoneyFellows
Challenge-based hiring quest with structured evaluation and real project outcomes.
Top performers get hired with a paid contract and the opportunity to work on real-world projects.
👋 We are MoneyFellows, a fintech product company transforming how people save, plan, and manage money through secure, scalable digital financial solutions.
Our mission is to build reliable financial platforms that operate at scale while maintaining high standards of performance, security, and engineering excellence. (MoneyFellows)
We’re hiring a Senior Backend Software Engineer (.NET) (5+ YOE) to join our backend team and help design, build, and optimize the core systems behind our products.
🕓 Start Date: Immediate
💰 Salary: USD 1400 - 1900
🌍 Location: Hybrid – 5th Settlement, Cairo
🛠️ How the Hiring Quest Works
1️⃣ Register for the quest
2️⃣ Receive the full challenge after registration closes
3️⃣ Submit your solution before the deadline
4️⃣ Top candidates are invited to a technical review session
5️⃣ One candidate will be hired
🔍 Who We’re Looking For
✅ 5+ years of experience in .NET development or other OOP languages
✅ Strong experience building and maintaining APIs, Microservices, and Databases
✅ Solid understanding of Clean Architecture and modular system design
✅ Hands-on experience with DDD (Domain Driven Design) concepts
✅ Experience with Message Queues and Event Driven Architecture
✅ Strong background in database profiling and optimization (RDBMS & NoSQL)
✅ Familiar with CI/CD pipelines, cloud providers (AWS or Azure), and API security
✅ Comfortable working with GitHub, EF Core, and modern development workflows
💡 Bonus: A/B testing, serverless concepts, monitoring tools, fraud detection, SonarQube or similar code quality tools
🎯 Your Mission: “Event-Driven Financial Transactions Platform”
🧠 Business Context
MoneyFellows systems deal with financial transactions, where:
Services must be independently deployable
Data consistency must be handled safely
Events must never be lost or duplicated
The system must be extensible for future financial modules
In this quest, you’ll design and implement a mini event-driven backend platform that reflects real-world fintech challenges.
📌 The Challenge
1️⃣ Step 1 — Domain Modeling (DDD)
Model two bounded contexts:
A) Transactions Context
Create Transaction
Add Transaction Items
Submit Transaction
Cancel Transaction (with clear business rules)
B) Payments Context
Start Payment for a Transaction
Confirm Payment
Fail Payment
Requirements
Clear Aggregates and invariants
Domain Events such as:
TransactionSubmitted
PaymentConfirmed
PaymentFailed
Clean separation between bounded contexts
📄 Deliverable: DOMAIN.md explaining your domain decisions.
2️⃣ Step 2 — Microservices + Clean Architecture
Implement two .NET services:
Transactions Service
Endpoints:
POST /transactions
POST /transactions/{id}/items
POST /transactions/{id}/submit
POST /transactions/{id}/cancel
Payments Service
Endpoints:
POST /payments/start
POST /payments/{id}/confirm
POST /payments/{id}/fail
Architecture requirements
Clean Architecture layers (Domain / Application / Infrastructure / API)
No infrastructure dependencies leaking into domain
Explicit application use-cases
3️⃣ Step 3 — Event-Driven Workflow
Use a message broker (RabbitMQ preferred):
TransactionSubmitted → published by Transactions service
Payments service consumes event → creates payment intent
Payment result publishes:
PaymentConfirmed
PaymentFailed
Transactions service consumes events → updates transaction state
Reliability is key
✅ Implement Outbox Pattern (or equivalent)
✅ Idempotent event consumers
✅ Basic retry & dead-letter handling
4️⃣ Step 4 — Observability & Testing
Add:
Correlation IDs across HTTP & events
Structured logging
Health checks
Tests:
Domain invariant tests
Integration test covering the full happy path
🧱 Suggested Tech Stack
.NET 8 / ASP.NET Core
PostgreSQL or SQL Server
RabbitMQ
Docker Compose
Optional frameworks: MassTransit, Wolverine, or NServiceBus (justify your choice)
🧩 Example Flow
1️⃣ Create transaction
2️⃣ Add items
3️⃣ Submit transaction → event published
4️⃣ Payment started
5️⃣ Payment confirmed
6️⃣ Transaction marked as completed
🧰 What You Should Submit
📂 GitHub Repository
/src/transactions-service
/src/payments-service
docker-compose.yml
Optional: ARCHITECTURE.md + diagram
📹 10-Minute Video
3 min: Introduction + one complex backend challenge you solved
7 min: Live demo + architecture explanation + event reliability strategy
📊 Evaluation Criteria
Architecture & DDD correctness – 25%
Event-driven reliability – 25%
Code quality & Clean Architecture – 20%
Microservices boundaries & APIs – 15%
Testing & observability – 10%
Documentation – 5%
✨ Bonus: retries & DLQ, elegant domain modeling, clear trade-off explanations
📩 After Submission
Top candidates will join a technical review session discussing:
Domain modeling decisions
Event consistency strategies
Scaling the system in real fintech production
👉 Final decision within 5 business days after the review.