Implementing Minimax Algorithm in Java

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. ...

September 23, 2018 · 5 min · Bartosz Jedrzejewski
Please, stop writing so many “for loops” in Java!

Please, stop writing so many “for loops” in Java!

In this blog post, I want to take you back to basics and talk about Java for loops. To be honest, I am writing this blog post partially for myself, as this is something that I am myself too often guilty of. Since Java 8, we don’t have to write so many for loops in Java! I hope this blog post will make your code nicer to read and quicker to write. ...

September 15, 2018 · 3 min · Bartosz Jedrzejewski
Audiobooks - a secret weapon of a busy software developer

Audiobooks - a secret weapon of a busy software developer

I have blogged about my road to productivity recently. I received a comment there from one of my readers asking me if I have a secret weapon that helped me be so productive. While I don’t have a secret weapon strictly for productivity, I realised that I have a secret weapon (or two) for learning. That weapon is simply… Audiobooks! Why Audiobooks? Why would you get an audiobook? What is so magical about them, when you can simply read a book (a paper version) or an eBook (on your Kindle or something similar? ...

September 14, 2018 · 4 min · Bartosz Jedrzejewski
Microservices and cross cutting concerns

Microservices and cross cutting concerns

When thinking about microservices, we mostly imagine autonomous teams working on independent services. Despite all that independence, things such as log aggregation and security benefit from a system level thinking. In this article, I will discuss these concerns and give my advice on how to approach them. There are different kinds of microservices systems. Some of them are truly independent when every microservice is nearly indistinguishable from a third-party API, other- because of either necessity or practicality, rely on shared infrastructure or concepts. ...

September 9, 2018 · 5 min · Bartosz Jedrzejewski
Simulating the Secretary Problem with Java

Simulating the Secretary Problem with Java

You might have noticed that I like reading books. I have recently read *“Algorithms to Live By: The Computer Science of Human Decisions”*which absolutely fascinated me! The book mentions a famous optimal stopping (Wikipedia) problem called Secretary Problem. In this blog post, I will explain it and then we will have some fun simulating it with Java. Let’s see if we can find a solution by brute force! Secretary Problem Defined Imagine that you need to hire a secretary. Imagine now that you have 100 candidates that you are going to interview. Because you are a perfect interviewer, you can compare every single person against everyone else that you have seen so far. After the interview, you have to either hire the person or reject. If you reject, you can’t change your mind. You win if you have managed to hire the best candidate out of the whole lot. ...

September 9, 2018 · 5 min · Bartosz Jedrzejewski
My road to productivity - start finishing and producing

My road to productivity - start finishing and producing

Being productive and motivated- who wouldn’t want that? I used to think that some people are just bornmore motivated, that some people simply are this way. “The War of Art” is an eye-opening book. I think that if I have never read it- it is unlikely that I would manage to write two articles a week for this blog ever since starting in January 2018. Here is a short story on my road to productivity. ...

September 2, 2018 · 5 min · Bartosz Jedrzejewski
Tips for “whiteboard” and “paper” coding interviews

Tips for “whiteboard” and “paper” coding interviews

In my career as a software developer, I have interviewed over 100 people. Most of these interviews were face to face interview involving coding on paper or a white-board. In this article, I want to give you practical advice on how to approach these interviews. “Whiteboard”, or “paper” based coding technical interviews, are the interviews in which you are asked to write code, either on a whiteboard or a piece of paper in front of you. ...

September 2, 2018 · 5 min · Bartosz Jedrzejewski
Java vs Groovy for Microservices

Java vs Groovy for Microservices

In the past three years, I was involved in developing microservices architectures. In Java, with Spring Boot and in Groovy with Grails. Perhaps risking some outrage, I will compare my experience in Java and Groovy, Spring Boot and Grails and give my opinion on what works best. I will start looking purely at languages, as Spring Boot will work happily with Groovy and Java alike. What I like in Java-based microservices ...

August 26, 2018 · 5 min · Bartosz Jedrzejewski
How to be a good Scrum Master? Start with this book!

How to be a good Scrum Master? Start with this book!

*“Scrum Mastery: From Good To Great Servant-Leadership” –*a book that I picked up recently based on it being the number one selling book about Agile Methodologies (from Amazon). I also wanted a fresh view on that role, given that I work in a Scrum team myself. Was it worth my time? Definitely! I did not really know what to expect from this book. There are plenty of “Scrum manuals” out there, which more often than not, describe some idealised realities. ...

August 24, 2018 · 4 min · Bartosz Jedrzejewski
Designing an Object Oriented Chess Engine in Java

Designing an Object Oriented Chess Engine in Java

I love playing chess. I also love programming. How to marry the two? How about playing chess against a chess engine (chess playing program) that I have designed and wrote? If you are intrigued- read on! This is the first blog post in the series about building my chess engine in Java. The rules of chess I assume that you are more-less familiar with the rules of chess. You have two “armies” facing each other, making a move after a move, until one side is guaranteed to capture the enemy king (the checkmate), or neither side can win- a draw. ...

August 16, 2018 · 4 min · Bartosz Jedrzejewski