A Backend Developer or an Artist? Meet Tomasz
He has been captivated by programming for a long time, but that didn't stop him from navigating a career in system networking. Learn about Tomasz's career journey, the challenges he faces as a tech lead, and the paths for self-growth as a backend developer that he charts.
How did your adventure with programming begin?
It began in gimnazjum (Polish middle school) during Computer Science classes. Though I feel the classes could have been conducted better, they planted the seed for my technical studies. Later, in high school, I ensured that this was the path I wanted to follow.
I enjoyed writing little programs in Turbo Pascal; I loved the feeling of bringing something to life with my code, even if it was just a simple calculator. I felt like an artist. I still do actually. Then, I pursued Automatic Control and Robotics studies at the Gdansk University of Technology, where I first encountered Java.
And you became a software developer?
Not quite. 😉 Although I completed a year-long internship as a Java developer, I eventually shifted toward system networking. This was related to my Master's studies at the Department of Computer Communications, so I decided to pursue this direction. I started working at a large corporation, managing extensive networks and servers that, for example, facilitated real-time trading. I worked there for almost four years and learned a great deal about network administration, but I also gained valuable insights into soft skills.
While technical skills are fundamental to the job, I learned how crucial soft skills are as well. Improving my communication with colleagues, managers, and importantly, clients became a significant part of my learning. I still use that knowledge daily.
However, at some point, you made the transition to software engineering.
After about two years, the job started to feel too repetitive for me. I began looking for ways to optimize the work by writing scripts and applications that made the processes more efficient. In doing so, I gradually found myself returning to programming, reigniting the passion I had for it previously. I started working on some side projects after work and also helped my younger friends who were still students.
In programming, there is always something new; every day brings a new challenge, and that drove me. So, eventually, I decided to leave my stable job and senior position, accepting a role as a junior software developer with a salary cut in half. Starting from scratch was a challenge, but I'm deeply grateful for the wealth of network administration experience I gained over the years. I believe it's a great asset to understand computing and to possess strong soft skills. Finally, a year later, I landed a job at Bright Inventions as a backend developer.
Could you share your recollections of the recruitment process at Bright Inventions?
The recruitment process was friendly, open, and smooth. I enjoyed a talk with Ula as well as a longer technical discussion with Piotr. In the meantime, I had to complete a technical task. Even though there were some specific requirements and preferred technologies, I still felt I had the freedom to solve the issue in the way I thought was best. Eventually, I joined Bright Inventions, and my adventure with the company has now continued for over three years.
After more than 3 years, how do you feel about working at Bright Inventions?
I appreciate that at Bright Inventions, you are quickly recognized and valued for a job well done. I've always been extremely professional about my work and my duties, and it's rewarding to see that recognized and appreciated swiftly. I value the trust and flexibility we're given; keeping in mind that I can still reach out to a colleague or any manager and receive the help I need. Also, after years in a corporate environment, I cherish the fact that I don't have dozens of managers above me.
You recently became a tech lead. What has this role taught you so far?
Since becoming a tech lead a couple of months ago, I've already learned a great deal, particularly about working closely with the client and understanding the business side of the project. I feel a strong responsibility for the technical direction of the solution, suggesting implementations, features, and general product-wise directions.
Another significant aspect is managing the distributed software development team. I've come to believe that in order to deliver better software, the team must form a strong bond. They need to feel connected to communicate freely, share experiences and issues, and exchange knowledge. This is something I strive to foster within the team, showing them that they can rely on each other. Even if they are responsible for different parts of the solution, they should stay in touch with other team members to gain unique insights and perspectives.
Also, as a tech lead, I'm still learning how to communicate with other groups involved in the telemedicine solution we develop, such as doctors. They approach us with various issues and technical questions, and my role is to explain everything clearly and understandably. This is important in all walks of life. For instance, I would prefer to visit a doctor who can explain my medical condition to me in an understandable way, rather than leaving me anxious and clueless.
As mentioned, you are a part of a team crafting a telemedicine solution. What are the key challenges in this domain?
Our project focuses not only on profit but primarily on helping people which is immensely rewarding. We are creating a solution dedicated to individuals who lack access to healthcare, including physical doctor's appointments. Even in European countries like Germany, there are regions far from big cities where access to doctors is not readily available.
Telemedicine, with remote patient monitoring, enables the collection of patient vitals through devices. These records can then be transferred to a doctor who, based on the data and video consultations with a patient, can initiate data-based treatment – even if a physician is hundreds of kilometers away from the patient.
One of the key challenges in this domain is securing medical data. Any data breach, especially for a startup, could potentially be catastrophic.
So how do you handle medical data security?
We adhere to HIPAA, GDPR, and TÜV requirements, which encompass hundreds of pages of specifications. The foundational practice is, of course, data encryption, access keys, secure environments, and secret leak detection. Apart from that, access management is strictly controlled, and staff members outside the EU are not permitted to access sensitive data. Another important aspect is log auditing to monitor user activity.
A crucial part of the project is maintaining backward compatibility for mobile apps, which presents its own set of challenges. We can't simply rewrite a part of the app because we need to support older versions of the application to keep it as accessible and inclusive as possible.
Another security aspect is proactive documentation. Disaster recovery (DR) for application or data access if required in case the application is down. Incidents like these can occur, so I strongly believe in being prepared for any scenario. This way, when something happens, we don't panic; we simply follow the established procedures and minimize downtime.
How can a backend developer chart a path for self-growth to stay ahead in the field?
The path to self-growth as a backend developer depends largely on what aspect of programming you're most passionate about. One option is transitioning into fullstack development. I considered this myself, but I don't have a strong design intuition, and I feel it wouldn't be as satisfying for me. However, the frontend does have the significant advantage of allowing you to quickly see the results of your work.
Another option is leaning towards infrastructure. As more companies move to the cloud, I believe that backend developers should have at least basic knowledge of network administration, or perhaps even more in-depth. I know that we can rely on DevOps Engineers, but a backend developer with strong ops knowledge is a valuable asset. Such developers can not only write code but also understand how the application operates from a networking perspective after it's deployed. Additionally, issues in the app are often across both code and infrastructure, and having a holistic perspective helps solve them.
Finally, you can follow my path, which involves managing the team. However, this requires strong soft skills and empathy. You must understand that everyone is different; anyone can have a bad day or even a bad week at work, and you still need to support them, sometimes even acting as a buffer for the entire team. Also, when a screw-up occurs, you as a tech lead are always responsible. Another challenge is task delegation – it's difficult to learn to finally trust that someone else will take care of it.
What do you enjoy doing after work?
Sports, sports, sports. 💪 I spend a lot of time at the gym, training for Runmageddons, practicing tennis, and kickboxing, and I also love to indulge in winter swimming in the Baltic Sea. After spending 8-10 hours a day at a desk, I feel the urge to hit the gym, lifting weights while listening to my favorite music or podcasts. It's a great retreat for my brain and, obviously, beneficial for my body. Unfortunately, the winter swimming season is over right now in Poland, but that doesn't stop me from starting my day with a cold shower. 🙂