Firman Hanafi
Solution Architect · Notes

Portfolio

Selected work

A journey from Java Programmer to Solutions Architect, building payment infrastructure at scale. Below are my work experience, projects, and technical expertise.

Work Experience

DOKU, PT Nusa Satu Inti Artha

Solutions Architect

Apr 2021 – Present
📍 DKI Jakarta · Remote

Leading solution design across DOKU's core financial platform, transfer services, payment channels, AI-assisted engineering, and DevOps initiatives:

Solution Design & Architecture

  • Designed solution architecture for Financial Core systems: Settlement, Reconciliation, Centralized Refund, and Fee Calculation & Balance
  • Decoupled monolithic financial-core microservice into nanoservices (Settlement, Reconciliation, Refund, Fee & Balance) to handle growing daily transaction volume
  • Designed Google Payment integration for QRIS MPM channel
  • Piloted Function Compute for reconciliation system, processing millions of transactions daily in a serverless architecture
  • Designed architecture to remove middle service for Google Remittance, migrating to Function Compute
  • Designed merchant onboarding for QRIS on DOKU co-brand partners
  • Designed merchant onboarding for Billing-as-a-Service product
  • Designed bill collection system for Flexy Bill (Billing-as-a-Service)
  • Transfer Service: solution design for remittance and disbursement platforms (KirimDoku)

API Gateway & Infrastructure

  • Conducted POC for APIWiz integration. Installed and evaluated in DOKU sandbox environment with Kong OSS as the open-source API gateway
  • Co-built the API gateway using Spring Cloud Gateway as the inbound proxy for current systems
  • Managed dual API gateway architecture: Nginx (inbound proxy for legacy systems) and Spring Cloud Gateway (inbound proxy for current systems)
  • Managed Squid Proxy as the outbound proxy layer
  • Designed Apache Kafka infrastructure architecture for both development and production environments

AI-Assisted Engineering & Tooling

  • Conducted POC of AI tools for DOKU engineering adoption. Selected Claude as primary tool
  • Served as internal trainer for AI-assisted software development practices
  • Championed AI usage across engineering workflows:
    • PRD & PID generation for Product team
    • Integrated Serena for token-efficient AI interactions
    • Solution design with AI: sequence diagrams, C4 model (Level 1, 2, 3), OpenAPI Spec, and NFR for Expert Engineers and Solution Architects
    • Code generation for software engineering teams
    • Test generation: scenario tests, unit tests, and service test generators
    • Deployed Claude Agent & Claude Skills tailored for each engineering pod
  • Led DOKU's adoption of ClickUp as the engineering project management platform

DevOps & Platform Engineering

  • Built CI/CD pipelines for Function Compute (serverless) and established operational SOPs
  • Built CI/CD for Java & Kubernetes microservices deployment
  • Built CI/CD for Angular & static web to Alibaba Cloud OSS
  • Built CI/CD for Python & Kubernetes services
  • Built CI/CD for n8n & Kubernetes (scalable installation)
  • Integrated GitLab & GitHub repositories with Snyk (SAST) for security scanning
Solution ArchitectureQRISNanoservicesFunction ComputeSpring Cloud GatewayApache KafkaCloud-NativeCI/CDKubernetesClaude AIAI TrainerELK Stackn8nClickUpSnyk SAST
DOKU, PT Nusa Satu Inti Artha

Technical Lead

Mar 2018 – Apr 2021
📍 Menara Mulia, DKI Jakarta

Led the engineering team for KirimDoku / Transfer Service, handling remittance and disbursement products:

  • Rewrote legacy KirimDoku application from Play Framework to Spring Boot WebFlux and MVC
  • Designed and built cashout system integrated with Indomaret and Alfamart retail networks
  • Designed and built bank connector to banks and switching networks for money disbursement
  • Designed and built KirimDoku integration with Ripple for cross-border remittance transactions
ScrumTechnical LeadershipSpring Boot WebFluxRippleRemittanceDisbursement
DOKU, PT Nusa Satu Inti Artha

Software Engineer

Mar 2017 – Mar 2018
📍 Jakarta

Maintained and developed features for KirimDoku / Transfer Service legacy application:

  • Worked on KirimDoku legacy stack built with Play Framework, CoffeeScript, and native Java/Scala
  • Developed remittance and disbursement features for the transfer service platform
Play FrameworkScalaCoffeeScriptJavaPostgreSQLRemittance
PT. Ace Global Consulting and Integration

Java Programmer

Mar 2015 – Feb 2017
📍 Jakarta

Developed enterprise systems for major retail clients:

  • Built finance system for Indomaret using JSF (Java 7)
  • Built ETL pipelines using Open Talend Studio for batch data integration between headquarters and retail stores (bidirectional sync)
  • Built Spring Batch jobs for batch data integration processes
Java 7JSFSpring BatchTalend ETLPostgreSQL
PT. Numazu Trans Teknologi

Java Programmer

Jan 2014 – Jan 2015
📍 Jakarta

Built end-to-end barcode systems for Japanese manufacturing clients:

  • Built production barcode system for PT. Kyoraku Blowmolding Indonesia, tracking the entire manufacturing process from production to QC pass
  • Built production barcode system for PT. Keihin Indonesia, end-to-end tracking from product creation through quality control
JavaBarcode SystemsManufacturingPostgreSQLApache Tomcat

Projects

Open source contributions, internal engineering initiatives, and personal builds.

n8n-nodes-7z
A custom n8n community node for compressing and decompressing files using the 7-Zip format. Enables automated file archiving workflows directly within n8n pipelines.
TypeScriptn8n7-ZipMIT License
n8n-nodes-postgresql-copy
A custom n8n community node extending PostgreSQL capabilities with the COPY command for high-performance bulk data ingestion and extraction in automated workflows.
TypeScriptn8nPostgreSQLCOPY CommandMIT License
Function Compute for Reconciliation
ProblemReconciliation system couldn't scale to handle growing daily transaction volume
ApproachPiloted serverless architecture using Alibaba Cloud Function Compute
ImpactProcessing millions of transactions daily with auto-scaling, no infrastructure management overhead
Function ComputeAlibaba CloudServerless
🔄KirimDoku Platform Rewrite
ProblemLegacy remittance platform built on Play Framework was hard to scale and maintain
ApproachFull rewrite to Spring Boot WebFlux and Spring MVC, modern reactive architecture
ImpactImproved scalability, maintainability, and developer productivity for the transfer service platform
Spring Boot WebFluxSpring MVCReactive
📱QRIS Merchant Onboarding
ProblemNo standardized onboarding flow for QRIS merchants on DOKU co-brand partners
ApproachDesigned end-to-end solution architecture for merchant onboarding across multiple partners
ImpactEnabled DOKU co-brand partners to onboard QRIS merchants at scale
QRISSolution DesignAPI Architecture
🔧n8n Self-Hosted on Kubernetes
ProblemNeed a scalable, reliable workflow automation platform for internal engineering use
ApproachDesigned and managed self-hosted n8n on Kubernetes (ACK): Main + Worker + Webhook pods, Redis queue mode, PostgreSQL, NAS-backed PVC
ImpactProduction-grade automation platform serving multiple engineering teams across SIT, UAT, Sandbox, and Production
n8nKubernetesRedisPostgreSQL
🌐Spring Cloud Gateway: API Gateway
ProblemLegacy systems using Nginx as inbound proxy couldn't support modern API management needs
ApproachCo-built API gateway using Spring Cloud Gateway as inbound proxy for current systems, alongside Nginx for legacy
ImpactDual gateway architecture supporting both legacy and modern microservices with clean separation
Spring Cloud GatewayNginxAPI Management
🤖fc-ai: AI-Assisted Engineering Platform
ProblemNeed to evaluate LLM integration for internal engineering productivity
ApproachBuilt Spring Boot 4 / Java project with Ollama on Kubernetes (CPU-only, Qwen models) for UAT/SIT environments
ImpactPOC for AI-native microservice, foundation for DOKU's AI-assisted engineering adoption
Spring Boot 4OllamaQwenKubernetes
SpotCamp ID
🚧 In Progress ~50%
A platform for discovering and exploring camping spots in Indonesia. Built out of personal passion for family camping trips. Features location discovery, reviews, and campsite details.
AngularTypeScriptSCSSSpring BootPostgreSQL

Tech Stack & Skills

A curated collection of technologies, tools, and methodologies I work with daily.

🏛️
Architecture & Design
Solution ArchitectureEnterprise ArchitectureSystem DesignCloud-NativeEvent-Driven (DDD)Microservices
🤖
AI & Automation
AI Pair ProgrammingPrompt EngineeringLLM IntegrationVibe Codingn8nWorkflow Automation
💳
Domain Expertise
Payment SystemsTransfer & RemittancePCI DSSFinTech
⚙️
Backend & Languages
JavaJava EESpring BootSpring MVCSpring BatchNode.jsPlay FrameworkHibernateJSPPrimefacesJSFJBoss ESB
🎨
Frontend & Mobile
JavaScriptReactReact NativeAngularJS
🗄️
Databases
PostgreSQLOracle SQLSQL ServerDatabase OptimizationDatabase Design
☁️
Infrastructure & Cloud
KubernetesDockerHelm ChartsOpenShiftJenkinsSonarQubeCI/CDIaCGCPAlibaba Cloud
📡
Messaging & Observability
Apache KafkaRedisElastic StackPrometheusGrafana
🔧
Tools & Methodologies
IntelliJ IDEASTSMavenSBTScrumJIRATechnical Leadership