For Digital Marketers, no matter what niche your clients are in, they probably not the only player. Most likely, the market has already been occupied with a handful of big sharks already.

So before turning on any campaign, it’s critical to analyze competitor’s marketing strategies and understand what kind of offers customers are already exposed to.

In this article, I will show you how to hack your competitor’s online marketing funnel.

Marketing Funnel Example. Img from

Organic Traffic

Among the various forms of funnels in the market, the organic content funnel usually is the first touchpoint.

The best way to understand it is to opt-in.

#1 Watch Free Content

Most of…

Great APIs are opinionated. In this note, I will share the practice we promote at Facebook of how to write an effective API.


#1 The Best API document itself

At Facebook, we believe the API is written to be read. By looking at an API’s signature, engineers should understand how to use this API and the expected outcome.


  • Verbosity > Ambiguity. Try to avoid single letter variables($x) and confusing function names with abbreviations. Use proper prefix as needed.
  • Constraints are liberating. Create a strict API that only does a specific job forces engineers to be more productive and introduce fewer errors.

#2 Avoid Long Parameter List

API should be short…

After the pandemic hits, more and more software engineers are working from home or working remotely. Some companies/teams are even completely turning virtual.

FB allows employees to WFH every Wed for a long time. When the whole company turning into the mandatory working remotely mode in Mar/2020, I didn’t feel that much difference in the first two months.

However, after three months, things changed a little bit. Although working from home may seem like a great benefit, no more commute. There are many struggles that at-home engineers must face.

Working remotely()

#1 Self-Motivation

If you struggle with discipline and self-control, you probably need to…

People are impatient. When we visit a website and request for certain data, cache plays a critical role in terms of waiting time. In this blog, I will share an introduction of cache: what is it and how to implement.

Web Application Cache()

What is cache?

A cache is a copy of frequently accessed data stores in Random Access Memory (RAM) hardware. Implementing caching in a web application means copying frequently accessed data from disk-based DB to RAM.

RAM-based hardware provides faster access than hard disk and capable of handling more requests. It helps the application to ensure low latency and high throughput. …

Scalability means the capability of the system to process increased workload while maintaining the same latency.

For example, if your system takes X seconds to respond to a user’s request. It should take the same amount of time to respond to each of the million concurrent user requests.

Scalable Application()

For a web application, there are 7common mistakes that can become a bottleneck and can hurt the scalability.

Poor Code Quality

Inefficient, unstructured code has the potential to slow down the entire service in production. Specifically:

  • Writing tightly coupled code(aka Spaghetti)
  • Using unnecessary loops or nested loops
  • Using inefficient, higher Big-O complexity algorithm

Choosing the Wrong DB Type

Picking the…

In my last story “”, I uncovered the responsibilities for Junior-to-Staff level engineer. But they are not the complete picture of a SWE’s career ladder, and the top-notch tier is still missing, aka “Principal Engineer”. In companies like Facebook, Amazon, or Google, it maps to Level 7+ and its total compensation is around $800k a year.

In this blog, I will share my observations of “what does a principal engineer look like”.



In general, a principal engineer should be able to spot, drive and deliver an initiative with multi-team, organization-level impact.

To expand on that…

Bitcoin, Ethereum, Dogecoin, Shibacoin…

You probably heard of all these crazy “coins” and news about their huge market value rise & falls. You may want to stay away from investing in these cryptos, but as a professionals work on tech, it’s not a bad idea to understand a little bit more, such as the mainstream blockchain technology and the process of creating one.

In this article, I will walk you through a simple 3steps of creating your own coin without writing any code.


The idea of creating a coin is simple: deploy your “contract code” on a blockchain.

Here the…

The React team recently introduced a major new feature “”. It opens a new world for front-end engineers to build a performant app while writing less code.

Img from

What the Problems?

Nowadays, numerous react apps provide rich experiences. But, these client-rendered apps still need to fetch & parse data from the server.

The data downloading roundtrip creates the performance bottleneck for apps and requires engineers to write more code.

For the static web page, which has no interaction, it’s a waste of resources to download JS source files and data from React component framework.

What if we have a React component supporting…

For any engineer working at a big corporate, building new features is only a part of the job. Another main part is making contributions to “Engineering Excellence(EE)”. EE also called “Better Engineering”, contains

All the efforts that improve the quality & efficiency of the product.

This responsibility is even higher priority if engineers work at an Infra team. In this note, I will share my experience of how we recognize the impact of “Engineering Excellence” in my daily operations.

Img from

Test Coverage

Writing more tests is an obvious way to ensure the quality of code. …

Career progression is an evergreen topic for software engineers because it directly impacts . In this note, I am going to share my personal perspective on the differences between Junior(E3–4), Senior(E5), and Staff(E6) engineers.

Junior Engineer

At this level, engineers focus mostly on demonstrating the coding capability and get familiar with engineering practices.

On the technical side, this level’s engineer should be able to:

  • Understand codebase and drive assigned request to improve it, such as migrating it to modern frameworks and adding missing tests
  • Design well-organized code
  • Independently complete medium to large features

On the “People Skill” side, there are not many…

Bobi Pu

TechLead @FaceBook |

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