Building a Unix Shell Part 2: Background Processes and the C++ Migration\nIn \nPart 1\n, we built a basic shell capable of executing commands using \nfork\n and \nexec\n. It worked, but it had a major limitation: it was strictly synchronous. You ran a command, the shell froze, and you waited.\nFor P...
I’ve recently started diving deep into the internals of Operating Systems using the excellent \nIIT Bombay OS Course\n by Prof. Mythili Vutukuru.\nThere is no better way to understand how an OS manages processes than by building the one tool developers use every day: The Shell.\nIn this series, I’m ...
It has been almost a year since I last wrote on this blog. It was primarily due to being bogged down trying to get to a senior software engineer position which I did, by the way and not having time to reflect on where I am and what I wish to achieve.\nI am still working at Meta, however, my team has...
Context\nI have been working at Meta fka Facebook for last 1.5 years. During my time there, I have had a chance to work across two teams and interact with quite a few senior, and junior engineers along the way. In this post, I try to summarize my experience in terms of promotions and technical growt...
I was reading the Rust Book and there was a mini-project to implement the \ngrep\n command. I thought in similar lines and implemented a \nls\n command.\nThe \nls\n command should take the path as an argument and return the filename, its permissions, and the modified time.\nTo get the path as an arg...