Boot.dev Blog
How to Structure a Golang Project
by Lane Wagner - Boot.dev co-founder and backend engineer
I lead a team that's responsible for anywhere from 15-25 Go microservices at any given time. We're constantly creating new services and libraries, so it's become important to streamline the project creation process. I'm mostly writing this article for myself as a kind of self-documentation, but hopefully, you'll find it useful as you create new Go projects for yourself.
What Is Entropy In Cryptography?
by Lane Wagner - Boot.dev co-founder and backend engineer
If you're familiar with the laws of thermodynamics, you may recognize the second law as the one that deals with entropy. In the realm of physics, entropy represents the degree of disorder in a system. Because systems tend to degrade over time, thermodynamic energy becomes less available to do mechanical work.
How to Make a Simple Vue Custom Select Component
by Lane Wagner - Boot.dev co-founder and backend engineer
Creating a custom select tag with its own styling is notoriously difficult. Sometimes it's impossible to build from scratch without a combination of styled divs and custom JavaScript. In this article, you'll learn how to create a custom select component in Vue that can be easily styled with your own CSS. In fact, it's the same component we use in production on boot.dev, and you can see it in action on our JavaScript playground.
Running Python in the Browser with Web Assembly
by Lane Wagner - Boot.dev co-founder and backend engineer
I've been wanting to expand boot.dev's curriculum, and one of the most requested programming languages has been Python. Because my courses allow students to write and execute code right in the web browser, I decided to look into existing projects that allow a Python interpreter to run in the browser using Web Assembly. I settled on a tool called Pyodide, which does just that.
Running Go in the Browser with WASM and Web Workers
by Lane Wagner - Boot.dev co-founder and backend engineer
We've recently made big changes to how we execute Go in the browser on boot.dev and want to explain the enhancements. Web Workers are the reason we've been able to solve some of the serious browser-related coding problems that were holding us back. Consider this article a sequel to Running Go in the Browser with Web Assembly.
Practical Patterns for Technical Writing
by Ben Barten
Writing technical documents like API or architectural documentation which exceeds a simple flow diagram can be a daunting task. If you have some experience with technical documents, you will probably agree that there is nothing more frustrating than bad documentation.
Elliptic Curve Cryptography: A Basic Introduction
by Lane Wagner - Boot.dev co-founder and backend engineer
Elliptic Curve Cryptography (ECC) is a modern public-key encryption technique famous for being smaller, faster, and more efficient than incumbents. Bitcoin, for example, uses ECC as its asymmetric cryptosystem because it is so lightweight. The mathematical entity that makes all of this possible is the elliptic curve, so read on to learn how these curves enable some of the most advanced cryptography in the world.
"Learn Algorithms" Course Released
by Lane Wagner - Boot.dev co-founder and backend engineer
We've launched our new Data Structures and Algorithms course! We wrote this course for engineers who need a refresher on computer science basics or want to learn the fundamentals for the first time.
Is AES-256 Quantum Resistant?
by Lane Wagner - Boot.dev co-founder and backend engineer
With quantum computers getting more powerful each year, many worry about the safety of modern encryption standards. As quantum computers improve in performance and the number of qubits used for calculations increases, current cryptosystems are under threat. AES-256 is one of the most powerful symmetric ciphers, but will it remain secure in a post-quantum world?
How to Make Pure Functions in Golang
by Lane Wagner - Boot.dev co-founder and backend engineer
Pure functions are often hyped up in the JavaScript world, probably because of the abundance of stateful front end applications. While pure functions have their downsides (i.e. inconvenience, potentially large argument lists), they should be used as much as reasonably possible.
Guard Clauses - How to Clean up Conditionals
by Lane Wagner - Boot.dev co-founder and backend engineer
One of the first concepts new developers learn is the if/else statement. If/else statements are the most common way to execute conditional logic. However, complex and nested if/else statements can quickly become a cognitive burden and compromise the readability of a program.
Create a Golang Video Streaming Server Using HLS
by Lane Wagner - Boot.dev co-founder and backend engineer
In this tutorial, we'll go step-by-step through building a video streaming API (which will work for music as well) in Go. Don't worry, it's surprisingly easy to build a robust media streaming server, especially if we utilize a modern communication protocol, HLS.
Should You Return Empty or Nil Slices in Go?
by Lane Wagner - Boot.dev co-founder and backend engineer
In Go, we often need to return zero values. Idiomatic Go encourages the use of guard clauses, and guard clauses necessitate the need to return early. When returning early with an error, by convention all other return values should be zero values. The confusion arises with data types like maps and slices. Should maps and slices be returned as a simple nil value, or should an empty but instantiated value be returned?
Slow Is Smooth, Smooth Is Fast - 25% of Our Time Refactoring
by Lane Wagner - Boot.dev co-founder and backend engineer
My team has been spending less of our "free" time working on bugs and features from the backlog, and more time refactoring our code and tests. As a result, and perhaps somewhat counterintuitively, we've noticed a significant increase in our throughput of features and bug fixes.
Top 15 Golang Interview Questions [Updated 2026]
by Lane Wagner - Boot.dev co-founder and backend engineer
Let's take a look at some good technical questions to be familiar with, whether you are looking to nail your next Golang interview, or if you're the interviewer yourself..
Creating a Custom Tooltip Component in Vue
by Lane Wagner - Boot.dev co-founder and backend engineer
There are plenty of libraries out there that will have you up and running with a good tooltip solution in minutes. However, if you are like me, you are sick and tired of giant dependency trees that have the distinct possibility of breaking at any time. For that reason, we're going to build a custom single file tooltip component that you can build yourself and tweak to your heart's content. It might take 15 minutes instead of 3... sorry about that.
Bcrypt Step by Step
by Lane Wagner - Boot.dev co-founder and backend engineer
Bcrypt is a key derivation function, which can be thought of as a special kind of hash function. Its purpose is to slowly convert a piece of input data to a fixed-size, deterministic, and unpredictable output. A common use case is to convert a password into an n-bit cryptographic key, which can then be used for safe authentication.
(Very) Basic Intro to Lattices in Cryptography
by Lane Wagner - Boot.dev co-founder and backend engineer
Lattice-based cryptography, an important contender in the race for quantum-safe encryption, describes constructions of cryptographic primitives that involve mathematical lattices. Lattices, as they relate to crypto, have been coming into the spotlight recently. In January 2019, Many of the semifinalists in the NIST post-quantum-cryptography competition were based on lattices. Lattice-based cryptography has promising aspects that give us hope for cryptographic security in a post-quantum world.
Shamir's Secret Sharing Step-By-Step
by Lane Wagner - Boot.dev co-founder and backend engineer
Adi Shamir's Secret Sharing is a cryptographic algorithm that allows distinct parties to jointly share ownership of a single secret by holding shares. The original secret can only be reconstructed by using a minimum number of shares, which allows different parties to cooperate without the need to fully trust one another.
They Who Control Encryption
by Lane Wagner - Boot.dev co-founder and backend engineer
If you've seen The Imitation Game or studied computer science in school, you have likely heard of Enigma, Alan Turing, or some of the other advances in cryptography that took place during the Second World War. During this time and until the 1970s, governments from around the world had near-total control of all cryptographic systems. It was nearly impossible to learn about encryption without going through a government agency.
Unexpected Printf Behavior in Go WASM - Nothing Prints
by Lane Wagner - Boot.dev co-founder and backend engineer
While working on boot.dev's Go Playground, I came across a very strange error. The standard library's fmt.Printf() function prints nothing to the console when called. Nothing.
HMAC and MACs - The Inner Workings of JWTs
by Lane Wagner - Boot.dev co-founder and backend engineer
HMACs and MACs are authentication codes and are often the backbone of JWT authentication systems. A Message Authentication Code (MAC) is a string of bits that depends on a secret key and is sent with a message to prove the message wasn't tampered with. HMACs are a more strict version of MACs that offer additional security benefits.
Your Parent's Internet - How to Mitigate Misinformation
by Lane Wagner - Boot.dev co-founder and backend engineer
The age of information is not what we all hoped it would be. We successfully digitized the majority of human knowledge, and we even made it freely accessible to most. Now the problem is different, we have too much information. Answers to most questions can be found in thousands of distinct places online, and the new problem is "whose information can we trust?"
HLS Video Streaming with Node.JS - A Tutorial
by Lane Wagner - Boot.dev co-founder and backend engineer
In this quick tutorial, we'll build a robust video (or music) streaming API using Node JS. Don't worry, it's surprisingly easy since we will be utilizing a modern protocol, HTTP Live Streaming, or HLS.
(Very) Basic Intro to PGP (GPG)
by Lane Wagner - Boot.dev co-founder and backend engineer
PGP, or its open-source alternative, GPG, is a program used to encrypt data such that only an authorized party can decrypt it. In this introduction, we will cover its use-cases and a high-level overview of the algorithms involved.
