Blog

Dev team Hackday

Today was a hackday for the dev team that focussed on open-sourcing an internal library. We wanted to go through the steps of open-sourcing and make a (small) contribution back to the community. The library that we chose to open source was Flask-Auth0, a library that we use in our cloud infrastructure for securing web applications. Flask-Auth0 …
Read more

A SlackLibrarian using Mendeley

  0 TL; DR Finding files and especially uploaded PDFs in Slack can be time consuming and lead to a lot of frustration. I build a small Slackbot that combines the Slack and Mendeley APIs to detect when a user has uploaded a PDF to Slack and prompt the user to tag and upload the PDF to …
Read more

My summer internship at Sandtable

Over the course of this summer I spent 11 weeks as a Software Engineer intern at Sandtable. I had a wonderful time here and learned a lot from some very knowledgeable and friendly Engineers. We worked with Trello, which I am very fond of, to organize our tasks and had daily morning chats about what everyone …
Read more

etcd3 leader election using Python

For a recent Sandtable hackathon, we built a prototype of a highly-available cluster (master-worker) framework. We decided to use etcd3 to store master state, for leader election, and implement a presence protocol. Etcd, developed by CoreOS, is a distributed, reliable key-value store written in Golang that implements the Raft consensus protocol. For leader election, we …
Read more

Using SSL with gRPC in Python

(Edit (27/02/2018): For the latest code, see our repo.) We have recently started using gRPC at Sandtable and we really like it. gRPC is an HTTP/2 based open-source RPC framework released by Google in 2015. It uses Google's Protocol Buffers as the interface definition language and data serialisation format. gRPC can be used from a number of different languages, …
Read more

A single AWS Elastic Load Balancer for several Kubernetes services using Kubernetes Ingress

We are using Kubernetes 1.4 in AWS to host several websites. Originally we had one pod and one service per website. We then created one Elastic Load Balancer (ELB) per website. To simplify the drawings we have indicated pods but you’ll see that we actually use deployments. As those websites are for development purposes, we wanted to …
Read more