Luck - anchor around your neck

Luck - anchor around your neck

personal development

The luck I want to talk about today is not "You're lucky, you won the lottery," but "You're lucky to have such great colleagues, to have such great offers," etc. The former is almost always luck. The latter is almost never. And yet you hear it often...

However, it has very little to do with luck.

Rules engine

Rules engine

architecturedesign patterns

Design patterns are like tools in your workshop. They can greatly simplify both writing code and the code itself. Today, we will start with examples of patterns specifically related to a pattern called Rules Engine.

The rules engine allows you to improve both separation of concerns and high cohesion and low coupling, thereby significantly reducing code complexity.

Architecture

Architecture

architecture

"Software architecture is the design of API, database and should be robust and stable."

There is almost nothing true about the previous sentence. Modern software architecture is something very different. It's missing the main thing. What the goal of the architecture actually is.

So what is software architecture?

Most precious resource

Most precious resource

personal development

Many things can be regained or replaced. A house, a car, money - all of that comes and goes. There is a resource more precious than money or gold. Time. Time is a great equalizer; everyone has the same amount - 24 hours a day. There is no way to have more. The only thing you can do is manage it.

Have you ever heard people to say "I do not have enough time"? I'm not talking about work. I'm talking about "I want to go to the gym, but I don't have time.".

Being right

Being right

leadership

Is it worth always "being right"? What does it mean to "be right" in software development? How important is it for a leader to "be right"? When does it all becomes arrogance? Have you ever had to deal with someone who always has to be right?

Explore the points of view of developers, leaders, and architects.

Software complexity

Software complexity

architecture

Complexity is the primary enemy of software design and architecture. The primary job of a software architect is to remove, reduce, or manage complexity in that order. But what if the problem space itself is complex? How do you do that? What does it even mean? What is complexity, anyway?

There are actually multiple types of software complexity, and each type requires a different approach.

What is abstraction

What is abstraction

architecture

Developers use the word "abstraction" regularly, yet there is limited understanding of what it means. In a broader sense, abstraction has been overshadowed by its use in some languages to denote a method or class that will be overwritten later, as well as the phrase "use abstraction." is understood to mean "write an abstract class.".

Abstraction is one of the most important techniques for achieving decoupling and stabilizing your public interfaces at any level.

Modulith structure

Modulith structure

architecturebackend

There are many ways to create a Modulith, and I will introduce you to one of them. The important parts that we will discuss are: Application layer, Business modules, Facades / Repositories, Event bus/broker, CQ Router and Utilities.

Understanding the roles of these parts is essential to building a code base that won't end up as a "big ball of mud".

The modulith way

The modulith way

architecture

The monolithic style has a bad reputation, but it is useful for smaller applications. The problem is not the monolith itself, but rather how it is written.

Why choose a monolith over a distributed architecture, such as microservices? Networking creates its own set of problems. There are benefits, but also costs.

Modular monolith - modulith is the way how to start application.

Values, goals and loyalty

Values, goals and loyalty

leadershiporganization

"You should be loyal to the company, share our goals and align your values with the company's values”. That's not going to happen... Don't get me wrong, I'm not saying "I'm not going to do that," I'm saying it won't happen, it can't happen, it's not possible.

People are not loyal to the company, people are loyal to the people in the company and enjoy the culture created by the people in the company.

So many fallacies

So many fallacies

leadershiparchitecture

Some people think dependency injection should be everywhere and is state of the art. Some people think layered architecture is for everything, and some people think the same about microservices.

Some people think serverless is always the way to go. Everything has to be written in Rust on the backend and VUE3 on the frontend.

Some people think you make one manager product owner, another scrum master, send them both on a 2 day certification, have standup, review, retro, Jira and you are an agile team doing scrum.

All these things have one thing in common: a lack of understanding of values and principles.

Values

Values

leadership

Why do you do what you do? What makes you want to go to work? What drives your decisions? What is your professional purpose?

tl;dr - it's not the money.

I firmly believe that there are other values that are more valuable than money. Values that create a better business, a more sustainable business, while actually making money. These values are: customer, team and quality; and they go hand in hand.

We use cookies and similar technologies, such as Google Analytics, to analyze website traffic. This allows us to understand how visitors interact with our site.

More info

This website uses Google Analytics, a web analytics service offered by Google. Google Analytics uses cookies to help us analyze how users interact with our site. The information generated by the cookie about your use of the website (including your IP address) will be transmitted to and stored by Google. We use this information to compile reports on website activity and to provide other services related to website and internet activity.

Analytics cookies help us improve our services. We do not use them for marketing or advertising purposes. We do not sell this data.