Kefas Kurnia JonathanSoftware Engineer, Informatics @ ITB, Bandung.

Nothing I have built was right the first time.

Not one. Every system I have shipped went out, met the people who had to use it, came back wrong, and got rebuilt. I have stopped treating that as bad planning. It is most of the work.

What follows are some of the rooms I ended up in. They have almost nothing in common: a state-owned insurer, a careers platform, a lecture hall. The work changed completely in each one. The way I worked did not.

Mataram, August 2026

The branch office is an old Dutch house, shutters and high ceilings. Class three, one of the smallest in the network. I am at the front of the room explaining how to log a field visit.

Every visit needs a photo taken inside the app. In the version they had been using, that photo never reached the phone gallery. So when something failed and they had to prove the visit happened, they had nothing to show.

Two phones. One holding up the preview, the other photographing that screen. They had been working this way for months without reporting it, because to them it was not a fault. It was how the job worked.

“Jadi kami foto layarnya, Mas. Pakai HP satu lagi.”
Field staff, class three branch office. Mataram, August 2026.

Askrindo head office, July 2026

Second review round with the policy and legal teams. I came to demo the approval flow: twelve stages, reviewers resolved from the document hierarchy, signing in a fixed order. It ran cleanly.

Not a document I had modelled, and not a line in any brief I had been given. At Askrindo a decision is not a decision until a memorandum sits beside it, and that has been true for longer than anyone in the room could remember.

Everything in my flow was correct. It was also useless to them. That is not something a requirements document tells you. Somebody has to say it out loud.

“Tiap tahap harus ada memorandumnya.”
Policy and legal team, second review round. Askrindo head office, July 2026.

Sahabat Karir Indonesia

They needed to leave WordPress. The obvious move was to hand them a cleaner CMS. But the staff publishing those pages were not technical, and they already had a way of working that was theirs, imperfect but real.

So the editor got shaped around the habit instead of the other way round. Drag and drop, straight to production. Then I wrote the help documentation myself, because a system nobody can operate without asking one specific person is not finished.

A page of the CMS help documentation, with a table of contents and numbered steps
The help documentation I wrote for the CMS.

Software Engineering Lab, ITB

Two hundred students, one assignment, and the spec had been up for a week already. We booked a room anyway and went through it in front of them, taking turns at the laptop.

Most of the hour was questions. The same three or four kept coming back, which meant those parts were not unclear to one or two people, they were just unclear. I had written that section. We fixed the wording, then the rubric behind it, because a team of assistants marking 200 submissions has to be marking against the same thing.

At the front of a lecture room, going through the assignment brief with two hundred students
Going through the assignment with them, before anyone had started it.

In every one of those rooms the same thing worked. Build something, put it in front of the people who have to live with it, and let them tell you what is wrong with it.

M-BIS

Marketing Business Intelligence System, Askrindo, 2026

One Flutter codebase on Android, iOS and web. 60+ screens, 36 REST controllers, 600+ users, 12 roles. Pipeline, field visits, commissions, premium calculation, dashboards. Presented to the Director of Business, then rolled out and trained across three provinces.

“Kepala cabang nggak boleh lihat angka cabang sebelah. Itu sensitif banget.”Network Management Staff

Territory isolation on the server

Each of the 12 roles sees only its own territory, and the server is what decides that, not the client.

“Laporan kunjungan bisa diisi dari rumah. Nggak ada yang tahu bedanya.”Head of Network Management

GPS check-in on field visits

A visit is logged where it happened, so the pipeline data means something.

“Yang di kantor pakai desktop, yang di lapangan pakai HP. Jangan sampai beda isinya.”Head of Network Management

One codebase, three platforms

Android, iOS and web run from a single Flutter codebase across 60+ screens, so a change lands everywhere at once.

“Hitungan komisinya beda sama punya saya. Saya masih pegang Excel sendiri.”Relationship Manager

Commission and premium calculation

One rule set in one place, so nobody needs to keep a private spreadsheet to check it.

What only showed up in the room

How it worked before

Every field visit needs a photo taken inside the app. In the system they had been using before mine, that photo never reached the phone gallery.

What they were doing

When something failed and they had to prove a visit happened, they had nothing to show. So they photographed the preview on the screen using a second phone. This had been going on for months. No ticket was ever filed, because nobody in the branch treated it as a fault.

What changed

Visit photos now save to the device gallery as they are taken, so the evidence exists outside the app. A small fix. It came out of standing in a class three branch office in Mataram, and it would not have reached me any other way.

Lexicon

Regulatory repository and approval system, Askrindo, 2026

A paper policy process across 23 divisions, moved into a 12-stage digital workflow. Next.js, Spring Boot, PostgreSQL. Built end to end and presented to the Director of Compliance, Human Capital and Risk Management.

“Tiap tahap harus ada memorandumnya.”Policy and Legal Team

Memorandum at every stage

All twelve stages carry a memorandum upload alongside the reviewed document, matching how decisions have always been recorded here.

“Kalau dokumen induknya dipindah, turunannya ilang entah ke mana.”Policy and Legal Team

Pohon Kebijakan

A policy tree ordered by index code. Move a parent and its children re-file themselves underneath it.

“Kalau ada draft kebijakan bocor keluar, kami harus tahu bocornya dari siapa.”Division Head

Per-reader watermark

Every PDF is stamped with whoever opened it, at the moment they opened it.

“Tag-nya jangan dikunci di kode. Kategori kami berubah tiap tahun.”Division Head

Admin-managed tag list

They edit the list themselves, without waiting for a deploy.

Other rooms

Shorter entries, same shape. Somebody needed something, and something changed because of it.

Sahabat Karir Indonesia

CMS expansion. Next.js, TypeScript.

Non-technical staff needed to publish without waiting on a developer, and without leaving the way they already worked.

A drag-and-drop page editor that ships straight to production, plus built-in documentation so daily work stopped depending on whoever knew the internals. Moved the organisation off WordPress.

Rumah Amal Salman

Blockchain donation tracker. Next.js.

Donors give and then hear nothing back, so the next donation gets harder to ask for.

A tracking view that follows a donation through a blockchain-backed timeline. The visual tone was the hard part, because it had to read as accountable rather than as a fintech launch.

Nimonspedia

Marketplace and auction platform. React, Node.js, PHP, PostgreSQL.

Bidders need to see the same number at the same moment, or the auction is not really an auction.

A Socket.io server with Redis sessions for live buyer and seller chat and real-time bidding, on top of cart, checkout, order tracking and a seller dashboard. Built Dockerised, in a three-person Agile team.

km.itb.ac.id

Head of Frontend Division, KM ITB. 2024 to 2025.

Seven people were about to build seven versions of the same button.

Owned layout, design tokens and the shared component library, plus search and filtering across the organisation directories. Split an 84-story-point backlog into four sprints and reviewed every pull request.

Software Engineering Lab

Head Coordinator, STEI ITB. 2025 to present.

Two hundred students were being graded by a team of assistants who each had their own idea of what good meant.

Built the assessment framework for the core SE course and evaluated projects end to end. Mentored students in Intro to SE and Project Management on turning requirements into system designs.

Inkubator IT

Vice CEO, 2026 to present. Product Designer, 2025 to 2026. HMIF ITB.

A student-run software house takes real B2B money, which means clients expect real delivery.

Co-lead operations and C-level recruitment, and advise project teams on execution. Before that, ran the UI/UX lifecycle for Sentral Sistem Laboratory and the Inkubator IT site, working alongside the frontend developers who had to build it.

Arkavidia 10.0

Head of People Management and Development. HMIF ITB.

A 200-person committee runs on whether people know what is expected of them.

Ran recruitment, registration and performance evaluation for ITB's largest IT event, with evaluation metrics written down and visible to everyone being measured by them.

Papers

Course papers, archived publicly by the informatics faculty. All three came out of the same habit: taking something I follow closely and asking what an algorithm would say about it.

Penyelesaian Squad Building Challenge pada Permainan FC25 dengan Penerapan Algoritma Backtracking

Backtracking as a constraint satisfaction solver, picking a valid eleven from a dataset of 18,000+ players. Pruning invalid branches brought it under 0.1 seconds.

Algorithm Strategy, June 2025. Written in Indonesian.

Read the paper

Penjadwalan Liga Sepak Bola Menggunakan Pewarnaan Graf untuk Meminimalkan Konflik Jadwal

Graph coloring applied to fixture scheduling, treating nearby stadiums as conflicting nodes. The chromatic number gives the minimum number of conflict-free matchdays for the Premier League and LaLiga.

Discrete Mathematics, January 2025. Written in Indonesian.

Read the paper

Analisis Tingkat Kompetitif Liga Sepak Bola Menggunakan Entropi Singular Value Decomposition pada Data Klasemen

SVD and entropy over end-of-season tables, measuring how evenly strength is distributed across five European leagues. The Premier League came out as the most evenly matched of the five.

Linear Algebra and Geometry, December 2024. Written in Indonesian.

Read the paper

Built to learn something

Course projects. None of them run in production, which is the whole point of them. They exist so the fundamentals ended up in my hands instead of only in my notes.

Background

Institut Teknologi Bandung

B.Sc. Informatics Engineering, July 2023 to present. CGPA 3.73/4.00.

Coursework

Software Engineering, Algorithm Strategy, Algorithms and Data Structures, Artificial Intelligence, Database Systems, Mobile Application Development, Object-Oriented Programming, Website Development.

CIMB Niaga Scholarship, 2025 to 2027

Selected from more than 25,000 undergraduate applicants nationally, through a multi-stage assessment and interview process.

Finalist, BizzIT COMPFEST 17

Top 8 nationally in a business-IT case competition, delivering system architecture, feasibility roadmap and prototype.

Finalist, Mini UI/UX Competition by BEM UI, 2024

Designed Classync, an app for keeping a classroom whiteboard and every student device in sync in real time.

Elsewhere

Group photo under the mirrored sculpture in an airport concourse
Ahsan's farewell - Jakarta, 2026
A group standing on the sand at sunset, headland behind them
That one trip - Batukaras, 2026
Two of us at an event, pointing at each other for the camera
Proud brother - Bandung, 2026
Standing against a bench by a lake on an overcast day
Best badge, best place - Nara, 2025
The scholarship cohort lined up on stage at the CIMB Niaga programme
Special people - Bogor, 2026
Four of us outside an Askrindo branch office
First branch - Serpong, 2026
A group sitting along the edge of a campus building above the pool
Day ones - Bandung, 2026
The team on a tennis court, rackets up
Athletic, ain't we? - Bandung, 2026
Four of us on stage in front of the Arkavidia screen
Proud head @ Arkavidia - Bandung, 2026
Six friends posed together for a photo
Softeng lab peeps - Bandung, 2026
A group outside a branch office
Small yet memorable - Mataram, 2026
At the Bumi Cime Niaga sign
Breeezy~ - Bogor, 2026
In the pool after dark, cafe lit up behind
Hot spring time! - Subang, 2026
Three of us on the shore, the bay and the bridge behind
Dad vibes - Makassar, 2026
God's beautiful creation - Lombok, 2026
A long table of people partway through lunch
Birthdayssss - Bandung, 2026

If your process only exists in people's heads, that is the part I like.