RezaJuliandri

Senior Backend Engineer / backend · automation · machine learning

I build the half of the product nobody sees: request handling, database schemas, background jobs, and integrations that have to stay correct on the worst day of the month. Nine years of it, now as senior backend engineer on fraud and trust infrastructure at Kredibel, and tech lead of Tunelab on the side.

rezajuliandri.my.id/api ·

curl -s https://rezajuliandri.my.id/me


          

currently
Kredibel · Tunelab · Anadex
based in
Tangerang, ID
shipping since
2017 · 9+ yrs
writes
PHP · TypeScript · Swift
01about

The unglamorous half of the product.

Nobody opens an app to admire a well-normalised schema. They open it because the thing loaded, the number was right, and the request they sent last night actually went through.

Reza Juliandri
reza juliandritangerang, id

I work on the parts of software most users never see but rely on every day: REST APIs, automation pipelines, database performance, and the glue that keeps data flowing reliably between services.

I've been at Kredibel since 2018, working on fraud and online trust for an audience in the millions. I started part-time as a software engineer and I'm now senior backend engineer. Most of my time goes to relational data modelling, API design, query and index tuning, auth and token handling, and drawing boundaries between systems so that one team's bad day doesn't become everyone's.

Since late 2025 I've also been co-founder and tech lead at Tunelab, building Nada, which is where I get to own the whole stack: a provider-agnostic sync layer, and the analytics, email, and content infrastructure behind it, all running on Cloudflare Workers. Along the way I've interned on the financial services team at Traveloka and built an English assessment platform for the Indonesian civil aviation academy at Arxist.

I also teach, across three programs: Bangkit Academy, a joint program from Google, GoTo, and Traveloka, plus Tempa and Asah, both led by Dicoding. Well over a hundred students in mobile and backend development so far, which is the fastest way I know to find out whether you actually understand something.

based in
Tangerang,
Indonesia
focus
Backend
Automation
Machine learning
writes
PHP
TypeScript
Swift
experience
9+ years
since 2017
02systems

How I usually build.

Two shapes I keep coming back to. One sits on servers behind Nginx, with Laravel doing the work and PostgreSQL and Redis behind it. The other lives entirely on Cloudflare's edge. Different tools, same job.

fig. 01 · the server-side shape scroll horizontally on small screens →
fig. 02 · the edge shape scroll horizontally on small screens →

01Loose coupling

Every API gets built as decoupled as I can manage. Some land on a clean architecture, others on a plain layered one, but a controller never learns how the data is stored.

02Migrations

Schema changes land next to live feature work, so every one ships with a migration strategy and a cutover safeguard. Normalising profile and watchlist data meant reshaping tables without asking the team to stop.

03Auth & errors

The failure path gets the same care as the happy path. JWT handling, refresh token rotation, and masked errors, so that a stack trace never turns into a disclosure.

04Coverage

Controller tests and 80%+ automated coverage are not a badge; they are what makes shipping continuously survivable. Regressions should be caught by the suite, not by users.

02.1code

What I mean by clean.

Not a style guide about brace placement. A standard about cognitive load: one responsibility per function, one level of abstraction, and nothing left for the person reading it in six months to hold in their head. Same rules in review as in my own branches.

before 5 levels deep · does five things
public function handle($request)
{
    if ($request->has('email')) {
        $user = User::where('email', $request->email)->first();
        if ($user) {
            if ($user->status === 'active') {
                $rows = [];
                foreach ($user->accounts as $account) {
                    if ($account->verified_at !== null) {
                        $rows[] = ['id' => $account->id];
                    }
                }
                return response()->json($rows);
            }
        }
    }

    return response()->json(['error' => 'not found'], 404);
}
after 1 level · needs no comment
public function verifiedAccounts(Request $request): JsonResponse
{
    $user = $this->users->activeByEmail($request->email);

    if (! $user) {
        return $this->accountNotFound();
    }

    return response()->json(
        $this->accounts->verifiedFor($user)
    );
}
abstraction
One level per function. A function says what happens; the ones it calls say how. No reader should have to change altitude mid-function.
length
Under 20 lines. Past 30 it is not a long function, it is several functions sharing a name.
nesting
One level preferred, 3 is the ceiling. Guard clauses and early returns instead of an if/else staircase.
naming
Names carry intent. No handle, process, manager, util, and no abbreviations that save four characters and cost a lookup.
conditionals
A boolean expression nobody can read becomes a function with a name that reads. if (shouldRetryRequest($response)), not four operators in a row.
comments
A comment explaining what the code does is a naming bug. Comments earn their place only for rationale, constraints, and decisions the code cannot state.
dependencies
They point inward. Domain logic never reaches out to infrastructure; transport, persistence, and presentation stay on their own side of the line.
the test
A top-level function should be understandable in 15 seconds without opening a single helper. If it is not, I extract before I ship.
03work

Selected projects.

Backend work photographs badly, so the screenshots are the least interesting part; the stack and the shape underneath each one are the point. Click any image to enlarge it.

Kredibel

A fraud and trust platform helping Indonesian consumers avoid scams, and helping businesses onboard verified users in line with regulation.

platform totals, published on kredibel.com

scam reports
283,099+
blacklisted
177,910+
losses since 2018
Rp424.6B+
role
Senior Backend Engineer
years
2018 – present
scope
API design · query & index tuning · internal apps · integrations
mobile · internal · web ─▶ nginx ─┬─▶ laravel ─▶ postgresql · redis └─▶ flask · scraping
LaravelLumenPostgreSQL PythonFlask RedisNginxFilament

Nada by Tunelab

The product I co-founded and lead the engineering for: composing music by humming. The sync layer is provider-agnostic by design, with remote sync interfaces, cursor-based state, an offline queue, and conflict snapshots, all running on our own Cloudflare Workers backend.

product totals to date

registered
1,043
paid
30+
projects
2,000+
tracks
3,800+
role
Co-Founder · Tech Lead
years
Nov 2025 – present
scope
Sync architecture · analytics · email & content infra
ios (swiftui) ─▶ worker (hono) ─┬─▶ D1 · KV └─▶ R2 · Queues · Email
SwiftUIHono Cloudflare WorkersD1KV R2QueuesEmail ReactRevenueCat

Anadex

A companion app for arcade trading card collectors: catalogue what you own, scan a barcode to log it, and keep a record of every session. Built and shipped alone, from the Cloudflare backend to the Android client, with a payment gateway live in production on an approved merchant account.

product totals, two months in

users
191
active 7d
15
cards catalogued
1,461
scans
419
role
Founder · sole engineer
years
Jun 2026 – present
scope
Sequence alignment · barcode scanning · live payments · Android client
web · android ─▶ worker (hono) ─┬─▶ D1 · R2 └─▶ oauth · payments
Cloudflare WorkersHonoKotlin D1R2React Jetpack ComposeML KitCameraXDuitku

English Electronic Assessment

·

An assessment platform for Politeknik Penerbangan Indonesia Curug, digitising placement and evaluation of English proficiency for cadets.

role
Software Engineer @ Arxist
years
2020 – 2021
scope
Laravel backend · front-end integration
vue client ─▶ laravel api ─▶ database
LaravelVue.js

A final project connecting pet owners with adopters. One API serving two very different clients, which is where most of the interesting decisions lived.

role
Full-stack
scope
REST API · web client · Android app
nuxt web ─┐ ├─▶ laravel rest api android ─┘
LaravelNuxtJSAndroid

Clinic Web App

·

A clinic management tool for the Inspectorate General of Indonesia's Ministry of Education & Culture, covering medical records, lab tests, and medication inventory in one place.

role
Full-stack
domain
Records · lab results · inventory
server-rendered app ─▶ laravel ─▶ database
LaravelBootstrap

Bangkit Academy 2022 capstone, built with Machine Learning and Cloud Computing students. Selected among the top 53 projects across the cohort.

role
Mobile (Kotlin)
team
Mobile + ML + Cloud Computing
result
Top 53 capstone, cohort-wide
KotlinMachine LearningGoogle Cloud

More on GitHub · @ppabcd

04experience

Where I've worked.

Production systems, and the classrooms that kept me honest about how they work.

  1. Aug 2018 – Present
    8 yrs · 5 roles

    Kredibelcurrent

    PT. Kredibel Teknologi Indonesia · Remote

    1. Senior Backend Engineer full-time Feb 2026 – Present
      • Design and evolve relational data models in PostgreSQL for profile and watchlist normalisation, including migration strategy and cutover safeguards.
      • Refactor the Laravel backend around clearer service and DTO layers, and expand controller test coverage to hold regressions down under continuous delivery.
      • Harden auth: JWT best practices, refresh token handling, and secure error masking so failures don't leak anything sensitive.
      • Modernise internal Python services: Python 3.13 and Docker-based containerisation for consistent dev and deploy environments.
    2. Backend Engineer contract Feb 2025 – Feb 2026
    3. Backend Engineer full-time Jan 2023 – Feb 2025
      • Owned the API surface for the business and mobile products, working alongside the frontend and mobile teams.
      • Kept 80%+ automated test coverage on backend code while shipping new features.
      • Monitored and improved performance and security of backend systems continuously.
    4. Back End Engineer part-time Apr 2022 – Aug 2022
      • Ran the Business API and Mobile API on a customised Lumen setup that made day-to-day development faster.
    5. Software Engineer part-time Aug 2018 – Apr 2022
      • Built the APIs behind the mobile and web apps, standardising responses against Google and Facebook API conventions.
      • Migrated a legacy application onto a current Laravel version.
      • Built the billing and payment system for Kredibel Business and Enterprise, and owned the Business database structure.
  2. Nov 2025 – Present
    10 mos

    Co-Founder · Tech Leadcurrent

    Tunelab

    • Architected a provider-agnostic sync foundation (remote sync interfaces, cursor-based sync state, offline queue handling, and conflict resolution snapshots) running on our own Cloudflare Workers backend.
    • Built the internal analytics dashboard on Hono, Cloudflare D1, and React (Vite), pulling product and growth data into one place.
    • Built email campaign infrastructure on Cloudflare Email, Queues, and D1, with unsubscribe routing and subscription deduplication.
    • Fixed RevenueCat event duplication and stale dashboard state to keep subscription reporting consistent per user.
    • Built markdown-based content tooling on Hono, Cloudflare R2, and React: media uploads, CDN browsing, image compression, soft-delete/restore.
  3. Jun 2026 – Present
    2 mos

    Founder · Sole Engineercurrent

    Anadex · NgideIn

    • Shipped the whole product alone: a Hono API and a React SPA served by a single Cloudflare Worker, plus a Kotlin and Jetpack Compose Android client.
    • Designed a sequence-alignment engine that works out which physical deck a machine is running from a short run of scanned barcodes, in either scanning direction, and drops that lock again once the machine is restocked mid-session.
    • Scanning prefers the browser's own BarcodeDetector and lazy-loads a 250 KB fallback only for the browsers that lack it; on Android it runs on ML Kit and CameraX.
    • Kept the test suite structurally confined to pure domain logic, so a green run means the arithmetic holds rather than that a route happened to work.
    • Took the payment gateway all the way from sandbox to live production on an approved merchant account, alongside Google OAuth, R2 image delivery behind a CDN, and product analytics.
  4. Feb 2026 – Jun 2026
    5 mos

    Full-Stack Web Developer Instructor

    Tempa, led by Dicoding · Remote

    • Taught full-stack web development across the program's five-month run.
    • Tempa closed at a 92% graduation rate across its contributors.
  5. Oct 2025 – Dec 2025
    3 mos

    React Backend & AI Instructor

    Asah, led by Dicoding · Remote

    • Taught JavaScript backend development to 70+ students across in-person learning sessions.
    • Used interactive teaching strategies to lift engagement and comprehension.
  6. Feb 2023 – Dec 2024
    1 yr 11 mos · 6 roles

    Mobile Development Instructor & Mentor

    Bangkit Academy, led by Google, GoTo & Traveloka · Remote

    1. Mobile Development Advisor Nov 2024 – Dec 2024
    2. Mobile Development Instructor cohort 2 · 2024 Aug 2024 – Dec 2024
      • Taught Kotlin Android development to 50 students; the cohort reached a 91% graduation rate.
      • Held a 4.76 / 5.0 instructor rating.
    3. Mobile Development Advisor May 2024 – Jul 2024
    4. Mobile Development Instructor cohort 1 · 2024 Jan 2024 – May 2024
      • Taught Kotlin Android development to 50 students; the cohort reached a 93% graduation rate.
      • Held a 4.73 / 5.0 instructor rating.
    5. Mobile Development Mentor batch 2 Aug 2023 – Jan 2024
      • Led and mentored a group of 25 students through the Android track to a 86% graduation rate.
      • Supported ILT sessions as timekeeper and prep, keeping students engaged throughout.
    6. Mobile Development Mentor batch 1 Feb 2023 – Aug 2023
  7. Aug 2022 – Dec 2022
    5 mos

    Backend Engineer Intern

    Traveloka · Financial Services

    • Shipped new features in the Financial Services domain in a production codebase.
    • Wrote unit and automated tests for the team's work; built Know-Your-Business (KYB) flows for verifying financial partners.
    KotlinSpring Framework
  8. Aug 2021 – Jun 2022
    11 mos

    Laboratory Assistant

    Universitas Multimedia Nusantara

    • Ran lab sessions in probability & statistics, web dev, and mobile development.
    • Taught HTML/CSS/JS, PHP, and Android (Java) to groups of 25–40 students.
    • Graded and reviewed assignments across all three subject areas.
  9. Mar 2020 – Dec 2021
    1 yr 10 mos

    Software Engineer

    Arxist

    • Built a full-stack English assessment platform for Politeknik Penerbangan Indonesia Curug.
    • Developed the Laravel backend and integrated it with the web front-end.
04.1volunteering
Jul 2024 – Aug 2026 · 2 yrs 2 mos

Front of House

Google for Developers · Jakarta

Preparing the presentation material and checking the equipment before an event starts, then keeping the session running to schedule on the day, in constant coordination with the live streaming team.

2026
Cloud Next Extended Jakarta × KodingDeepDive Build with AI, Cloud Jakarta
2024
DevFest, Cloud Jakarta Google I/O Extended, Cloud Jakarta
Nov 2019 – Jan 2020

Google Code-in 2019 Mentor

OpenWISP · open source

OpenWISP is an open-source network management system for building low-cost networks. As a mentor I sat on the reviewing side of the contest.

  • Reviewed student task submissions
  • Authored new tasks to OpenWISP's standard
  • Ran quality assurance on student GitHub contributions
Oct 2018 – Dec 2018

Google Code-in 2018 Student

OpenWISP · open source

The year before mentoring, I was on the other side of it: 26 completed tasks against the OpenWISP codebase, and the run that ended in a Grand Prize.

  • Built a commit message style check
  • Contributed to OpenWISP quality assurance
  • Created an LXD deployment
earlier · community
2020–2021  IT Division, U-Store UMN Gen 4
2017–2018  Vice Leader, IT Community
2016–2017  LITBANG RPL, IT Community
05stack

Tools I actually reach for.

Highlighted items are the ones I'm fastest in; the rest I'm comfortable being dropped into. Tools are the easy part; the hard part is deciding what not to build.

languages · 09
PHPTypeScriptJavaScript KotlinSwift GoPython JavaObjective-C
backend & apis · 08
LaravelLumen FilamentNode.jsExpress HonoFlaskSpring
data · 07
PostgreSQLMySQLCloudflare D1 RedisCloudflare KV MongoDBFirebase
llm tooling · 03
ClaudeCodexMiniMax
platform & ops · 09
Cloudflare R2Google Cloud NginxComposer systemdDockerCloudflare Workers Cloudflare QueuesCloudflare Email
mobile · 05
SwiftUIKotlin Jetpack ComposeAndroidRevenueCat
frontend · 05
ReactVite Vue.jsNuxtJSNext.js
design · 01
Figma
06education

How I've learned.

Mar 2026 – Aug 2026

Apple Developer Institute for Entrepreneurship

Catalyst Program (Nada / Tunelab) · Jakarta · Hybrid

A six-month follow-on program for teams taking an Apple Developer Academy project toward a real business. I went through it with Nada.

  • Product and go-to-market development
  • Building on top of Apple platforms
  • Hybrid, cohort-based
Feb 2025 – Dec 2025

Apple Developer Academy

Bali · Cohort 2025 · iOS Developer Internship

A ten-month intensive focused on iOS development and the entrepreneurial side of shipping native apps end to end, built around Challenge Based Learning with cross-functional student teams.

  • Swift & SwiftUI
  • App design and prototyping
  • Core Apple frameworks: CoreMotion, Watch Connectivity, Multipeer
  • Agile project management
Aug 2019 – Jan 2024

Universitas Multimedia Nusantara

B.Sc. Information Systems · GPA 3.85 / 4.00

Information systems with a heavy dose of software engineering, algorithms, and data foundations.

  • Algorithms & data structures
  • Web design & development
  • Mobile application development
  • Artificial intelligence
  • Big data analytics
Feb 2022 – Jul 2022

Bangkit Academy

Mobile Development Cohort · Google, GoTo & Traveloka

Career-readiness program focused on in-demand mobile skills: Kotlin, fundamental and intermediate Android, UX design, SOLID principles, and career development. One of three thousand students in the cohort; graduated with Distinction (top 10%) on the Mobile Development path and served as a peer tutor for Android Fundamentals. I came back as a mentor in 2023 and an instructor across both 2024 cohorts.

07credentials

Certifications & recognition.

07.1awards
  1. Feb 20191stTangerang Skill Competition, Web Design & DevelopmentDitsmk
  2. Nov 20181stWeb Design LINEA 2018SMKN 5 Tangerang
  3. Apr 20182ndBanten Skill Competition, Web Design & DevelopmentDitsmk
  4. Feb 20181stTangerang Skill Competition, Web Design & DevelopmentDitsmk
  5. Jan 2018·Google Code-in 2017 ParticipantGoogle
  6. Dec 20171stWeb Design LINEA 2017SMKN 5 Tangerang
  7. Mar 20172ndTangerang Skill Competition, Web Design & DevelopmentDitsmk
  8. Oct 20163rdWeb Design LINEA 2016SMKN 5 Tangerang
08contact

Got a system that's outgrown its first design?
Let's talk.

Backend and platform work, API design reviews, the occasional teaching engagement. Happy to talk about any of it. I read everything that isn't a recruiter template.

rezajuliandri.my.id/contact

curl -s rezajuliandri.my.id/contact

{
  "email":    "[email protected]",
  "github":   "ppabcd",
  "linkedin": "rezajuliandri",
  "timezone": "Asia/Jakarta (UTC+7)",
  "replies":  true
}