Beginnings & Education
Can you, please, describe your first steps in the Software Development and why did you decide to choose this profession?
I came across software development in college and the subject really appealed to me. I read a lot of articles, books and did online courses. I learned most of the basics on various portals where you can try programming without configuring your local environment, you can compare programming languages, check different solutions for the same task. That's probably what drew me in the most, not only the opportunity to solve problems - which is already very rewarding in itself, but also the variety of those solutions.
What are the best sources of knowledge for a Software Developer, both for those who are just starting out in this proffesion, as well as for those who are already a bit more advanced?
IT is a very open source industry, so it's easy to find a lot of well prepared materials for beginners and advanced users. You can look for news on Twitter, official YouTube channels, conferences. It is also worth participating in meetups, where experienced programmers share their knowledge.
How did you search for your first job and how did you end up at PushPushGo?
That person was Mateusz, one of the founders of PushPushGo - it's been 4 years since then, and I'm still learning intensively and enjoying being part of the transformation of a startup into a successful company.
Work and Development
What do you think are the key KPIs that should be measured in a Software Developer job?
I think that productivity in the work of a Software Developer is the ability to qualitatively develop the system and implement the functionality in production. Certainly the productivity indicator will not be the number of lines of code written or the number of developed tasks, because they are not comparable. If I were to choose the indicators that we should care about they would be:
- code stability - ease of code maintenance, number of generated errors
- code coverage - code coverage by tests
- lead time - time from idea to delivery of the solution to production
- code simplicity - code readability
- knowledge sharing, pair programming
How do you measure the results of your work to know that it is effective for both you and the company?
Work is effective if it improves the performance of the system we work on both from the source code side and from the usability side for customers. If customers are satisfied and the development team works well with my code, it means that I do my job well.
There is a common belief that technical skills are more important than soft skills in IT departments. Which of them do you consider more important in your job? Would you describe yourself as a strictly technical person or maybe the opposite?
I am a technical person who can communicate. Technical skill is essential, but soft skills are also very important. We work with other people and it would be hard to get the most out of a technical skill without being able to communicate with the rest of the team.
Can you describe in numbers the scale of operations you deal in on a daily basis?
Every day I spend up to 6 hours on coding, I solve about 2 bugs per week, deploys with my changes appear at least once a week.
What do you read on a daily basis to develop your professional skills?
Newsletters because they condense the most interesting articles, documentation, recently also ohmydev portal. I also like online courses because they allow you to watch how others write code.
What tools do you use in your work?
Webstorm, Gitlab, Youtrack, Slack, Discord, Discourse
What would you consider as the biggest success in your work so far / what was the biggest challenge and how did you overcome it?
One of the challenges I struggled with was overcoming imposter syndrome. I didn't feel it on a daily basis, but when I went to an industry meetup I strongly felt that I was a girl in the IT world - even though I had the skills and technical background, I felt "out of place".
What helped me to overcome this feeling was participating in the girls.js event, attending the Women in Tech conference - coming into contact with women who are also technical, experiencing that the interest in technology among women is completely normal, realizing that there are a lot of us and there is nothing strange about it. I would love to see it come naturally to everyone.
In PushPushGo, one of the biggest challenges was expanding the development team. Having no experience in recruiting, we were mainly guided by intuition. In this way we managed to recruit really great people, divide tasks well and create a fast growing team.
What moments during programming make you think "Wow, I love my job"?
When I know how to use code to make someone's job easier or solve a problem. And when the code that I write is well thought out, well tested and smoothly implemented in production.
And also always when I start to get bored and quickly find a new difficult task to solve, a new issue to learn, a new challenge.
What are your productivity hacks?
Carve out time for pure coding - e.g. by working in hourly cycles where I mute messaging and focus only on coding for an hour. After that time, I pull away, check messages, take a break, and mute for another hour.
What are the current and future trends in software development?
Because of the high variability in the software development environment, I think it's very valuable now to know universal principles independent of particular technologies, like knowing design patterns or pure systems architecture principles.