Newsfeed 2025

June 2025

Immediate Decisions by Kihong Bae

Another reason people struggle to make immediate decisions isn’t excessive caution, but rather the discomfort and unease that comes with making the decision itself.

In these situations, the worst decision a CEO can make is to say, “Let’s wait another week and see.”

Finally, to be honest, there are no decisions in this world that truly require that much deliberation. In my experience, most decisions can be made within five minutes.

(Fairly Important) Communicating with Investors by Kihong Bae (Translated from Korean)

  1. Key KPIs the company is focusing on (e.g., revenue, UV, MAU, etc.)
  2. Notable positive or negative updates in sales, marketing, distribution, manufacturing, etc.
  3. Special notes or unusual events
  4. Number of full-time employees
  5. Total investment raised to date
  6. Current cash position of the company
  7. Requests or asks for Strong Ventures (or other investors)

Is it Helpful Advice or Discouraging Criticism? by Soojung Shin

Highlight the greatness.

Boomerang by Kung Fun No (Translated from Korean)

When I told someone from headquarters that I had returned, they didn't ask any questions and simply said, “Thanks for coming back.” Then they immediately moved on to the next topic. That day, I kept thinking about those words. My heart felt warm, I was glad I came back, and I felt motivated to do even better going forward.

Taking a step back by Jaana Dogan

When you work for 12+ hours a day, you become too obsessed about what you are building. Obsessions somewhat end up being defeating because pivoting frequently is the most important tool. Taking a step back from time to time is actually useful.

Multiple GCP products are experiencing Service issues

Incident began at 2025-06-12 10:51 and ended at 2025-06-12 18:18 (all times are US/Pacific).

Summary

Google Cloud, Google Workspace and Google Security Operations products experienced increased 503 errors in external API requests, impacting customers.

We deeply apologize for the impact this outage has had. Google Cloud customers and their users trust their businesses to Google, and we will do better. We apologize for the impact this has had not only on our customers’ businesses and their users but also on the trust of our systems. We are committed to making improvements to help avoid outages like this moving forward.

What happened?

Google and Google Cloud APIs are served through our Google API management and control planes. Distributed regionally, these management and control planes are responsible for ensuring each API request that comes in is authorized, has the policy and appropriate checks (like quota) to meet their endpoints. The core binary that is part of this policy check system is known as Service Control. Service Control is a regional service that has a regional datastore that it reads quota and policy information from. This datastore metadata gets replicated almost instantly globally to manage quota policies for Google Cloud and our customers.

On May 29, 2025, a new feature was added to Service Control for additional quota policy checks. This code change and binary release went through our region by region rollout, but the code path that failed was never exercised during this rollout due to needing a policy change that would trigger the code. As a safety precaution, this code change came with a red-button to turn off that particular policy serving path. The issue with this change was that it did not have appropriate error handling nor was it feature flag protected. Without the appropriate error handling, the null pointer caused the binary to crash. Feature flags are used to gradually enable the feature region by region per project, starting with internal projects, to enable us to catch issues. If this had been flag protected, the issue would have been caught in staging.

On June 12, 2025 at ~10:45am PDT, a policy change was inserted into the regional Spanner tables that Service Control uses for policies. Given the global nature of quota management, this metadata was replicated globally within seconds. This policy data contained unintended blank fields. Service Control, then regionally exercised quota checks on policies in each regional datastore. This pulled in blank fields for this respective policy change and exercised the code path that hit the null pointer causing the binaries to go into a crash loop. This occurred globally given each regional deployment.

Within 2 minutes, our Site Reliability Engineering team was triaging the incident. Within 10 minutes, the root cause was identified and the red-button (to disable the serving path) was being put in place. The red-button was ready to roll out ~25 minutes from the start of the incident. Within 40 minutes of the incident, the red-button rollout was completed, and we started seeing recovery across regions, starting with the smaller ones first.

Within some of our larger regions, such as us-central-1, as Service Control tasks restarted, it created a herd effect on the underlying infrastructure it depends on (i.e. that Spanner table), overloading the infrastructure. Service Control did not have the appropriate randomized exponential backoff implemented to avoid this. It took up to ~2h 40 mins to fully resolve in us-central-1 as we throttled task creation to minimize the impact on the underlying infrastructure and routed traffic to multi-regional databases to reduce the load. At that point, Service Control and API serving was fully recovered across all regions. Corresponding Google and Google Cloud products started recovering with some taking longer depending upon their architecture.

Airbnb ft Brian Chesky - Battling a Copycat Clone and Rebuilding User Trust to Revolutionize Travel

I thought the best revenge against the clone isn't to beat them it's just to make them run the company long term you had the baby you raised the baby I'm not adopting your baby you raise the baby and I thought there's no way they're going to raise this baby for 18 years

The Generics Way to Use GORM

Thank You, DataFusion: Queries in Rust, Without the Pain by Pierre Zemb

Simpler backoff by Josh Bleecher Snyder

Don’t write code that generates a small, fixed set of values. Use a lookup table instead.

Thrive in obscurity by Jeet Mehta

1 — Do things you like, and sometimes the world will agree 2 — Push yourself out 3 — Build your Binge Bank

Tales About Performance Optimizations in ClickHouse by Alexey Milovidov

Episode 1: MergeTree vs Memory Episode 2: is compression slow?

Why OpenAI Spent $3B on a VS Code Fork by Barely Thinking

Things money cannot buy

  1. Happiness
  2. Fit body
  3. Fast time to market

Better product -> More usage -> More data -> Better algorithm -> Better product

Cyclical growth.

Building a Distributed Cache for S3 by Tom Schreiber

Stage 1: Local OS page cache Stage 2: Local cache on cloud compute nodes Stage 3: The distributed cache

That’s why latency becomes the dominant bottleneck in many real-world analytical queries. You simply can’t fan out enough I/O to hide the delay.

  • Short-running queries often touch just a few compressed blocks.
  • Scattered access patterns involve many small, disjoint reads.

In both cases, bandwidth doesn’t help, latency is the limit.

Layer Latency IOPS Throughput
S3 500 ms 5K 2 GB/sec
SSD 1 ms 100K 4 GB/sec
Memory 250 ns 100M 100 GB/sec
Network 100–250 µs 1.5–12.5 GB/sec

Thanks to these characteristics, the distributed cache, accessed over the network, delivers latencies that fall neatly between SSD and memory. And like the local filesystem cache before it, it solves the core bottleneck of object storage: latency.

Discuss together, but one person decides. by Hyungsuk Kim (Translated from Korean)

  1. What is delegation?
  2. Each person should increase the proportion of decisions they make on their own.
  3. The core of delegation is ‘direction’.
  4. A horizontal culture means everyone can freely share their opinions.
  5. One person makes the decision.
  6. Who is that one person?
  7. Delegation can be revoked at any time.

양복구 - 양복 만드는 남자 구본석

May 2025

Why the thought “Isn't that just how things are?” is dangerous by Demo Day (Translated from Korean)

This video explains the dangers of fixed mindsets using two powerful examples:

  • How AlphaGo revolutionized the game of Go
  • How data-driven strategies transformed basketball with the rise of three-point shooting

Everything I Know About Vibe Coding by Heabom (Translated from Korean)

8th Commandment: Don’t gloss over things. 9th Commandment: Apply a test-first approach. 10th Commandment: Come up with ideas + turn them into businesses.

It's not about AI, it's about the business by Kihong Bae

Getting things “done” in large tech companies by sean goedecke

(a) executives at the company understand what’s happened, and (b) are happy with it

Container CPU Requests & Limits Explained with GOMAXPROCS Tuning by Phuong Le

Migrating away from Rust. by BrandonReinhart

Ten Rules for Negotiating a Job Offer by Haseeb

  1. Get everything in writing
  2. Always keep the door open
  3. Information is power
  4. Always be positive
  5. Don’t be the decision maker
  6. Have alternatives
  7. Proclaim reasons for everything
  8. Be motivated by more than just money
  9. Understand what they value
  10. Be winnable

More predictable benchmarking with testing.B.Loop by Junyang Shao

April 2025

The Reality of Tech Interviews in 2025 by Gergely Orosz, Evan King, and Stefan Mai

Iggy joins the Apache Incubator. by Piotr Gankiewicz

Preventing accidental struct copies in Go by Redowan

What is OKR? by Spike Jee (Translated from Korean)

OKRs are typically set aggressively, aiming high, so that achieving around 70% with hard work is the goal.

The Illusion of Interviews by Kihong Bae (Translated from Korean)

A good person is someone who is good at their job. Someone who is good at their job is someone who can handle any task they're given on their own. Not someone who needs to hire another person to do it.

Thoughts on Tech Debt (Career Q&A: Part of the Future of Coding) by Keeyong H. (Translated from Korean)

I love major incidents, the kind that don't bankrupt the company. … Everyone gets aligned in one goal. If we continue like this, we'll fail. Let's pay off the technical debt. … Trying to pay it off preemptively without evidence increases the likelihood of premature abstraction. … Respond quickly… and turn the actual large and small incidents that occur into evidence.

Inside Go's Unique Package: String Interning Simplified by Phuong Le

Microsoft is Getting Rusty: A Review of Successes and Challenges by Mark Russinovich

If it compiles, it works, …

A Year of Rust in ClickHouse by Alexey Milovidov

no C++ engineer can be excited by the task of “read this JSON file and follow the spec precisely”

Rust with LLM by Jaana Dogan

Coworker: We can’t do this in C++. Coworker: We can’t do this in Go. Coworker: We need Rust.

Me: No one knows how to deal with Rust or Tokio on the team.

(after a few hours with an LLM)

Me: Shoot, I have a working version in Rust.

Inside Google’s Two-Year Frenzy to Catch Up With OpenAI by Paresh Dave & Arielle Pardes

Quality over speed, but fast.

Interview Questions for Hiring Managers - What Should You Ask When Hiring a Manager? by Keeyong H.

  • Who was the best hire you have ever made?
  • Who was the most regrettable hire you have ever made?

March 2025

On the illusion that good products sell themselves by Minwoong Seo (Translated from Korean)

Even if a product is excellent, without a brand, it will inevitably become “just one among similar products.”

Faster interpreters in Go: Catching up with C++ by Vicent Martí

It's Useless to Speak Anyway by Hyungsuk Kim (Translated from Korean)

Expressing one's thoughts is the beginning of such change.

A job interview for software developers by @a6g (Translated from Korean)

Use any means necessary (ChatGPT usage recommended) to solve the problem.

Try sales. Don't be afraid. by Hyungsuk Kim (Translated from Korean)

  1. What do you think sales is?

First, it's about bringing revenue to the company. Second, it's about helping the people or companies that buy our product succeed. Third, it's about truly understanding what people want.

Rust is the New C by No Boilerplate

Software development topics I've changed my mind on after 10 years in the industry by Chris

Simple is not given. It takes constant work

How to influence query planning in Postgresql by Chris

From unique to cleanups and weak: new low-level tools for efficiency by Michael Knyszek

I need you. Would you like to work together? by Hyungsuk Kim (Translated from Korean)

Trimodal Nature of Tech Compensation in the US, UK and India by The Pragmatic Engineer

✨ A new record of 31,000 players online today at http://fly.pieter.com by @levelsio

No vision, just fun

He is really cool.

Promise less; deliver more by Kihong Bae (Translated from Korean)

We calculated the revenue we can achieve without investment, and if it looks too insignificant, then it simply means we are currently running a miserable and inadequate business that relies on external investment.

Hooking elements of the Luck Battle game by Dong Hun Lee (Translated from Korean)

The cost of Go’s panic and recover by Julien Cretel

Tips to debug hanging Go programs by Michael Stapelberg

The Power of AI: From Struggle to Leverage by Pascal BORNET

AI isn’t just a tool. It’s leverage. It amplifies individual strengths, making one person as powerful as a team.

Positions responsible for building products are already evolving overseas by Tae Hyun Kim (Translated from Korean)

  • Frontend Developer → Product Engineer
  • ML Engineer, ML Ops, Backend Developer → AI Engineer
  • PO/PM → Engineering PM
  • Marketer → Engineering Marketer
  • Designer → Engineering Designer

(comic) Focus area for the quarter by Work Chronicles

SO FOCUS ON EVERYTHING?

February 2025

[Handy Economy][Coffee Time] Most gukbap restaurants will struggle to survive - with Lee Jin-woo, Kim Hyun-woo, Park Se-hoon & Director Moon Jun-ho (Passion Gukbap) by Handy Economy (Translated from Korean)

Rust adoption in Linux is NOT going well… by Let's Get Rusty

[PATCH v8 2/2] rust: add dma coherent allocator abstraction.

Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) by Linus Torvalds

It has problems but problems are a fact of life. There is no perfect.

Technical patches and discussions matter. Social media brigading - no thank\k you.

Re: Rust kernel policy by Greg KH

Rust isn't a “silver bullet” that will solve all of our problems, but it sure will help in a huge number of places, so for new stuff going forward, why wouldn't we want that?

Yes, mixed language codebases are rough, and hard to maintain, but we are kernel developers dammit, we've been maintaining and strengthening Linux for longer than anyone ever thought was going to be possible.

Loyalty is destroying your career by Constantine Zaitcev

What if loyalty wasn't about length of service, but impact made?

Excuses for the company by Woojin Kim (Translated from Korean)

… I could personally feel just how overwhelmingly superior many of Lineage M’s features were compared to the other obvious competitors in the market at the time. … Because of my personal experience, I wanted to make a completely meaningless ‘Excuses for the company’ at least once. …

Rust vs. Go (Golang): Performance 2025 by Anton Putra

Does AI actually help leads get back into programming? by Jeremy Manson

2024년 회고 by Sigrid Jin

ML Product & DevRel Engineer 정체성을 발견하다

대부분의 엔지니어는 리서쳐를 어려워한다. 리서쳐는 석사, 박사를 취득한 공부쟁이이며 서비스를 모른다고 생각한다. 리서쳐는 엔지니어를 어려워한다. 코딩을 안해봤고 못할 것이라고 전제하기 때문이다. 이 둘 사이를 이어준다면 정말 엄청난 혁신이 일어날 수 있다. … 나는 리서치를 이해하는, 엔지니어가 되어야 한다고 생각하게 되었다.

Mind The convT by Max Hoffman

Implement FROM-first selects by mitsuhiko

Your Perfect Code Won’t Save You: The Real Reason I Got Fired by by Saul Burgos Davila

Times of War: There is a heavy workload, with rapid and frequent deliveries, strict deadlines, and a less relevant hierarchy. The key is to launch the product or feature as quickly as possible, even if it isn’t perfect.

Times of Peace: There is more stability and planning. Deployments happen weekly or at a slower pace, with better documentation, validation of functionalities, thorough research, and a more careful process. This scenario also tends to offer a better work-life balance.

This experience taught me that success isn’t solely about your technical mastery, but also about your ability to adapt to the pace and priorities around you—and understanding what the company truly needs.

평창 1박2일 여행명소 by 발로뛰어

GitHub Copilot: The agent awakens

January 2025

이직이 가능한 상태를 유지하자 by 취한하늘

Let's increase productivity.

Let's have enduring value.

VC 투자계약 차이: 실리콘밸리🇺🇸 vs. 한국🇰🇷 by Demo Day

Culture eats strategy for breakfast by Bernie Mckeown