Open to junior software engineer roles in Jakarta or remote

Farhan Taufik Rahman

Software Engineer, Jakarta, Indonesia

I build full-stack systems, then keep them running.

Six months of full-time building apps since Hacktiv8, four years of telecom engineering before that. My latest project, Llama Express, is a real-time courier platform I designed, shipped, deployed and monitored on my own.

Portrait of Farhan Taufik Rahman

Featured project, Sep–Oct 2026

Llama Express

A real-time courier platform, from the first commit to production-style operations.

Customers book a delivery on a map, nearby couriers are dispatched automatically, and everyone follows the courier live until the package arrives. I built the Spring Boot backend, the React frontend and everything around them: Kubernetes, CI/CD with automatic rollback, monitoring and public exposure.

The API runs on my own machine through a Cloudflare Tunnel, so the live demo works while it is online.

30-second tour: customer, courier, admin, monitoring and CI/CD.
0 pods
backend replicas sharing real-time traffic through Kafka
0+
backend tests, including Testcontainers integration tests
0
frontend tests with Jest, Testing Library and MSW
0
Prometheus alert rules behind a custom Grafana dashboard

How a request moves through it

Pick a scenario. The highlighted path is what actually runs in production.

CustomerReact on VercelCourierPhone browserMidtransPaymentsGitHubPull requestsCloudflareTunnel, TLSJenkinsTest, scan, buildGatewayNGINX GatewayDocker HubImages by SHABackend ×2Spring BootKafkaEventsOracleOrders, outboxRedisRate limits
  1. The customer confirms a quote; the request enters through the Cloudflare Tunnel and the gateway.
  2. The backend saves the order and an outbox event in one Oracle transaction.
  3. The outbox publisher sends the event to Kafka.
  4. The dispatcher consumes it and offers the job to nearby online couriers over WebSocket.

Problems I had to solve

An order is saved but its event never reaches Kafka

Transactional outbox: the order and its event are written in one database transaction, and a scheduled publisher forwards events to Kafka.

Two backend pods, but WebSocket subscribers live in one pod's memory

Each pod reads status and location events with its own Kafka consumer group and forwards them to its own browsers, so every customer gets every update.

Scheduled jobs would run twice after scaling out

ShedLock on the outbox publisher, dispatch sweeper and housekeeping, so only one pod runs each job.

Updates lost while a pod is replaced during a deploy

The client re-subscribes first, then refetches from REST. WebSocket is a notification channel; REST is the source of truth.

Anyone can POST a fake 'paid' notification to a public webhook

Midtrans signature (SHA-512) verification plus a status re-check against the Midtrans API before an order is marked paid.

A bad release reaches the cluster

Jenkins records the running images, rolls out the new SHA, runs a smoke test and restores the previous images if anything fails. I tested it with a deliberately broken image.

Screens

Built with

  • Java 25
  • Spring Boot 4
  • Oracle 23ai
  • Kafka
  • Redis
  • WebSocket (STOMP)
  • React 19
  • TypeScript
  • Leaflet
  • Docker
  • Kubernetes
  • Helm
  • Jenkins
  • SonarQube
  • Prometheus
  • Grafana
  • Cloudflare Tunnel
  • Vercel
  • Midtrans

Other projects

Built during and after the Hacktiv8 bootcamp, solo and in teams.

  • CosFit screenshot

    CosFit 2026

    AI virtual cosplay try-on with Fashn AI, a Gemini full-body photo check, Steam-style community chat and Midtrans payments.

    • Next.js
    • MongoDB
    • Socket.IO
    • Gemini API
    • Docker
  • Kyriegram screenshot

    Kyriegram 2026

    Instagram-style mobile app for iOS and Android with a GraphQL API and Redis-cached feeds.

    • React Native
    • Expo
    • GraphQL
    • Redis
    • MongoDB
  • TripSync screenshot

    TripSync 2026

    Collaborative travel planner: I built the whole backend, Gemini itinerary suggestions and a chat room per plan.

    • Express.js
    • PostgreSQL
    • Socket.IO
    • Gemini API
    • React
  • Waifu Battle screenshot

    Waifu Battle 2026

    Card game with character data from the MyAnimeList API, Gemini-assisted tactics and Google sign-in.

    • Express.js
    • React
    • PostgreSQL
    • Google OAuth

Journey

From radio and satellite networks to building software, newest first.

  1. Sep 2026 – now

    AWS re/Start

    AWS re/Start Cloud Compute

    Orbit Future Academy × AWSStudy

    • Cloud fundamentals, Linux, networking and AWS services.
  2. Apr – Jul 2026

    Hacktiv8

    AI-Enhanced Full-Stack JavaScript Immersive

    Hacktiv8, JakartaStudy

    • Full-time bootcamp; shipped several group and solo web and mobile projects.
  3. Dec 2024 – Mar 2026

    Pasifik Satelit Nusantara

    Network Monitoring Center, Operations & Maintenance

    Pasifik Satelit Nusantara, SATRIA-1Work

    • Monitored the national SATRIA-1 satellite services (backhaul, hub, gateway, reference terminals), triaged alerts and escalated incidents.
    • Troubleshot remote terminals over SSH and Remote Desktop; supported field technicians through the NMS.
    • Owned incident ticketing for Komdigi across all services.
  4. Jun – Aug 2023

    AirNav Indonesia

    IT Technical, On-the-Job Training

    Perum LPPNPI AirNav IndonesiaWork

    • Tested an IoT temperature sensor system and built a UTC reference clock; repaired VHF air-to-ground radio modulation.
  5. Sep 2020 – Sep 2024

    Universitas Pendidikan Indonesia

    B.Eng. Electrical Engineering (Telecommunication)

    Universitas Pendidikan Indonesia, BandungStudy

    • GPA 3.51 / 4.00, cum laude.

Skills

Tools I have used in shipped projects.

Languages
  • Java
  • TypeScript
  • JavaScript
  • Go
  • Python
  • Bash
Backend
  • Spring Boot
  • Node.js
  • Express.js
  • REST
  • GraphQL
  • WebSocket (STOMP)
  • Socket.IO
Frontend & mobile
  • React
  • Next.js
  • TanStack Query
  • Redux Toolkit
  • Tailwind CSS
  • React Native
Data & messaging
  • Oracle
  • PostgreSQL
  • MongoDB
  • Redis
  • Kafka
  • Flyway
  • Sequelize
Testing & quality
  • JUnit
  • Testcontainers
  • Jest
  • Testing Library
  • MSW
  • SonarQube
  • Postman
Platform
  • Docker
  • Kubernetes
  • Helm
  • Kustomize
  • Jenkins
  • Prometheus
  • Grafana
  • AWS
  • Cloudflare
  • Linux

Certifications

Let's talk about your team's next delivery.

I'm looking for a junior software engineer role where I can work on backend or full-stack systems. The fastest way to reach me is email.