Software Engineer · West Java, Indonesia

Anggara Roshandi Putra

I'm Anggara Roshandi Putra (Angga), a software engineer in West Java, Indonesia with 3 years of experience shipping products across backend, web, and mobile. At DoctorTool I build .NET services and the React Native patient app used by clinics across Indonesia. Before that I co-founded Writeen, an edtech platform, and built its Go backend for three frontends.

fresh off the desk

Things I've made

Tap a project to pull out its page.

Kavpad

shipped

the problem

Long stories are hard to keep straight: characters, places, and lore end up scattered across chapters. And most AI writing tools try to write the story for you instead of helping you think.

my role & what I did

Founder · Full-stack Developer

  • Founded the product and built it end to end, from frontend to backend.
  • Built auto-linking of characters, places, and lore across chapters.
  • Added Word/PDF manuscript import so writers can bring their existing drafts.
  • Built an AI assistant (Claude Haiku) that asks questions to unblock writers instead of writing for them.

what it looks like

Kavpad chapter editor: character names in the text link to their story bible entries, with a pop-up card for Raniatap a name → its card pops up
Kavpad AI character interview: the writer chats with Arl Bortock to get to know the character
interview a character
Kavpad story bible with a card for each character
the story bible
Kavpad Pro checkout with monthly and yearly plans, paid via Midtrans
Pro plan, via Midtrans

a writer's desk where every chapter knows its own characters

built with

  • React
  • Vite
  • Go
  • MongoDB
  • Google Cloud
  • Claude
Go FiberGoogle Cloud Storage
visit Kavpad ↗

DT Nakes — DoctorTool

shipped

the problem

Clinics need one place to manage patient records, appointments, and prescriptions.

my role & what I did

Software Engineer

  • Build .NET backend services and APIs serving DoctorTool's mobile app and web platform.
  • Ship features end to end across backend, web, and mobile with the product and design teams.
  • Discuss technical decisions directly with the CTO.

what it looks like

  1. DT Nakes home for the doctor: today's visits, queue progress and services1 today's visits
  2. DT Nakes practice queue with patient cards and an Examine button2 the queue
  3. DT Nakes medical record form (SOAP) with live voice recording3 medical notes

the clinic side, from the day's visits to the patient's notes

built with

  • .NET
  • React
  • TypeScript
C#React Native
visit DT Nakes — DoctorTool ↗

DT Care — DoctorTool

shipped

the problem

Patients of clinics across Indonesia need one app for bookings, online consultations, e-prescriptions, and their health logs.

my role & what I did

Software Engineer

  • Develop the React Native patient app: bookings, online consultations, e-prescriptions, and health logs.
  • Ship releases through CI/CD, with JS-only fixes delivered quickly via Hot Updater OTA updates.
  • Monitor stability with Firebase Crashlytics and Analytics to find and fix production crashes and performance issues.

what it looks like

  1. DT Care home screen with main services, diabetes self-management tools and nearby clinics1 home
  2. DT Care booking screen: pick a date, clinic and time slot2 book a visit
  3. DT Care appointment confirmation with the queue number and visit details3 booked!

the patient side, from opening the app to a queue number

built with

  • React
  • TypeScript
  • .NET
  • Firebase
React NativeHot UpdaterCrashlytics
visit DT Care — DoctorTool ↗

Writeen

shipped

the problem

Young writers grow faster with a mentor, but finding one and booking a session isn't easy. Writeen connects writers with mentors in one platform.

my role & what I did

Co-Founder · Backend & Web

  • Single-handedly built the Go (Gin) REST API powering three frontends (mentor, tutor, admin).
  • Built the web product with Next.js, TypeScript, and Tailwind CSS.
  • Delivered JWT role-based access, chat and video consultations, Play-Lit, articles, and email notifications.
  • Integrated Midtrans payments with webhooks that unlock paid features automatically.
  • Owned technical direction and infrastructure: MongoDB, Google Cloud Storage, Docker on a VPS, release pipelines.

what it looks like

  1. Writeen tutor setting regular weekly working hours, Monday to Friday
    tutor: sets weekly hours
  2. Writeen student browsing mentors by topic
    student: finds a mentor
  3. Writeen booking confirmed with date, topic and total paid
    student: books & pays
  4. Writeen consultation chat between student and tutor, with a video call option
    the session: chat + video
  5. Writeen shared session notes and action items
    shared notes & action items
  6. Writeen tutor transaction history and an approved withdrawal
    tutor: withdraws earnings

one booking, two sides: the student's journey and the tutor's, meeting in the session

built with

  • Gin
  • Go
  • Next.js
  • TypeScript
  • Tailwind CSS
  • MongoDB
  • Docker
  • Google Cloud
MidtransJWT
visit Writeen ↗

SUAR

hackathon

the problem

In an emergency the internet and cell network can go down exactly when people need to find each other.

my role & what I did

Mobile Engineer · 3rd place, Garuda Hacks 7.0

  • Led the mobile engineering in React Native at Garuda Hacks 7.0 (3rd place, Safety Track).
  • Built phone-to-phone locating over a Bluetooth Low Energy mesh, with no internet or cell network required.
  • Designed a compact 19-byte binary wire protocol for the mesh.
  • Added native Android emergency haptics that bypass silent mode.

what it looks like

SUAR radar screen: nearby people shown as dots with their distance, an arrow pointing toward the selected person, and safety tips for the area
  1. people nearby, with how far they are
  2. the arrow points toward them
  3. safety tips for your area
SUAR settings: assembly point beacon, voice guidance, vibration feedback and a battery-saving disaster mode
  1. make this phone a “safe here” beacon
  2. voice + vibration, no need to look
  3. disaster mode saves battery

field notes: tested phone-to-phone, no internet, no signal

built with

  • React
  • Android
  • Bluetooth
React NativeBLE mesh
visit SUAR ↗

Mariolahraga

shipped

the problem

A sports coaching service across Jabodetabek needed one website for its classes, coach profiles, registration, and a blog.

my role & what I did

Full-stack Developer

  • Built the website in Svelte: classes, coach profiles, registration, and blog.
  • Built a Go backend for managing the blog.

what it looks like

Mariolahraga homepage: private and group sports classes in Jakarta, with a free 30-minute trial and a wall of class photos
the homepage
Mariolahraga class page for basic motor skills (ages 2–6), with session details and a sign-up button
a class page

every class gets its own page, ready for parents (and search engines)

built with

  • Svelte
  • Go
visit Mariolahraga ↗

Ucup AI Bot

shipped

the problem

Bring ChatGPT into WhatsApp, where people already chat every day.

my role & what I did

Creator · Open Source

  • Built a WhatsApp chatbot connected to ChatGPT through LangChain, in TypeScript.
  • Open-sourced it on GitHub.

built with

  • WhatsApp
  • LangChain
  • TypeScript
ChatGPT (OpenAI)
visit Ucup AI Bot ↗

Digital Invitation

shipped

the problem

A wedding needs more than a pretty invitation: hosts also need to know who actually showed up.

my role & what I did

  • Built a wedding invitation web app with a QR-code attendance system (2025).

Active Mandarin Indonesia

shipped

the problem

A Mandarin education provider needed a site for its courses and study-in-China programs.

my role & what I did

  • Built the course and study-in-China website.

built with

  • Next.js
  • Tailwind CSS