Book review: It Doesn’t Have to Be Crazy at Work

I read Jason Fried and David H Hansson’s book “It Doesn’t Have to Be Crazy at Work” and found it underwhelming. While the authors advocate a specific approach to running companies and building software, they base it all on the success of just their one company (Basecamp). They do not explain how companies of different […]

Docker — a conceptual overview

Recently I learnt a bit about Docker while using it on a project. I read large parts of a well written book called “Docker Deep Dive” by Nigel Poulton, and some other articles. Here are my notes about some key highlights of Docker. Docker is built on top of a Linux kernel feature called “namespaces”. […]

ListenableFuture vs CompletableFuture — a comparison

In my previous blog post I wrote about how Google Guava’s ListenableFuture is an improvement over Java 6’s Future class. But Java 8 ships with a CompletableFuture class that brings much of the same benefits into the standard Java API. The below code example (again with inline comments) shows how to use CompletableFuture to implement […]

How is Google Guava ListenableFuture better than Java Future?

Google Guava’s concurrency classes provide some advantages over using Java’s default classes. Guava’s Futures offer the following benefits: You can add “listeners” to the result of a Future’s success or failure, instead of explicitly checking for the return of the Future.get(), handling exceptions and so on You can chain multiple asynchronous pieces of code together […]

The feel of Java, and Go

In an article titled The Feel of Java (PDF), James Gosling, one of the language’s creators, explains the design choices which went into the making of that language. He states frankly that Java was not meant to be innovative, but instead tried to synthesize a few carefully chosen long existing ideas to form a coherent […]

Lessons learnt building data pipelines — 1

It has been a few years since I embarked on what was then trendily called “data engineering”. That title — and the associated work — was an outgrowth of a tendency for computing systems to accumulate vastly more data than used to be the case before, and more importantly, try to extract business value by sifting through it. Nowadays […]

Influential books I read in the last 2 years

Either I’ve become way better at choosing which books to read, or am able to get more out of reading each individual book than I used to. In any case, a surprisingly large number of books have managed to contribute long lasting ideas to my mental repertoire over the last couple of years, compared to […]

NIPS 2017 is exciting even if you don’t work in AI

I found out about the just concluded NIPS 2017 conference through a mention on my Twitter timeline. I’d heard this was a premier venue for presenting research in artificial intelligence, so I clicked through to the #NIPS2017 hashtag. The superlatives being thrown around to describe this year’s edition of the event roused me enough to […]

An unbeatable perk of the Bay Area: its meetups and conferences

One unbeatable perk of living in the San Francisco Bay Area is the sheer number and variety of technical events you get to attend and the novelty of the ideas you get exposed to at such events. Whether it is a new framework or programming language, or an entirely new way of thinking about problems, […]

What if your text editor spoke Kafka?

If you work in enterprise software long enough, you may end up only looking at software that satisfies complex constraints: how often does it fail, what kind of security features does it have, does it work well with these other systems of ours, an so on. Not to forget the most common of them all: […]