My talk at GraphQL Summit 2018

Formatting Java Instant for resolutions

FreeBuilder plugin for IntelliJ

Command line clients for gRPC - polyglot

Command line clients for gRPC - grpcurl

A Jackson and FreeBuilder quirk

Net::HTTP and the simplest of explanations

Python URL manipulation revisited

Uploading a standalone artifact to Nexus 3

Implementing feature toggles for a Spring Boot application - Part 4

Implementing feature toggles for a Spring Boot application - Part 3

Implementing feature toggles for a Spring Boot application - Part 2

Implementing feature toggles for a Spring Boot application - Part 1

Setting up a secure etcd cluster behind a proxy

A very basic introduction to deploying a Java application using Kubernetes

Handling Deserialization errors in Spring Redis Sessions

CSRF Protection with Spring Security and Angular JS

Controlling Redis auto-configuration for Spring Boot Session

JWT authentication with Spring Web - Part 5

JWT authentication with Spring Web - Part 4

JWT authentication with Spring Web - Part 3

JWT authentication with Spring Web - Part 2

JWT authentication with Spring Web - Part 1

JSON logging for Spring applications

Injecting dependencies into a Spring @Configuration

Filtering responses in Spring MVC

On Inverness

Deprecating domain events in Axon

Programmable exit codes for spring command line applications - 2

Programmable exit codes for Spring command line applications

Using custom arguments in Spring MVC controllers

Authentication for Apache Camel HTTP components

Thoughts on Open Graph tags

Integration testing Spring command line applications

Integration testing challenges for non-web Spring applications

How thinking of Documentation as Legislation helped me become a better programmer

Implementing custom annotations for Spring MVC

Validating RequestParams and PathVariables in Spring MVC

Testing async responses using MockMvc

Running multiple applications in the same Tomcat installation

Making sense of Cloud Foundry security group declarations

Configuring Cloud Foundry Java Memory Parameters

Disputed territories and merging shapes and features

A list of GIS tools

Importing the Yelp dataset into MongoDB

Clojure Dojo - Levenshtein edit distance

A simple JMeter test with login

The SNDP - NSS political experiment of 1980s

What is life?

A rainy distraction

The fear of being wrong on the Internet

Implementing Rate Limiting in Rails - Part 2

Implementing Rate Limiting in Rails - Part 1

Python Hack - Dynamically override an object's attribute

Fitting an Image in to a Canvas object

Accessing Environment Variables in Gradle

Reading user input in Gradle scripts

Ruby, Named Capture Groups and Local Variables

Named Capture Groups in Regular Expressions

Decomposing URLs in Python

On Halal Burgers

Shared history in Bash

Managing Gemsets in Rbenv

Looking up Compiler params used to compile a Ruby version

Navigating Stacktraces in Emacs

A brief History of Times New Roman

My Tinfoil setup

Python's bool type

When Link titles were for the early adopters

When URL shortening results in longer URLs

Fusing the old media and the new

Biriyani and me

Internet in Yemen : A Tale of Woe

Graph databases 1 - Modeling

Validating JSON in Emacs

My thoughts on Android fragmentation - It is not a bad thing

മഴയുടെ ഓർമ്മകൾ

Fireworks in the paddy fields - memories of a summer

Emacs hack: Viewing Git logs while composing commit messages

Configure Git's comment character

My experience working remotely

Oh I can build it in...

JavaScript, clipboard access and hidden flash widgets

Reducing Emacs startup time while committing

First week in San Francisco

Books read in 2012

My first Firefox plugin: GetCache - View cached version of the current page

GetCache - A Chrome plugin to view cached version of the current page

On REST, Content-Type, Google Chrome and Caching

How Browsers Detect If You Are Offline

Dear Content Creator, Your URL Shortener Is Pointless

Giving up the Samba for the Tiki-taka

Curse of the Community Shield?

Why I am not on Facebook

D3.js Workshop

Visualisation - How European clubs dominate their leagues

Social Networks and their URL Shorteners

XConf 6 - Data, My Heart!

Understanding Python's "with" statement

Heredocs in Ruby and Python

Micro Journal - simple Git-backed journal in Python

VodQA NCR: Maintaining Large Test Suites

Know Your Tools - Don't Shoot Yourself in the Foot

Managing security certificates from the console - on Windows, Mac OS X and Linux

The Spiral of Learning

You Crash and then You Learn

Indian and Pakistani cricketers - who make better debuts?

Fixing Flyspell for Emacs in Mac OS X

Finding un-merged commits with git cherry

Bullet proof Jenkins setup

Why your project should have a Getting Started guide.

Debugging: C Sharp's HttpWebRequest, 100-Continue and nginx

Banyan Tree: Football and Politics

Wikipedia Page Hopping


Poorly executed xkcd spoof

Empathy Log Parser

Binary Signature Art

Saying Good Bye is tough

Java Arrays in JRuby

Athletic - The European campaign and a Basque special

Missing the game - Execute stuff on file change

TWU Graduation

A lot to learn

Yet another week in Bangalore

Bangalore Journal

Ajmal Qasab and his friends should hang their heads in shame

When I used to love Cricket

Of Birthdays and Anniversaries

Tough Love

Athletic Bilbao - Warriors in a world of Mercenaries