Noticing when an app is only hosted in us-east-1
Jun 26, 2023
Exploring how Magic Link works
May 31, 2023
Semantic search in iMessage, iMessage Wrapped, and AI conversations
Apr 14, 2023
Getting a vanity phone number with 4 repeating digits
May 28, 2022
Web3, Free Candy, and exploits galore
Feb 26, 2022
Snapshotting memory to scrape encrypted network requests
Aug 8, 2021
JavaScript gotchas
Jul 18, 2021
Writing fast async HTTP requests in Python
Jun 15, 2021
A boilerplate for SSR'd Vite, React 17, and TypeScript 4.3
May 16, 2021
How to redeem $2000 of HNS for being a FOSS developer
May 9, 2021
Fun VPN tricks due to Apple owning all of 17.X.X.X
Mar 12, 2021
What is tax loss harvesting?
Mar 11, 2021
Zoh-no Zogo: Manufacturing pineapples (and cash) with Burp Suite
Jan 20, 2021
Setting up Matomo in such a way to bypass adblockers
Dec 17, 2020
Unlimited free WiFi on flights with T-Mobile
Nov 29, 2020
Habitat 2020 - Coliving during COVID
Oct 31, 2020
American Airlines is an e-currency company that happens to own some planes
Sep 6, 2020
Thoughts on user growth and product
Aug 30, 2020
Reversing Lyft's ride history API to analyze 6 years worth of rides
Jul 3, 2020
How the Nintendo Switch prevents downgrades by irreparably blowing its own fuses
Jun 14, 2020
Promise.all vs Promise.allSettled in JavaScript
May 14, 2020
Goodreads has a time to first byte of nearly 5 seconds
May 1, 2020
Re-enabling context actions on websites
Apr 1, 2020
How much space would it take to store every word ever said?
Feb 9, 2020
The hidden value of automation in programming comes from saving mental context switches
Jan 18, 2020
2019 Travel in Review - 52,848 miles, 137 hours, and 40 flights
Dec 24, 2019
Flight stats, entertainment, and trying to crack widevine
Dec 22, 2019
Email authentication: SPF, DKIM and DMARC out in the wild
Nov 30, 2019
Reversing private APIs, Safeway, and not-so-extreme couponing
Oct 12, 2019
Ember.js, Dr. Carvers Shave Butter, and disappearing products
Sep 8, 2019
An analysis of activity on /r/churning
Aug 31, 2019
Compensation in 2019 new grad tech offers
Jul 29, 2019
Useful shell aliases and functions
Jun 30, 2019
What's better - a broken clock or a clock that's always 5 minutes off?
Jun 2, 2019
Around the world in business class: ANA RTW in J
May 9, 2019
Identifying non-default global variables in JavaScript
Apr 1, 2019
Experiments, growth engineering, and the perils of not disguising your API routes: Part 1
Feb 23, 2019
Obfuscated javascript, scam emails, and American Express
Feb 2, 2019
Class schedules, a cease and desist from Viacom, and accidental monetization
Jan 29, 2019
Uber, statistics, and a chrome extension
Dec 22, 2018
Ryanair, Hamiltonian Cycles, and using graph theory to find cheap flights
Nov 23, 2018
An introduction to credit card churning
Nov 11, 2018
Making high-fidelity audio sound like it came through the phone
Oct 29, 2018
Illegal streams, decrypting m3u8's, and building a better stream experience
Sep 22, 2018
Leaky vs punch-through abstractions
Aug 4, 2018
The Federalist Papers: author identification through K-means clustering
Jul 8, 2018
The rise of megathreads on reddit
Jun 7, 2018
Speeding up zsh and Oh-My-Zsh
May 16, 2018
Old code is institutional knowledge
Apr 26, 2018
On USC's CSCI-350 (Operating Systems)
Apr 24, 2018
Disambiguating language type systems
Apr 19, 2018
Information and economies of scale
Apr 16, 2018
Words per minute is not a good measure of typing speed
Apr 15, 2018
Why does this blog exist?
Apr 15, 2018
10x Performance Increases: Optimizing a Static Site
Mar 16, 2018