Blog

Growth Engineer

Taking fine-tuning to the next level

While I’ve shipped a lot of growth wins (literally the first line on my resume), I’m actually very far from a prototypical growth engineer. That said, in this piece, I want to explore a bit more into what it’s like being a growth engineer and what makes you good at being one. Growth engineers are generally 1 -> 100 experts instead of 0 -> 1. They fine-tune every little detail by running a lot of experiments with marginal changes to understand the user problem and drive growth impact (line goes up). ...

June 20, 2025

Product Growth Opportunities

Finding ideas that brings you from 1 -> 100

It’s never easy to come up with new ideas that help with growth, but identifying the problem makes it easier. You’ll notice that for the most part in this piece, I’ll talk about “where” the opportunities are instead of “what” because that’s usually very domain specific and highly depends on the type of problem you ended up needing to solve. This is part of a series (The Opinionated Engineer) where I share my strong opinions on engineering practices. ...

June 13, 2025

A/B Testing

Basic guide to running a good A/B test

This is a basic introduction on how to run a good A/B test. A/B testing is a method where your user pool is segmented into multiple groups, allowing you to test different product interactions and understand how these changes affect user behavior. For any metric / data driven team, A/B testing serves as a critical tool in measuring success. This is part of a series (The Opinionated Engineer) where I share my strong opinions on engineering practices. ...

June 6, 2025

No Blame SEV (Incident) Culture

Less finger-pointing, more preventions

Every time there’s a major outage at Meta, the first question I get from friends and family is usually “did they fire the person who caused it?” which is where I have to explain this concept of No Blame SEV Culture. Especially for an outage so big that a significant number of users are affected, the individual causing it likely does not have ill intent and there are likely multiple different processes and systems that failed along the way to get us here in the first place. ...

May 30, 2025

Code Review Culture

Review today or debug tomorrow

Ask a programmer to review 10 lines of code, he’ll find 10 issues. Ask him to do 500 lines and he’ll say it looks good. - @girayozil Code review is a really subjective thing where each team or even individual runs things very differently. However, a bad code review process can lead to bad code smells and unnecessary tech debt (just ask all the vibe coders out there 🫣). I will try my best to share my rather opinionated takes while explaining the reasoning behind each of them. ...

May 23, 2025

Building a Simple Newsletter Service

Just a DB with some HTMLs

When I had the idea on the series about The Opinionated Engineer, I figured maybe that’s something worth setting up a newsletter service over. That said, after some consideration, I just thought that I didn’t need anything too complex and decided to roll my own because “how hard could it be?”. As far as I can tell, I think it’s working fine so far(?) and took me around one whole day to put the whole thing together from my couch. You can find all of it’s source code here on GitHub. ...

May 21, 2025

The Art of Posting

It's both self-promotion and communication

This piece is specifically more about Meta’s unique culture of “posting” about things but I imagine it can be a useful reference on communication in general. Many people loathe this process and complain about how it’s just a lot of “self-promotion” and while there’s definitely some truth to it, it’s also a valuable communication avenue that you can leverage to your advantage. As we will explore further below, posting by itself is more of a bonus as the post will still require actual substance (which is your work lol). ...

May 16, 2025

Push Fearlessly with Automated Testing

Move faster by moving slower

Conventional wisdom is that writing tests slows you down, because the alternative is that you don’t need to write tests. In fact, Meta (then Facebook) was famously lacking of automated test inline with it’s famous “move fast and break things” mantra. However, from what I’ve seen, I beg to differ. This is part of a series (The Opinionated Engineer) where I share my strong opinions on engineering practices. When to write tests? # If you love something, put a ring test on it. ...

May 4, 2025

The Opinionated Engineer

Strong opinions about engineering practice

Historically, my personal blog has been mostly about “how to do x”, “guide on making y” but never about ideology or engineering practices. This new series intends to change that where I’ll explore the more opinionated side of myself especially around engineering practices instead of just the pure technical stuff. Topics # I have not fully planned out the entire series but here are a few topics I have in mind (or have released) so far… ...

May 4, 2025

Self-Hosted GitHub Actions Runners

Turning your old laptops into GARs

This post will focus more on the “why” and some of the quirks around doing so instead of the “how” since GitHub already have a very comprehensive guide around it. Just wanted to take a bit of time to acknowledge that it’s been almost 3 years since I last wrote a blog post. It’s been a busy 3 years for sure but hopefully I’ll be writing more consistently moving forward. (I do have quite a few half-written drafts that I’ve never published which I can’t tell if it’s still relavant at this point.) ...

April 25, 2025