In this article, I’d like to share some things I’ve learned from working on Cermati’s call center system, from researching and choosing the system components to hacking a few tools, to help bring the call center capability to what we have now.


Cermati uses two different IT infrastructure setup to support our company operations: the software infrastructure and the VoIP infrastructure.

An illustration of a data center, definitely not the one we’re managing.

Our software infrastructure is cloud-based. It’s running on top of cloud-based VM engines and SaaS provided by various cloud platform providers. At the time this article’s written, the software infrastructure is mostly based on Alibaba Cloud due to Alibaba…

We started with an idea to build a standard interface for our internal development tools in January 2019. At the time, we learned about a bash application framework called Bash CLI developed by Benjamin Pannell at Sierra Softworks — the code is available on GitHub.

We explored Bash CLI a bit to see what it can do and if it’s well-suited for our tooling development needs. After reading the code and testing the behavior a bit, we found it nice to use due to the well-defined structure of the project, the autocomplete feature it provides, and the flexibility to allow…

Reading Tough Things First— a book by Ray Zinn, a founder and a former CEO of Micrel — reminded me of a discussion I overheard a few years ago about how cultural, social, economic, and political issues affect technological development. In the book, Ray Zinn poured his experience and philosophy of running Micrel as a microchip company. A significant part of it speaks about Micrel’s organizational culture and how it impacted the company’s performance.

In the context of a tech company, technology functions as the main value provider of the business. The role of the technology is indisputable for the…

I had a chance to read On the Origin of Species by Charles Darwin sometime in 2017, not too long after I joined Cermati. The book left me a lasting impression on Darwin’s conclusion on how living creatures adapt and evolve to their environment, which according to Darwin happened by natural selection where the fittest among the species passed down their genes to the next generation.

Darwin didn’t manage to come up with how genetics really works — that’s Gregor Mendel’s part — but his conclusion was supported by empirical pieces of evidence based on his observations and the remains…

Nowadays, the concerns regarding security and privacy are growing among the users of technology. Considering that Cermati is a financial technology company, security is one of our main concerns when designing and implementing our system due to the amount of sensitive financial data we’re handling.

The idea of this article came from a coworker of mine — our engineering manager, Michaela Nathania. She told me that she’d like me to share about information security to our engineering team, either by talking in our internal tech talk or by writing. I consider myself a better writer than speaker, and I think…

Marcus Aurelius, who was a Roman emperor and is also a renowned Stoic philosopher, famously wrote words of wisdom on his personal notes for himself to reflect on. These notes were posthumously compiled and published as a book, popularly titled as Meditations.

Marcus Aurelius, a Roman emperor and also a Stoic philosopher (image from

Marcus Aurelius is regarded as a philosopher king, which is Plato’s concept of a ruler who possesses a love of knowledge, intelligence, reliability, and humility. In his personal notes, he made mentions that he had no control over things but his own mind and perceptions towards anything that befell him.

The emperor wrote on how to conduct ourselves…

With a team consisted of people from various universities and past experience — and a few majored in totally different subjects altogether — Cermati’s engineering team is quite diverse. Due to this diversity, not everybody on the team got the same common body of knowledge beyond the required computer science and software engineering skills when joining. This drives discussions on various topics among us, from which we’re helping each other to understand new concepts and grow — filling the gaps in our knowledge.

This article is inspired by a discussion I had with some of my fellow Cermati engineers when…

On a peaceful day at Cermati, I was looking at our NewRelic monitoring dashboard. Everything seems to be working just fine at the moment, so I went to see our performance a few hours earlier and found that there’s a spike on database access time around 1.15 in the morning.

After some checking to the production AWS RDS instance, we noticed that during the time there’s a huge IOPS spike. It always happens around 1.15 to 1.30 every day.

Write IOPS spikes from 12 April 2018.

So the hunt for the root cause of this performance spike began. …

As an engineer at Cermati, I have a lot of freedom to explore different technical topics — and share it with my coworkers on casual office conversations. At Cermati, Diffie-Hellman implementations can be found in our infrastructure — OpenVPN and Nginx have implementations of Diffie-Hellman key exchange protocol inside.

I have been spending my time reading some mathematics articles and books recently, and I got interested to make my own version of an article explaining how Diffie-Hellman key exchange works — which is why I created this article.

Diffie-Hellman key exchange was introduced by Whitfield Diffie and Martin Hellman to…


At Cermati, we’re serving our customers to offer our products and validating their financial service applications through phone calls. Thousands of daily phone calls are made from our call centers, going in and out of our Asterisk VoIP servers. Needless to say, the call center is one of the pillars of Cermati’s operations.

The asterisk servers are collecting call detail records (CDR) on a MySQL database. This is a precious source of data for our operational analytics, along with the records available on our customer relation management (CRM) system. …

Edwin Tunggawan

If I’m not writing code, I might be reading some random stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store