KPay — Payment Gateway
Payment GatewayPayment infrastructure for Ethiopian banks, wallets and merchants. A secure, scalable gateway with multiple integrations.
Backend engineering, APIs, payment infrastructure and enterprise software. I build resilient systems in Go, Laravel, and NestJS with strict emphasis on deterministic idempotency, data integrity, and high availability.

Payment infrastructure for Ethiopian banks, wallets and merchants. A secure, scalable gateway with multiple integrations.
Turning scattered developer knowledge into a living community. An edge-rendered community platform and headless CMS built for Ethiopian software engineers under real-world connectivity constraints.
Enterprise resource planning software for SMEs and businesses, managing inventory, accounts, invoices, and procurement.
Integrations with multiple banks and wallets with secure transaction processing, cryptographic signatures, and fallback routing.
“I work where software stops being a demo and starts having consequences — payments, data, integrations, failures and systems that need to keep working anyway.”
Most of my work sits behind the interface — APIs, databases, integrations, payment flows, authentication and the infrastructure that keeps applications running.
I enjoy turning complex requirements into systems that are understandable, maintainable and reliable. My engineering methodology emphasizes strict data integrity, predictable error boundaries, and defensive architecture.

Graduated from Gondar University with a Bachelor of Science in Information Systems. This program provided a solid foundation in coding and programming, as well as a comprehensive understanding of IT solutions, system design, and project management. Equipped with the technical skills and knowledge necessary to develop and optimize complex software systems and applications.
Every mutating financial call must safely withstand network retries without duplicate side effects.
Explicit data schemas, defensive error handling, and type-safe API contracts across all microservices.
Strict double-entry bookkeeping and tamper-evident audit logs for financial records.
Structured JSON logging, telemetry, and distributed tracing over guesswork.
I design, build and maintain the backend for Ellatech's hotel booking and hospitality platform. It is a set of NestJS microservices (admin, booking, business, core, customer) that talk to each other over gRPC and store data in MongoDB. I've taken features from the Jira ticket all the way to production: booking, pricing, payments, settlements and complaints.
Designed, developed, and maintained web applications utilizing the Laravel framework for backend development and various frontend technologies. Integrated database schemas (MySQL, PostgreSQL) to ensure data integrity and efficient retrieval.
Designed and implemented software architecture for fintech solutions, enhancing payment gateway efficiency and regulatory compliance. Achieved significant business growth by leveraging microservices and data analytics in agile project management.
Successfully enhanced client satisfaction by resolving operational issues and integrating third-party APIs, improving payment processing efficiency. Developed secure, scalable cloud-based architectures and reusable code libraries, optimizing user experience across web platforms.
Enhanced user experience by implementing responsive designs and developing robust backend systems while integrating third-party APIs and payment gateways. Improved software performance through code reviews, debugging, and contributions to scalable cloud-based solutions.
Published on EthioDev and syndicated here via the Website API — covering backend systems, payment infrastructure, and team collaboration.
AI can write code. It can write documentation, generate tests, explain errors, create architecture diagrams, summarize meetings, and even suggest technical strategies. And that is where the real engineering questions begin.
There is a moment in almost every software project when the frontend team says: 'The backend isn't ready.' And the backend team responds: 'We already finished the API.' Then someone tries to run the application...