Moving Bits: Networking Fundamentals, Part 3

Moving Bits: Networking Fundamentals, Part 3

This is the third part of the Networking Fundamentals series, in which I aspire to simplify networking by using a consistent mental model based on postal systems, while tying abstractions to concrete examples of networking relevant to software engineering. In the previous two parts, I described the analogy of a postal system and the three relevant layer abstractions I use in this fundamentals series, and expanded on that analogy to discuss addressing and provide a very simple HTTP request/response example. If you haven’t reviewed those parts, please do, as they provide valuable context for this and future posts. Private Addresses…
Read More
On Scientists, Developers, and Engineers: Differences and Overlaps

On Scientists, Developers, and Engineers: Differences and Overlaps

Job titles are important. It is interesting how many people give little thought to their title, or even their job description, and are then confused when they don’t see the success they expect. While there are many different ways to dissect this topic, I’m going to work through a particular distinction that has an increasing relevance in the field of software: the difference between science, development, and engineering. If you browse the web, read blog posts on career development, or even look through college program descriptions, it is not uncommon to see the three terms somewhat mixed. You will see…
Read More
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