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.

(via YouTube.com)

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

(via vimeo.com)

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

(vYouTube)

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.