Naufal Firoos
Menu
Based in
Yogyakarta, Indonesia
Local time

Naufal Firoos

Full-stack developer

I believe in process.

Almost five years of training taught me that progress comes from showing up, and I build software the same way: from the interface down to the cluster it runs on.

Disciplines

  • Interface
  • API
  • Data
  • Infrastructure
  • Mobile

About

I build systems where the interface, the API, and the data model have to agree. Lately I also review what AI agents write before any of it ships.

At Berijalan Technocenter I work on a digital e-signature platform: contract signing end to end, identity verification, company SSO and MFA, and a React Native app for field surveyors who capture photos and locations on site.

Right now I am doing R&D on an AI-driven development workflow with Claude Code and omp. The goal is one connected chain, from planning and project management through implementation to end-to-end testing, where agents do the drafting and I review at every handoff: I write the brief, set the constraints, read every diff, and decide what merges. The point is not to type less. It is to keep the same bar for architecture, security, and accessibility while the amount of code keeps going up. The Infinity Gym member app and this portfolio were both built this way.

With friends I run drunkcode.dev, a small software studio. It is where the Infinity Gym platform is built, and where I take on client work.

Before that I trained as a mobile developer: Flutter and Kotlin at Bangkit Academy and IDCamp. Mobile taught me to treat an interface as a sequence of states a person moves through, not a set of components placed on a page. That habit carried into Next.js and React.

Outside work I build the rest of the stack: .NET and PostgreSQL services, Python trading tools, and a k3s homelab managed by Argo CD. The case studies below are about the seams between those parts: how a membership becomes a state machine, how a failed email becomes a retry, how a deploy becomes a commit.

Away from the screen I have trained consistently for almost five years, and I am learning German. Both run on the same rule as the work: small sessions, repeated, measured against who I was last year rather than against anyone else.

Selected work

Three systems carried end to end. Each case study covers the constraints, the decisions, and what is deliberately unfinished.

  1. Platform · API, admin, member app

    Infinity Gym

    Gym management: a .NET API, an admin CMS, a mobile-first member app, and a bilingual landing page.

    Year
    2026 – now
    Role
    Co-founder and developer, drunkcode.dev
    Stack
    .NET 10 · PostgreSQL · Redis · Next.js 16 · React 19 · TanStack Query · Tailwind v4
    Member home: membership card with days left, check-in status, and a promotion bannerClass schedule with filters and booking slots
  2. Product · API and web app

    Tempo

    Time tracking, approvals, and invoicing for small studios, in one workspace.

    Year
    2026
    Role
    Design and build
    Stack
    .NET 10 · PostgreSQL · Next.js 15 · React 19 · Tailwind v4 · Kubernetes
    Overview with weekly hours by client, utilization, and unbilled value (demo data)

How I work

The same order on every project, whether the first screen exists yet or not, and whether a person or an agent wrote the code.

  1. 1.

    Model

    Start with the data and the states it moves through. Memberships, timesheets, and courses are state machines before they are screens.

  2. 2.

    Contract

    Fix the API shape early: one response envelope, typed errors, permissions checked on the server for every request.

  3. 3.

    Interface

    Build screens against that contract. When the API lags, the client runs on mocked services with the same shapes, so swapping them is a body change.

  4. 4.

    Review

    Agents draft much of the code now. Every change is read against the brief, the contract, and the tests before it merges; nothing ships on trust.

  5. 5.

    Ship

    Containers from the first commit, migrations that run on deploy, and a cluster that takes its state from Git.

Experience

  • Feb 2025 – Present

    Full Stack Developer

    Berijalan Technocenter

    Digital e-signature platform with Next.js, Express.js, PostgreSQL, and Docker; identity verification, SSO, and MFA. Built a React Native and NestJS field-survey app with photo capture, geolocation, and push notifications. Earlier: legacy migration to Next.js and Express, atomic design.

  • Oct 2023 – Apr 2024

    Multi-Platform App Developer

    IDCamp

    Flutter learning path through Dicoding: three courses, five-star and four-star assessments.

  • Feb 2023 – Jul 2023

    Mobile Developer

    Bangkit Academy

    Android with Kotlin; capstone Teman Tanam, a crop-advisory app.

  • Education · Aug 2020 – Dec 2024

    Bachelor's degree, Information Systems

    Universitas Ahmad Dahlan

    GPA 3.85. Software engineering, algorithms, mobile development, and UI/UX.

Skills

Interface
TypeScript, JavaScript, React, Next.js, React Native, Expo, Tailwind CSS, Flutter, Kotlin / Jetpack Compose
API & data
NestJS, Express.js, Node.js, C# / .NET 10, ASP.NET Core, Python, PostgreSQL, PL/pgSQL, MongoDB, Firebase
Infrastructure
Docker, k3s, Argo CD, Traefik, Helm, Kustomize, GitHub Actions, Woodpecker
Practice
SSO / MFA, HTML Canvas, Firebase Cloud Messaging, xUnit, Playwright, GitOps, Accessibility, AI-assisted development and review, Claude Code, omp

Languages

Indonesian
Native
English
Limited working
Deutsch
A1

Let's worktogether

I am open to full-time roles and to freelance projects, on my own or with drunkcode.dev. Email is the fastest way to reach me: send the problem, the constraints, and the timeline, and I will reply with what I can do.

itsfiroos@gmail.com