Blog

Subnetting and CIDR Notation

Classless inter-domain routing (CIDR) is a set of Internet protocol (IP) standards that is used to create unique identifiers for networks and individual devices. The IP addresses allow particular information packets to be sent to specific computers. Shortly after the introduction of CIDR, technicians found it difficult to track and label IP addresses, so a notation system was developed to make the process more efficient and standardized. That system is known as CIDR notation.

READ MORE

Networking

Overview of a handful of networking concepts, tools, and components that are important to understand for any Networking, Infrastructure, DevOps, or Site Reliability Engineer.

READ MORE

IP Forwarding

IP forwarding also known as Internet routing is a process used to determine which path a packet or datagram can be sent. The process uses routing information to make decisions and is designed to send a packet over multiple networks. Generally, networks are separated from each other by routers. IP forwarding is the ability for an operating system to accept incoming network packets on one interface, recognize that it is not meant for the system itself, but that it should be passed on to another network, and then forwards it accordingly.

READ MORE

Understanding Istio's Networking APIs

To understand how Istio’s networking APIs work, it’s important to understand how requests actually flow through Istio. Pilot, as we learned in the previous chapter, understands the topology of the service mesh, and uses this knowledge, along with additional Istio networking configurations that you provide, to configure the mesh’s service proxies.

READ MORE

Leadership: A Team Is Only As Good As Its Leader

Working as both IC and a team lead, I hold myself accountable for creating solutions that enable myself, those around me, and my team to fall into the pit of success. I have come to have the opinion that there are some misconceptions about what it means to be a "Lead" on a team (that being Team Lead, Tech Lead, Manager, Staff, Principal, or any other of the various titles).

I believe a team is only as good as its leader, and the leader must own everything in his or her world. This means having the awareness and humility to step out of the mindset of "10x engineer" and into "10x multiplier". This means enabling the team and those around you for success, consistently working towards building a better and more effective team, and ownership in driving projects corresponding to business objectives consistently and effectively to completion.

READ MORE

Core Principals of SRE (Site Reliability Engineering) and SRE vs DevOps

There can be a traditional separation between DevOps and SRE, and the lines can be blurred between the two. In addition, and depending on the company, DevOps and SRE can mean slightly different things. So what truly is SRE, what are the core principals, and how does it differ from DevOps?

Forty to ninety percent of business costs come after birth or after the creation of something, but most of the effort is put into before something is created. However, what happens after? That is where SRE comes in. We are Software Engineers who's focus is on that forty to ninety percent, and are cross functionally Software Engineers, but geared towards business objectives, goals, and saving costs.

In the traditional sense, and what Google had in mind when they created the role of SRE, DevOps was to be thought of as a philosophy, and SRE as a prescriptive way of accomplishing that philosophy; implementing the developer mindset, workflows, tools, etc...and applying them to the operations world. Under this definition, DevOps is like "What to do", and SRE is like "How to do".

However, as mentioned this "traditional" definition of SRE can be blurred with DevOps, and can vary depending on where you go and who you talk to. Since its inception, SRE has evolved to encompass many different meanings and responsibilities. But, the core principals and reason for its creation, many of which overlap with DevOps, still hold true - which is to solve the pain point of infrastructure that you continually roll changes out to. At its core, the objective is to create reliable, redundant, fault tolerant, immutable infrastructure using infrastructure as code and a set of guiding principals, standards, and workflows. This of course with the understanding of working closely with both developers, and operations.

READ MORE

AI Fundamentals

High level overview of fundamental concepts in AI, Generative AI, LLMs, RAG, and Neural Networks.

READ MORE

Coding Bootcamp: Going In With a Mentality to Succeed

If you are trying to make a career switch and break into the tech industry, you may have many questions on how best to do it. You may also have heard of coding bootcamps, and be asking yourslef is a bootcamp needed? This is the path that I chose, and if you decide to do the same, I will describe what I did to prepare, and based on my experience, what I think will set you up for success.

My aim is to go into detail as to how to prepare to get the most out of a bootcamp, so that you dont waste your time (and money), and most importantly, enjoy it! In addition, how to differenciate yourself and stand out so you have the best chance possible of landing the job you want when the bootcamp is complete.
Finally, describe my mindset going into, during, and after bootcamp, and setting realistic expectations as to finding a job after bootcamp. It is a lot of work, and a lot of non glamorous work such as making sure your resume, website, linkedin, projects, interviewing skills, etc..are as good as they can be. But work that lays a stable foundation that will pay dividends as you embark on a new exciting journey.

READ MORE

Kubernetes Services

A service in Kubernetes is a component just like a pod, but it's not a process, it's an abstraction layer that represents an IP Address. By creating a service, you now have a single and stable IP address and port that you can hit to access your pods. This address will remain unchanged throughout the whole lifetime of the service. Pods behind this service may come and go, their IPs may change, their number can go up or down, but they’ll always be accessible through the service’s single and constant IP address.

READ MORE

Terraform: Locals vs Variables

Terraform locals are named values that you can refer to in your configuration. You can use local values to simplify your Terraform configuration and avoid repetition. Local values (locals) can also help you write more readable configuration by using meaningful names rather than hard-coding values. But what makes locals different from variables, and how do you know when to use locals or variables?

READ MORE