Edward Saavedra

Code related musings, learnings, and assorted personal thoughts

One of the first giveaways that someone has been working as a developer for a good amount of time is their level of comfort working from the command line. Rarely will you see a seasoned software engineer opening a graphical file explorer to move between project files.

Instead, they will turn to the powerful Swiss army knife that is the computer’s command line. Why bother learning this tool if you can stick the familiar and user-friendly graphic interfaces offered by modern operating systems?

  1. Precision – the command line allows you to fine-tune your actions in ways that simply aren’t possible in general user interfaces.
  2. Portability – if you are using SSH to access a remote machine, for example, your only option will often be to interact with that machine through its command line.
  3. Speed – once you are comfortable interacting with the command line everyday tasks simply take less time.

The learning curve for command line interaction with a computer pays off in very little time provided you know where to start. This article will attempt to demystify some foundational concepts and give you the basic tools necessary to start leveraging the power of the command line.


When approaching a programming challenge, there will always be multiple ways to implement a solution. Sometimes the differences will be trivial stylistic choices. Other times, they can be the reason one solution works at scale and another other cracks under pressure. To determine the most effective way to solve a problem, programmers analyze the complexity of the algorithms used.

Big O notation provides a shared language for describing the complexity of algorithms. It acts a shorthand summary that helps communicate in broad strokes the general degree of complexity of a process. This article will attempt to shed light on the core ideas behind Big O as well as a few of the most commonly referenced examples.


Whether you need to scrape email addresses from a set of HTML documents or scour massive logfiles for needle-in-a-haystack errors, regular expressions provide a powerful tool for searching text.

Because they are primarily composed of sequences of tokens with somewhat non-obvious meanings, regular expressions (or regexes) can be daunting to decipher. The moderate learning curve to understand how to craft an accurate regex is highly worthwhile and has the potential to save hours of manually text searching.

This post aims to provide a clear walkthrough of the most commonly used components of regex syntax. While there are numerous cheatsheet style references available online, having a holistic understanding of what a regex can do will make it much easier to know where to start when approaching search problem.


Howdy 👋🏽 I’m a full stack web developer with what might be described as an eclectic background. I am driven by opportunities to learn by doing and I live for the moments when a concept makes the sudden switch from baffling to comprehensible.