Goodbye Onapp

How it Started#

There’re too much memories in here. I’ve spent over 1/5 of my life dedicated for Onapp.

I started working at the company as an intern in Aug 2016 for 6 months. That’s when I first learn Python and immediately fell in love with it. That’s where I wrote my unit test, integration test, working with RabbitMQ, Elasticsearch, Jenkins, etc. I remember reading news and articles about Internet companies in GigaOm, theregister and Techcrunch back in university years but never had any idea how they actually operate.

In year 2018, I came back again to work as Software Engineer at the company. I work on many interesting projects and fun team members. After a few months, I gained the trust to lead several projects in the company and also mentor/guide two new comers to the company. I remember my heart was beating fast upgrading MySQL version on our production database servers. I was also entrust by the management to train the support team in Salt Lake City, USA in year 2018 together with my engineering manager. Man, that 14-hours flight was really tiring! I was assigned as Technical Account Manager (TAM) to help some of our customers to better leverage our system. As a result, customers able to push traffic up to tens of GBps on their network

In year 2019, I cultivate the use of cloud technologies & services efforts at the company. We started a data pipeline project that utilizing Google BigQuery. We’re ingesting and querying huge amount of data. Not having a gigantic servers to manage is a big win for us when using BigQuery as it speeds up the development velocity and reduce the maintenance burden. Moreover, the tight integration with Google Datastudio makes the management & accounting teams love the dashboard.

In year 2020, I started working on a new greenfield project at the company. That’s where I started working with Django framework and again, fell in love with it. I advocated for Kubernetes as deployment of choice for this project and became the guy to look for regarding that matter. I also set up the GitOps process in our Kubernetes cluster and it helps streamlining our deployment process. As a result, the developers are comfortable and confident to push their changes to the production and we’re deploying to production several times in a day at peak.

In year 2021, I’m still working on the said project, adding new features, integrating with external services, redesigning the UI using internal UI framework, adding billing functionalities, etc. During this time, I had a great time collaborating with another team in Ukraine.

I had an explosive amount learning opportunities at Onapp. Not to mention attending a number of conferences in the region prior to COVID-19.

I’m not gonna lie, working here is one of the best thing happened in my life. Leaving Onapp was a really hard decision for me. If anyone of you interested to join the company, I recommend you apply for the job at Onapp and learn as much as you can from them.

Why I’m Leaving#

I’m jumping to a new bandwagon, a local Fintech company. Since this pandemic, this industry is booming as everyone is using ecommerce and online payment due to quarantine and so on. It’s everywhere and shows no sign of slowing down.

  1. I want to innovate more freely. At Onapp, we have a systematic way of doing things. And the folks prefers Boring technologies . Don’t get me wrong about the technological choices. There’s a good reason behind them and it served us right for many years. However, as a young engineer, I wanted to invest into new (and matured) technologies.
  2. I want to work with Fintech industry at the moment. I wanted to learn how money moves online. It’s a growing industry and I want a piece of that cake. Moreover, the company’s CEO is Muslim so I assume they should’ve follow the rules.
  3. I want to work at a small early stage start up that still have a lot of potentials to be realized. I want to help the company to reach their full potential.
  4. I want to learn new technologies like Ruby on Rails, React/NextJS, and many others. I want to step outside my comfort zone (but please, no Java/PHP). I feel like I’m too young to stick/stuck to what I’m doing right now for maybe another 3 years. The world is wide open for me to explore & discover. I also want to contribute and apply my knowledge on Database Optimization, microservices, design patterns, websocket, Redis, etc. and put it on production.
  5. I want to build and operate services that thousands/millions of people use everyday. I want to work on project that is used widely and giving a big impact on the industry & society. I want to help people growing their businesses and make more money.
  6. I want to work with a more consumer-oriented audience company. At Onapp, it’s a B2B company and only few businesses know the brand. I still have difficulties to explain to my mum what Onapp is.
  7. I’ve worked in CDN long enough that touched most part of the system (other CDNs implementation might differs). I’ve learned a lot of valuable lessons out of it. I feel like it’s time to pivot into a new field and apply the knowledge at the new place.
  8. In short, I want to learn new things. New domain/industry, new programming languages, new environment, and new people. It’s like a fresh new start.

All the Kind People#

This is where I met a great Engineering Manager, Sian Lerk Lau and learned so much from him. I still remember the first few months I was at the company, I had no idea what message queue is. He has showed me what a good leader/manager do and it’s a reinforced learning experience for me. Some of the efforts he put was: empathy, praising/applauding team members, motivating the team, effective intra-team communication, tasks ownership, helping each other, knowledge sharing, shaping the culture, etc. He is the manager I aspired to be in the future.

This is also where I met a great CTO, Wai Keen Woon. I remember we had several fun pairing sessions together. We’re hacking Kubernetes PVC provisioner controller , building a forward proxy in Go, optimizing CPU interrupts on servers, troubleshooting MySQL transactions issues (this is where I learned SELECT FOR UPDATE statement), troubleshooting Python Global Interpreter Lock (GIL) issue (I keep getting "MySQL has gone away" error message), load testing and benchmarking, tcpdump-ing network traffic, protecting server that’s under DDoS attack using iptables, teaching me Linux file discriptor, profiling programs, etc. Ahh, what a day. Those are a really valuable knowledge for me that I can only gain by working with great engineers.

Not to mention, a few dozens more people at the company have helped in shaping me today. I’m forever grateful for them.

All the Kind Words#

See this cute online farewell card .

I’m just gonna paste them here for the memories :')

cto1 cto2 po qa

© Fadhil Yaacob 2021