Rosa

Open to remote work Indonesia, UTC+7

Edinia Rosa
Filiana

Backend engineer who ships production systems, not just code — and stays to maintain them.

  • 3 yrsshipping backend to production
  • 3 mofrom intern to full-time engineer
  • Year 1Employee of the Month

01 · Crew profile · About

The short version.

I started as a backend intern and was promoted to a full-time engineer within three months — and in my first full-time year, I was named Employee of the Month. I work at KitaLulus, an Indonesian HR-tech and job-platform startup, where a small team means real ownership.

That ownership is how I learn fastest: I write the design, build the service, deploy it, and stay on call for it. Ship it, own it, fix what breaks. Most of what I build touches other teams along the way — I work closely with the mobile and data teams, because a backend feature isn't done until it works in someone's hand.

Role
Backend Software Engineer
Base
Indonesia (UTC+7)
Experience
3 years — HR-tech / job platform
Core stack
Temporal · AWS · SQL
Status
Open to remote work

02 · Constellation · Skills

What I work with.

Hover or tap a star to read my notes. Filled dots are my daily drivers; hollow ones I've shipped with in production. No percentage bars — levels are stated in words, because that's what they're worth.

Languages

Frameworks & tools

Databases & infra

Integrations

Languages

Frameworks & tools

Databases & infra

Integrations

Tap a skill to read my notes — the name and the reason it's there will appear here.

03 · Mission log · Case studies

Three features, owned end-to-end.

Each log is a feature I took from first design doc to production on-call. Employer details are generalized to respect confidentiality — the reasoning and the outcomes are mine.

Mission 01 · Orchestration

CV Review

An AI-assisted CV review service, orchestrated with Temporal so every CV gets a complete review — even when parts of the pipeline fail halfway through.

  • Temporal
  • Go
  • AWS
  • SQL
  • GraphQL

Outcome

100% of reviews now complete without manual intervention — owned end-to-end with the mobile and data teams.

Fig. 01 — CV review pipeline Mobile app Mobile team GraphQL API Temporal workflow · durable Parse CV AI review engine Score & format Deliver result Every step: retry policy + timeout. A failed step resumes — it never restarts the CV. Results store · SQL Review models Data team
One CV, one durable workflow. The data team's review engine plugs in as an activity; mobile reads results, never internals.

Problem

Job seekers on the platform could already generate a CV from their profile data, but had no way to tell how good it was or what to improve. A review runs through several steps and outside services, so a crashed step could not be allowed to mean a lost review — and nobody should retry the whole thing by hand.

My role

Backend owner. I designed the workflow, built the orchestration, and shipped it in collaboration with the mobile team (the client experience) and the data team (the review models).

What I built

A Temporal workflow that treats a CV review as a durable sequence of steps: document parsing → AI review → scoring → delivery. Each step is an activity with its own retry policy and timeout, so transient failures retry automatically and long-running steps survive deploys. If a worker dies mid-review, Temporal resumes from the last completed step — not from scratch.

Key decisions & trade-offs

  • Durable execution over a homegrown queue: retries, state, and failure handling came out of the box — the price was learning Temporal's programming model and running its infrastructure.
  • Every activity is idempotent. Long-running AI steps get retried; a repeated step must never double-charge or double-send.
  • Cross-team contracts: the mobile app consumes progress events and results through a narrow API, so the workflow's internals stay ours to change.
Mission 02 · Platform

Company Package Subscription

A rewrite of the company subscription system: new, more flexible packages and plans — and a migration that moved every existing company, paid and free, from the old mechanism to the new one.

  • AWS
  • SQL
  • Go
  • Docker
  • GraphQL
  • Java / Kotlin

Outcome

Serves up to 60k existing company subscriptions, all migrated from the old package mechanism onto the new plans.

Fig. 02 — Subscription rewrite & migration Company admin New subscriptions GraphQL API New subscription system Package catalogue Subscription plans Flexible for small companies too Old package mechanism Map old plan → new plan Migration scripts Paid + free companies Company subscriptions · SQL Up to 60k companies Migration guarded for data integrity and system load.
Every old subscription is mapped to a new plan before it moves; new subscriptions go straight into the new system.

Problem

The old company-package model didn't fit many of our clients. To reach more of the market, we needed plans flexible enough for small companies to subscribe too.

My role

I designed the data model, implemented the solution, and ran the migration that moved thousands of company records onto the new subscription plans.

What I built

New packages and subscription plans, and a reworked subscription system that is more flexible and easier to scale.

Key decisions & trade-offs

  • Mapped every old subscription onto a new plan before migrating anything.
  • Designed the system so the list of packages we offer is easy to maintain.
  • Wrote migration scripts for thousands of company records — paid and free — while protecting data integrity and keeping system load in check.
Mission 03 · Growth

Referral Missions & Rewards

A missions-and-rewards layer that gives users a reason to actually use the referral program — built for speed on a no-code SQL platform, with fraud checks underneath.

  • AWS
  • No-code SQL platform
  • Go
  • GraphQL
  • REST

Outcome

More than 10k users completed a mission in the first month.

Fig. 03 — Referral missions & rewards App Referral event API Fraud & duplicate check Fails → event dropped, nothing counted No-code SQL platform Mission config User progress Reward ledger — issued once Idempotent · keyed per user + mission AWS scheduled jobs Resets · reminders A referral counts only after real activation by the new user
Slow path by design: check first, append progress second, reward once. The fast path is that nothing skips the check.

Problem

The referral program existed, but we needed a way to increase user engagement and drive more sign-ups.

My role

Backend owner: the mission model, progress tracking, and reward issuance, layered on top of the existing referral flow.

What I built

I designed the mission flow and integrated it with a third-party platform where the ops team manages and monitors referral missions.

Key decisions & trade-offs

  • Speed vs. control: the no-code SQL layer let us ship and reconfigure missions in days. The trade-off: our own stack is event-driven, so under high traffic the integration with the no-code platform got challenging.
  • Progress is append-first: events are recorded, then aggregated, so a rule change never rewrites history — progress can be recomputed honestly.
  • Duplicates and abuse: a referral only counts after the new user completes a real activation step — e.g. a verified signup, not just an install. Reused accounts are checked before progress is granted, and the reward ledger is keyed per user + mission so nobody is counted or rewarded twice.

04 · Trajectory · Experience

From intern to engineer.

Reverse-chronological, impact first. The line fills as you scroll — like any good trajectory.

  1. Jan 2024 — Present

    Backend Software Engineer

    KitaLulus · Indonesian HR-tech & job-platform startup

    • Own most new backend features shipped since 2024 — from design doc to deploy to maintenance.
    • Shipped three flagship features — CV review, company subscriptions, referral missions end-to-end, working with the mobile and data teams.
    • Promoted from backend intern to full-time engineer within three months of starting.
    • Named Employee of the Month in my first year as a full-time engineer.
    • Diagnosed and resolved complex production issues within a distributed event-driven architecture (spanning gRPC, REST, Pub/Sub, PostgreSQL, and Elasticsearch), significantly reducing Mean Time to Resolution (MTTR).
  2. Oct 2023 — Dec 2023

    Backend Intern

    KitaLulus · Indonesian HR-tech & job-platform startup

    • Developed and maintained backend services for the company's job-platform, focusing on API development and database optimization.
  3. 2019 — 2023

    BSc, Computer Science (Teknik Informatika)

    Institut Teknologi Sumatera

05 · Contact mission control

Say hello.

Whether it's a remote backend role or a freelance build, the fastest route is email — I read it every day. I'm based in UTC+7 and happy to overlap with Singapore, Australian, and EU mornings.

edenia.filiana@gmail.com
Status
Open to remote work
Based in
Indonesia (UTC+7)
Elsewhere
LinkedIn · GitHub
Reply time
Within 48 hours