56,966 blogs · [ { "id": "01a08c61-f786-71a9-a958-62496d073e43", "title": "What I learnt from supervising at Cambridge", "url": "https://whenderson.dev/blog/supervising-at-cambridge", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496d9d554e", "title": "I spent 6 weeks in China. This is what it's really like.", "url": "https://whenderson.dev/blog/china", "published_at": "2025-11-15T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496dcc308d", "title": "Finishing my final year of CompSci at Cambridge", "url": "https://whenderson.dev/blog/final-year-at-cambridge", "published_at": "2025-06-29T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496e05341d", "title": "Surviving my second year of CompSci at Cambridge", "url": "https://whenderson.dev/blog/second-year-at-cambridge", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496e6e0637", "title": "Calling JavaScript functions from Rust by embedding V8", "url": "https://whenderson.dev/blog/embedding-v8-in-rust", "published_at": "2024-01-27T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496ed128f1", "title": "Youngest Player Starts: Board Games and Markov Chains", "url": "https://whenderson.dev/blog/youngest-player-starts", "published_at": "2024-01-03T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62496f7a5b6d", "title": "The dodgy security of biometric passports", "url": "https://whenderson.dev/blog/biometric-passports", "published_at": "2023-12-14T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249706a36ae", "title": "Modernising device live migration at Nutanix", "url": "https://whenderson.dev/blog/nutanix-internship", "published_at": "2023-09-19T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-624971145584", "title": "How to survive your first year of CompSci at Cambridge", "url": "https://whenderson.dev/blog/first-year-at-cambridge", "published_at": "2023-06-17T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249717c9ad1", "title": "Optimising content moderators with ML in Switzerland", "url": "https://whenderson.dev/blog/start-hack-2023", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249724a1e84", "title": "Exploring garbage collection in V8 with WebGL", "url": "https://whenderson.dev/blog/webgl-garbage-collection", "published_at": "2023-01-07T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62497286eae8", "title": "Can you learn to better predict the future?", "url": "https://whenderson.dev/blog/predict-the-future", "published_at": "2022-11-20T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-624972fb1b2d", "title": "How to learn another programming language", "url": "https://whenderson.dev/blog/how-to-learn-another-programming-language", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-62497342535e", "title": "Building Stuart, a blazingly-fast static site generator", "url": "https://whenderson.dev/blog/building-stuart", "published_at": "2022-09-03T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-624974078482", "title": "How I built Equion, the mathematician's Discord", "url": "https://whenderson.dev/blog/how-i-built-equion", "published_at": "2022-08-11T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249740aff82", "title": "How are mutexes implemented in Rust?", "url": "https://whenderson.dev/blog/rust-mutexes", "published_at": "2022-07-16T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-624974ef4f2d", "title": "Implementing atomics from scratch in Rust", "url": "https://whenderson.dev/blog/implementing-atomics-in-rust", "published_at": "2022-07-08T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249759f1f83", "title": "Migrating TidesX to Cloudflare Workers and Workers KV", "url": "https://whenderson.dev/blog/migrating-to-cloudflare-workers", "published_at": "2022-06-21T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249768ee39e", "title": "Two-factor authentication from scratch with TOTP", "url": "https://whenderson.dev/blog/two-factor-authentication-from-scratch", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-6249776996f0", "title": "Dynamically generating embed images for Gatsby", "url": "https://whenderson.dev/blog/dynamic-embed-images", "published_at": "2022-05-29T00:00:00+00:00" }, { "id": "01a08c61-f786-71a9-a958-624977b5fd76", "title": "Creating a blog with Gatsby", "url": "https://whenderson.dev/blog/creating-a-blog-with-gatsby", "published_at": "2022-05-25T00:00:00+00:00" } ] posts Claim your blog
Back to whenderson.dev
Blog · corpus.blog/blogs/whenderson.dev/posts

whenderson.dev

whenderson.dev

2026

2025

2024

2023

2022