This is by no mean an exhaustive list but rather my subjective top after spending several years in IT. Hope you find some of those helpful

Russian version of the article is available under the following link

Thank you Gena!

1. The Boy Scout Rule

“Always leave the campground cleaner than you found it” -that’s a great rule to live by. When you are near campground you should make it cleaner even if it was not you that made the mess. That’s one of the rules of scouts. Just the same should apply to programming. As Robert C. Martin paraphrased it “Leave your code better than you found it”. If we find some hard to read piece of application that someone else wrote and we spent some time to understand, let’s…

Quick overview of the usage of AWS SSM Parameter Store and Secret Manager

Photo by Nguyễn Phúc on Unsplash

Security is one the most important features of a well-architected cloud system. Storing passwords or other confidential data directly in your application’s code can create serious security risks and makes secret management harder. Fortunately, there is a better way that can be implemented with ease using AWS. Confidential data can be managed and encrypted in an independent system and exposed through API calls. There are two services perfectly suited for the job. Both of them offer a scalable and secure way to manage data but differ in some of the available features.

The first one is the AWS Systems Manager…

Let’s put a PHP application right into the serverless cloud

Photo by Bernd Dittrich on Unsplash

AWS Lambda and serverless approach can give a wide range of benefits. Unfortunately, Lambda does not have native support for PHP and it has not been that easy to run PHP applications here. One of the big announcements from the AWS re:Invent 2020 was the Lambda container image support. It creates huge possibilities and from now on we easily move any technology stack that we wish directly into the serverless cloud.

Let’s assume that we have a PHP REST API that has relatively low average usage and high peaks in unpredictable time intervals. Moving it to lambda will assure concurrent…

Let’s build a simple event-sourced chess application from scratch

Photo by Felix Mittermeier on Unsplash

Event Sourcing is a really useful concept that can help make your application more predictable, easier to maintain, and more performant. Let’s assume that we have already made the decision to use this technique in our brand new application. In the Event Sourcing, the state of a system is created based on a series of related events that happened in the past. The events are read-only are the only way to alter the state of a system.

The most common use cases of Event Sourcing are accounting and banking systems or shopping carts. Event Sourcing is a natural fit there…

Few tricks that can help overcome public speaking fear


Software developers are a very special species. We often tend to avoid communication and when it comes to the public we would rather hide in the darkest corner of a room. I have worked as a developer for several years without having to do many public presentations and was quite happy about it. Everything changes with the foundation of a start-up. We were creating cool products and wanted to tell the world, especially investors, about every new feature. We were very short on people so I often had to do pitches and presentations in front of different audiences on my…

Decouple your application by extracting reusable business requirements

Photo by Daniel McCullough on Unsplash

We are running a recruitment process for an internship in an IT department for a startup. We have received a number of applications but not everyone will fit a profile of a perfect candidate we want to hire. He/she should be a young student, or recent graduate and have at least a year of experience. We are working on a governmental project and client requirement is so that candidates have no criminal past. Those rules will differ in time and depending on position and project. Moreover, we want to be able to modify them independently of other parts of our…

Let’s build a serverless clone of WeTransfer to share cat pictures

Photo by Cat Mapper (Max Ogden) on Unsplash

WeTransfer is a really great file sharing service. It’s completely free for files that weigh less than 2 GB and it stores them for seven days without registration. It also offers premium support and functionalities if needed.

Let’s see how we can create a serverless clone of this cool service on top of AWS. We will call it CatTransfer and try to provide similar features in a serverless manner so that everything will scale automatically. Our app is made to share cat pics, hence the name. …

Level up the interfaces of your classes

Photo by Micah Chaffin on Unsplash.

There are concepts so simple that it is surprising they have a name. This does not mean that they are not useful. Often, the simplest concepts are the best ones for the job. A fluent interface simplifies the way we use an object’s API and promotes method chaining. It is a very useful technique to make an interface of a class more expressive and easier to use for clients.

Let’s consider an example of a simple SQL query builder in PHP. We can create a select query with optional conditions:

Everything is working just fine, but it is not…

Subjective reflections on top 3 pros and cons of Domain-Driven Design

Photo by Christine Roy on Unsplash

There are concepts in programming that can really change the way we think and work. Agile methodologies are relatively new but it is currently hard to imagine working effectively on a big project without sprints and a prioritized backlog. It simply became something natural and makes work more efficient and pleasant. Domain-Driven Design is receiving a lot of hype in recent years and begins to be adopted in some major projects but can it reach similar status?


Domain-Driven Design has several amazing concepts and techniques that we think give…

Let’s give our database schemas more freedom


MongoDB is a great choice for a number of applications. In the PHP world, we can also try something more than just a LAMP stack and give our database schemas more freedom. One of the most popular Object Relational Mappers (ORM) for PHP is the Doctrine that also happens to have a very good implementation of Object Document Mapping (ODM) for MongoDB. We will not go into details about the advantages or disadvantages of NoSql and SQL databases but see how we can build a very simple application if we have already decided to use Mongo.

Complete source code is…

Jakub Kapuscik

Tech Manager at, guineafowl enthusiast

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store