esc
Skip to content

06About

From a private game server in junior high to systems companies run on

I started writing code in junior high, in an unusual place to learn: a private game server. I was both a GM and part of the dev team — patching what broke, balancing the in-game economy, and facing players who complained within minutes of anything going wrong. The feedback was blunt and immediate, and it was my first lesson in systems real people depend on.

In high school I started getting paid for the same work: a handful of company websites, built around classes. After graduating I worked at several companies, including one abroad — and that is where I learned what solo projects never teach: writing code someone in another time zone has to read, without me sitting next to them to explain it.

The work is broader now: sites for companies and small businesses alike, web and desktop apps people open every day, and automation running the rest behind the scenes. Full-stack, so the part a customer sees and the part holding it up are both mine — and the seam between them is usually where the trouble is.

What I still watch hardest is failure modes: what happens when a third party stops responding, when someone closes the tab mid-flow, and when two requests land in the same millisecond. Nobody asks about this at the start of a project, yet it is almost always why a system stops being trusted.

Portrait of Tan Paulus

Facts

Location
Jakarta, Indonesia
Languages
Indonesian (native), English (professional)
Focus
Full-stack — web, desktop, automation
Email
halo@tanpaulus.id

Elsewhere

Timeline

Where I learned different things, in order.

  1. Junior high

    GM & dev team — private game server

    Patching a server that kept breaking, balancing the in-game economy, and facing players who complained within minutes. My first schooling in production systems, without calling it that.

  2. High school

    Company websites — freelance

    A handful of company websites, built around classes. The first paid work, and the first deadlines someone else set.

  3. After school

    Developer — several companies, one abroad

    Working inside a team rather than alone. The overseas work forced one habit that stuck: writing so someone in another time zone can follow it without asking.

  4. Now

    Full-stack — freelance, from Jakarta

    Sites and applications for companies and small businesses, plus the automation running behind them. Two slots open per quarter.

How I work

Four things I hold to, and why

Not slogans. These are the calls that repeat on nearly every project, and you feel them in the maintenance bill a year later.

  1. Fail loudly

    A visible failure gets fixed the same day. A silent one surfaces when a customer calls, and by then it costs several times more.

  2. Boring by default

    New technology gets used when there is a reason, not because it is new. Something that has to run three years from now does not need my experiments.

  3. Unprovable claims stay off the page

    This site included. Sections without real data are absent rather than filled with sample numbers — you are welcome to check.

  4. Documentation is part of the work

    Not an extra at the end. If someone else cannot run it again without asking me, it is not finished.

Colophon

What this site is built with

A portfolio that will not say how it was made usually has a reason. Here is mine, version numbers included.

Framework
Next.js 16.3.1
Interface
React 19.2.8
Styling
Tailwind CSS 4, no off-the-shelf UI kit
Bilingual
next-intl 4.13.7 — /id and /en routes, URLs included
Writing
MDX files in the repo, no CMS
Type
Bricolage Grotesque, Instrument Sans, JetBrains Mono
Hosting
Vercel
Live data
GitHub and Spotify, fetched at render time
Analytics
No third parties. The only cookie stores your language choice.

Seen enough?

Tell me what you want built or fixed. I usually reply within one working day.