Skip to content
View atmajap's full-sized avatar

Block or report atmajap

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
atmajap/README.md

Prajogo Atmaja

Software engineer in Tokyo. I work on finops, cloud data infrastructure, distributed systems, and getting data off physical devices and into the cloud. Previously at Gojek.

Right now I'm studying Japanese full time (JLPT N2, result pending) and building data systems.

Most of my repositories are private. Happy to walk through any of the work below.


Current work

Maipace, a JLPT study platform

A content pipeline, an admin CMS, and a cross-platform mobile client.

Batch enrichment pipeline. Ingests an external Japanese dictionary dataset (Jitendex term banks), joins it against a curated word list, and classifies JLPT level using batched LLM calls. The whole thing is checkpointed. If a long run dies partway through, it resumes instead of starting over. Batches retry on transient failures. Prompts are versioned, so any classification can be traced back to the logic that produced it. There's a dry-run mode and hard cost caps.

Job queue and content workflow. AI drafting runs as queued background jobs. The provider is swappable between OpenAI, a local Ollama model, and a deterministic mock for tests. Batch size and daily job counts are capped. Drafts have to clear proofreading and a rubric review before they publish, and every transition lands in an audit log.

Schema and governance. versioned SQL migrations run through a checksum-verified ledger. Postgres row-level security, a least-privilege runtime database role, and a user data-deletion workflow with content export and restore.

Architecture. Ports and adapters, split into domain, application, and infrastructure. Repository adapters keep the platform portable across plain Postgres and Supabase instead of coupling it to a vendor client.

Mobile client. Kotlin Multiplatform with Compose Multiplatform, shipping Android and iOS from one shared module. It's offline-first. Every local write enqueues an idempotent outbox row keyed by a client mutation ID, and nothing is acknowledged until the server confirms it persisted. Retries and partial failures can't duplicate or lose progress.

Next.js, TypeScript, Postgres, Kotlin Multiplatform, Room, Ktor.

KeibaStats, a JRA horse racing data platform

Ingestion. A scrape, transform, load pipeline covering race schedules, cards, entries, odds, and results. Cron jobs orchestrate it on JST, and each run's status is tracked so failures stay visible.

Time-series storage. Live odds get polled every 8 minutes through race hours into a TimescaleDB hypertable partitioned on (time, entry_id). Historical queries over odds movement stay fast as the table grows.

Resilient acquisition. The HTTP client rate-limits itself with jittered delays, rotates user agents, backs off exponentially on retryable status codes, and times out. It collects reliably without hammering upstream sources.

SvelteKit, TypeScript, Postgres with TimescaleDB, Drizzle. CI runs typecheck, lint, coverage, and build on every push.


Background

Gojek. Cloud FinOps and infrastructure tooling. I built an Airflow pipeline that ingested resource metadata across the company's GCP estate, attributed each resource to the team that owned it, and notified those owners automatically. It cut tens of thousands of USD from monthly cloud spend. Terraform, Ansible, and Kubernetes in production.

Bananas, then Jutsoo. Led engineering through a Y Combinator-backed quick-commerce startup's pivot to B2B SaaS. Automated competitor price collection and built the operational analytics the commercial team ran on.

Rakko Wash. Founded a laundromat in Bali. Wrote the C firmware that put the machines online, and the stack that ran the business.

Institut Teknologi Bandung. B.Sc. Electrical Engineering. Published "AI-based Customer Behavior Analytics System using Edge Computing Device" at ICEIC 2020.


Stack

Languages. Python, TypeScript, Kotlin, Ruby, Clojure, C, SQL

Data. Postgres, TimescaleDB, Airflow, SQLite/Room, ETL and batch enrichment pipelines

Infrastructure. Docker, Kubernetes, Terraform, Ansible, GCP, AWS, GitHub Actions, GitLab CI


Contact

[email protected]

Popular repositories Loading

  1. mybeautifulsunshine mybeautifulsunshine Public

    Java

  2. MyPopularMovieIAK MyPopularMovieIAK Public

  3. darkershiny darkershiny Public

    Forked from onlyphantom/darkershiny

    A Shiny web app template using a dark theme with support for custom CSS

    R

  4. circle-analysis circle-analysis Public

    Forked from tiaradwiputri/circle-analysis

    R package boiler idea for network analysis

    HTML

  5. TimerNav TimerNav Public

    Kotlin

  6. alpaca-trading alpaca-trading Public

    Jupyter Notebook