Stateless Authentication using JWT (JSON Web Token)

Currently I work on an implementation for authentication and authorization using Spring Boot, Spring Security, OAuth 2.0 and JSON Web Tokens (JWT). In order to get a good understanding on these topics I found several talks that I’m going to list here.

100% Stateless with JWT (JSON Web Token)” by Hubert Sablonnière. I found it very useful to get a better understanding on using JWTs to create a really stateless authentication architecture.


There is another interesting talk on Stateless authentication with OAuth 2 and JWT by Alvaro Sanchez-Mariscal.


This post will be updated as I find new resources.

Apache Kafka Streams

I’m interested in Apache Kafka Streams and would like share some information on this topic with you. There is a great talk about Stream Processing from Neha Narkhede who co-authored Apache Kafka and is currently a co-founder and Head of Engineering of Confluent.

There is also a good article on Apache Kafka Streams with lots of background information.

[video] – Knowledge is Power: Getting out of Trouble by Understanding Git

Have you ever wondered how git works internally or why git does certain things in a certain way? Recently I found an interesting talk about git’s internals on goto; conference. It explains all the building blocks that you need to understand to better understand git.

Knowledge is Power: Getting out of Trouble by Understanding Git


Programming as Performance

Programming as Performance? This sounds interesting and indeed it is, as you can see in this video by Sam Aaron (a Post-Doc Researcher at the Cambridge University):

He wrote Sonic Pi, a program to enable children and others interested in coding and music to create their very individual sounds using a simple keyboard and a Raspberry Pi.

How to choose a versioning scheme for your software

As a developer, there comes the time were you think about how to version your software. One approach is “Semantic Versioning” which leverages the level of change on your public API. Depending on what you changed in your code, Semantic Versioning proposes different version numbers:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Seems to be an appropriate scheme on versioning software. Which other schemes do you think about? Leave me a comment then I’m going to update this post accordingly.

Talk on Infrastructure at Scale: Apache Kafka, Storm and Elastic Search

The following talk gives a good overview on the technologies used by to build their scalable real-time-search log-processing infrastructure.

The slides of the talk can be found here:

Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303) | AWS re:Invent 2013 from Amazon Web Services

Stanford Large Network Dataset Collection

Stanford Large Network Dataset Collection
Stanford Large Network Dataset Collection

The Stanford Large Network Dataset Collection was published as part of the Stanford Network Analysis Project (SNAP). It consists of an interesting collection of large networks. The aim of SNAP is provide a general purpose network analysis and graph mining library.

The SNAP Collection contains datasets from various domains such as:

It is definitely worth of having a look at the different datasets. What dataset are you missing? What would you like to be added to the collection? Leave a comment below!

(via Hacker News)