Skip to content
Ramdan Firdaus
Full Stack EngineerPurwakarta, West Java, IndonesiaOpen to remote roles and freelance projects

From storefrontto factory floor.

I'm Ramdan. For ten years I've built the systems businesses run on: marketplaces, merchant tools, warehouse and factory software. React and Next.js in front, Go and PHP behind.

MOHAMAD RAMDAN FIRDAUS

FS

From

Purwakarta, Indonesia

To

Your next product

Contents

1 × Full Stack Engineer. React, Next.js, Go, PHP.

In service since

2016

Handling

Returns early. Keeps functions small.

MRF 2016 FS ID

10+
years shipping web software, since 2016
4
industries: telecom, food delivery, e-commerce, manufacturing
80%
of the Kick Avenue revamp front end built by me
+30%
unit test coverage added to GrabFood CMS
  • React
  • Next.js
  • TypeScript
  • Go
  • PHP
  • Laravel
  • MySQL
  • Redis
  • GraphQL
  • Tailwind CSS
  • Docker
  • CodeIgniter

01Selected work

Software that people rely on to run their day.

Also shipped

  • Kick Avenue operational portalOne stop portal for buying, selling and stocking operationsKick Avenue
  • Grab developer portalWhere external partners integrate with Grab servicesGrab
  • Grab store frontMerchant restaurant websites with cart, payment and orderingGrab
  • Mangoesky customer portalSatellite internet subscriptions: quota, usage, paymentsTelkomsat
  • Management approval systemFunding, overtime and leave approvals in Vue and CodeIgniterTelkomsat
  • Network monitoring appAndroid app with real time alerts for operations staffTelkomsat

02Approach

Simple rules, applied stubbornly.

  1. 01

    Return early, keep it small

    Early returns and a hard cap on function length, enforced by lint rules. On the Kick Avenue revamp this became the team standard and made bugs easier to find under a tight deadline.

  2. 02

    Protect the invariant

    Stock never goes negative. A lot never skips a stage. I put rules like these in one guarded entry point (a transaction, a row lock, a state machine) instead of hoping every caller remembers.

  3. 03

    Own it end to end

    I'm comfortable taking a feature from the database schema to the last pixel, and from a legacy codebase with no docs to a system the next engineer can actually read.

stock-service.ts
1function recordStock(book, qty) {
2 if (!book) throw new Error("Book not found");
3 if (qty <= 0) throw new Error("Invalid quantity");
4 if (book.stock - qty < 0) throw new Error("Negative stock");
5
6 return save(book, qty);
7}
Guards first, happy path last. Reads top to bottom.

Toggle the tabs. Same behavior, very different reading experience.

03Experience

Ten years, four companies, one habit: ship it and own it.

Oct 2025 → Now

Ayo Indonesia

Senior Software Engineer

Remote

Sports venue booking and community app.

  • Build and maintain core product features across booking, checkout and payment flows.
  • Integrate and support third party services, including payments, so transactions stay reliable end to end.
  • Fix bugs, refactor and tune performance alongside product, design and QA.

Aug 2023 → Oct 2025

Kick Avenue

Full Stack Engineer

Jakarta

Marketplace for authentic sneakers and collectibles.

  • Led the front end of a full system revamp, building about 80% of the user facing components in Next.js and TypeScript.
  • Designed a modular component system shared by the public marketplace and the internal CMS.
  • Built wallet top up and cash out endpoints in Go, integrated with a payment gateway.
  • Kept the legacy Lumen and React platform healthy with little documentation to lean on.

Next.js · TypeScript · Tailwind CSS · Zustand · React Query · Go · Lumen · MySQL

Jun 2019 → Aug 2023

Grab

Full Stack Web Developer

Jakarta

GrabFood merchant and operations tooling.

  • Shipped merchant self service features that cut operations workload and raised partner engagement.
  • Raised unit test coverage on GrabFood CMS by 30%.
  • Built a self management portal for service availability config, backed by Go services, so ops no longer needed engineering.
  • Worked across menu management, the developer portal and merchant store fronts with React, Redux and GraphQL.

React · TypeScript · Redux · GraphQL · Go · Ant Design · Jest

Feb 2016 → Jun 2019

Telkomsat

Full Stack Developer

Bogor

Satellite telecommunications, internal systems and customer portals.

  • Built a management approval system (Vue and CodeIgniter) for funding, overtime and leave requests, replacing manual workflows.
  • Led the front end of the Mangoesky customer portal: quota monitoring, speed tracking and transaction history.
  • Built an electronic reporting and finance system for operational funding and cash flow.
  • Shipped Android apps for customer quota management and for network monitoring with real time alerts.

PHP · CodeIgniter · Vue · jQuery · MySQL · Android (Java)

Toolbox

Front end

Where I've spent the most hours

  • React
  • Next.js
  • TypeScript
  • Redux Toolkit
  • Zustand
  • React Query
  • Tailwind CSS
  • Ant Design
  • GraphQL
  • SCSS / Less

Back end

APIs, business rules and data

  • Go
  • Echo
  • PHP
  • Laravel / Lumen
  • CodeIgniter
  • MySQL
  • Redis
  • REST API
  • AWS SQS
  • MQTT

Tooling

How it gets shipped

  • Docker
  • GitHub Actions
  • Jest
  • PHPUnit
  • Webpack
  • Vite

Working exposure

Used inside existing setups, not owned

  • Kubernetes
  • Terraform
  • ArgoCD
  • Kafka

Education

  • 2016 → 2019IPB UniversityB.Sc. Computer Science
  • 2012 → 2015IPB UniversityDiploma, Computer Engineering

04Contact

Got a system that has to just work?

I enjoy the unglamorous parts: stock ledgers, payment flows, legacy code nobody wants to touch. If that is what you need built or fixed, let's talk.

Purwakarta, West Java, Indonesia