Skip to content

Hello World!🔗︎

I often find myself marvelling at the buildings lining the streets. It astonishes me how much effort it takes to build all the infrastructure we take for granted in our society. There was a point in time when each building was nothing more than a patch of grass. It takes the cooperation of many teams of people with a multitude of skill sets to make each property a reality.

  • Land surveyors plot the land
  • Architects create a design
  • Construction workers lay the foundation and build the structure
  • Electricians and plumbers install utilities
  • The building owner provides funding
  • Inspectors ensure the property is up to code
  • And many more...

All of this happens before the business even opens its doors. Each business then becomes a vital part of the community by providing goods, services, and jobs to the people around it. A single restaurant provides meals to hundreds of thousands of people during its lifetime. It's a beautiful thing.

Software is a lot like a building. The code for this website is built upon the work of thousands of other developers. For this website to reach your screen, your web browser had to send a request to a server. That request probably travelled over the air to your Wi-Fi router or a cell tower, then through fiber lines under the ground or the ocean to a data center filled with servers. A server interacted with your device using a coordinated predetermined series of binary messages to establish a secure connection. Then my code was sent back to your device through that same network. The web browser itself is a magnificently complex piece of software that seamlessly performs all of this communication and displays this content in a way that is easy for you to read and interact with. For you, it is as effortless as clicking or tapping a link. It is very easy to forget how much work it took to make it that easy.

Engineering is the art of doing well for a dollar that which any fool can do for two in a situation where there are none.

~ Arthur Mellen Wellington

Creating software is technically a science, but it is also an art. Just like any engineering discipline, software architecture requires careful planning, experimentation, and iteration. While a mechanical engineer solves problems using physical materials, a software engineer solves problems using logic. It is a beauty like no other: to make the complex simple.