Always Looking Beyond the Code. Meet Michał – Senior Backend Developer
Michał wanted to be a soldier but became a programmer. He regrets nothing. As senior backend developer and tech lead at Bright Inventions, he focuses on solving clients’ problems. Scala, Java, or Kotlin… He has worked with all of them and is open to learning almost any other language. Code is just a tool helping him to solve challenges. Read Michał's story.
Actually, I wanted to go to military school but my girlfriend at that time talked me out of it. Now I am glad that I chose software development.
I guess it all happened quite ordinary. I went to the Polish-Japanese Academy of Information Technology. During my studies, in 2014, I got my first programming job. I was hired as a mobile developer but I never got to be one.
I was supposed to build apps for now forgotten Windows Phone. Fortunately, as soon as I joined the company they opened a new project for backend devs and I joined that team. Then my adventure with Java began.
After that, I worked on another project developing a solution for a startup whose aim was to utilize Bluetooth beacons to analyze traffic. Our stack was based on Scala. We worked on a solution that would use beacons in the cars to communicate between them and analyze traffic jams and other situations on the road. In order to verify such a solution, we were creating traffic simulations and predictions of when and where the jam would occur. That was interesting because it was also related to my Engineering Thesis.
After all these years in the business do you think it is possible to be a backend dev without knowing platforms like AWS, Azure or Google Clouds, etc?
Over the course of my career, I had opportunities to build many cloud solutions so this area is close to my heart. Based on my experience I think it all depends on the organization you are a part of.
It is usually easier and cheaper to use cloud computing platforms by small companies. However, there are still companies that use their own servers or build native cloud solutions.
In the end, it is a business decision. Many of us followed the Dropbox case. They did the math and decided to use their own servers and hire people to manage them.
On the other hand, there are companies that use all of the cloud computing providers out there. Especially the ones that build security solutions and cannot risk any downtown.
No matter the company you are part of, I believe it is important for backend developers to stay up to date with top cloud providers’ solutions.
For sure, tools will be still evolving. Therefore there will be less technical work to do and more time to actually solve our client’s problems. And I think that’s great. When you work at a software agency client expects you to solve problems, not to play with tech.
I don’t remember how I came across Bright for the first time. Probably I started to follow the company on social media. I remember that Bright always had a positive vibe. Even when I was only an observer I had this feeling that positive and professional people worked there. I also knew some programmers who worked there and they confirmed my assumptions.
So finally I applied for a job. Actually, I wasn’t hired then. 😉 Nevertheless, I got very positive feedback from Ula. Kudos to her. Despite the fact that Bright didn’t choose me they provided me with such great feedback that I was even more eager to join there. Ula told me they chose someone else but they were impressed with me so she promised to contact me when another suitable vacancy would be open. She did as she said. Soon after that, she contacted me. Eventually, I joined Bright Inventions.
At Bright, you had a chance to be a tech lead of the team working for the international JET POS brand. What did you learn as a tech lead?
Although my position was called by a client a tech lead, I think that my responsibilities actually matched a team leader role. Leaving aside the naming, this role gave me a new perspective on the software development process.
Holding a tech lead role taught me that technology isn’t the most important part of software development. Obviously, it’s essential to solve problems. However, more important are human relations both within the team and between the team and the client. As a tech lead you are obliged to represent both sides – your team and the client. Thus you have to be able to understand and present their sometimes opposite perspectives.
The most difficult part of the tech lead job was assertiveness. You have to learn how to explain to the client why something cannot be done asap. It’s tempting to agree to a crazy deadline to make the client happy but eventually, you will end up with a frustrated team dealing with overtime. So you are in the middle of it, learning how to build the bridge to meet both sides' needs. The worst possible mistake the leader might do is to agree to an unrealistic deadline knowing from the very beginning that the client’s requirements won’t be met.
When I came to Bright Inventions I worked on a project which was written in Kotlin. So I learned Kotlin here. I enjoy using it but I am not a Kotlin-freak. I have no problems with switching to different languages. Programming language is just a tool used to solve clients’ problems.
I will show how to use Kotlin to write more business-oriented code based on domain-driven design (DDD). I will utilize the best Kotlin practices to demonstrate how to write code not so technically complex but more business approachable. I am excited to share my experience. I haven’t had a chance to speak at the IT event since the pandemic.
I remember you once said at the office that the developers’ job comes down to writing the simplest possible code. What do you mean by that?
I guess that is the growth cycle of a software developer. As a junior, you write simple code because that’s all you know. Then you learn more and more complicated structures and tools so you are eager to show that in your code.
Then you realize that the complex code is difficult to maintain. It’s hard to read it by others and after some time even you can have a problem figuring out what you meant writing it.
Eventually, you enter the final stage of the growth cycle – focusing on writing clear, simple code even when you have to program complex operations. Your cycle is completed when others understand your lines and you don’t produce legacy code.
Recently we started a new cooperation with a client from Israel working on a security platform. The stack is based on Scala so we are looking for Scala developers. Also, it’s worth mentioning that we are looking for backend devs with strong Typescript and Node.js skills.
When it comes to mid and senior positions we seek programmers who look at their job from a broader perspective. Tech skills are one thing, looking beyond your code is what should be the key for more experienced developers.
Here at Bright, we are partners to the clients. We don’t only focus to do tasks they require. When it’s necessary we offer more effective solutions to solve their problems. So we always look for proactive people who first want to solve the problems and then write code.
I really like the interview flow we have at Bright. We just talk with the candidate about their experiences so no one feels like it is some kind of exam. Sharing thoughts, experiences, and perspectives - that’s the goal of our interviews.
I mostly spend time with my family. I am passionate about CrossFit as well. I had a break from that but have plans to go back to CrossFit with my wife soon. I love to travel. But I also love to plan my voyages. It gives me pleasure to organize the whole trip for my family. I often travel with friends too and they like me to take care of the whole trip as well. It’s a win-win for everyone. 🙂