Back to Engineering Articles/What I Did as a Mid-Level Engineer — Shipping, Ownership & Production Scars

What I Did as a Mid-Level Engineer — Shipping, Ownership & Production Scars

I shipped real features to real users. I broke production and fixed it alone at 2 AM. I built a mobile banking app with 680K downloads, a mining fleet system saving $200K/year, and a field operations platform for 4.1M users. This is what mid-level engineering actually looks like — the projects, the metrics, and the production incidents that made me a real engineer.

Faisal AffanFaisal Affan
6/13/2026
What I Did as a Mid-Level Engineer — Shipping, Ownership & Production Scars

What I Did as a Mid-Level Engineer

"Mid-level is where you stop writing code that works and start writing code that survives." — Me, after the 14th production rollback

The mid-level years transform you from "someone who can code" to "someone who can ship." The shift is fundamental: you stop being evaluated on whether your code runs. You're evaluated on whether your code survives production — at scale, under load, when things go wrong at 3 AM.


The Mid-Level Proposition

What Changed

Before (Junior): "Can you write code that works?" Now (Mid): "Can you own a feature end-to-end — design, build, test, deploy, monitor, debug, and iterate — without someone holding your hand?"


Case Study 1: SiTepat — Mobile Banking Integration

Role: Solo Backend Engineer Stack: Go, Flutter, ISO 8583, PostgreSQL Scale: 680K+ Google Play downloads, zero downtime during Eid transaction rush

This was my first "real" production system. Not a WordPress site. Not a CRUD app. A mobile banking application that had to integrate directly with a bank's core system via ISO 8583 protocol.

What I Built

  • ISO 8583 Bridge: A Go service that translated REST API calls into ISO 8583 messages for the bank's legacy mainframe. This was the critical path — if this bridge went down, 680K users couldn't check their balance.
  • Real-Time Financing Dashboard: Field agents could simulate IIR (Internal Interest Rate) calculations in real-time, replacing a manual Excel process that took 3-5 business days.
  • Smart Payment Reminder Engine: Automated reminders via Firebase Cloud Messaging, reducing late payments by 18%.

What Went Wrong

Impact

MetricBeforeAfter
App downloads0680K+
Transaction processing time3-5 business days (manual)Real-time
Late payment rate22%18%
System uptimeN/A (new system)99.7%

Case Study 2: HPU Digital Mining Platform

Role: Full-Stack Engineer Stack: Go microservices, React PWA, MQTT, PostgreSQL Scale: 3 provinces, 100+ trucks, 50K telemetry events/second

This was my introduction to IoT — and everything I thought I knew about "reliable systems" got tested against reality: remote mining sites with intermittent satellite connectivity, GPS trackers that report garbage data, and users who've never used a smartphone before.

What I Built

  • Real-Time Fleet Management: Live GPS tracking for 100+ dump trucks, excavators, and support vehicles
  • Fuel Management & Anomaly Detection: Caught fuel theft within the first month of rollout
  • HSE Digital Management: Replaced paper-based safety reporting with a mobile PWA
  • Multi-Site Command Center Dashboard: Real-time visibility from pit to HQ with drill-down to individual truck telemetry

What Went Wrong

Impact

MetricBeforeAfter
Truck utilization65%79%
Fuel theft incidentsUnknown (undetected)Detected in month one
Annual savingsRp 3.2B ($200K)
HSE report turnaround5 days (paper)Real-time (digital)

Case Study 3: Tepati — Field Operations Platform

Role: Solo Full-Stack Engineer Stack: Go monolith, Flutter mobile, SQLite, MQTT Scale: 4.1M end-users, built solo in 30 days

This was the project that taught me the difference between "building" and "owning." When you're the only developer, there's no backend team to blame when the database is slow. No frontend team to fix the UI. No DevOps team to handle deployment.

What I Built

  • Offline-First Sync Engine: Field agents in areas with zero connectivity could fill forms, capture photos, collect signatures — everything synced when they returned to network range
  • Dynamic Form Engine: 50+ field types with conditional logic, configurable without code changes
  • Multi-Level Approval Pipeline: 4 hierarchy levels with role-based routing and full audit trail
  • IIR Simulation Engine: Real-time financing calculations that previously took 3-5 business days

The Solo Developer Reality

  • You deploy your own code. At 2 AM. On a Saturday.
  • You debug your own production incidents. There's no L2 support.
  • You write your own documentation. If you don't, nobody else will — and you'll regret it in 6 months.
  • You make architectural decisions alone. This is both liberating and terrifying — there's nobody to sanity-check your choices.

Impact

MetricBeforeAfter
Data loss rate23%0%
End-users served04.1M
Time to buildN/A30 days (MVP)
Financing decision time3-5 business daysReal-time

My Mid-Level Scorecard

Portfolio ItemDid I Do It?Notes
2-3 work case studiesSiTepat, HPU, Tepati — all with measurable impact
Measurable metrics680K downloads, 65→79% utilization, 23% data loss eliminated
Open source contributionBiggest career gap — started too late
Technical articles⚠️Wrote internal documentation, never published publicly
Production incident handlingSurvived 4 major incidents, learned more from them than any feature

Advice for Current Mid-Level Engineers

  • Own the full lifecycle. Don't just write the feature — deploy it, monitor it, debug it, improve it. The engineer who owns the full stack is worth 3x the engineer who only writes code.
  • Measure before and after. "Faster" is an opinion. "API latency dropped from 800ms to 200ms" is a portfolio item. Start measuring today.
  • Write about your production incidents. The bug you fixed at 2 AM is tomorrow's blog post. The architecture decision you made after the incident is next month's conference talk.
  • Start open source now. Even one PR to a project you use. The skills you gain — reading unfamiliar codebases, following contribution guidelines, receiving code review from strangers — are exactly what senior+ interviews test for.

Mid-level is the most underrated career stage. It's where you accumulate the production scars that make your senior portfolio authentic. Every incident, every rollback, every 2 AM fix — that's not trauma. That's content.

Discussion

Write a comment or question

Powered by GitHub Discussions
Loading...

Related Engineering & Tech Articles

What I Did as a Mid-Level Engineer — Shipping, Ownership ... | Faisal Affan