Posts

Bali: A view from an Indonesian

Image
Coming from Indonesia, a question I get asked a lot near summer is always the same: Where should I go in Bali? As an Indonesian, I can tell you that Bali is not the only place you can go to. But if it’s your first time coming and you still want to go to Bali then I’ll share my own recommendation on places to go. I won’t share hotels or restaurants, that you can review yourselves based on the area but I’ll share possible locations and things you can do. What’s a visit to a tropical island without going to the beach? Here are my list of recommended beaches: Virgin/White sand beach, Karangasem. This is a hard to reach beach, you need to ride a boat or walk through the cliff. But it’s a really nice beach. Jimbaran. Beautiful beach with great eating place around. Legian. The beach to spend your lazy days. Seminyak. This is pretty much next to Legian, also good. Pandawa beach. It’s a really nice experience going here going through the cliffs. Lovina beach. A nice beach, not to crowded. If yo

5 Takeaways From My Past 5 Years With Coral, Prism, Midtrans and Gojek

Image
A little over 5 years ago, I decided to resign from Traveloka and joined hands with my friends to help build Coral. It was an exciting project. I have a big interest in the social commerce space and Coral seemed to be a very good take at it. We built it, launched it, learned from it and in the end decided that the business model will not be sustainable. Our experiment was evidently working. Merchant's conversion rate reached over 20% on our platform but we couldn't monetise it. Then we took the decision to pivot. We took the best part of Coral, the chat-to-buy capability, and breathe life into Prism. The product helped businesses dive head first into the social commerce space with their existing platforms. One thing that a lot of people don't know was that Coral and Prism was part of Midtrans from early on. It was acquired before launch. This enabled us to do the experiment without worrying about funding. Gojek acquired Midtrans during the closing days of 2017 and Prism w

Customizing Sanic's Logging output on Gunicorn

For those of you who didn't know, Sanic is a Python 3.6+ web server and web framework that’s written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy. Sanic's API is highly influenced by Flask and the API is really good. I worked on a personal project lately and found out that doing custom logging on Sanic is quite hard. You don't get a lot of information from Sanic's logging library and since it's based on the default Python 3 logging library , the information it provides is limited. My initial thought was since I will use Gunicorn, let's use Gunicorn's --access-logformat to get the information I needed. The functionality provided a lot of information and I can make use of it to get what I need. However, when you use Sanic Gunicorn Worker, which you need to use to make it work on Gunicorn, it will only use Sanic's logging output. I did a lot of googling and it seems like a lo

Lessons From Leading and Developing Product Engineering Teams - Part 2

Image
In my previous post I explained the first part of of my experience. I covered about trust, team empowerment, and direction clarity. In this post, I’ll focus on people aspects.  If you missed part 1, you can read it here. #4 - Take care of your people Your team members are your partners in achieving your goal. You should not see them as someone from a lower position. Instead, see them as people having different roles and skillsets. Learn from your team as your team will also learn from you. Grow collective wisdom. Read into each other’s mind and understand how to work best with each team members. The collective wisdom in a team is the one that will drive the team forward. Embrace it, and foster the development of the collective wisdom. The question that is usually asked would be How do I take care of my people? I’m from Indonesia, and here we have a saying "Tak kenal maka tak sayang" It means if you haven’t known someone, you can’t care about them. That, my friend, is exactly

Lessons From Leading and Developing Product Engineering Teams - Part 1

Image
The WFH period gives me extra time to think and reflect back on the lessons I’ve gained throughout my 15+ years career. I spent most of it leading others and I've gathered a lot of practical knowledge. I want to share it to help others learning to take up leadership. So, here are some important lessons about leading people based on my experience. It's a long read, so please bear with me, I'll split it into 3 parts. #1 - It all starts with trust Hire people you can trust. This brings a world of difference to the team dynamics. On every interview, I always ask myself the following questions. Can I trust this person? Will this person help the other team members? When I am confident to hire someone, it means that I trust that person enough to work with the other team members. The mindset I establish would always be Trusted, until proven otherwise. I mean, why would you even hire someone you can't trust? I've seen a lot of people hiring people but are too afraid to trust