Today's problem was complex with an obscure solution. I have been working on the refactoring of our core-payment system that handles the payment transaction to/from each bank that we support.
While developing this new core service, one of the services is related to generating a payment code, let’s call it the
Payment Code Generator service. The
payment_code needs to be random but also unique. In short, requires a counter to generate, which means we need to store the counter.
To simplify the scenario, let’s say I’m building a service that will generate a payment code.
In this service, I have…
Hi, Iman disini, kembali lagi dengan saya yang sudah cukup lama tidak menulis tulisan berbahasa Indonesia 😄.
Dikarenakan wabah pandemi Covid-19 yang belum kunjung reda, hal ini menjadi salah satu alasan saya untuk menulis lagi di Medium. Kegelisahan dan rasa khawatir dengan keadaan sekitar, negara, dan manusia, sepertinya tidak akan mengubah keadaan. Pada akhirnya, di ruangan kecil ini, hanya ada saya seorang dengan pikiran saya.
Nah, di kesempatan ini, saya ingin mencoba menulis satu topik yang ringan dan sederhana tetapi masih tetap berkaitan dengan Software Engineering, yaitu tentang pentingnya 1:1 rutin kepada atasan kita.
Yap, 1:1 (one on one), atau…
It’s been a year after moving from Kurio. My past company. There are so many things I learned when worked in Kurio.
I learned about Products and Metrics pretty well. Learning many buzz-words in the product world like DAU, MAU, Retention Rate, Push Notification rates, etc. Data-Driven decision to create features in the product, and many things.
I also learned many Engineering practices. Like CI/CD, I learned how to make a CI/CD pipeline from scratch.
I learned about migrating from PHP into Golang. I learned about Microservice. Domain-Driven Design. API Driven Development, Software Testing. Semantic Versioning, Docker, Kubernetes, and many…
Today, I’m trying to create a live-reload for my Golang application. It’s just a simple application of REST API.
For your information, Live-Reload is a mechanism that will reload our application on every file change. So it will keep up to date with your code. I’m not sure it’s the same as a hot reload. But people said live-reload is reloading the application when a file changes. And hot reload, will only refresh the changed file without losing the state of the application, so it’s not restarting the entire application.
Also based on this Stackoverflow answer,
Live reloading reloads or…
GitHub recently released a new feature that allows you to create a Readme profile, so you can now customize your GitHub profile page.
You can see an example on my GitHub profile:
Hi again everyone, it’s been a long time I haven’t published any article. There’s a lot of things happen, like from the pandemic and much more stuff. This pandemic affecting me mentally personally, like this self-quarantine is really exhausting and stressing me enough. I wish this Covid-19 pandemic will be ended before Christmas this year. 😭
On this rare occasion, after fighting with the boredom and laziness, I found a spirit to finish this article. Start from me when building our new application in my current job, I’m curious about a few things, and in this part, it’s about pagination…
So a week ago, I do some experiments related to pagination on Postgres with combined UUID and timestamp. I got an interesting problem here, it’s happened when I’m doing a query for my created timestamp on the same timestamp.
To give some context, I have a database schema like this.
And out of curiosity, I’m doing a load testing on my application, with many concurrent users up to 100 concurrent inserts. And this caused my database to have a lot of rows that have the same timestamp. For example can be seen below.
As you can…
A few days ago, I was working on SQS in Golang. Quite tricky but stressing enough for me. Because I stuck for 5 days only to make my consumer worked well in EKS.
To give some context, SQS stands for Simple Queue Service. It is a message queue service provided by AWS. More details about it, you can see on the official page of SQS from AWS.
To make it short, assume that I have an application that will need to consume a lot of messages from SQS.
Simply, we can use the AWS SDK Go for consuming the SQS…
I’ve been working on Software Engineering for more than 3 years now. And I’m surprised, in these 3 years, I never face any PATCH endpoint yet, until now.
And because of that, I never really use the PATCH Method before, and never develop it either. I remember 3 years ago when the first time I asked my senior about the difference between PUT and PATCH was only the changed value. PUT will replace the entire item, and PATCH changing the specified field.
That’s it! But in reality, in my careers, we never used the PATCH method. The reason is that…
Hari ini, setelah bergelut selama 2 hari kurang beberapa jam. Saya menemukan kasus yang cukup membuat saya pusing dan bingung. Hingga pada akhirnya, saya berhasil menemukan solusinya. Dan solusinya ternyata sangat sederhana.
Sedikit cerita, saat ini, saya lagi mengerjakan proses pengembangan core-payment di Xendit, salah satu perusahaan payment-gateway di Indonesia, tempat saya bekerja saat ini. Saya baru bergabung sekitar 6 bulan yang lalu. Dan kebetulan saya mendapat kepercayaan untuk ikut serta dalam proyek me-refactor core system kami.
Nah, isu yang baru saya alami ini berkaitan dengan pengembangan sistem baru dari core payment kami. Isu tersebut berkaitan dengan concurrency dan transaction…