When writing code to interact with a third party like a SaaS provider, you typically need to write both code to handle the API the third party uses, and translate their data model into your data model. One thing I’ve found that makes this easier is to do each step separately: First write a library to interact with their API using their own data model, then separately write code to translate between your data model and theirs.

Read more

I’ve been subscribed to Interview Cake for years, and today they had a really interesting question: Given a list of n + 1 integers in the range 1...n, find one of the duplicates (there is guaranteed to be at least one) in O(n) time and O(1) additional space. The answer is really interesting, and I recommend trying it, but I don’t think it makes sense to care about additional space rather than total space, and I still think using a set to keep track of numbers (the most obvious solution) is the best solution in practice.

Read more

Elizabeth Warren recently proposed a wealth tax as part of her plan to partially pay for single-payer healthcare. I think this is significantly worse than other methods of raising the same amount of revenue from the same group of people, so this article describes the problems with wealth taxes plus an alternative if we want to raise tax rates on the rich (spoiler: just raise the income tax rate).

Read more

To make your data faster to lookup, you can either store it in an order that makes it easier to search, or add one or more indexes. For practical work, you can let your file system do this for you, or use a pre-built database (either relational or not). I’ll describe from the lowest-level to highest level so you can understand what I’m suggesting, but my real-world answer is that I would store most kinds of data in a relational database like PostgreSQL and put indexes on any column that I want to do lookups by.

Read more