@threepointone Not sure about the value of this post. Being disciplined about work and incrementally completing it is something one naturally learns through education, career and experiences. This can happen to any occupation, let alone "senior engineers".
What happens if your CPU gets something wrong? If it wakes up one day and decides 2+2=5?
Well, most of us will never have to worry about that. But if you work at a company the size of Google, you do, which is why this paper on "mercurial cores" is so fascinating.
What the authors report--and supposedly this is common knowledge at the hyperscalers--is that a couple cores per several thousand machines are "mercurial." Due to subtle manufacturing defects or old age, they give wrong answers for certain instructions. These can cause all sorts of impossible-to-diagnose issues. Some rare problems at Google that were traced back to bad CPUs include:
- Mutexes not working, causing application crashes
- Silent data corruption
- Garbage collectors targeting live memory, causing application crashes
- Kernel state corruption causing kernel panics
What makes CPUs go bad? It's very hard to tell. The authors posit that issues are becoming more frequent as CPUs get more complex, but there aren't solid numbers behind that. There are certainly strong relationships between frequency, temperature, voltage, and bad CPU behavior--most mercurial CPUs only cause problems under very specific conditions, but those conditions vary from CPU to CPU. Age is another source of problems, as older CPUs are more likely to exhibit problems.
Bad CPUs are an especially serious problem because they're very hard to detect. If cosmic rays flip bits in storage or on the network, that can be detected through error coding. But there's no analogy for a CPU that allows cheap online verification of its correctness. Instead, the best detection techniques involve monitoring for symptoms. If a core exhibits exceptionally high rates of process crashes or kernel panics relative to its fellows, that's a strong indication something is wrong with it. For the most critical applications, the authors propose triple modular redundancy--redoing each of its computations on three cores and majority-voting a reliable result.
More than anything, this paper is a call to action--letting everyone know that CPUs can fail. So now, if you ever find a bug you can't diagnose, you can blame the CPU! π
AI is the next 100x productivity boost. Copilot/Ghostwriter is just the early innings bringing 30-50% improvement. The next generation coding AI will not be mere text complete and will lead to rapid change in how we make software.
I love to read autobiographies of people who started iconic companies. I was fortunate to work for Zuck and Bezos as their origin stories were still being written, and it's fun to pattern match against other founders. Hereβs a list of some of my favorite business biographies:
β‘οΈUkrainian mathematician Maryna Viazovska wins Fields Medal, the most prestigious award in mathematics.
Viazovska, 37, is a Kyiv-born and raised professor at the Ecole polytechnique federale de Lausanne in Switzerland.
This is the flowchart of how slack decides to send a notification.
It is a great example of why a simple feature may take much longer to develop than many people think.
Whatβs your takeaway from this diagram?
Image source: https://t.co/INrVLUZ2nX
πππ«π―ππ«π₯ππ¬π¬ is one of the hottest topics in cloud services. How does AWS πππ¦πππ work behind the scenes?
Lambda is a π¬ππ«π―ππ«π₯ππ¬π¬ computing service provided by Amazon Web Services (AWS), which runs functions in response to events.
Why is Kafka fast?
Kafka achieves low latency message delivery through Sequential I/O and Zero Copy Principle. The same techniques are commonly used in many other messaging/streaming platforms.
How do modern browsers work?
Google published a series of articles about "Inside look at modern web browser". It's a great read.
https://t.co/xzIPew0d3c
https://t.co/67tkdoNtWr
https://t.co/pQ62t73jEz
https://t.co/o8EkysPqli
Coding tasks will always take longer than you think.
- Make them bite-sized
- Be transparent about obstacles your facing
- Be OK with saying βitβs taking longer than expected becauseβ¦β
- Avoid making promises you canβt keep β donβt give an ECD unless explicitly asked
A mistake I made as a junior software engineer was performing too many code reviews.
I rushed through them. I was going for quantity to feign impact. I rarely caught flaws.
I got better at reviewing by slowing down. I prioritized a few, empowering others to review the rest.
@curtiseinsmann I worked at Non-FAANG and I currently work at one of the FAANG companies. I'm both my roles, I see the nature of work to be the top picture itself irrespective of the technical interview. I guess it largely depends on the person and the team.
Our SpringOne Giveaway has begun! We're giving away $25 UberEats lunch codes to a handful of lucky attendees. Here's how to enter:
π Register for #SpringOne https://t.co/Jn102niKtL
π RT this tweet
π Follow us @SpringOne & @VMwareTanzu
Good Luck!
T&C https://t.co/UJVz9jcVnH