Using GORM – Part 3: Models and Idempotency

Previous posts in the series: Part 1: Introduction Part 2: Transactions and Save Points So far, GORM has helped us abstract our data-access logic and removed the need to write SQL queries directly, but is everything perfect? In this post, I will cover some of the pitfalls I’ve noticed and…

Using GORM – Part 2: Transactions and Save Points

Previous posts in the series: Part 1: Introduction Now that we know the basics of working with GORM, let’s cover a few more advanced topics. Transactions Transactions are an essential concept in relational databases that allow developers to ensure data consistency and integrity. A transaction is a sequence of operations…

Using GORM – Part 1: Introduction

In today’s software development landscape, Object-Relational Mapping (ORM) has become an essential technique for managing relational databases. ORM allows developers to work with databases using an object-oriented approach without having to write SQL queries. ORM tools provide a set of methods that abstract away the complexity of dealing with databases…

Monolith or Microservices?

Recently I have been asked a lot about my opinion on monolith vs micro-services, so I wanted to summarize my thoughts in a short post. A monolithic service is a software architecture in which all the application’s components are tightly coupled and interconnected, usually within a single codebase and deployed…

To Go or not to Go

Throughout my career, I have worked with a variety of programming languages. The majority of them have similar concepts, with the main difference being in the structure, syntax, and eco-system (compiler, libraries, etc). I enjoyed writing code in C and C++ at Dell, and when I joined Velostrata (which was…

Hit the Ground Running

I joined AWS around 4.5 years ago and had the good fortune to be a founding member of a brand-new service. It was tough and interesting to build it from the ground up, and it put me in an excellent position to know practically everything about the requirements, architecture, different…

Storing large items with DDB and S3

When working on applications, you want to focus on your business logic rather than spending your time on the mechanics of how to persist your data. If you are working in AWS, there is a good chance you are already using Dynamo DB as your database, as it gives you…

Can I inject this class ?

One of the biggest pain points using injection in Java is that if you missed something, you will find it during runtime. Many code commits were made where everything passed the code review, and looked legit, just to find out that it doesn’t work due to a missing injection. Let…

Is it really a Singleton?

Recently, I have investigated a defect that is interesting to share. As part of our operations, we need to be able to run tools, which will invoke APIs on different AWS services. For example, one common tool is to run a certain CloudWatch query and analyze the results. The framework,…

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…