Video & Audio Codec Primer

This post is not intended to explain the video in a comprehensive manner but rather to distill important pieces of knowledge that are relevant to TipTip needs.

Compression

Compression is a lossy process to shrink the size of the media, video in this case, to ensure the video can be streamed appropriately according to the user device’s requirements. This process removes information; in a simple example, If two frames are basically identical, we can get rid of the data for one frame and replace it with a reference to the previous frame. Video compression has a lot of techniques; encoding is one of them.

wait, we can do lossless right? yes – but the file high likely is still too large for TipTip use case (and might not make sense anyway).

Continue reading

How to work with Panji

A while ago, I wrote this https://github.com/rhapsodixx/manager-readme, inspired by the other manager readme. Though it’s debatable whether the doc is useful, to me, writing this kind of doc is intended for ourselves – as managers – to force us to think about what kind of managers we want to be and what is our expectation to work with our directs, explicitly.

3 years afterward, I’m rethinking and came up with this…

Continue reading

CTO CheckList

Talking about tech management, it’s actually not really about writing code or building a service, it goes beyond. A lot of resources to help you ensure you have decent tech management, but what helps me the most for the past couple of years is: a checklist.

It started with a very simple checklist to expand the checklist that I got from Rutul Davé‘s GitHub.

this is my expanded version from Rutul Dave’s :

https://docs.google.com/document/d/e/2PACX-1vTYQp5LpD3ZOuRDX4SbcmN8kBaytwkLKBysvwGJe5Byeg3cLX2fJJPQEzOcaKtMMfhNttRW-D1HhEmy/pub

Defect/Bug Management

who doesn’t love bugs? they are small yet beautiful…ly ruining our life 🙂. Bug is inevitable, choosing 0 Bug as your OKR/KPI is an insane choice, it’s not impossible but it will astronomically hit your productivity & cost, your best bet is to manage it properly. So how are you organizing and managing these bugs? Assigning the right priority(by assessing its severity) is the key, inspired by a couple of references, here is how I typically categorize them.

Continue reading

On Observability

Running an application without having a proper monitoring is akin to driving without a dashboard. You don’t really know if you still have enough gas, or if you are within the speed limit, or how far are you till your next oil change. There are many uncertainties involved in running an application. Monitoring is instrumental in getting first hand awareness on possible incident or help predict that an incident is about to happen so we can prevent it.

This post outlines some observables that we can monitor and setup alert for along with some recommended practice.

Continue reading

Software Fragmentation – The Golden Path

There is a direct correlation between teams that give their engineers autonomy to own their technical decisions and the team’s ability to hire and retain A-class or Senior talent. There is a tradeoff, but an acceptable level of chaos in exchange for a stronger sense of individual/team ownership is usually the right one and leads to higher performing teams in the long run – at least this is what I’ve been seeing if a couple of companies in Indonesia.

So, how to make sure these “chaotic” things are manageable and actually give the benefit to the team?

Continue reading

Engineering Growth Framework

Growth Framework, Career Guideline, Career Ladder, whatever you call it, is essentially general expectations of each of the grade, sometimes people call it as career ladder, but we at Mekari wanted to take it further down into its philosophy: Framework. In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.

Continue reading