Software Engineer · Backend & Distributed Systems

Adrian Nathanael Setiawan

Introduction

I’m Adrian, a software engineer and computer science student at Universitas Indonesia. I build backend systems and distributed infrastructure, turning complex workflows into reliable, maintainable software.

Explore selected work

SELECTED PROJECTS

Work built with purpose

A selection of backend systems, developer tools, and full-stack products designed around reliability, clarity, and real-world use.

01Open-source NestJS caching library

nestjs-cacheable

A reusable caching package for NestJS that adds declarative caching and cache invalidation through decorators and interceptors.

  • NestJS interceptor-based caching
  • @Cacheable-style declarative caching
  • Tag-based cache invalidation
  • Redis-backed cache storage
  • Optional in-memory L1 cache
  • Configurable TTL and cache keys
  • End-to-end tests
02Full-stack personal finance and debt management platform

BayarWoy

A financial record and debt-management platform that combines a Go backend, an Angular interface, and a lightweight NLP service to classify natural-language transaction input.

  • CRUD for financial records and debt tracking
  • User authentication and profile management
  • Friend requests and shared debt workflows
  • Natural-language transaction classification
  • Transaction category and income/expense prediction
  • Discord verification and notification integration
  • Dockerized services and CI/CD workflows
03Full-stack academic management application

COMPFEST Registration Requirement / SIAK NG Lite

A full-stack academic workflow application built as a COMPFEST registration requirement, covering subjects, classes, schedules, course enrollment, and student scoring.

  • CRUD for subjects, classes, schedules, and academic data
  • Student course enrollment workflow
  • Lecturer and student interfaces
  • Student score management
  • Authentication and role-based authorization
  • Clean architecture concepts and SOLID principles
  • API documentation and validation
04Official task for the DDP0 project

DDP0 Grader

An automated Python-code grading system built in Go, using Docker sandboxing for secure execution, Redis for message queuing, and goroutines for distributed task processing.

400+
concurrent active users on 2 CPU / 4 GB
2,000+
submissions processed
99%
uptime during peak traffic
20s
average peak grading time
  • Redis Streams-based grading job queue
  • Distributed job consumption
  • Concurrent workers using Go goroutines
  • Retry handling and dead-letter queue
  • Recovery of jobs from unavailable workers
  • Hardened Docker container execution
  • Time, memory, process, network, and output limits
  • Problem, testcase, submission, progress, review, and leaderboard APIs
  • PostgreSQL persistence and S3-compatible object storage
05Solo project · REST API testing CLI

ReTTP

A CLI-based REST API testing tool built and maintained as a solo project. Its domain-specific language turns readable .rttp suites into repeatable checks, typed response assertions, and CI-ready evidence.

Benchmark 361 HTTP requests per secondTested on single-core Ryzen 5 6600HRuns standalone tests, core suites, and sequential pipelines
  • Offline syntax and semantic validation before network execution
  • Status, header, text, empty-body, and typed JSON assertions
  • Core and pipeline workflows with typed response captures
  • Redacted terminal, JSON, and JUnit XML reports for CI

IN THE FIELD

Experience that shaped the work

Engineering experience across organizations, collaborative teams, and systems that need to remain dependable as they grow.

Contributed to backend development for BETIS by building and maintaining CRUD-based application capabilities with NestJS. Worked on API structure, request validation, data flow, error handling, and maintainable service organization while collaborating with the development team.

CONTRIBUTIONS
  • Designed and maintained RESTful CRUD endpoints
  • Organized backend logic with NestJS modules, controllers, and services
  • Applied validation and consistent error handling
  • Collaborated on feature integration and maintenance
NestJSTypeScriptREST API

Worked on backend application features using NestJS and Drizzle ORM, with an emphasis on clean architecture, SOLID principles, maintainable modules, and clear separation of responsibilities.

CONTRIBUTIONS
  • Built and maintained CRUD functionality with NestJS
  • Used Drizzle ORM for typed database access
  • Applied clean architecture concepts and SOLID principles
  • Structured features for maintainability and testing
  • Collaborated across product and engineering requirements
NestJSTypeScriptDrizzle ORMPostgreSQLClean ArchitectureSOLID

Contributed to systems supporting DDP-0 activities, ranging from Django-based CRUD functionality to asynchronous grading infrastructure powered by Redis and distributed Go workers.

CONTRIBUTIONS
  • Developed CRUD functionality using Django
  • Built asynchronous jobs using Redis-backed queues
  • Distributed grading tasks across concurrent workers
  • Used Go goroutines for parallel job processing
  • Worked on reliable execution and task-processing flows
DjangoPythonGoGoroutinesRedisDistributed Workers

MILESTONES

Recognition along the way

Selected milestones from national programming, informatics, and logic competitions.

Finalist — National Programming Contest (NPC) Junior
Schematics, Institut Teknologi Sepuluh NopemberOct 2024

Finalist — National Programming Contest (NPC) Junior

One of 20 finalists selected from over 200 participants in a competitive programming contest.

Finalist — Indonesia National Competition in Informatics (NOI) 2024
Balai Pengembangan Talenta IndonesiaAug 2024

Finalist — Indonesia National Competition in Informatics (NOI) 2024

One of 100 finalists selected from over 20,000 contestants through a two-stage selection process.

3rd Place — Diponegoro Logic Competition
Diponegoro UniversitySep 2023

3rd Place — Diponegoro Logic Competition

Placed third among over 100 teams of three students in a logic competition.

GET IN TOUCH

Let’s build something meaningful.

Have a project, opportunity, or engineering challenge in mind? I’m always open to a thoughtful conversation.