Hey I'm Zach! I'm a fullstack JavaScript Dev currently maintaining a few golf web apps, writing/filming software tutorials, and trying to get out and run as often as I can. I love connecting with people so feel free to say hi on Twitter!

CSS Grid Course for Complete Beginners

CSS Grid Course for Complete Beginners

CSS Grid was released in 2017 and comes with powerful layout-related CSS features. In this post, I'll teach you the basics of CSS Grid and how it can make your layouts more robust and your workflow simpler.

Read more

Is it too late to learn to code?

Is it too late to learn to code?

Automated websites. NoCode revolution. AI automating developers? These are all questions that might make you wonder whether learning to code is still worth your time. Here's my take as a developer.

Read more

What the heck is an API? (with AI text bot example)

What the heck is an API? (with AI text bot example)

Please welcome the most overused term in software sales. Add the word "API" to your sales pitch and you'll sound much smarter to your prospective clients. In this post, we're going to break down what an API actually is and why you hear it so often.

Read more

Do you have to be good at math to become a programmer?

Do you have to be good at math to become a programmer?

When you are trying to decide whether learning to code is an achievable path for you, regardless of your skill in math, you probably will wonder at some point just how much math is involved with programming. In this post, we'll take a look and see.

Read more

A Complete Guide to JavaScript Dates (and why your date is off by 1 day)

A Complete Guide to JavaScript Dates (and why your date is off by 1 day)

You know those concepts that you learn over and over again, yet they seem to vanish from your memory no matter how many notebooks you fill with detailed notes? The `this` keyword in Javascript was one of those concepts for me, until I finally took an afternoon to understand the inner-workings of the code rather than hopelessly trying to memorize the 4 types of "bindings" (default, implicit, explicit, and "new") that influence the value of `this`.

Read more

How to Read an RxJS Marble Diagram

How to Read an RxJS Marble Diagram

To an experienced RxJS user, marble diagrams are helpful. To someone just starting out with RxJS, they look like a little kid’s drawing in art class. I’m by no means an expert user of RxJS, but I’ve used it enough to make sense of these “marble diagrams”. I can finally use rx marbles with confidence, and I want you to get there too.

Read more

3 Things I Wish I Knew When I Started Using Angular 2+

3 Things I Wish I Knew When I Started Using Angular 2+

It’s 2020, and Angular is on version 10 with over 1200 contributors and 18,500 commits. I think it’s safe to say that this project has picked up some momentum over the years. But when I started using Angular (it was on version 4 when I started), these things didn’t matter to me. Heck, I probably couldn’t have explained what open source software was and definitely couldn’t have explained what Typescript was...

Read more

Imperative vs. Declarative Programming (Procedural, Functional, and OOP)

Imperative vs. Declarative Programming (Procedural, Functional, and OOP)

Maybe you heard it in an Object Oriented Programming book. Maybe you read it on Stack Overflow. Maybe you're reading a textbook for school. Eventually, you get annoyed reading the terms "declarative" and "imperative" because you know they are important but have no clue why. In my mind, knowing the difference between imperative and declarative programming is useful for a single reason, and that is to help you better understand the difference between procedural, functional, and object-oriented programming styles. By understanding these five terms, while reading code libraries, you will begin to see where the authors got their code designs.

Read more

Introduction to Software Architecture (Monolithic vs. Layered vs. Microservices)

Introduction to Software Architecture (Monolithic vs. Layered vs. Microservices)

If you are a self-taught developer, new to the industry, or something of the sort, the concept of "software architecture" is intimidating. Enterprise architects get paid lots of money because architecting a quality software is difficult and requires experience. In this post, we will discuss some of the considerations you should be making when designing your apps.

Read more

File (NAS) vs. Block (SAN) vs. Object Cloud Storage

File (NAS) vs. Block (SAN) vs. Object Cloud Storage

When designing your application's architecture, one of the most important considerations from both a cost and performance standpoint is what type of data storage to use. Unfortunately for startups and lone developers, most of the descriptions around data storage are highly generalized and highly technical without much in between. It is no surprise considering the cloud storage and computing platforms are the ones explaining the topics. Just type "file vs. block vs. object storage" into Google and you'll find several platforms explaining/advertising their products.

Read more

Understanding IP Addresses and Subnet Masks

Understanding IP Addresses and Subnet Masks

For most home users, trying to understand a home network is not of interest due to the perceived complexity of the issue. In this post, whether you are a seasoned engineer or simply a Dad trying to figure out why the router isn't working again, I will explain the basics of how your home network works.

Read more

Guide to Bash Scripts

Guide to Bash Scripts

One of the most important components to a good development environment is a properly configured $PATH variable. Learn about it in this post.

Read more

6 Intermediate Bash Commands

6 Intermediate Bash Commands

Aside from basic commands such as `cd`, `ls`, `mkdir`, `touch`, etc., there is a short list of commands that I think every bash user should know about and attempt to use on a regular basis.

Read more

Processes and System Management with Bash

Processes and System Management with Bash

Process and system management sounds like an intimidating concept, but for the average bash user, there are only a few commands and programs that you will need to learn to get a holistic understanding of how your computer runs.

Read more

Networking Bash Commands

Networking Bash Commands

Networking is a huge concept. There are textbooks written on the topic, and therefore, I have no chance of covering everything you need to know relating to networking. That said, this section will get into the most common Bash networking utilities that you can use to diagnose network issues on your computer. If you are completely new to network concepts, that is completely fine as I will be explaining the basics of the internet in this post.

Read more

Bash Regular Expressions

Bash Regular Expressions

To me, regular expressions are often made far more complicated than they need to be. Sure, there are a lot of options and little details to learn regarding regular expressions, and on top of that, there are many different flavors of regular expressions (python, extended, rust, etc.). Despite this, there are only a few core concepts that one must understand about regular expressions that will then translate in the ability to use any flavor of regular expressions effectively.

Read more

Users, Groups, and Permissions in Bash (UNIX based Operating Systems)

Users, Groups, and Permissions in Bash (UNIX based Operating Systems)

Many tutorials cover the topic of permissioning within a UNIX based operating system, but often overlooked is the topic of users and groups. For individual users, it is difficult to understand what the usefulness of this architecture is. In this short tutorial, I will be walking through the reason why we have permissions, how to set permissions, and how to manage your users and groups that these permissions apply to.

Read more

The Ultimate Guide to Passport JS

The Ultimate Guide to Passport JS

In this post, I am going to walk through why the Passport-JWT authentication strategy is a simple, secure solution for small teams and startups implementing a Node/Express + Angular web app.

Read more

The Most Confusing Thing in JavaScript - The "this" keyword

The Most Confusing Thing in JavaScript - The "this" keyword

You know those concepts that you learn over and over again, yet they seem to vanish from your memory no matter how many notebooks you fill with detailed notes? The `this` keyword in Javascript was one of those concepts for me, until I finally took an afternoon to understand the inner-workings of the code rather than hopelessly trying to memorize the 4 types of "bindings" (default, implicit, explicit, and "new") that influence the value of `this`.

Read more

Making Sense of Public Key Cryptography

Making Sense of Public Key Cryptography

If you write web applications (and the authentication for them) or work in the space of cryptocurrency, understanding the basics of asymmetric cryptography (also known as "Public Key Cryptography") is a must.

Read more