Moving Bits: Networking Fundamentals, Part 2

Moving Bits: Networking Fundamentals, Part 2

In the first part of this series on Networking Fundamentals, I discussed three basic layer concepts in networking, and described them using an analogy to a physical postal system. If you haven’t read that post, please review it before moving on. However, to briefly recap, the three layers I discussed were: a physical layer, which allows for the conveyance of information, and is analogous to the carriers, logistics systems, and delivery and drop-off points in a postal system;  a packaging layer, which allows for addressing and packaging of information, and is analogous to the envelope a letter goes into; and…
Read More
Plan for Failure First

Plan for Failure First

Over my many years in the software industry, I have come to observe a set of common patterns as people gain experience. One behavior (of many) that sets experienced engineers and developers apart from more junior engineers and developers is attention to detail, and in particular, the attention to how things are going to break. In our consistently fast-paced industry, management and business leaders often push for results on tight schedules. If you’ve worked in software for any length of time, you have experienced the squeeze, when a manager asks you to “temporarily” skip the testing steps and “overlook” good…
Read More
To Be a Principal

To Be a Principal

The goal of The Aspiring Principal is to help you level up your career and become better at what you do. I aim to help you advance and work towards excellence in the software industry. In this post, I will help you understand what it is we are aspiring to become as Principals. While job titles are highly variable — and title inflation is worse in the Software industry than many others — the idea of a Principal is universal. In some major companies they are called Partners or Distinguished Engineers. Regardless of their title, Principals are at the pinnacle…
Read More