A Software Engineer's Journey To Learning Guitar
December 31, 2022I usually share programming tips and tricks in this blog because I like building software. However, for the last two years I've had a new passion which is playing guitar...
I usually share programming tips and tricks in this blog because I like building software. However, for the last two years I've had a new passion which is playing guitar...
Dapr is an amazing open-source project which was initially started at Microsoft and is now part of Cloud Native Computing Foundation which abstracts away a lot of the implementation...
Often times product requirements change and software engineers need to change the existing data model. For example, imagine an intentionally simplistic Postgres table for book orders which contains…
Exactly-once delivery in distributed message queues is admittedly one of the hardest problems in software engineering: Achieving exactly-once semantics in Apache Kafka Streams is as easy as setting…
In software engineering often times certain logic needs to be applied in multiple modules of an application...
Recently I needed to integrate Hashicorp Vault with a Java application. For local development I wanted to use Vault Agent...
There're multiple ways to pass sensitive data (access tokens/passwords etc.) to an instance of an application deployment, for example...
Prometheus is an open-source project which is both a monitoring system and a time-series database. It's a popular choice for monitoring services...
Sometimes data needs to be ranked according to top-n entities. For example, a company wants to find out its top 5 products per each country by the amount of products are sold. If all the product data…
ksqlDB is an amazing tool to make SQL queries on data stored in Kafka topics (and much more). It also has a handy REST API to make queries...
Recently, I wanted to set up a development environment server and I wanted to access it via a test domain I added in /etc/hosts file which I mapped to localhost...
This is the second post from change data capture series. You can read more about the motivation and introduction into Debezium in the previous post. In this post I will show how to set up Debezium with Postgres and MySQL...
I recently had to stream all changes (insertions/updates/deletions) from MongoDB to Elasticsearch in order to allow users to search the most up-to-date data. In addition I needed to transform MongoDB documents...
I recently came across this really cool project called lima. This is the project description as per the project itself: Lima launches Linux virtual machines with automatic file sharing, port…
Recently, a colleague approached me to help with building an SQL query. It was an interesting problem in my opinion and the solution to it is quite generic and can be applied to many similar problems…
Many have heard about the famous N+1 problem in GraphQL. It often occurs when queries include relationships between entities, especially child-parent. For example, let’s say we want to make a GraphQL…
I recently had a project where I had a website which used a REST API comprised of just one endpoint, which performed a very simple task. This is a great use case for a serverless function, like AWS…
I dabbled into .NET recently and after finishing the project I ended up with 2 microservices which were .NET projects under the same solution. It turns out that when dockerizing the microservices…
I had a case recently where I ran a stage in MongoDB aggregation. I had 2 collections: one which contains products (Product) and one which contains availability regions (Region). Each product may be…
Every once in a while I come across I really great tech article or video which offers great insights, sheds light on obscure matters or simply made a big impression on me. I’d like to share such…
Dockerizing applications has become the norm: it allows for easy, reproducible deploys on numerous CI/CD platforms. A common workflow is to push docker images to a docker registry, for example, Docker…
Usually when you make queries in MongoDB, the returned result is the whole document with all the fields unless you make a projection. However, sometimes you may want to filter some field, specifically…
Recently, I had to add several API endpoints which provide pagination, filter and sort parameters to the client while using MongoDB as database. Implementing pagination and filtering wasn’t…
I recently got to do Object-Oriented programming in Javascript. Many of the Javascript features resemble Java language (, , and keywords to name a few). One of the differences with Java is that…
I started learning Golang recently and after completing a project I wanted to share some of the first impressions of transitioning from Javascript/Node.js to Go. Types. Types are built-in in Go. This…
I recently started a project in Go language which is really fun. In my project I frequently make requests to an external API so I wrote I handy request utility which uses recursion to make retries…
Using CDN can greatly increase website load times and as a result user experience. Cloudfront is a powerful CDN solution provided by Amazon Web Services (AWS). You can control origin requests cache by…
I recently came across an interesting behavior when working with regular expressions (regex) in Javascript. I came across the following piece of code...
I’ve been using Apollo Client/Server for a while and although these are great projects I did experience inconsistencies and issues with the client cache/local state. So much so that I was thinking of…
I recently had to create a slidehow component, something along these lines. I was surprised how easy it is to create such a component and would like to share an example below. In the example I will be…
I find myself frequently iterating over some Javascript object keys and then performing specific actions which are relevant for some key. For example, imagine there’s a website which aggregates…
Recently, I needed to update an existing mongoose schema (for those unfamiliar mongoose is a Javascript ORM for MongoDB) with a nested object. During the task I needed to define default values for…
Often times a website needs to implement some kind of pagination solution, for example if a list of products is displayed and all products can’t be shown at once (for performance or other reasons…
Recently, I had to add pagination feature to our website (our data resides in MongoDB). I wanted to define a single MongoDB aggregation pipeline which would fetch the required data (products) based on…
In the times of coronavirus epidemic working remote has become the new norm for many of us. As a software engineer it’s import for me to maintain excellent communication with product managers…
I often wanted to better understand the inner workings of Apollo Server. Specifically, how the resolvers integrate with Apollo because they’re not part of Apollo per se but are either written manually…
I recently came across a problem where I needed to perform some custom logic on the result of a GraphQL query before it’s returned to the client and now I’d like to share some of the possible…
Prisma does a lot of cool stuff but I think it’s primarily known for allowing to perform CRUD operations on a database via GraphQL. It started out with support for SQL databases but it now supports…
While working on this blog (which I forked from here) I noticed that I have a file which was a React component. I’m used to capitalizing React components so I renamed the file . I worked on some…
I recently was given a task to add user authentication to our website. It was decided to implement the authentication logic using httpOnly cookie. Client-side the browser will take care of passing the…