Skip to content
Darmawan Zulkifli

About — the record

Est. 2017

Darmawan Zulkifli.

I build software, and I like starting from almost nothing. Most of my work begins as a small test version. Just enough to see if the idea works. When it does, I keep going and turn it into a real product that people use every day, and that keeps working as it gets bigger.

I have done this a few times. One small test app became the messaging system a care team now trusts. An internal tool grew into the platform a finance team ran their whole business on. I work mostly in Go and Rust on the backend, with Flutter and React for the apps people see.

I did not start here. For my first few years I just built what other people designed, and that was the best training I could have had. What I enjoy most now is the tricky part. What happens when the network drops halfway through, or when two systems disagree about what is true. The hardest bugs I remember were never inside the code. They were in the gap between two pieces of it, so now I look for those gaps early.

These days I own the whole thing, start to finish. I have built clinical messaging that runs on phones a hospital does not fully control, an on-chain exchange, a telehealth app that connects Indonesian patients to doctors, and a government records system where every signature has to hold up in an audit years later.

I still write the code myself, not just the diagrams. I share how I think here and here, and a few small open-source tools from real work. I have worked remotely for most of my career with teams in Australia, Singapore, Europe and Indonesia. If any of this sounds like a problem you have, email me.

More about me → Show less ↑
09
Years shipping
09
Systems shipped
06
Open-source repos
04
Decision notes
01

Experience

Full CV →
  1. 01 Mar 2024 — Present

    Software Engineer

    Alexys International · Sydney, NSW (remote)

    Product champion and engineer on Aptus Aware, a clinical communications product. Responsible for what it should be as well as how it is built, from the Matrix messaging backend to the handsets care staff carry.

    • Product champion for Aptus Aware, responsible for what the product should be, not only for how it gets built.
    • Built the Matrix.org proof of concept for the messaging backend, then reviewed and migrated backend code onto it.
    • Extended location-aware presence, hunt-group routing and nurse-call configuration across both organisation-managed and personal handsets.
    • Own the integration of Aptus Aware with Aptus Concierge, including its AI layer.
    • Build features, fixes and backend services for the mobile product.
    • Own release hygiene end to end, covering version control, testing to standard, releases, and issue tracking.
    • Flutter
    • Matrix.org
    • Node.js
    • AI integration
  2. 02 Mar 2022 — Mar 2024

    Software Engineer

    Undercurrent Capital · Singapore

    Built the Algorai platform on Algorand end to end, covering admin and treasury tooling, the dApp front end, and the on-chain trading machinery underneath it.

    • Built and ran the Algorai Admin platform, the operational surface for configuring products, monitoring positions and reconciling on-chain state.
    • Owned the reconciliation seam between on-chain state and the application store, so the chain and the database that recorded it could not silently drift apart.
    • Integrated Algorai with the Algorand blockchain using the official SDK.
    • Built the Go REST services behind the platform on Gin and gorilla/mux, layered along SOLID lines. Thin HTTP handlers, business logic in services behind interfaces, and MongoDB access in repositories, so each layer could be tested and replaced on its own.
    • Built decentralised applications on Algorand, with React front ends over smart-contract backends, enabling on-chain trading and asset management.
    • Built the trading machinery: DEX integrations, order matching, limit and market orders, and liquidity pools using Algorand atomic transfers.
    • Built cross-chain bridges and integrations (Ethereum, Solana, Polygon) so users could swap assets across networks while minimising slippage.
    • Designed secure wallet connections (Pera Wallet, MyAlgo) for transaction signing, staking and real-time trading.
    • Optimised for high-frequency trading, with oracle price feeds, transaction batching, and reduced confirmation times.
    • Golang
    • Gin
    • gorilla/mux
    • React
    • MongoDB
    • Algorand
    • Smart contracts
  3. 03 Mar 2021 — Mar 2022

    Software Engineer

    Dua Digital · Bali · Lombok · Sweden

    Cross-platform delivery for a predominantly European client base. Six months part-time building MVPs, then full-time on product.

    • Spearheaded project planning and estimation, effectively catering to a predominantly European clientele.
    • Built Kupongfia, a Swedish grocery-deals app, with React Native for cross-platform delivery.
    • Engineered robust systems tailored to client specifications using Flutter for cross-platform delivery (web, Android, iOS).
    • Developed high-performance backend services leveraging Golang and Node.js.
    • Flutter
    • React Native
    • Golang
    • Node.js
  4. 04 Mar 2019 — Jul 2021

    Software Engineering Team Lead

    PT Citra Digital Lintas · Jakarta, Indonesia

    Joined as an engineer and was promoted to team lead. Owned feature delivery and release engineering for enterprise and government office-automation products.

    • Led feature delivery and product maintenance across enterprise and government office-automation products.
    • Worked directly with clients on feature planning and estimation, translating ambiguous requirements into scoped work.
    • Owned application releases and deployment into staging and production environments.
    • Golang
    • React
    • Flutter
02

How I work

01

Start with the problem

I start with who uses it, what the constraints are, where the boundaries sit and how it can fail. I choose the technology last.

02

Make trade-offs explicit

I write down why I chose this design and what I turned down. If nobody records it, the same argument happens again in six months.

03

Design for failure

Networks drop. A retry means the same request arrives twice. State goes stale. Phones kill background work. I treat all of that as part of the design, not as something to fix later.

04

Own the path to production

A design is not finished at the diagram. It includes building it, deploying it, being able to see it running, and being able to roll it back.

05

Leave leverage behind

I try to leave reusable pieces, tooling and written notes behind me, so the next person moves faster than I did.

03

Areas of depth

01

Distributed systems

Services that disagree, and how they get back in step

  • Event-driven architecture
  • Async workflows
  • Retries & idempotency
  • Consistency models
  • State reconciliation
  • Service boundaries
02

Realtime systems

Messages that have to arrive, on networks that drop

  • Matrix.org
  • WebSockets
  • WebRTC
  • Presence
  • Messaging & routing
  • Mobile network constraints
03

Backend & platform

The services underneath, and how they get to production

  • Go (Gin, gorilla/mux)
  • Rust
  • Node.js
  • gRPC & Protobuf
  • NATS / Kafka
  • CI/CD & deployment
  • Observability
  • SOLID & layered design
04

AI systems

Model features that keep working when the provider changes

  • LLM integration
  • Provider abstraction
  • AI agents
  • LiveKit
  • STT / TTS pipelines
  • On-prem inference
05

Product engineering

Turning an unclear request into a system with a scope

  • Ambiguous requirements
  • Technical discovery
  • Architecture decisions
  • End-to-end ownership
  • Stakeholder collaboration
06

Mobile & edge

Where the system meets a device we do not control

  • Flutter
  • React Native & Expo
  • State management (BLoC, Riverpod, GetX)
  • Background execution limits
  • Offline-first sync
  • Device/backend integration
  • ESP32 & microcontrollers