I am going to do something new from this week. Well, it’s not completely new since I used to do it in my last job. I am going to write my weekly goals so that they are documented and I can always see the path I have taken compared to the goals I set at the start of the week.
Day 1: Started reading about distributed systems from Distributed Systems for Fun and Profit. Got introduced to the Raft consensus algorithm through this amazing visualization called The Secret Lives of Data.
Started reading on how to write a debugger. The Beginner’s Guide is a great starting point. That also made me curious about the lifetime of a C program and what happens at the linker stage. Another Beginner’s Guide to Linker was a great resource.
Also continuing making notes from the Hardware-Software Interface. Now things have started to get interesting as I am learning about ISA and assembly.
The motivation of this week’s exploration of system side is this brilliant zine on debugging by Julia Evans and my lingering curiosity of what-happens-when-a-c-program-runs.
Day 2: Went through a two-part article called Hello from a libc-free world. Went through an hour long go tutorial.
Day 3: Went through the Hardware Software Interface tutorial. I am now assembly literate which means that I can read a little bit of assembly and understand what that thing is doing. I also wrote a blog post about the NoteRanger. Tried to solve crazy bit manipulation problems given in lab1 of the Hardware Software Interface tutorial.
Day 4: Continued with the Hardware Software Interface tutorial. Tried some more crazy bit manipulation problems. Resumed going through How Debuggers work.