The title for this blog post is a direct reference to Latency Numbers Every Programmer Should Know . There are several versions of those numbers available now, and I could not find the original author with certainty. Some people attribute the original numbers to Jeff Dean . When working on a project that will reach a certain scale, you need to balance several concerns. What assumptions am I making…
As a kid, my parents would buy advent calendars for my siblings and I before Christmas. If you have never seen one, an advent calendar counts down the days from December 1st to Christmas day or Christmas eve. A typical advent calendar would countain a chocolate per day (bear with me, we’ll be talking about code soon). Although these days you could get anything in those calendars: perfume, protein…
A postmortem is a document in which a team reflects on a recent outage and think of ways to prevent it from happening again. After an outage or security breach, the team gathers and writes a document discussing the event and what they’ve learnt from it. I am fascinated by these documents and read any postmortem that I encounter. They are a great way for a team to reflect on their practices and…
Having worked in the software engineering field for 6 years, I sometimes pause and consider how much I have learned since I started my career. One thing that strikes me is how many things I would want to tell just-out-of-college me if I had the occasion. While I don’t have that capability, I hope that the few items below will be useful to people on their way out of college and into the software…
Integration tests can be slow and unreliable because they depend on too many components in the system. Up to a certain point, this is unavoidable: integration tests are here to validate how each part of your system plays with other internal or external components. We can, however, improve some integration tests by only spinning up the required dependencies, instead of the whole system. Let’s…
I started on October 2015 a new job at Codurance in London. Codurance is a software consultancy centered around the principles of Software Craftsmanship. The co-founders are Sandro Mancuso and Mashooq Badar, both very active in the Software Craftsmanship community. Sandro even wrote a book, The Software Craftsman : Professionalism, Pragmatism and Pride . It highlights his views on how a good…
There has been quite a lot of discussion over the last years about how configuration should be managed as code, be it software settings or infrastructure configuration: For infrastructure, all the cool kids now use Docker, Vagrant or some other tool that allows you to store your infra’s configuration as text files. You can find more on this blog post For software settings, it is now commonly…
I wrote last year an article about dates , and how complicated it can get. I have updated it recently to included two excellent articles from Noah Sussman, a tester at Etsy who explains “falsehoods” about dates : thing we might hold for true, but that aren’t. For example : Years have 365 days. Yeah this one is easy, we have leap years with one more day. A week (or a month) always begins and ends…
I like how easy Google Cloud Endpoints makes it to create a REST API on Google App Engine. Granted, there are other solutions in the Java world (I also used RestX and Spring) but I still like the simplicity of Google Cloud Endpoints. However, one problem with Cloud Endpoints is the authentication : by default it only supports Google’s OAuth2 authentication protocol. Because my application uses…
I finally got tired of Blogger’s very slow and overcomplicated interface, so when I bought the hatanian.com domain name I decided to also migrate to something lighter. Setting up I wanted something that would accept markdown, display code nicely, accept git versioning. Jekyll was a great fit, and since it works well on Github Pages, well I got hosting for free ! I won’t explain how Jekyll and…