Learn to code by coding - try our free CS courses

Well, We Might Have a Video Call for That!


This article contains some of my thoughts on communications for distributed teams and is a response to No, we won’t have a video call for that! by Florian Hass. Read his article first if you haven’t yet, he makes some great points! I really enjoyed Florian’s article, and while we agree on a lot of …

Read more

The Collapsing Quality of Dev.to

collapse hosue

A few years ago I found Dev.to, and was delighted by the writing experience. It felt like a platform with all the conveniences of Medium’s writing tools but wasn’t missing the features that developers need, like code blocks and markdown. I still think Dev.to probably has the best writing experience of any third-party blogging platform …

Read more

What is Cryptography? A Complete Overview

what is cryptography guide

What is cryptography? Simply put, Cryptography provides a method for secure communication. It stops unauthorized parties, commonly referred to as adversaries or hackers, from gaining access to the secret messages communicated between authorized parties. The method that cryptography provides is called encryption. Encryption transforms a key and input, the plaintext, into an encrypted output, the …

Read more

Death, Taxes, and Database Migrations


In this world, nothing can be said to be certain, except death, taxes, and migrations. Earlier in my career, I would come to a new project and inevitably a hectic migration would be underway. It’s not always a “stop the world” change, it can be as simple as switching from NPM to Yarn, but something is …

Read more

Keep Your Data Raw at Rest


Data at rest is more dangerous than data in motion. I want to talk about a simple rule of thumb that has served me well over the years: “If you have data that depends on other data, try not to store it.” If you follow this rule, you can deliver your code faster, mainly because …

Read more

What are UUIDs, and should you use them?


A universally unique identifier (UUID) is a 128-bit format for creating IDs in code that has become popular in recent years, especially in relation to database keys. By using UUIDs, you ensure that your ID is not just unique in the context of a single database table or web application, but is truly unique in …

Read more

Beautiful Language and Beautiful Code


“Dead Poet’s Society” is a classic film, and has become a recent favorite of mine. There’s a scene in particular that I enjoy, where Robin William’s character explains that it’s bad practice to use terms like “very tired” or “very sad”, instead we should use descriptive words like “exhausted” or “morose”! I wholeheartedly agree with …

Read more

Intro to the One-Time Pad Cipher

eyeball art

In cryptography, the one-time pad, or OTP is a way of encrypting information so securely that it’s impossible to be cracked. That said, OTP has a major drawback in that it requires both parties to have access to the same key before a message is encrypted. How the one-time pad cipher works When using the one-time pad, a …

Read more

Building a Red-Black Binary Tree in Python

red black

A red-black tree is a kind of self-balancing binary search tree. Each node stores an extra bit, which we will call the color, red or black. The color ensures that the tree remains approximately balanced during insertions and deletions. When the tree is modified, the new tree is rearranged and repainted to restore the coloring …

Read more

Quick Sort in Golang


Quicksort is an efficient sorting algorithm commonly used in production sorting implementations. Like Merge Sort, Quicksort is a divide-and-conquer algorithm. As the name implies, Quicksort is one of the fastest sorting algorithms, but you have to pay attention to detail in your implementation because if you’re not careful, your speed can drop quickly. Divide Select …

Read more