Posts
A weekly column with actionable tips and insights for applied research and engineering. Sign up to get updates sent directly to your inbox.
2024
- How speculative decoding works Jul 7
- How to compress images with language models Jun 2
- How Flash Attention works May 5
- Why Large Language Model inference is memory bound Apr 7
- Compare dishes, instead of scoring restaurants Mar 23
- Why 4=10 has exactly 500 levels Mar 16
- How a puzzle game hides a graph problem Mar 9
- What defines a "worthwhile" game? Mar 2
- How video compression works Feb 24
- How image compression works Feb 17
- Are there really only 17 million colors? Feb 10
- How lossless compression works Feb 3
- Designing the Tic-Tac-Toe from hell Jan 28
- Our AI overlords suck at 2048 Jan 21
- How to identify a fake 2048 score Jan 14
- Why Wordle dies in 2028 Jan 7
2023
- Who should I buy a domain name from? Nov 12
- How to be a "good" AI-powered debugger Nov 5
- How I'm fighting hair loss Oct 29
- How health insurance works Oct 22
- How retirement savings work Oct 15
- How to fight identity theft Oct 8
- How to use OSX built-ins from Python Oct 1
- How to use Apple GPUs from Python Sep 24
- How to write a proof Sep 17
- How to fix a proof Sep 10
- How to de-stress job offer negotiations Sep 3
- How I negotiated job offers Aug 27
- How to discuss a job offer Aug 20
- How to read papers Aug 13
- How to get a coding job without experience Aug 6
- How to succeed at system design interviews Jul 30
- Why and how to prepare for offer negotiations Jul 23
- How to succeed at AI design interviews Jul 16
- How Large Language Model training works Jul 9
- How to mentor undergraduate researchers Jul 2
- How third-party login for desktop apps work Jun 25
- How a Python-only deeplink works Jun 18
- How a Python-only desktop app works Jun 11
- How third-party login works Jun 4
- How a web application works May 28
- How to level up your coding tutorial May 21
- When to fuse multiple matrix multiplies May 14
- When to tile two matrix multiplies May 7
- How to tile matrix multiplication Apr 30
- Practical Introduction to Large Language Models Apr 23
- Illustrated Intuition for Self-Attention Apr 16
- Illustrated Intuition for Transformers Apr 9
- Language Intuition for Transformers Apr 2
- Why (and why not) work at Apple Mar 26
- Why (and why not) work at Tesla Mar 19
- How to handle an early offer deadline Mar 12
- Is my offer good? Mar 5
- Why (and why not) work at Meta Feb 26
- How to maximize your undergraduate Feb 19
- How to write a paper Feb 12
- Is my project paper-ready? Feb 5
- What I learned in my PhD. Jan 29
- What to ask interviewers in a job hunt. Jan 22
- How to make big decisions. Jan 15
- How to make New Year's resolutions. Jan 8
- How to succeed at coding interviews. Jan 1
2022
- How to land interviews in a job hunt. Dec 25
- How to plan your job hunt. Dec 18
- How PhD admissions committees assess applications Dec 11
- How to debug black boxes Dec 4
- How to write (self-)recommendation letters for PhD admissions. Nov 27
- To maximize lecture, listen like you're about to reteach it. Nov 20
- How to succeed as a (research) mentee. Nov 13
- How to prepare for research, without prior experience. Nov 6
- Why pursue a PhD? Is it for me? Oct 30
- What defines a "good" researcher? Oct 23
- How to write your personal statement, for PhD admissions Oct 16
- How to get into research, as an undergraduate. Oct 9
2021
- How To Install and Use PyTorch Feb 11, DigitalOcean
- Introduction to PyTorch: Build a Neural Network Jan 20, DigitalOcean
2020
- How To Visualize and Interpret Neural Networks Nov 23, DigitalOcean
- How To Trick a Neural Network in Python 3 Jun 26, DigitalOcean
- Build a Neural Network to Translate Sign Language May 12, DigitalOcean
- What Explainable AI fails to explain (and how we fix that) Apr 16, Medium
2019
- How to use scroll-linked animations the right way 🐤 Jun 13, LogRocket
- How JavaScript works: Optimizing for parsing efficiency Dec 10, LogRocket
- How to Build a Multiplayer VR Game Part 2 Dec 5, Smashing Magazine
- How JavaScript works: Optimizing the V8 compiler Sep 13, LogRocket
- How To Build a Multiplayer VR Game Part 1 Aug 20, Smashing Magazine
- When to use HTML5's canvas Apr 8, LogRocket
- How to Apply Computer Vision to Build a Dog Filter Apr 3, DigitalOcean
- How To Build An Endless Runner Game Part 3 Mar 20, Smashing Magazine
- How To Build An Endless Runner Game Part 2 Mar 13, Smashing Magazine
- How To Build An Endless Runner Game Part 1 Mar 6, Smashing Magazine
- Understanding Neural Networks Mar 1
- Understanding Least Squares Mar 1
- Bias-Variance for Deep Reinforcement Learning Jan 24, DigitalOcean
- The noob's guide to 3D transforms with CSS Feb 27, LogRocket
- Understanding the Bias-Variance Tradeoff Jan 10
- Understanding Deep Q-Learning Jan 10
2018
- How to Build a Virtual Reality Model Nov 6, Smashing Magazine
- Getting Started With Machine Learning Sep 7, Smashing Magazine
- Building A Room Detector For IoT Devices Aug 29, Smashing Magazine
2016
2015
- How To Set Up an OpenVPN Server on Debian 8 Aug 10, DigitalOcean
- How To Install and Configure Riak2 with Python3 Jul 13, DigitalOcean
- How To Install Nginx on Debian 8 Jul 9, DigitalOcean
- How To Set Up mod_rewrite for Apache Jun 27, DigitalOcean
- How To Create an ECC Certificate on Nginx Jun 23, DigitalOcean
- How To Create a SSL Certificate on Apache Jun 19, DigitalOcean
- How To Install Apache, MySQL, Python (LAMP) Server Apr 29, DigitalOcean