2013 – A small town in Eastern Poland. A girl who decides to study computer science after graduating from a literature-oriented high school class, and defeated by Mathematical Analysis, returns home after the first semester. What are the odds that in the future she will become Senior Java Developer, a high-level expert in back-end solutions, responsible for the code delivered to the most innovative projects? If you thought: small, definitely read her story!
In the series, we will be talking to developers who have made their way from Junior to Senior Java Developer while working at Clurgo. One of those people is Monika Nowikowska. Get to know her!
Monika, thank you for agreeing to participate in the series! We find your story insanely inspiring, so together with Kasia Wilczek from HR, we immediately thought you are a perfect match! A warm-up question: what do you do now?
Monika Nowikowska: Thank you for the invitation! Actually, my story doesn’t seem unique at all to me, and I feel like a lot happened by chance. To answer your question – right now I’m working on an app that will connect physiotherapists with patients. Its key feature is teleconferences, after which the physiotherapist can set and share the treatment plan and instructions with the patient through the app.
What is your role in the project? Are you writing any specific functionality?
I’m currently in charge of the calendar and event creation. Previously, I was in charge of saving video recordings to the cloud for later access by clients.
That sounds like a project with a mission!
I agree – that is exactly what it is 🙂
And does that matter to you? Is it more important that the project is developmental and interesting, or that it helps change the world for the better?
For me, it is important when the project is meant to help someone. However, it is also a big plus if the technologies and requirements are innovative – especially that a lot of backend projects are repetitive.
Let’s talk about how you became a developer. What did you like about programming and why did you start learning?
It was a coincidence. I was a humanities major in high school, so programming was a little out of my way. However, I had a thing for computer games and my mom suggested that maybe I should go to college and study computer science. By the way, a lot of programmers started that way – they played games as kids and then became interested in what is behind.
Did you have a favorite game?
Definitely Assassin’s Creed! The first parts especially made me a fan. Then came GTA. I never really got the Sims, though.
Not a big fan either. So you studied computer science after high school?
Yes, on my mother’s suggestion I studied computer science at the Technical University of Bialystok. It’s also a story worth sharing as it brings a positive message. I had to start my studies twice. The first time I failed because of mathematics. As I was a humanist, I didn’t have a strong foundation, and there was a lot of math at the University, especially in the first semesters. The first semester I didn’t pass Mathematical Analysis. It was a horror subject for everyone.
So what happened next?
Well, I came back home and didn’t know what to do. I come from a small town, and I didn’t see many opportunities for myself there. So I tried again. It was a good idea, the second time my motivation was higher and I met great people. We studied together and helped each other. My second attempt, I finished engineering without any prerequisites and found a job while I was still studying. My story has a positive ending and clearly shows that it is not worth giving up.
Let’s talk about this for a moment – there are a lot of stereotypes in programming: first of all, that it’s not for girls, although I hope that in 2023 fewer and fewer people have the guts to say that. There’s also a harmful stereotype that pigeonholes people as humanists or scientific minds. This can clip the wings of those who could excel in technical positions if given the chance.
I agree. Someone may have the ability to think logically, but that doesn’t preclude humanistic abilities. I was good at math, but I was also good at writing essays. One does not exclude the other and in my opinion you don’t have to choose one or the other in life.
And is Humanities knowledge useful in programming?
Probably not in a direct way. If you are able to construct your statements clearly, you are also able to explain your concepts and ideas to other people better. Programming isn’t just about writing code, as I’ve found out pretty early at work. I used to think that coding was sitting in the basement, barely having contact with other people 😉 I quickly learned that it’s a lot of meetings, conversations – so communication skills help a lot in discussions with the team. The ability to present arguments while staying open to other points of view is one of the most important soft skills of a programmer.
You also mentioned the topic of whether it is more difficult for girls in the industry. Well, you have to be ready for working mostly with men in most of the projects. Incidentally, right now at Clurgo I am working on a unique project. Most of the backend developers are women!
Looks a lot like your story is not that typical! 😉 Let’s go back to your education for a moment. Why Java?
We wrote our first projects in C and C++ in college. Then there was a breakthrough, the first larger group project, for which we chose Java. I really liked both the syntax and the frameworks we used.
Do you remember your first project?
My first non-commercial projects were still in college – I mainly worked on libraries there. I remember the commercial projects in Clurgo better. The first one was a Swedish customer for whom we did web services for invoices, and another one was a learning support application for Swedish high school graduates. This project really helped me develop my skills, as I learned a lot from the other programmers. I wrote a SQL query that was very resource-intensive and quite complicated. It took too long to run it, and we had to optimize it. It was a super analytical task! Then there was a fitness app project where I did integration with Garmin’s API.
It sounds like you have mission-driven projects only! And in addition, now you work in a team of mostly female programmers! How peculiar!
Actually that’s the case now, but it’s more common to see female testers or programmers on the front-end than in the back-end. Until now, I’ve always been the only girl on the project. This was noticeable already in college – there were only 3 other girls in my group.
What was it like – being in the minority?
One of the classmates was a stereotypical good-looking blonde. Sad reality, but what can you expect when there are a lot of guys and one girl in the group: there were voices at the beginning of the year saying that she was a “one-semester” girl. Some of those who said so, flunked out after the first semester because they didn’t pass Math, while Kasia finished her engineering degree, did her master’s, works as a C# programmer and is an A-class expert now! In addition, most of the lecturers were men, and I must admit that some of them were much more demanding towards her than towards others.
Is there anything you would tell the younger Monika from yourself?
I would definitely advise my younger self to read up on Clean Code sooner. It’s also quite important to know that a typical task for a backend programmer is to design Rest APIs, so it’s good to learn good practices on the subject and read up on HATEOAS. Additionally, when it comes to programming – I would advise myself to never skip writing automated tests. It’s better to spend more time writing them than later on patching bugs. And also – when someone asks you to estimate the time to complete a task, and the topic seems easy and fun to you – it’s worth multiplying this estimate times 1.5 or 2.
I would also tell the younger Monika not to be afraid to ask questions. We have the right not to know everything and to ask if we have doubts. I also wish I had known beforehand that recruitment interviews are for both sides. Therefore, I would say to myself: not only are they looking for someone, but you are also looking for a project. Ask what kind of project you’ll end up in – it’s better to know from the beginning what you’re signing up for. And one last thing: use English in practice!
These are great pieces of advice, and I myself wish I had known some of these things much earlier, especially since some of it is usually learned in a painful way. The fact that you have the right not to know has to do with self-esteem, and for some that comes with experience. Did you have a turning point where you felt you were no longer a junior?
One such moment came when I was working on a digital bank management API for a large client. My manager at the time was very pleased with my work, my accuracy, my attention to detail, and my approach to troubleshooting. I realized then that the code I was delivering was no longer junior-level, that I had reached the level of an experienced person. I came to this project with other people who were more experienced than I was, and my code was getting the best feedback. That was a turning point for me, and that’s when I thought I’m no longer a Junior Java Developer.
And when did you feel you were already a Senior Java Developer?
It happened during a project where I was working on e-delivery for a large client. I was there from the beginning and had a real impact on important functionalities in that system. I remember doing a lot of reviews for new people in the early stages. At some point, my colleagues started coming to me with problems and requests for support, and I felt that I was a Senior Java Developer, a person who can give a hand to less experienced teammates.
What would you learn if you were to start your career in programming today in 2023?
I would be more open to the front-end and learn some frontend frameworks. I was always a bit prejudiced against the front-end after my first attempts with pure Java Script. Now I know that different frameworks are more like Java code. I would probably focus on the latest versions of Java or Spring Boot, Rest API design, reading about microservices architecture and more about the concept of Domain Driven Design. I wouldn’t waste my time on pure Spring.
What are your favorite knowledge sources? Can you recommend some authors, courses, materials?
There is one blog that I read a lot – Baeldung. Also, Dev Upgrade course explains the DDD concept very well. In my opinion it’s worth it! About the books, I recommend “Clean Code”, and “Domain Driven Design – get control over a complex IT system”. But what I like most is learning in practice.
In retrospect, were there any elements you wasted time on? What would you advise against?
During my studies, I learned frameworks that I could have replaced with current technologies, such as JSF as a UX version – I would have preferred to spend that time on REACT or Angular. Also Spring and its configurations – instead I would use Spring Boot’s initializer, which adds automatic configurations. A lot of time spent learning how to write complex SQL queries that I’ve maybe written by hand a few/ten times in my career – most of the work is done by other frameworks, like ORM.
Have you had any doubts along the way? Or breakthroughs in learning programming?
Sure, one of those moments was when I failed my studies after the first semester. Then, at work, with heavier projects that were long and quite monotonous, and at that time I was not yet assertive enough to speak out loud about my needs. My perspective on writing code also changed when I was introduced to the DDD concept. The project I’m working on gives me many opportunities to learn and develop. I have a great sense of responsibility for the code and a real impact on the project. In the future, I would like to learn frontend and develop towards DDD and application architecture design – maybe more learning breakthroughs are coming 🙂
Want to work with people like Monika? Check our open roles in the Careers section!