About Me
How I got into coding
I first got into programming in high school. I studied computer science at SSPŠ and in "Programming" classes I learned Visual Basic 6.0. I really enjoyed it - today I can't imagine writing anything in it, but back then it was great. Sure, no OOP, but the possibilities that you could suddenly program all sorts of things were amazing. A bit like returning to childhood when you played with Lego - you had blocks, small building pieces, and with a bit of creativity and thinking you could build all sorts of things. After high school, it was clear to me that computer science and technology was something I enjoyed and wanted to make a living from, so university was an obvious choice. There I first encountered C++, OOP concepts, algorithms and data structures. Sometime during my second year, I bought my first Android phone (today I'm an Apple sheep) and I wanted to write apps for my phone. That's how I got to Java. And Java never let me go - during my studies I started working as an Android developer (more in CV) and since then Java has been my primary language (of course I worked with other languages during my studies, like PHP, Python and C#).
Why engineering management?
Honestly, I didn't plan to become a manager. A few years ago, when I was a developer at various companies, I gravitated towards being involved in designing things and figuring out how to design systems. I enjoyed coming up with ideas or contributing to architecture. So back then I saw myself more in a role that today we would call Tech Lead or System/Solution Architect or something similar. I had this role to some extent at RedSoft (CV) and I really enjoyed it - partly because I still had plenty of time to write code. At ShipMonk, we don't really have the tech lead role, as part of the Engineering Manager role we're expected to do both people management and hands-on work. So when the offer came to take over the team where I was currently a SW engineer, I didn't hesitate much. I enjoy people management. And it's new for me - I've been doing it for only two years, but there's still always something to learn. However, I don't currently want to get into a role where I would be purely just a manager and wouldn't do any technical work. What I enjoy about the manager role (combined with tech lead work) is, among other things, that I'm practically involved in everything. From communication with product, through the actual design and development of things, their operation in production, all the way to feedback from customers who use the system. And this forces and motivates me to think about the product and solve various problems that I see much more from the manager's perspective than just from a developer's perspective.
What I like about my job
Primarily, I enjoy product development. I much prefer being able to develop and maintain one product for a longer period rather than jumping from project to project. I feel that by developing a product and especially being there when it's in production and someone is using it, I learn a lot. I see feedback from customers who use the system, but also how the system behaves in production. One thing is a "beautiful" design and architecture "on paper", but only production shows how well or poorly the system is designed - for example, in terms of performance. That's the feedback that helps me do it a bit better next time. I also enjoy working with people who want to keep developing themselves. Many of them have been an inspiration to me during my career so far, and I've learned a lot from many of them - and it's not just about hard skills, but also soft skills. Being in a group of smart and motivated people is great - and I have to say, we have a lot of them at ShipMonk.
What I do when I'm not at my computer (or in a meeting)?
Quite possibly sitting at home 😄 Reading. I used to read a lot more, now a bit less. I enjoy reading books related to IT - I mention some interesting ones below 👇 - or non-fiction from other fields. For classic fiction, my favorite is the Jack Reacher series. Some of them are now available as a series on Amazon Prime and it's great. Another passion is chess - same story here, I used to play more. These days I don't have much time for long games, so I occasionally play online on chess.com, mainly blitz. Fast games forced me to learn the theory of some openings - so feel free to send me a game request and we can test how well I remember the French Defense. But the best is traveling. I love good food, new places, and long journeys. From Europe, I love the Canary Islands most (seriously, I can't even count how many times I've been there) and outside Europe, I was mainly captivated by Indonesia (which is definitely not just Bali, but also Sumatra, Flores, or Lombok). When I travel, I enjoy photography - whether with a DSLR, iPhone, or drone. I definitely don't consider myself a good photographer though 😄
A few interesting books
- Clean Code (Robert C. Martin) - One of the first IT books I ever read. I understood that we write code for humans, not for machines. And although I would disagree with some things from the book today (e.g., only one
returnin a method, because early returns are a great thing), the book taught me a lot and many concepts are still valid today and I use them. - The Pragmatic Programmer - Before I bought and read the book, I read that it's like a "bible" of software development. And after reading it, I agree with that opinion. It's technology agnostic, mainly explaining various principles and approaches that are still valid today. From the DRY principle through iterative development with fast feedback loops to broken windows theory. I still use a lot of it today.
- Effective Java (Joshua Bloch) - I usually read all books from cover to cover. This was an exception. I learned about the book many years ago and back then I would always find and read the chapter or section I needed at the moment. Only later did I read through the chapters I hadn't gotten to before. Very practical book, I've returned to it more than once and reread some parts.
- The Manager's Path (Camille Fournier) - I heard that a good developer often becomes a bad manager. I wanted to avoid that in my case. I read the book a few months after I became a manager at ShipMonk. And it really helped me a lot. I definitely don't want to say that reading one book will make you a great manager (and I certainly don't want to claim that I'm a great manager). A manager's work is largely about experience and practice, I'm still gaining new experiences, but this book answered some important questions for me and helped me look at some things from a slightly different perspective.
- Algorithms to Live By (Brian Christian, Tom Griffiths) - A book that combines theoretical computer science with practical life. It explains various algorithms and shows how they can be applied to everyday life. For example, did you know that even when looking for parking, there's a mathematically optimal strategy? 😄
- Factfulness (Hans Rosling) - One of the best books I've ever read. It beautifully shows how often we as humans have a distorted view of the state of the world - we tend to think everything is worse than it actually is. And it's due to media reporting, cognitive biases, and how we sometimes interpret information in an oversimplified way.
- Jack Reacher series (Lee Child) - A series of books about Jack Reacher - a former military investigator who now just travels across the USA and always "accidentally" gets involved in some trouble. Well-written detective/thriller, great for switching off your brain. Some of the books have been adapted as a TV series, definitely worth watching in my opinion.