Senior Frontend Developer at tiket.com

I build the frontend platform other teams ship on.

Senior Frontend Developer at tiket.com, Indonesia's largest travel platform. Ten years on design systems, micro-frontend architecture and web performance for products used by millions.

10+
Years in frontend
5
Squads shipping independently
~40%
Off booking funnel load time
80%+
Test coverage held in CI
  • React
  • TypeScript
  • Next.js
  • Module Federation
  • Design Tokens
  • Web Performance
  • Accessibility

What I work on

Design systems

Tokens as the contract

Colour, type and spacing settled first, so components have something stable to compose against. The chips below are this site's own token layer — they re-resolve when you switch theme.

  • canvas
  • surface
  • raised
  • line
  • muted
  • text
  • accent
Portrait of Dio Adhita Saputra

Dio Adhita Saputra

Jakarta, Indonesia

UTC+7

Performance

−40%

Off booking funnel load time, measured in the field on mid-range Android rather than in the lab.

  • SSR above the fold
  • Route-level splitting
  • Bundle audit
  • Field Core Web Vitals

Architecture

Five squads, five release cadences

Module Federation split on product domains rather than technical layers, behind one shell that owns routing, auth and the design-system runtime.

App shell — routing · auth · design-system runtime

  • Flights
  • Hotels
  • Trains
  • Events
  • Account
01Selected work

Three things I own, written up as decisions

Most of this lives inside tiket.com and cannot be linked to, so these are the trade-offs rather than screenshots. Every number here is one I can defend in an interview.

01tiket.com · 2020 – present

A design system five squads actually adopted

One of the initiating engineers on the company design system, from the token layer up to the components now running across internal and customer-facing apps.

The problem
Flights, hotels, trains and events each carried their own buttons, date pickers and form patterns. Every new surface restarted the same interface decisions, and the drift between squads was permanent rather than occasional.
What I did
  • Settled the token layer first — colour, type and spacing as the contract — so components had something stable to compose against.
  • Designed the component API surface before writing components, treating it as a public interface that would be expensive to change later.
  • Documented everything in Storybook with strict typing and visual regression, so adoption did not depend on me being in the room to explain it.
  • Ran the migration alongside product delivery rather than asking for a freeze, which meant accepting a long tail of legacy patterns.
Where it landed
Reusable components adopted across multiple internal and customer-facing applications. New surfaces now start from the system instead of from scratch.
  • React
  • TypeScript
  • Storybook
  • SCSS
02tiket.com · 2021 – present

Letting five teams deploy without a release train

A micro-frontend architecture on Webpack Module Federation, drawn around product domains rather than technical layers.

The problem
A single frontend deployment coupled every team to the same release. One squad running late held everyone else back, and the cost of that coordination grew with each team added.
What I did
  • Split on product domain boundaries rather than technical layers, so a team owns a whole user journey instead of a slice of the stack.
  • Built a shared shell that owns routing, auth and the design system runtime, keeping the seams invisible to users.
  • Pinned and shared the heavy dependencies so five independently built bundles do not ship five copies of React.
  • Accepted a slightly larger total payload in exchange for release independence, then put a performance budget in CI to keep that trade honest.
Where it landed
Five product teams build, version and release their areas of the app independently.
  • Webpack 5
  • Module Federation
  • React
  • Next.js
  • Docker
03tiket.com · 2022 – present

Taking roughly 40% off load time on a booking funnel

Platform-wide performance work on a flow that is data heavy by nature and mostly used on mid-range Android over mobile data.

The problem
Travel search is expensive: large result sets, third-party scripts, and a funnel where every extra second costs conversion. The slow paths were spread across the platform rather than concentrated in one bad page.
What I did
  • Server-rendered what mattered above the fold and deferred the rest, so the funnel became useful before it became complete.
  • Split bundles at the route level and lazy loaded everything below the fold.
  • Audited the bundle for duplicated and oversized dependencies, which is usually where the easy weight hides.
  • Tracked Core Web Vitals in the field rather than lab scores, because the lab never sees a mid-range phone on a bad connection.
Where it landed
Around 40% reduction in page load time, with Core Web Vitals improving across the platform.
  • Next.js
  • Webpack
  • React
Side projectLive · public

LRT Jabodebek Route & Schedule

A web app for checking the next LRT Jabodebek departure, plus full schedules, routes and fares. Built because working out when the next train actually leaves was harder than it needed to be. Small, fast, and the one piece of my work anyone can open.

lrtroute.my.id
  • Next.js
  • TypeScript
  • Tailwind CSS
02Experience

Ten years, four teams

  1. Oct 2019 – Present

    tiket.com

    Senior Frontend Developer

    Beyond the work above: built the event organiser partner portal with realtime QR scanning that clears thousands of redemptions a day, held test coverage above 80% behind automated CI/CD which halved the defects reaching production, and mentor juniors on the team's frontend and code review standards.

  2. Oct 2017 – Oct 2019

    Urbanhire

    Frontend Developer

    Recruitment platform features used by more than 100 companies to run their hiring. Helped set the frontend coding and review standards, and cut page load time across the main product surfaces.

  3. Dec 2015 – Oct 2017

    IndoTrading.com

    Frontend Developer

    Responsive interfaces for a B2B marketplace connecting Indonesian SMEs with international buyers. A lot of the work went into performance and on-page SEO, where organic search was the whole growth channel.

  4. Nov 2014 – Oct 2015

    Sukamol

    Graphic Web Designer

    Web design and visual assets for client projects at a creative studio, then building them out as working frontend interfaces.

03About

I got here the long way round. My first job title was graphic web designer, and I still think the most interesting problems in frontend sit where design decisions and system decisions meet — which is most of why design systems stuck.

These days the work I care about is the layer underneath the product: the tokens, the boundaries, the budgets. Not the glamorous part, but it decides how fast everyone else gets to move.

Based in
Jakarta, Indonesia
UTC+7 — a full working day of overlap with Singapore, most of a morning with Europe.
Education
Bachelor of Information Technology
BINUS University · 2011 – 2015
04Contact

Happy to talk about design systems, frontend platforms, or making slow things fast.