Java surprises – Unexpected behaviours and features

Java is a very mature programming language – in fact, it is over 21 years old, so if it was a person it could drink even in the USA! With age comes wisdom, but also with age comes quirkiness… at least sometimes. In this article, I will look at some of the more surprising and unexpected behavior and features of the language. Continue reading “Java surprises – Unexpected behaviours and features”

Leading developers vs managing them

Words like leadership and management are used often when discussing software projects. While they may sound similar, they are quite different and are often (but not always) performed by separate people. In this article, I will look closer at these two terms and explain why one is more difficult than the other. Continue reading “Leading developers vs managing them”

How to learn AWS

Amazon Web Services (AWS) is the most popular Cloud solution out there. More and more companies are using it every day. It makes development easier, safer, cheaper and better. Since it is becoming an expectation for backend developers to be familiar with AWS (or other Cloud solutions) I compiled here some of the best resources and ideas for learning it. Continue reading “How to learn AWS”

Should you let your developers work from home?

It seems that everyone wants to work remotely these days. Why wouldn’t they? There are some obvious benefits, such as reduced commute and working from the comfort of your own home. What is the impact on the team though? In this blog post, I focus on the impact on the team rather than individual benefits. Continue reading “Should you let your developers work from home?”

Single Responsibility Principle – do you know the real one?

Single Responsibility Principle, as defined in the very famous set of SOLID principles, is often misunderstood. When asked what it means, most developers go with- “a class should do only one thing”, or something along these lines. This is simplistic and frankly- wrong! Intrigued? Read on! Continue reading “Single Responsibility Principle – do you know the real one?”

“Algorithms to Live By” – My Favourite Developer Audiobook

Today I want to share with you a review of the most exciting book I have listened to so far –“Algorithms to Live By: The Computer Science of Human Decisions” by Brian Christian and Tom Griffiths. I have already mentioned it on this blog when simulating the secretary problem. This is just an example of many fascinating problems this book talks about. Continue reading to find out why it makes such an amazing listening experience. Continue reading ““Algorithms to Live By” – My Favourite Developer Audiobook”

The Physics of the Agile Methodology

There are numerous articles out there talking about agile teams and how being agile will change your life/project. I agree with what Agile Manifesto proposes, but overall, I think that agile movement lacks scientific approach. In this article, I will apply my understanding of physics to “prove” and explain some of the agile phenomena. Continue reading “The Physics of the Agile Methodology”

Should you use Spring Boot in your project?

Spring Boot is enjoying, a seemingly never-ending growth of popularity. While only released in 2014, it has managed to overtake the Java serverside in less than five years. When starting a new project, a sensible question to ask is- “should I use a Spring Boot?”. In this article, I will help you answer this question! Continue reading “Should you use Spring Boot in your project?”

Implementing Minimax Algorithm in Java

If you want to write a program that is able to play a strategy game, there are good chances that you will be looking at a Minimax algorithm. This is especially true when it comes to games like chess, where variations of the Minimax algorithm are what is used to build the strongest chess-playing programs in existence. In this article, I will look at implementing the basic version of the Minimax algorithm with Java. Continue reading “Implementing Minimax Algorithm in Java”