portfolio.

Showcase of my craft.

Crafting strong systems requires skill — and skill comes from hard-won experience

Used programming language

JavaScript, Golang, Java, Clojure, Ruby, Python

Built systems on top of

Apache Flink, Apache Kafka, Websocket, Rest, BigQuery, PostgreSQL, React, Kubernetes, Terraform, GCP, MaxCompute

Systems I've crafted

Web UI, Data Ingestion, Analytics, ETL, Deployment solution, Streaming Engine

7+

Years in Engineering

3 Mio +

Of Dollars Saved From Successful Projects

50+

People Mentored

raystack goto yabb purwadhika

organizations where I honed my craft as engineer and mentor

Data Streaming Platform

In an organization that heavily adopts Apache Kafka and event-driven architecture, Kafka events become a critical asset — enabling the development of various applications that react to real-time data.

However, not every developer wants or needs to interact with Kafka directly. To make Kafka more accessible and unlock its full potential across the organization, we built a platform called Firehose.

Firehose simplifies Kafka consumption by exposing events through a familiar interface: HTTP webhooks. Developers can use a self-serve UI to select the Kafka events they want to subscribe to, and Firehose will automatically deliver those events to their configured webhook endpoint. It also handles scaling, monitoring, and lifecycle management out of the box — all self-serve from the UI.

While Firehose empowers teams to consume events using their own logic, we also built Dagger — a no-code stream processing platform. With Dagger, developers can transform Kafka events using SQL, without writing or deploying custom application code. Dagger powers many critical systems, including supply-demand aggregation for surge pricing, fraud detection, and ad impression pipelines — all through declarative SQL, without the overhead of managing services.

〡
low complexity

Real-Time Fraud Detection Migration Support

[Java Apache Flink Apache Kafka]

Migrated fraud detection rules from batch to stream processing, enabling immediate fraud detection through Apache Flink. Improved system responsiveness and detection accuracy.

〢
mid complexity

One-Click Deployment Solution

[Nodejs Javascript]

Developed a one-click deployment tool to simplify and streamline application release workflows, reducing manual steps and improving developer productivity.

〢
mid complexity

Stream Processing Platform Enhancements

[Java Apache Flink Kafka]

Maintained and extended a Flink-based stream processing platform. Developed custom UDFs and introduced long-window aggregation support to meet complex analytics needs.

〢
mid complexity

Firehose Monitoring Improvements

[Telegraf Influx Grafana]

Improved observability of Firehose by enhancing monitoring and metrics collection. Enabled better support for multiple sinks through Telegraf and InfluxDB instrumentation.

Clickstream Ingestion

Clickstream data is essential for marketing analytics and product development. However, collecting and managing this data presents several challenges. The ingestion system must be scalable to handle the high volume of user-generated events. It must also support flexible schemas to accommodate variations across event types. Additionally, the high frequency of incoming data requires careful selection of the communication protocol to ensure efficiency.

To address these challenges, we developed a clickstream ingestion platform called Raccoon.

Raccoon is a horizontally scalable, Go-based service that ingests clickstream data over the WebSocket protocol. It receives events from clients and routes them to Kafka topics for downstream processing. Built for scale and flexibility, Raccoon became the foundation for Gojek’s internal clickstream pipeline — enabling the company to replace a third-party SaaS solution that previously cost over $5 million USD annually.

〣
high complexity

Raccoon implementation

[Go WebSocket Apache Kafka]

Developed a Go-based ingestion service to collect clickstream data via WebSocket and forward it to Kafka. Built according to a technical RFC and designed to scale for petabytes of daily traffic per data partition. Later extended to support additional protocols.

〢
mid complexity

Open-Source Raccoon

[Go Kafka WebSocket]

Open-sourced the Mercury ingestion service as [Raccoon](https://github.com/goto/raccoon), enabling broader community use for scalable event ingestion. Contributed to documentation, production hardening, and feature generalization to support various protocols.

Customer Segmentation Engine

Being able to define customer segments based on user behavior and attributes is essential for effective marketing. Traditionally, creating these segments requires marketers to identify data sources, write SQL queries, and manually execute them — a process that is tedious, error-prone, and time-consuming.

To remove this burden, we developed the Customer Segmentation Engine — a system that enables marketers to define segments declaratively based on customer properties and past behaviors, without writing SQL. Once defined, a segment can be executed to generate a list of customers who match the criteria. Segment definitions are reusable and can be saved for future campaigns, allowing marketers to focus on evaluation and optimization rather than data wrangling.

The engine accepts a segment definition in JSON format. When executed, it compiles the definition into SQL, runs the query, and prepares the result as downloadable CSV files. The engine supports complex logic including nested conditions, logical operators, time-based user behavior filters, and inclusion/exclusion rules.

This system has become a foundational tool for segmentation across the organization, saving hundreds of hours in manual effort and significantly accelerating campaign execution.

〣
high complexity

Rule-Based User Segmentation Engine

[Golang PostgreSQL BigQuery]

Designed and developed a scalable user segmentation engine to power marketing use cases. Replaced a 3rd-party tool, resulting in millions of dollars in annual savings.

Clickstream Analytics Redesign

An internal platform was developed to support analytics on top of clickstream data, primarily for product analytics. It allowed users to visualize trends, build dashboards, browse a catalog of clickstream events, and trace individual user activity.

While the platform had some adoption, it suffered from critical issues:

  • Trend data was often inaccurate and stale.
  • The event catalog was frequently outdated.
  • User-level event tracing was extremely slow and frustrating to use.
  • The support channel was overwhelmed with complaints and bug reports. To address these challenges, I led a full system redesign. After the redesign:

Data accuracy was significantly improved, restoring trust in reported metrics.

  • System latency was reduced from minutes to seconds.
  • Data freshness is now near real-time.
  • The event catalog is automatically and reliably updated.
  • Support requests dropped to nearly zero. The result was a much more stable, performant, and trustworthy platform — enabling the product to grow further.
〣
high complexity

Analytics Platform Redesign

[Golang BigQuery PostgreSQL]

Redesigned key features of an internal analytics platform by identifying and resolving performance bottlenecks. Improved performance and significantly reduced operational costs.

A/B Testing Platform

A/B testing allows product teams to optimize experiences based on data rather than assumptions. To enable this, an internal A/B testing platform was developed.

The platform provides:

  • Remote configuration, allowing teams to control feature behavior without deploying new code.
  • Traffic splitting, enabling controlled experimentation across user segments.
  • Data collection, where all traffic assignments are logged for downstream analytics and experiment evaluation.

This platform empowers product managers to run experiments at scale, make data-driven decisions, and iterate quickly based on measurable impact.

〢
mid complexity

UI Revamp Implementation

[React Golang]

Revamped the UI of an internal A/B testing platform, significantly improving usability and user experience for experiment owners and analysts.

〣
high complexity

In-House Experimentat Analytics Platform

[Go BigQuery PostgreSQL]

Collaborated with the experimentation team to reverse-engineer Eppo and design an in-house experimentation analytics platform. Led system design and oversaw implementation, replacing a third-party solution with a custom architecture tailored to internal needs.