04 Jun 2017
· 8 min read
— shared on
Distributed systems are challenging to implement correctly because they must
handle concurrency and failure. Networks can delay, duplicate, reorder, and
drop packets, and machines can fail at any time. Even when designs are proven
correct on paper, it is difficult to avoid subtle bugs in implementations.
26 Dec 2016
· 9 min read
— shared on
μWWVB is a watch stand that automatically sets the time on atomic
wristwatches where regular WWVB signal isn’t available. The system
acquires the correct time via GPS and sets radio-controlled clocks by emulating
the amplitude-modulated WWVB time signal.
07 Oct 2016
· 3 min read
I recently had another chance to use a fancy algorithm to
solve a real-world problem. These opportunities don’t come up all that often,
but when they do, it’s pretty exciting!
Every year, MIT HKN has a bunch of eligible students who need to be
matched to committees. As part of the assignment process, the officers decide
how many spots are available on each committee, and then we have every eligible
rank the committees. In the past, officers matched people manually, looking at
the data and trying to give each person one of their 1st or 2nd choices.
Unfortunately, this is time-consuming and unlikely to result in an optimal
assignment if we’re trying to maximize overall happiness.