Hi, I am Toby.

I am a software developer who loves to learn and teach. Currently my interests are compilers, programming languages, software architecture, assembly language programming, and debugging. I have listed below links to instruction videos and essays I've made on these topics and more. I hope you find them useful or enjoyable.

I offer mentoring services for helping developers level up.


Live Code: LLVM Tutorial Walkthrough

What is LLVM? I Tell Huiqi About It - Part 1

Jun 20th 202017:03

What is LLVM? I Tell Huiqi About It. Part 2

Jun 20th 202018:45

LLVM Tutorial #1: Introduction

Jun 12th 202019:25

LLVM Tutorial #2: Lexer

Jun 12th 202029:41

LLVM Tutorial #3: AST Nodes

Jun 12th 202025:55

LLVM Tutorial #4: Recursive Descent Parser

Jun 12th 202028:34

LLVM Tutorial #5: Operator Precedence Parsing

Jun 12th 202025:18

LLVM Tutorial#6: Compilation Trouble

Jun 12th 202031:37

LLVM Tutorial #7: What is SSA?

Jun 12th 202025:37

LLVM Tutorial #8: CodeGen

Jun 12th 202028:18

LLVM Tutorial #9: CodeGen for Functions

Jun 12th 202041:17

LLVM Tutorial #10: Getting Out of Trouble

Jun 12th 202035:55

LLVM Tutorial #11: Playing with REPL

Jun 12th 202010:48

LLVM Tutorial #12: Optimizers

Jun 12th 202033:55

LLVM Tutorial #13: Optimizers Work

Jun 12th 202008:04

LLVM Tutorial #14: JIT

Jun 12th 202036:55

LLVM Tutorial #15: Finishing "The JIT"

Jun 12th 202024:24

LLVM Tutorial #16: If Expression Parser

Jun 20th 202030:40

LLVM Tutorial #17: The Φ (Phi) Function

Jun 20th 202024:55

LLVM Tutorial #18: CodeGen For If Statement

Jun 20th 202036:19

LLVM Tutorial #19: "If" It Can Work

Jun 20th 202019:44

LLVM Tutorial #20: For loops!

Oct 20th 202031:14

LLVM Tutorial #21: "For" Expr Codegen

Oct 20th 202040:10

LLVM Tutorial #22: Custom Operators

Oct 22nd 202027:07

LLVM Tutorial #23: Codegen for Binary Operators

Oct 22nd 202022:16

LLVM Tutorial #24: Unary Operators

Oct 22nd 202022:34

LLVM Tutorial #25: Mandelbrot?

Oct 22nd 202042:55

How to Make a Programming Language

What Does it Mean to Make a Programming Language?

May 13th 201918:32

Parsers and ASTs

Jun 13th 201908:50

Building MyPL Part 1 - Parser

Jun 13th 201916:33

Building MyPL Part 2 - Still Parser

Jun 24th 201921:35

Building MyPL Part 3 - Generator

Jun 24th 201918:48

How to Make a Parser using Nearley.js - Part 1

Jul 29th 201935:55

How to Make a Parser using Nearley.js - Part 2

Aug 2nd 201927:10

Make a Parser With Nearley.js - Part 3 - Handling Whitespace

Aug 15th 201911:00

How to Make a Parser with Nearley.js - Part 4 - Parsing String Literals

Aug 20th 201921:04

How to Build a Parser with Nearley.js - Part 5 - Operator Precedence

Aug 20th 201920:51

Build a Parser using Nearley.js - Part 6

Sep 10th 201909:06

Make a Parser with Nearley.js - Part 7

Sep 10th 201912:16

Make a Parser with Nearley.js - Part 8 - Making ASTs

Nov 6th 201929:45

Making a ProgLang - Evaluating ASTs

Nov 8th 201930:24

How to Build a Code Generator

Nov 18th 201918:45

The Fun Programming Language

Nov 18th 201913:15

Moo.js Tokenizer with Nearley.js

Feb 10th 202028:24

Earley Parsing Algorithm

Jan 17th 202030:53

Generating Friendly Parser Errors with Earley Algorithm

Jan 22nd 202021:05

Make Your Own Language 1: The Lexer

Jul 18th 202016:01

Make Your Own Language 2: The Parser

Jul 18th 202021:06

Make Your Own Language 3: Parsing Function Calls

Jul 19th 202016:25

Make Your Own Language 4: The Generator

Jul 20th 202017:35

Make Your Own Language 5: Runtime Functions

Jul 20th 202011:40

Make Your Own Language 6: Parsing Lambda Functions

Jul 20th 202018:38

Make Your Own Language 7: White Space and Ambiguous Grammar

Jul 25th 202017:39

Make Your Own Language 8: Code Generator for Lambda

Jul 25th 202010:57

Make Your Own Language 9: Comments and More Ambiguous grammar

Jul 27th 202010:10

Make Your Own Language 10: Coding Challenge

Aug 10th 202029:10

Parser Performance Story

Aug 24th 202024:20

dabeaz's Compilers Course And X86 Registers

Mar 10th 202115:22