Shing Lyu

Disclaimer: This content reflects my personal opinions, not those of any organizations I am or have been affiliated with. Code samples are provided for illustration purposes only, use with caution and test thoroughly before deployment.

Conferences are not about sessions

A few weeks ago, I attended KubeCon + CloudNativeCon 2023, one of the largest and most popular conferences for cloud native technologies. It was an amazing experience, with thousands of attendees, hundreds of sessions, and dozens of exhibitors. I learned a lot from the speakers, the exhibitors, and the fellow attendees.

But there was one thing you might find surprising: I listen to very few sessions.

That’s right. I skipped most the sessions and focused on other aspects of the conference. Why? Because I realized that listening to sessions is not the most important thing to do at a conference.

Don’t get me wrong. Sessions can be very informative and useful. But sessions are not the only way to learn at a conference, especially when you are attending it physcially. Why? Because sessions often cover knowledge or topics that can be easily found online, such as on YouTube or blogs. And because sessions take a lot of time and effort to attend, they can take away from other valuable opportunities at the conference.

So what should you do instead of listening to sessions? In this article, I will share with you two things that I think are more important than listening to sessions at a conference: watching out for trends and networking. These two things can help you stay ahead of the curve in your industry and create new opportunities for yourself and your business.

Let’s dive in.

(continue reading...)


Why Both Knowledge and Experience Are Critical for a Software Developer's Career

There is an age-old debate about whether theoretical knowledge or hands-on experience is more important for a successful software developer career. However, the reality is that both knowledge and experience are equally important and complementary to each other. When I was a student (a long time ago…), I was proud of my education and the knowledge and skills that I have acquired throughout my academic journey. However, I couldn’t help but feel frustrated that despite my academic achievements, I was still struggling to find a job due to a lack of experience. Many companies seem to be looking for candidates who have already worked in the industry, leaving fresh graduates like myself feeling left out in the job market. It’s a catch-22 situation: how can I gain experience if no one is willing to give me a chance? In this blog post, I want to share my thoughts and experiences on how to overcome this challenge and land a job despite not having any prior work experience.

(continue reading...)


How to learn an AWS service quickly

In my day job, I have to consult customers on AWS services and design architectures on AWS. That means I have to have a basic understanding of almost every AWS service and be ready to dive deep into any of them on short notice. For that, I have a method for learning an AWS service in the most efficient way possible.

  1. Read the product page.
  2. Read the product FAQ.
  3. Read the concept section(s) of the documentation.
  4. Ask yourself key questions about this service.
  5. Watch YouTube videos.
  6. Follow a hands-on workshop.
  7. Dive deeper.

Let’s assume that you need to learn AWS Lambda quickly, here is how you would do it:

(continue reading...)


My Productivity System

my productivity system diagram (Right-click on the picture and select Open image in new tab to see the diagram in full size.)

After some recent discussion with a friend on note-taking methods, I decided to document my current productivity system for future reference. It is a combination of note-taking, time management, TODO list, project management, and writing combined. It has evolved over the years so I find it interesting to take a snapshot and look back a few years later.

(continue reading...)


Consistent Hashing and why it might not be the correct answer to your system design interview

I’ve conducted many system design interviews in the past. Whenever I brought up the topic of database sharding, the candidates almost always shout out “Yes, yes I know! Consistent hashing!”. If you probe them further, they will draw this classic ring diagram on the whiteboard.

Consistent Hashing Diagram WikiLinuz, CC BY-SA 4.0, via Wikimedia Commons

But if you have read Martin Kleppmann’s great book Designing Data-Intensive Applications, you might notice a sidenote:

…, this particular approach (Consistent hashing, as defined by Karger et al.) actually doesn’t work very well for databases, so it’s rarely used in practice (the documentation of some databases still refers to consistent hashing, but it is often inaccurate).

Then why is every system design interview study guide tell you otherwise? Let’s dive into this topic in this post.

(continue reading...)