Ahyana Rizky Pratama / From Palm Oil to Pixels: My Journey into Software Engineering

Created Tue, 26 Aug 2025 23:51:16 +1000 Modified Tue, 26 Aug 2025 23:51:16 +1000

I consider myself one of the lucky ones when it comes to my experience with coding bootcamps. In 2016, I decided to join the first Full-Stack Engineering Bootcamp in Jakarta, a significant leap from my previous career as an employee at a palm oil processing plant in Kalimantan.

As someone who grew up in the city, I’ll admit I couldn’t part with the entertainment and comforts of urban life. Working at the palm oil factory was a good opportunity that aligned with my university degree in mechanical engineering, but I’ve had a deep interest in computers since I was young. I loved tinkering with games and even tried to hack Friendster—a popular social media platform back in the day. Despite my lack of formal knowledge, I was driven by a strong curiosity and the ability to read documentation, which led to some surprising successes.

Driven by the desire to leave the forests of Kalimantan, I started thinking about a career switch to software engineering. It was then that I was drawn in by a Facebook ad that proclaimed, “Join our bootcamp and get a guaranteed salary of 10 million IDR after graduation!” I was immediately interested and sought more information. After registering, I was invited for an online interview with Riza Fahmi, one of the founders and instructors at Hacktiv8. I remember he simply asked why I was interested and gave me a basic math problem about geometric shapes. A few days later, I was informed that I had passed and was asked to make the payment.

At that time, the investment required was 40 million IDR (around $4,000 AUD). This was a significant amount for me, as my salary was only in the 4-5 million IDR per month range. Fortunately, Hacktiv8 had a partnership with KoinWorks, a financing startup. They offered me a loan with light installments that I could start paying off only after I secured a job—an incredibly attractive offer. I accepted, and my journey into a Full-Stack JavaScript bootcamp began.

During the bootcamp, I learned a great deal about JavaScript, React, Node.js, Express, and much more. We also studied agile methodologies like Scrum and Kanban. The program was intense and did an excellent job of preparing me for the software engineering industry.

After graduating and going through just two interviews, I was hired as a Software Engineer at a SaaS startup in Jakarta. My first role was as a Software Engineer - React specialist, leveraging what I had just learned. My team was tasked with developing a desktop application using Electron to support our main web app on Mac and Windows. I remember our stack was Electron and React, and we implemented Redux as a global state manager to reduce prop drilling. We also used Redux Saga to manage asynchronous side effects, such as fetching data from our API, which kept our component logic clean and predictable. I also got my hands dirty with Webpack, Babel, and the compilers used to build the Electron app.

However, the desktop product couldn’t keep pace with the main web application. The web app team was constantly shipping new features, and our desktop and mobile teams struggled to close the feature gap. Eventually, it reached a point where, from a business perspective, continuing the development of the Electron app was no longer beneficial. My team was informed, and we were officially disbanded. Honestly, I was okay with it; I didn’t feel overly sad, even though an application we had built for about eight months was being shut down. I trusted that it was the best decision for the company, as startups must be smart about managing their funds.

After the team was dissolved, its members were reassigned. I was moved to the core web app development team, where I learned a great deal about Ruby on Rails and, surprisingly, a lot about accounting! This knowledge was essential because our product, Jurnal, was accounting software. To build relevant features for the Indonesian business climate, we were expected to understand accounting principles.

My first task on the core team was to fix a bug in the authentication system. I don’t recall the exact details, but it was my first deep dive into how encryption and authentication worked in Rails.

Later, a major task came up: revamping the reporting feature. The report pages were notoriously slow because they were tightly coupled with the Haml preprocessor, and the figures were generated directly from stored transactions in real-time. For companies with a large volume of transactions, the feature would become sluggish and unusable. An initiative was launched to rebuild it using a React front end powered by an API. At the time, documentation on integrating React with an existing Ruby on Rails application was scarce. I remember spending a full week focused solely on figuring out the implementation, going through countless trials and errors until I finally found documentation that worked. The sales report revamp was a success.

The new React + API approach significantly improved performance for a few key reasons. Instead of the server calculating everything and rendering a heavy HTML page on each request, the new method worked by first loading a lightweight React application shell instantly. The React app then made an asynchronous call to a dedicated API endpoint to fetch only the necessary, pre-calculated report data. This decoupled the front end from the back end, making the initial page load much faster and offloading the rendering work to the user’s browser, resulting in a far more responsive user experience.

This experience was a pivotal part of my journey as a junior software engineer. It taught me that the job isn’t just about writing code but about resilience—seeing a project you worked on get cancelled and understanding the business reasons why. It showed me the thrill of being given a difficult, ambiguous problem and having the trust and autonomy to solve it. My path from a factory in the jungle to refactoring a critical feature in a growing startup was unconventional, but every challenge solidified my passion for building things and solving problems with code.