The Mossad Challenge 2018 – Entry Riddle

For the Israeli independence day, the Mossad published a new challenge. When I have some free time I try to crack it and enjoy learning new stuff in the process 🙂 Let’s start? If we’ll go the the Mossad webpage, we’ll see the following picture: As you can see, there…
Continue Reading

Simple item versioning with DynamoDB

Occasionally you want to store information in a database with keeping versioning, so you will be able to retrieve previous versions of the record. In this example, we will use AWS DynamoDB and take advantage of some of its features. For the example, lets take a simple record that contains…
Continue Reading

How to consume all messages from an SQS queue ?

My goal was finding an AWS service that will answer the following requirements: Store large amounts of data (split into small chunks) reliably. Accessible from multiple zones/regions. Low read/write latencies. Cheap enough. SQS is a powerful service that is really useful for de-coupling between micro-services and allowing reliable transfer of…
Continue Reading

SQS Benchmark (with large messages)

Amazon Simple Queue Service (Amazon SQS) is a scalable and fully managed message queuing service that allows users to transmit any amount of data through the web without administrative responsibility. Recently, I tried to evaluate whenever the SQS service will fit my needs for a design I’m working on. My…
Continue Reading

Serverless On-call duty notifier – Part 2

In the previous blog post, I’ve described how to build a simple SMS notification system using DynamoDB, SNS and AWS Lambda. In this post, I’ll show how to change it in order to allow each user to choose whenever he wants to get SMS notification, Email notification or nothing at…
Continue Reading

Getting the right Jenkins build number using Python

One of the jobs in our CI pipeline is responsible for compiling, building and packing the code. The artifacts of the job is a directory on our storage with the build number and all the artifacts that are related to this build number. For example: //storage/build_1000, //storage/build_1001 and etc. There…
Continue Reading

Proper use of static keyword

Recently I found a funny bug in our code and I wanted to share some insights on it so you won’t do the same mistakes. Let’s assume we have a function that produces a lot of output and it can run from multiple threads. I wrote a simple program to…
Continue Reading