Why Lock-free Programming is Hard and How I Found a Bug in Lecture Slide

How I Found a Subtle Bug Hiding in a CMU 15-418/618 Lecture Slide Lock-free programming has this magical aura around it. If you’ve ever heard of lock-free programming, you’ve probably seen those neat little Compare-And-Swap (CAS) loops that seem to solve everything. I found a bug in a CAS loop that had been sitting quietly in CMU’s 15-418 Parallel Computer Architecture lecture slide for years. The “Simple” Example Here’s what the example in lecture slide looked like: ...

October 11, 2025 · 6 min · 1196 words · Li Cao

Summer of Computer Systems and More

Due to the restriction that we need at least two consecutive semesters of study in order to intern in the US, I didn’t apply for any summer internship. Employment at school is exempted, and I am fortunate to be an RA at CMU Tepper BLA lab this summer. It involves using graph theory to analyze financial statements. More details can be found here. I am also currently working with a PhD student at Safe AI Lab to do research in the area of Robotics. ...

July 20, 2025 · 4 min · 787 words · Li Cao

CMU Course Reviews - 1st Semester

Looking back on my first semester at CMU, I wanted to share my thoughts and experiences with the courses I took. This might be helpful for future students planning their schedules. This semester I took 4 courses. The workload was intense but manageable with good time management. Here’s my breakdown: 18-613: Introduction to Computer Systems While the famous CSAPP course has been extensively reviewed and is taught at many universities, here’s my personal perspective on the CMU experience. ...

July 18, 2025 · 6 min · 1273 words · Li Cao