As someone who has spent years navigating the Indonesian tech industry, from building hospital information systems with CodeIgniter 3 and SQL Server to leading frontend teams on modern React and Next.js stacks, I have had a front-row seat to a painful contradiction. Indonesian developers are talented, resourceful, and hungry to grow. But the ecosystem they operate in? It actively works against them.
This is not a rant born from entitlement. This is a reality check from someone who has shipped 20+ projects across fintech, healthcare, ERP, and loyalty platforms, and has seen firsthand how the gap between global engineering standards and local working conditions chews up good engineers and spits them out.
The "Yang Penting Jalan" Culture
If there is one phrase that haunts Indonesian software development, it is this: "Yang penting jalan." As long as it works. Ship it. Move on.
This three-word philosophy is the silent killer of code quality across the industry. It means no code reviews. No automated testing. No architectural discussions. No refactoring sprints. Just feature after feature, duct-taped together until the whole thing collapses under its own weight twelve months later.
I have worked on legacy codebases where a single PHP file contained 3,000 lines of spaghetti logic. Where database queries were concatenated as raw strings directly in controller methods. Where "version control" meant copying folders with dates appended to the filename: project_final_v2_fix_beneran_final.zip.
And the response from management when you suggest improvements? "Ngapain ribet-ribet? Yang sekarang kan jalan."
The problem is not that Indonesian developers do not know better. Many of them do. They read the same tech blogs, watch the same conference talks, and dream of clean architecture just like their peers in Berlin or San Francisco. The problem is that the culture of shipping fast at all costs is so deeply embedded in client expectations, management priorities, and deadline-driven contracts that doing things properly is treated as a luxury, not a standard.
Tools and Infrastructure: Stuck in the Past
Visit a typical Indonesian software house or agency, and you will find engineers fighting battles that developers in other countries solved a decade ago.
No staging environments. Code goes straight from a developer's laptop to production. If it breaks, you fix it live. Hotfixes at 11 PM are not emergencies, they are Tuesday.
No CI/CD pipelines. Deployment means SSH-ing into a server, running git pull, and praying nothing breaks. In some places I have worked, deployment was literally done by uploading files via FileZilla.
No proper monitoring. When a production server goes down, the first alert comes from a customer complaining on WhatsApp, not from an automated monitoring system. There is no Sentry, no Datadog, no structured logging. Just console.log("masuk sini") scattered across the codebase like breadcrumbs in a forest.
No knowledge-sharing culture. Documentation is almost an alien concept. When a senior developer leaves, they take the entire system knowledge with them. I have seen companies lose months of productivity because the one person who understood the payment gateway integration decided to resign.
These are not niche problems. These are systemic industry-wide gaps. And they exist not because the tools are unavailable, most of them are free and open source, but because there is no institutional will to adopt them.
The Salary Paradox
Let us address the elephant in the room: compensation.
Indonesian developers are, by any global measure, severely underpaid relative to the value they produce. A frontend engineer in Jakarta with 3-5 years of experience might earn what an intern makes in Singapore or Australia. Yet the expectations are identical: pixel-perfect UI, complex state management, integration with multiple APIs, and oh, can you also do the UI/UX design and write the documentation? Thanks.
This creates a vicious cycle. Companies pay low salaries, so senior engineers leave for remote jobs with international companies or migrate abroad entirely. The ones who stay are either early in their career and need the experience, or they are emotionally tied to their community and family. Either way, the talent pool for local companies keeps shrinking.
And the companies? Instead of raising salaries and improving working conditions, they respond by hiring even more juniors, overworking them, and wondering why quality keeps declining. The hamster wheel spins faster. Nobody gets anywhere.
The Multitasking Myth
In developed tech ecosystems, there is a concept of role specialization. A frontend engineer focuses on frontend. A UX designer focuses on design. A project manager manages the project. Simple and effective.
In Indonesia? You are expected to be a one-person army. "Kamu kan engineer, masa bikin design aja nggak bisa?" You are a frontend developer who also designs the UI in Figma, writes the API documentation, sets up the server, manages the project timeline, and sometimes even handles client communication.
I have worn multiple hats myself, Frontend Engineer, UI/UX Designer, Project Manager, Fullstack Developer, sometimes across overlapping projects. While the versatility has made me a stronger professional, the underlying expectation is not about growth. It is about cost-cutting. Why hire four specialists when you can burn out one generalist?
This multitasking culture is not empowering. It is exploitative. It is telling your employees, "We need you to be excellent at five different disciplines, but we will only pay you for one."
No Code Review Culture
This one stings because it is so easy to fix, yet so persistently ignored.
In global engineering teams, code reviews are not optional. They are a fundamental part of the development process. Every pull request gets reviewed by at least one other engineer before it merges. This catches bugs, enforces standards, spreads knowledge, and raises the quality bar for everyone.
In most Indonesian companies I have worked at or interacted with? Code reviews are treated like an inconvenience. "Keburu deadline." There is no time. The sprint is ending. The client is waiting. Just merge it.
The result? Silent bugs that surface weeks later. Inconsistent coding patterns across the same project. Knowledge silos where only one person understands how a critical feature works. Security vulnerabilities that nobody catches because nobody looked.
Code reviews are not about gatekeeping or micromanagement. They are about mutual respect, respect for the codebase, respect for your team, and respect for the users who depend on your software. Skipping them is not efficient. It is negligent.
The Bootcamp Pipeline Problem
Indonesia has seen an explosion of coding bootcamps in recent years. On paper, this is great, more people learning to code means a larger talent pool. In practice, though? There is a dark side nobody wants to talk about.
Many bootcamps promise "become a software engineer in 3 months" and deliver graduates who know React syntax but have never debugged a production issue, never worked with a team using Git properly, and have no understanding of fundamentals like data structures, algorithms, or how the internet actually works.
Companies then hire these bootcamp graduates at even lower salaries, further depressing the market rate. The graduates, desperate for their first job, accept anything. They get thrown into projects they are not prepared for, receive no mentorship, and either burn out or develop terrible habits that they carry forward for years.
This is not the fault of the bootcamp graduates. They did what they were told, learn to code and get a job. The fault lies with an industry that treats developers as interchangeable cogs and bootcamps that prioritize marketing over education.
What Would "Better" Actually Look Like?
I am not naive enough to think one blog post will change an industry. But I believe we need to at least articulate what "better" looks like, so we know what we are fighting for:
1. Pay fairly, or lose talent. Companies need to accept that engineering talent is a competitive market. If you are not willing to pay market rates, your best people will leave for companies that will, whether those companies are across town or across the ocean.
2. Invest in developer experience (DX). Set up CI/CD. Use staging environments. Implement monitoring. Write documentation. These are not luxuries. They are basic infrastructure that pays for itself within months through reduced bugs and faster development cycles.
3. Enforce code review culture. Make it a policy. Make it non-negotiable. Start small, even a quick 15-minute review is infinitely better than nothing. The knowledge transfer alone is worth every minute invested.
4. Stop glorifying overwork. Working 12-hour days is not dedication. It is a failure of planning, staffing, or both. Engineers who rest produce better code. This is not opinion, it is well-documented science.
5. Respect role boundaries. It is fine to be versatile, but do not weaponize it. If you need a designer, hire a designer. If you need a project manager, hire a project manager. Stacking three roles onto one salary is not resourcefulness, it is exploitation.
6. Mentor, do not just manage. Senior engineers should be expected to mentor juniors, not just assign tasks and review timesheets. The 30 minutes you spend explaining why a pattern works will save hours of debugging later.
A Personal Commitment
I write this not as an outsider looking in, but as someone who is still very much part of this ecosystem. I have been the overworked generalist. I have been the engineer deploying via FTP at midnight. I have been the one-man army building entire systems because the budget does not allow for a proper team.
And through it all, I have stubbornly refused to lower my standards. I choose to write clean code even when nobody will review it. I choose to document my work even when the client does not ask for it. I choose to set up proper tooling even when management says it is not necessary.
Not because I am better than anyone. But because I believe that Indonesian developers are capable of world-class work, if we are given world-class conditions, or if we create those conditions for ourselves.
The gap between global standards and local reality is real. But it is not permanent. It closes every time one engineer decides to push back against "yang penting jalan." Every time one company invests in proper tooling instead of burning out their team. Every time one tech lead sets up a code review process despite nobody asking for one.
We deserve better. And if the industry will not give it to us, then we will build it ourselves, one clean commit at a time.