Category: thoughts

Hà Nội giữa mùa hè và những cú sốc công nghệ!

Hà Nội giữa mùa hè và những cú sốc công nghệ!

Năm nay giữa tháng Bảy, trời Hà Nội đổ lửa, tôi cùng vợ và hai cậu con trai từ Mỹ về thăm quê. Tưởng là về nghỉ hè cho các con học tiếng mẹ đẻ, ai ngờ chính tôi mới là người “được học” lại từ đầu – học cách sống trong một xã hội Việt Nam phiên bản… update 10.0!


1. QR Code – thần chú mở cửa mọi cõi giới

Chưa kịp hoàn hồn vì cái nắng 39 độ + độ ẩm 100%, tôi đã bị hớp hồn bởi sự “số hóa toàn dân” ở Hà Nội. Mua bát cháo ở vỉa hè? QR nhé em! Mua cốc trà chanh? Scan giùm chị cái! Từ hàng ăn tới hàng cắt tóc, không ai đụng đến tiền mặt – trừ tôi.

Đỉnh điểm là lúc tôi mua bát cháo sườn ở đường sau khu nhà. Tôi lóng ngóng dùng điện thoại để đăng nhập app ngân hàng, rồi quét FaceID, chờ mãi chưa xong thì cô bán hàng quát:

App đâu? Bấm đi! Biết dùng không? Đưa đây cô bấm hộ!

Bỗng thấy mình như sinh viên năm nhất thời… 2000 về quê ăn Tết, ngơ ngác trước chiếc máy ATM lần đầu thấy trong đời.

Chưa hết, phòng khám y tế, nha khoa cũng  chuyển hồ sơ, đặt lịch qua nhắn tin Zalo. Tôi đi khám mà như đặt GrabFood: chọn bác sĩ, đặt giờ, xác nhận bằng emoji. Các giấy tờ sổ sách không cần in ra cầm tay mất công như trước…mà là chụp ảnh gửi Zalo (hơi mất an toàn tý nhưng mà nhanh :p)


2. Thương mại điện tử – nhanh như cơn mưa rào Hà Nội

Ở Mỹ tưởng thế nào đặt hàng nhanh còn phải chờ qua đêm, chứ ở Hà Nội bây giờ, đặt hàng online là chuyện “nhanh như chớp” và rẻ như… kẹp tóc 4.000 đồng. Tôi thử mua vài thứ “cho vui” – không ngờ cuối ngày là shipper đã gọi điện thoại í éo dưới nhà ! Mấy anh shipper ấy cắm trại sẵn ở ngã tư, rải các món đồ ra đầy bạt rồi tay nhoay nhoáy bấm điện thoại gọi khách tới nhận hàng. Ấn tượng nhất là khi tôi đặt 20kg dừa, ship nội thành trong vòng 3 tiếng. Ở Mỹ Prime 1-day là nhanh, nhưng mà ship dừa tươi kiểu VN thì vô địch.

Các shipper Hà Nội giờ ngồi tụm năm tụm bảy bên lề đường, tay cầm điện thoại như thể đang bán vé số kỹ thuật số. Thật sự là thương mại điện tử ở đây không còn là “giao hàng nhanh”, mà là “giao hàng như thể vừa nghĩ xong đã tới”.


3. Bệnh viện công – di tích sống và nghịch lý thời đại

Nhưng không phải cái gì cũng hiện đại. Tôi đưa mẹ đi bệnh viện “top đầu” ở Hà Nội, mà cứ ngỡ đang đi thăm… bảo tàng thời Pháp thuộc. Nhà cửa rêu phong, hành lang như mê cung, TV thì có mà bật không lên, giường cho bệnh nhân thì không nâng lên hạ xuống được, còn phải nằm ghép 2 người 1 giường, còn người nhà thì vẫn phải trải chiếu nằm hành lang, may mắn mấy ngày sau thì được nâng cấp…thành trải chiếu nằm sàn nhà cùng phòng bệnh nhân.

Đi khám lúc 11h30 trưa? Xin chào bạn, bác sĩ đi nghỉ trưa đến 1h30 chiều. Bệnh nhân ngồi đợi như đang ở… sân bay chờ delay. Rồi mẹ tôi làm mẫu xét nghiệm, đi đúng cả ngày 12 tiếng.

Cái kỳ lạ là, dịch vụ nào “đắt tiền” thì cực kỳ thần tốc. Cần nội soi? Có lịch chiều nay. Cần mổ? Đăng ký đi, mai mổ luôn. Cần trồng răng? Sáng nhổ, mai qua trồng luôn cũng được. Ở Mỹ, phải đợi 3 tháng mới tới lượt bác sĩ xem qua, rồi có khi chờ 6 tháng mới có kế hoạch implant.


4. Thành phố “lên đời” – nhưng bà con cứ thích chen

Dẫu vậy, tôi vẫn thấy vui. Hà Nội bây giờ khác quá – nhà cao tầng mọc lên như nấm, đường sá sáng sủa, ánh đèn lung linh, người người ăn mặc sang hơn, sành điệu hơn. Tối đến khu chung cư của tôi người đông như đi trẩy hội, mọi người chạy chơi khắp sân, nóng mà vẫn cười. Trẻ con tối đến lôi nhau ra sân chơi, cười đùa í ới. Nhìn mà vui.

Ở Mỹ, chỗ tôi ở ban đêm yên tĩnh đến rợn người – kiểu “phim kinh dị sắp chiếu”.


5. Hạnh phúc nhất – là thấy hai anh bạn nhỏ nói “ạ”

Nhưng điều khiến tôi ấm lòng nhất, là hai anh bạn nhỏ nhà tôi – sau vài tuần tắm mưa và nghịch đất – bắt đầu biết nói tiếng Việt rõ hơn. Mới về còn “Hi Dad”, giờ đã biết “Con chào bố ạ”. Nghe chữ “ạ” mà thấy lòng tan chảy. Rồi anh bạn út 4 tuổi thì biết chẹp miệng  “à à, con hiểu rồi ạ” – nghe ra vẻ hiểu tiếng Việt lắm ý. Anh bạn lớn thì rất thích vì được học vẽ, được học tiếng Việt (chả hiểu học đánh vần gì mà cứ cười khanh khách suốt)! Rồi các anh bạn nhỏ được gặp anh chị em họ, được đi chơi khu vui chơi trẻ con, rồi ăn cả món Mỹ (fries, pizza, spaghetti) lẫn món Việt (canh cá, thịt kho, đậu rán) mà kêu ngon lắm, cứ như chưa bao giờ ăn vậy =))

Tôi cười thầm. Không có app nào dạy trẻ tốt hơn là chính quê hương của chúng. Và chẳng cần khóa học “Culture Immersion” nào đắt tiền – chỉ cần một mùa hè Hà Nội.

Về Hà Nội năm nay là một trải nghiệm đa chiều, từ nóng bức đến ấm lòng, từ sốc công nghệ đến sốc văn hóa. Nhưng tất cả đều khiến tôi thấy gần hơn với quê hương, và thấy Việt Nam mình đang đi rất nhanh – chỉ là đôi khi vẫn kịp giữ lại những điều thân thương nhất.

Four important people you should have in your life

Four important people you should have in your life

Have you ever noticed how life’s best recipes always involve a diverse set of ingredients? Much like a deliciously layered cake, your life requires a unique blend of people to achieve that perfect balance of sweetness, inspiration, wisdom, and, yes, even the occasional sprinkle of annoying persistence. Let’s break down the four essential types of people you should absolutely, undeniably, no-questions-asked have in your life:

1. The Lover (Your Personal Cheerleader)

This is your spouse, boyfriend, girlfriend, partner—the person who sees you trip over nothing, spill coffee on your shirt, and still thinks you’re the greatest human being alive. They’re your safe haven, your Netflix-and-chill partner, and your personal cheerleader who insists you’re brilliant, even when you forget how to use your microwave. Trust me, everyone deserves someone who loves them unconditionally—even during their “I haven’t showered in two days” phase.

2. The Role Model (Your Personal Hero)

Remember when you were a kid and wanted to be Superman, Wonder Woman, or maybe just the cool cousin who could ride a skateboard? A role model is basically that—but adult version. They’re living proof that the dreams you scribbled in crayon might actually happen (minus the superhero cape, probably). They inspire you to reach higher, work smarter, and occasionally question if sleep is truly necessary when chasing goals. Spoiler alert: it is, but they’re still worth emulating.

3. The Mentor (Your Personal Yoda)

“Do or do not, there is no try.” While this might sound like a cryptic fortune cookie, a mentor is the human embodiment of this wisdom. They’re the person who has navigated the maze of life successfully—or at least pretends convincingly enough. Mentors dispense insights like candy on Halloween, offering you wisdom, guiding you through tough choices, and occasionally reminding you that instant gratification usually comes with long-term regret (looking at you, midnight pizza).

4. The Nagger (Your Personal Drill Sergeant)

Ah, the unsung hero—the nagger. They text you at 6 AM reminding you about your workout goals. They gently (or not so gently) remind you about deadlines, responsibilities, and the broccoli you promised to eat instead of fries. Naggers are like human alarm clocks you can’t snooze. You might grumble, but deep down, you secretly thank them for holding you accountable—right after you’re done complaining, of course.


So, there you have it. Life’s fabulous foursome: the Lover, the Role Model, the Mentor, and the Nagger. Together, they’re like the Avengers of your personal growth journey—each playing their part to ensure you live your best life, or at least one that isn’t embarrassingly mediocre.

Who fills these roles in your life? And more importantly, are you brave enough to tag your Nagger and admit it publicly? Go ahead—I dare you!


P/S: I’m tagging my wife (even though she’ll never read this blog): Annie, you’re my lover, mentor, role-model, and nagger, thank you for being 4-in-1!

Drawing Mercedes Logo With a Single Stroke – And Why You Should Not Sleep in Your Maths Class

The fun

It’s the new year. We had the winter break, and what do you do when your kids are at home for two weeks? They get on their iPads and, of course, watch YouTube Kids (Blippi, Bluey, and oh so many more).

But it’s the new year, so I want to change.

I want to find something fun, such as IQ games. Active entertainment (drawing, creating, solving problems) is better for kids than passive entertainment (watching videos).

So, I found an IQ game app.

The first quiz is: “Draw the Mercedes Benz logo with a single stroke”. Basically, without lifting the pen, draw this shape:

The frustration

So I did it for the kids first. Of course, Daddy can do anything, right?

But I failed at first attempt. Oopsie.

I tried.

Again.

And again.

And again.

Still failed. What? I cannot solve an IQ test from a kid app.  I got annoyed.

The solution

I looked closer: it was a graph with nodes (the red dots) and edges (black lines connecting the nodes). If I want to draw it with a single stroke, I have to find a path that visits each edge exactly once.

So it’s a graph problem. Then my foggy memory recalled what I learned in my Math/Computer Science classes 20 years ago: to find an Eulerian Path (a path that visits all edges exactly once) in a graph, the graph must have exactly zero or two “odd” nodes (an odd node is a node with an odd number of edges connected to it). This problem is similar to the Seven Bridges of Konigsberg problem.

The Mercedes Benz is a graph with 4 “odd” nodes, so according to Euler, there is no Eulierian path.

Voila: it is impossible to draw a Mercedes Benz with a single stroke.

Problem solved (kind of :p).

———————————-

Now, I’m faced with a greater challenge—how to explain it to my five-year-old. :p? I’ll tell you in the next post.

 

Hacker Laws Every Software Engineer Should Know

Hacker Laws Every Software Engineer Should Know

One AWS senior principal engineer shared this Github repo with us:  https://github.com/dwmkerr/hacker-laws ([PDF], [Podcast]). The compilation of “Hacker Laws” provides essential guidance distilled from decades of experience. Whether you’re designing a distributed system, optimizing performance, or leading a team, these principles offer valuable frameworks for approaching common challenges.

 

It’s a really good read. Here is the quick summary:

1. Amdahl’s Law

This law emphasizes the diminishing returns of parallel processing. While adding processors may improve system performance, the non-parallelizable portion of your program will limit the overall speedup. For engineers, this serves as a reminder to analyze the structure of the tasks before throwing hardware at the problem.

Key takeaway: Focus on optimizing the bottlenecks before investing in parallelization.

2. Brooks’ Law

The more people you add to a late project, the later it becomes. Brooks’ Law is a cautionary principle that illustrates the inefficiencies created by increased communication overhead and the learning curve of new team members.

Key takeaway: Adding more developers to a problem will not necessarily solve it faster; consider smarter resource allocation.

3. The Broken Windows Theory

This theory suggests that minor issues, like bad code quality or technical debt if left unchecked, will accumulate and eventually cause more significant problems. Treat your codebase like an environment—keep it clean to prevent long-term damage.

Key takeaway: Fix minor issues before they snowball into more significant, harder-to-manage problems.

4. CAP Theorem

The CAP theorem states that distributed systems can only guarantee two out of three properties: Consistency, Availability, and Partition Tolerance. This is critical when designing distributed applications, as you must prioritize based on your system’s needs.

Key takeaway: Understand the trade-offs in distributed systems and decide which aspects are most critical for your use case.

5. Conway’s Law

Organizations design systems that mirror their communication structures. If your company is divided into isolated teams, expect your systems to reflect this disjointed structure.

Key takeaway: Foster inter-team communication to build cohesive and unified system architectures.

6. The Pareto Principle (80/20 Rule)

In software development, 80% of the consequences come from 20% of the causes. The most critical features or bugs are often concentrated in a small portion of the codebase.

Key takeaway: Focus on the 20% of the work that drives 80% of the results—whether it’s features, bugs, or performance issues.

7. KISS (Keep It Simple, Stupid)

KISS advocates simplicity in design. Overcomplicating solutions makes them harder to maintain and scale. Always aim to solve problems with as little complexity as possible.

Key takeaway: Complexity is the enemy of reliability—choose simple, elegant solutions whenever possible.

8. YAGNI (You Aren’t Gonna Need It)

A principle from Extreme Programming, YAGNI advises against implementing features until necessary. Prematurely coding features that might never be used wastes time and resources.

Key takeaway: Build only what you need today, not what you anticipate needing tomorrow.

9. Linus’s Law

This law states, “Given enough eyeballs, all bugs are shallow.” In an open-source or collaborative environment, the more people reviewing the code, the easier it becomes to identify and fix bugs.

Key takeaway: Encourage code reviews and collaboration to uncover issues early.

10. The Law of Leaky Abstractions

Abstractions are necessary to simplify complexity, but every abstraction leaks some underlying complexity at critical moments. Engineers must be cautious about over-relying on abstractions without understanding the systems beneath them.

Key takeaway: Learn the inner workings of your abstractions so you’re prepared when things go wrong.


Final Thoughts: Understanding and applying these laws can elevate your engineering practices. They provide a lens through which to evaluate your design choices, team dynamics, and problem-solving approach. As the software development landscape evolves, these timeless principles remain crucial for success.

What make a great contractor, or the story of how I learn to spot an A player

The fastest and cheapest ain’t always the best

Disappointed Cricket Fan Meme" Sticker for Sale by simcass | Redbubble

So, back in December last year, I wanted to choose contractors to renovate my kitchen. I had a lot of bidders and ended up with the earliest – basically, to avoid decision fatigue. Let’s call him Joe.

Joe was responsive initially, offered me the most affordable price, and got back to me very fast.

I was hooked.

Little did I know that being consistent and predictable sets A+ contractors apart.

Two weeks into the project, he decided to disappear for two days. No text. No call. No nothing.

Communication blackout.

He promised to finish the project before Christmas – and as of now, near the end of January, we’re still living without a kitchen.

I regretted hiring him.


The most consistent and predictable player, win.

The Best Handyman Near Me

Enter the story about Jim.

Jim is another contractor I liked and helped me with various projects around the house: bookshelves, closets, you-named-it.

Was he the first? No.

Was he the cheapest? Not likely.

Was he the most consistent and predictable? Boy, oh boy, yes, absolutely yes.

Jim said he’ll be there at 9 am to start working. At 8.55 am, the bell rang, and he was there.

Jim would work continuously for 12 hours to complete the project on time. He told me it would take this much time up front, and he was right to a quarter of the hour. He communicated frequently with me about the progress and consulted me when anything was off.

He delivered the work beautifully.

I’d gladly hire Jim again for any future project. Not Joe.

——–

That’s the consistency and predictability that set A player apart: being the fastest or cheapest might only get you going. You need to be consistent and predictable to win and deliver amazing results.

That’s it. Now is my time to return to my kitchen.

 

Leading Through Uncertainty Time

Leading Through Uncertainty Time

This came in my mailbox from Harvard Business Review. It resonated greatly with my current context: dealing with new scopes, zooming in on net new focuses, and tackling greater challenges.

Sharing it here as a way to remind my future self. You can read the whole article on HBR here.

Facing Uncertainty – It’s All About Mindset

Uncertainty is unavoidable. As a manager, you need to be prepared to lead your team through murky waters, but doing so requires getting in the right mindset yourself. Here are six tips to help you shift your perspective:

1. Embrace the discomfort of not knowing. Move from a know-it-all to a learn-it-all mindset. You don’t need to have all the answers.

2. Distinguish between “complicated” and “complex” issues. They require different solutions.

3. Let go of perfectionism. Instead, aim for progress, expect mistakes, and recognize that you have the ability to continually course correct as needed.

4. Resist the urge to oversimplify and come to quick conclusions. Take a disciplined approach to understand both the complexity of the situation and your own biases.

5. Don’t go it alone. Connect with your peers who have their own set of experiences and perspectives to draw from.

6. Zoom out. Taking a broad, systemic view of the issues at hand can reveal unexamined assumptions that would otherwise be invisible

Speed of trust

OK, let’s try this game in 1 minute:

“Can you think of three people whom you trust deeply?”

OK, good. In the next 2 minutes, can you tell me the common qualities and characteristics? Why are they trustworthy and reliable to you?

Done? Great, let’s see do we have anything in common – to me, here are some common traits of trustable people:


1. Talk straight, no hidden agenda.

They are honest, they tell the truth. They demonstrate integrity and tell the facts, mean what they say and say what they mean.


2. Be loyal

They stay with you in hardship as well as in prosperity. Nothing can change the value of their friendship. They have friends whom they know they can call at 2 AM.


3. Be positive – right the wrongs

They don’t hide mistakes. They acknowledge, accept their mistakes and offer correction asap. They do the same to others’ mistakes.


4. Respect others

They genuinely care for others. Material value means little to them – they respond to other people by characters and core values, not on appearances, wealthiness, or social status. They don’t judge quickly.


5. Deliver results

They can be high-achievers and mountain movers, or just someone who keeps their promises. You know when they say they’ll make it, they’ll make it despise circumstances.


6. Strive to be better

They never sleep on their laurels. They never stop to be a better version of themselves tomorrow, and they encourage others to be the same with their infectious energy.


7. Challenge status quo

They have little respect for status quo. Not so much for dogma and social norms either. They always have a healthy dosage of curiosity. They are the square peg in the round hole.


8. Crystal clear expectation

They state exactly what their expectations are. They discuss, renegotiate, and validate these expectations. They don’t assume.


9. Hold themselves and other accountable

They practice strong accountability and they expect the same from you. They will not forgive themselves easily for irresponsibity.


10. Listen first

A lot of us listen with the intention to respond. They listen with the intention to understand.


11. Open-mindedness

Enough said, with all of the strong characters – they are great listeners. They extend their trust network, they welcome you to the circle, they accept differences knowing these are essentials for the greater of good.

This is by no mean a complete list, what do you have in mind?

Building stronger connection

Fast Friends exercise

Today at Stanford GSB, I did an interesting exercise developed by Arthur Aaron at Harvard University almost 30 years ago.

In this exercise, you work with a chosen partner, each of you takes turns to ask and answer questions. Each person must answer each question before proceeding to the next. Try to get as many as you can within 15 minutes.

After the exercise, in just less than half an hour, suddenly complete strangers can build closeness toward the other, a connection that we didn’t have before.

10 questions to ask

  1. Given the choice of anyone in the world, whom would you want as a dinner guest
  2. Would you like to be famous? In what way?
  3. What would constitute a “perfect” day for you?
  4. If a crystal ball could tell you the truth about yourself, your life, the future, or anything else, what would you want to know?
  5. What do you value most in friendship?
  6. What is your most treasured memory?
  7. When did you last sing to yourself? To someone else?
  8. If you could wake up tomorrow having gained any one quality or ability, what would it be?
  9. If you knew that in one year you would die suddenly, would you change anything about the way you are now living? Why?
  10. Your house, containing everything you own, catches fire. After saving your loved ones and pets, you have time to safely make a final dash to save any one item. What would it be? Why?

The exercise left me to wonder: how could it happen? How did complete strangers get together and build up a rapport so effectively? What do you think?