A meditation on three dead side projects

If you're building a side project your motivation likely fits in the overlap of two broad categories: education (and, in general, practicing the joy of your craft) and money (clout, fame, etc). The story of these three dead projects is ultimately the story of how (not) to balance these motivations…

Microservices encourage knowledge siloing

My motivation for developing QuickQ, a knowledge sharing platform, is to eliminate knowledge silos within growing teams. One of the most common sources of knowledge siloing is from microservices. I don't oppose microservices - once you're past a certain scale they have their place - but I have noticed they…

Knowledge sharing optimization for startups

In the rapid-growth phase of a startup, one of the most challenging problems is ensuring that your growing team has access to the required knowledge to properly and efficiently do their jobs. This is an issue in every company, but it's particularly difficult for a startup for several reasons. With…

Two-factor auth with public-key cryptography

Note: As was pointed out in numerous comments on Hacker News and here, this approach is problematic for a number of reasons. Transferring a secret key between devices in this manner can leave you vulnerable to serverside exploits and increases the likelyhood that your key will be exposed. This method…

Next-gen group chat: The power of tags

When I announced my group chat application, Mentat, on some forums a few weeks ago, a common question was "Why would I use this over the apps already out there?" Fair enough; while I've derived a lot of personal enjoyment from designing this side project from the ground…

The Relentless Optimism of Software Tooling

At work I've recently had to build and release an Android app many times over, each time with slight bug fixes and updates, for a client to test. I'm hoping to incorporate Fastlane and/or a CI tool to automate this soon, but in the meantime I'm burdened with the…

What Erlang Taught Me About Distributed Systems

Learning Erlang, and the OTP framework in particular, has given me a better understanding of distributed systems and their fundamental building blocks. Before this, my experience with distributed systems was solely in the realm of Kubernetes, which we use at work for deploying scalable, distributed web services. I was introduced…

DataTables for React: APIs in Phoenix and Rails

A while ago I published redux-remote-datatable. It's a React and Redux-based table for serverside-processed data, and it looks like this: At the request of a GitHub user, I added an example implementation of the API written in Ruby on Rails. You can find that here. This is the server I…

Bringing DataTables to React-Redux

One of my most frequently-used open-source tools is datatables.net, a jquery-based interactive table with dynamic sorting and searching. I sought to bring the simplicity of that project's serverside API to React, using Redux to handle state changes. The result is redux-remote-datatable. I limited the scope solely to server-processed data…

State of the 10x Programmer in 2018

tl;dr: A 10x programmer does not necessarily know one language/framework ten times as well. More likely she uses 10 programming tools just as well as others who master only one. Look up programmer on Indeed and you'll immediately see how fragmented CS jobs are. It's the nature of…