This is a blog for everyday techies building real systems people use, and their still-with-it-and-technical CTOs. It's a blog for thinking people who want to build better systems. That often requires questioning current practices.
I build things. Mostly, I build software, typically backed by some principled reason for why it should work as advertised. I'm currently a professor at Cornell University.
I have worked hard to improve the state of the art in blockchain tech, as well as the overall cryptocurrency community:
I'm a huge cryptocurrency fan and I don't hesitate to call out mistakes I see the community making. Chief among these are decisions that are not backed by science. This criticism comes from an effort to route out bad actors, avoid scams and improve the overall space. I firmly believe that blockchain technologies will remake financial systems, change the way we conduct business, and reshape society, though doing these things will take much research and development.
NoSQL and Data Stores
In addition to cryptocurrencies, I work on data stores of different types. My team built the HyperDex fast data store. It's a next-generation NoSQL database that is faster than first-gen entrants like Mongo, supports ACID transactions, and scales. We recently released Weaver, a graph store that can hold very large graphs that are dynamically changing. I was the first person to point out that the CAP Theorem is flawed and does not have the implications that most people think it does.
In the past, I worked on peer-to-peer systems of various kinds. I was behind Karma, the first peer-to-peer currency with a distributed mint, to my knowledge. My group also built Credence, a peer-to-peer reputation scheme that counteracted spam and mislabeled content inserted by malicious parties. I have built many other academic peer-to-peer systems, and I have worked to defend some of the most popular ones in court.
My original passion was in operating systems. I built the SPIN kernel when I was a graduate student, where we explored how to extend the interface and implementation of a running kernel, safely, at run time. More recently, my group developed the Nexus, an operating system for trustworthy computing, which can prove to others what behaviors a computer will and will not engage in, without revealing what code it is running.
Overall, I hope you find the discussion of distributed systems, operating systems and systems engineering to be thought provoking. If you are an undergraduate and find these topics interesting, you should consider further study -- almost every top notch school will have a masters program with courses on distributed systems, and if you're particularly daring, a PhD program where you get to advance the state of the art. If you are not thinking of pursuing graduate studies, I'll try to provide appropriate links to external sources so you can follow up on the tangents that you find interesting.
I wrote up my goals in starting a blog. There is a lot of noise and misinformation being propagated online. Distributed systems is at an inflection point and taking off rapidly. I worry that we might have to face broken, flaky and untrustworthy systems for decades to come.
There are companies which spend millions of dollars on PR, bankroll conferences and hire salesmen to go from door to door in the valley to spread misinformation, marketing people to pretend to be developers on social media to peddle broken software, and people who hire paid trolls to attack anyone who says anything that interferes with their market position. I have nothing that can compare -- certainly no PR engine or paid stooges whose paycheck depends on perpetuating myths and foggy thinking. What I do have is a grasp of distributed systems science (albeit partial, as no one can claim complete mastery over such a large area), and a willingness to write for a general audience.
So, I generally stick to a principled, scientific take, and try to point out issues that others may have missed. You will not see me regurgitating bogus reasoning about why the CAP Theorem means you should throw all consistent databases out the window -- literally everyone in the valley already does that, and incidentally, they're all wrong. I will also typically veer away from ideology, so you will not see me claim that cryptocurrencies will bring an end to fiat, governments and war -- they won't, and besides, others serve that kool-aid far better than I can.
Since I typically have time to chime in only when I see wholesale groups making mistakes, this lends a slightly contrarian tone to the blog. This is purely a side effect of not having enough time to blog -- I lack the time to build rapport by regurgitating group think, so I will rely on the positivity of my readers to never forget that I pick the topics to write on because they are inherently exciting, and I'm here solely to improve the state-of-the-art. Those of you who have met me in person know that I'm supremely positive and optimistic in real life.
My values are centered around a progressive technologist's perspective. I believe in improving people's lives and maximizing societal good.
Some provide enlightenment, others provide intrigue, and some are there to get my pulse up in the mornings.