What good code looks like

We've all seen bad code. We probably all have written some ourselves. Bad code is easy to spot. It's over complicated, hard to read, has too many dependencies, no tests and it breaks every time we touch it. But what about good code? What does good look like? It's not…

The Role of an Engineering Manager

I was in a meeting with my boss when he asked me to describe the priorities of my job. I froze. It was my 6th month as an Engineering Manager and I was unable to articulate what that meant. That was frustrating. As a Software Engineer, you build software products.…

Hash Indexes on Postgres

If you ever looked at the Postgres documentation on index types you must have seen the prominent box screaming caution when you get to the hash type section. Hash indexes are currently discouraged for not being WAL-logged. As the documentation says, this means, that in case of a crash, the…

Spark (the web framework)

When it comes to web development, Java doesn't come to mind as a language that you can use to build small applications quickly. But recently I've discovered Spark. A micro framework to build web applications that takes advantage of Java 8 lambda expressions. With a syntax inspired by Sinatra, the…

Dig on Ruby 2.3

Amongst the additions to Ruby on the 2.3.0 release there's the dig method on objects of the type Hash, Array or Struct. This method allows you to access deeply nested data on either of these data structures in a safe way. For example, imagine you have a structure…

UPSERT on Postgres 9.5

Postgres 9.5 RC1 was launched very recently (18th December 2015). So it's time to take some of the new features for a test drive. The one that really caught my attention for some time is UPSERT. This basically allows you to perform an action like "create or update" in…