A Software Engineer who loves to tinker with stuff
Experience
BackEnd Engineer Intern
Justika
June 2019 - August 2019
Jumped into Justika's engineering team as an intern, getting my hands dirty with Python and Django to build out backend features for their legal marketplace platform
Worked alongside senior engineers to ship new platform capabilities, learning the ropes of production software development in a fast-paced environment
Built and tested RESTful APIs that powered the connection between clients seeking legal help and lawyers offering their services
BackEnd Engineer
Akseleran
April 2021 - December 2021
Owned the backend services powering Akseleran's peer-to-peer lending platform, handling everything from loan applications and credit approvals to repayment tracking
Designed and built APIs capable of processing high volumes of borrower-lender transactions while keeping security and data integrity front and center
Dug into performance bottlenecks and refactored critical code paths, which noticeably improved transaction processing speed and gave the system room to grow as the business scaled
BackEnd Engineer
Justika
January 2022 - August 2022
Came back to Justika to lead backend development, architecting RESTful APIs that made it easier for people to find and connect with the right legal professionals
Spent time researching and prototyping new services that expanded what the platform could offer, directly improving how users experienced the product
Worked closely with product managers and operations folks to automate messy, manual legal workflows, saving countless hours of back-and-forth
Kept the lights on for critical legal consultation services, making sure everything stayed up and running when clients needed help most
BackEnd Engineer (Freelance)
The Social Club
June 2022 - April 2023
Built the entire backend from scratch for a marketplace connecting brands with KOLs (Key Opinion Leaders), using Python and Django to power the platform
Set up the whole AWS infrastructure myself, configuring everything needed to keep the app reliable and able to handle traffic spikes during campaign seasons
Integrated with a third-party payment gateway to handle transactions between brands and influencers, making sure money moved securely and everyone got paid on time
Software Engineer
Durianpay
November 2022 - July 2024
Built and maintained core services in Go handling disbursements, reporting, and settlements for over 30 merchants, making sure their money moved smoothly
Worked directly with banks and payment gateways to integrate new channels, which meant less friction for merchants trying to get onboarded and start accepting payments
Spent quality time profiling and optimizing our codebase, shaving off latency and making the whole system more reliable under load
Jumped into the frontend occasionally to improve the merchant dashboard using Vue.js, making it snappier and more intuitive for users
Software Engineer
Doitpay
October 2024 - July 2025
Integrated multiple payment channels with banks and payment gateways, building systems robust enough to handle massive transaction volumes day in and day out
Operated at serious scale, processing over 600,000 incoming transactions and 60,000 outgoing payments daily while keeping everything secure and accurate
Continuously tuned and optimized our systems, fighting latency and improving reliability so the platform could handle growth without breaking a sweat
Championed code quality initiatives that caught bugs earlier and kept transaction flows running smoothly, reducing incidents and firefighting
Designed and built a complete end-to-end payout system from the ground up, bridging the gap between merchants and their banking partners
Collaborated across engineering, product, and business teams to deliver payment solutions that were both secure and blazing fast
Senior Software Engineer
Doitpay
July 2025 - Present
Took ownership of the existing payout system and transformed it into something far more reliable, cutting down on manual interventions and late-night pages
Architected a bulk payout system from scratch, enabling merchants to process thousands of payments in a single batch operation
Led a major refactoring effort to move synchronous flows to an asynchronous architecture using Kafka, dramatically improving response times and system resilience under heavy load
Built a dynamic routing service that intelligently picks the best upstream bank for every single transaction using custom algorithms, keeping the system highly available even when individual banks have issues
Pushed the settlement system to handle 5x more transaction volume while cutting processing time in half, making end-of-day reconciliation much less stressful
Reworked the payout system to smoothly handle 4x the transaction load without breaking a sweat, giving us plenty of headroom for future growth