Welcome to ‘A Day in the Life’ where we talk to a range of people across the business to find out what their job involves, what they love most about their workplace, and what challenges they face and overcome on a daily basis.
Today we’ll be chatting with Łukasz Michalak about the role of a Senior Python Developer. At 10Clouds, Python remains one of our key programming languages, used in a range of different areas from web applications to data science.
Łukasz has been with us for 5 years and has participated in the work on around a dozen projects during his career here. Welcome Łukasz.
Could you describe in a few sentences what the role of a Senior Python Developer involves?
As a developer you write code, obviously, but that definitely is not the only thing you do. Working with the client to shape the product, clarify the needs and features and advise them what would be technically feasible, cost effective and so on, is in my opinion the most important part of software development. As a senior you also play an instrumental part in building the technical culture in the company and you help other developers grow by mentoring them and supporting them with their own projects.
Did you always know that you wanted to be a developer? How did your role evolve over time?
Well, I wrote the first lines of (very simple) code when I was 6 or 7 years old. It was in BASIC on the Atari 800 XL. Technologies and languages have changed significantly since then and I’ve tried a fair share of different programming languages throughout the years. That said, I always saw programming as a way of solving problems and not necessarily my future profession. I studied Physics - math and programming was an important part of my degree, from writing programs for controlling hardware in various experiments to creating tools to analyze the resulting data.
I ended up working as a Python developer on really different and varied products, but as mentioned above coding is only a part of the job. The more senior you are, the more you work on designing software architecture, converting business needs into technical requirements, and supporting other programmers.
What does a typical day look like for you?
A good cup of coffee is integral to my day, which usually starts with a daily product meeting to discuss the latest developments and challenges. Other than that it really depends on the project and the day. Currently I rarely work on the regular coding of features. Instead, I’m supporting junior developers, troubleshooting issues, and creating Proofs of Concept for complex features. In addition, as a Technical Lead, I’m working on company-wide initiatives — so that we can run projects even more efficiently. Every day brings new things.
What do you love most about your role?
I love the fact that I’m able to learn something new on pretty much every project that I work on.
One day I’m figuring out how stock exchanges work and trying to understand the market order, limit order and stop loss order. The next day I might be learning how public transportation networks and bus schedules are created. This information is all necessary for understanding the functionality and product you are implementing, and it’s what makes programming interesting.
Do you have a favorite product that you’ve worked on? Why was it your favorite?
I really liked working on an Intrusion Detection System of sorts in one of my previous jobs. Back then I learned a lot about computer networks, security and how networks can be compromised, as well as ways to detect these issues and to outsmart the attackers, e.g. by using honeypots. But, as mentioned above, each project I worked on was interesting and challenging in its own way.
Why do you think Python is still so relevant and widely used in 2022?
Python is relatively easy to learn, but it’s also a very powerful and well-designed programming language with tons of libraries ready to use in almost every area you can think of. In addition, programming in Python is very enjoyable — there are only small amounts of boilerplate code (I’m looking at you Java) — so developers tend to like it.
What advice would you give to someone just starting out in their career as a developer?
Start with some small projects like “Automate the Boring Stuff with Python” to help you with your tasks and allow you to test the language in practice. Focus initially on writing readable code that works and getting to know the various tools used in the industry (e.g. Postgres, docker, redis) from the perspective of a developer/user. But later look into the basics of computer science — knowing big O notation or the theory behind relational databases may not be something you use on a daily basis, but it allows you to better understand why some things are done in a certain way. It also helps you to troubleshoot problems with code more easily and makes you a better programmer in general. When you are more fluent with your main language, try a few different languages and programming paradigms to see how they differ, what they have in common and which you like the best.