- Group testing to save the world
- A new method of training: can resting for hours between exercises maximise your gains?
- Pair work: the One Weird Trick to finally ship your side projects
- Virtual workspaces --- working in a Minecraft office?
- A market-based mechanism to preserve Indonesia's forests (or any other resource)
- How many solar panels would be needed to 100% solar-power Singapore?
Things I've built that I particularly like
- GSoC 2020 report: implementing real-time metrics for MGGG's Districtr app
- Building an Bayesian SMS sender
- Doing distributed data analysis on a Raspberry Pi cluster
- Building an automated, blockchain-connected model train diorama
- Building a Raspberry Pi console
- Building my first Telegram bot
Other programming posts
- Some ways to deal with big(-ish) data: 'why do we get an OutOfMemory error in FPGrowth?'
- Notes on Dynamo (2007)
- Notes on Amazon Aurora (2017, 2018)
- What is the CAP theorem really about?
- MIT's 6.824 Distributed Systems, Lab 1: MapReduce
- Self-studying MIT's 6.824 Distributed Systems
- Report on CS107E Lab and Assignment 3
- Report on CS107E Lab and Assignment 2
- Report on CS107E Assignment 1
- How to set up bidirectional communication between a Docker container and its host machine using TCP sockets
- How to install librealsense and pyrealsense2 on the Jetson NX
- Clustering GPS trip data
- Building a Python parallel processing pipeline package (R-3PO)
- Building a code sharing MVP with React and the WebSockets API
- Building a deep learning pipeline + model with Keras and PlaidML
All other posts
- My new fitness routine
- Solving two brainteasers 舅母 gave me
- DIY-ing a Stanford CS degree in one year
- Making your habits zero-friction is a massive productivity hack
Get new essays sent to you
Subscribe to get my posts on programming, statistics, data science and economics.
I plan to send a newsletter once or twice a month, where I'll round up all of the most interesting posts I've written.
- What a brave new world we live in!
- Radically new ways of living and working are for the first time available (again) to us
- Notes on CRDTs
- Convergence is (finally) coming
- Run your own virtual world on any Discord server
- Notes on AWS's serverless framework
- MIT's 6.824 Distributed Systems, Lab 2: Raft
- Memcached at Facebook (2013)
- FLP Impossibility Theorem
- Notes on technical mentorship
- Some rough notes on React after playing with it for a day
- Splitting a string into the fewest number of palindromes
- Saltzer and Kaashoek (2009). Principles of Computer System Design: An Introduction
- System design (and business case) for a EV charging station backend
- What is a Golang interface?
- Rao, Shekita and Tata (2011). Using Paxos to Build a Scalable, Consistent, and Highly Available Datastore [Spinnaker]
- Ongaro and Ousterhout (2014). In Search of an Understandable Consensus Algorithm [Raft]
- Dean and Ghemawat (2004). MapReduce: Simplified Data Processing on Large Clusters
- From Third World to Utopia: Singapore could end poverty for our children forever, today
- Planning to build a Discord spatial layer
- Worlds for hyperlocal communities
- Teleoperation: enabling remote work for nonremote workers
- The cheater's chessboard
- Debugging my thesis
- Geolibertarianism with Harberger Taxes
- Three levels of competency
- Home gym ideas
- Julia Path Tracer
- Board Game Engine
- Rebuilding this website
- The beta-Bernoulli bandit, Thompson sampling, and Bayesian inference
- A gentle introduction to the IS-PC-MR model
- Explaining Acemoglu's model of directed technical change: a primer