IT careers have become increasingly desirable in recent years. If not long ago, it was necessary to have formal education to become a programmer, today, many of those who work in this sector have informal education or learned to program on their own.
The lack of the need for formal education, also fueled by the very high demand for IT specialists in the market, is probably one of the main reasons why we can observe a trend of professional reconversion towards IT among Romanian employees.
To learn more about what a career as a software engineer entails, from knowledge to responsibilities, we spoke to Cosmin, Senior Software Engineer at Keysight Technologies Romania.
1. How did you decide which field to pursue as a software engineer when you finished college? Where did you get support, and what steps did you take?
My professional career started right at Ixia (now Keysight Technologies). In 2009 my college professor recommended me for an interview, I was hired, and the rest is history. I am currently part of the Platform team, where we develop functionality for the TCP/IP stack.
2. How important is for a software engineer’s future career the first company they work at?
You never forget your first job. I don’t know if it matters where you start, but rather to figure out what you want, what you like to do. I think there are very few people who get their dream job right away - you usually need to experience different things.
I consider myself lucky because my first job was in networking, which I’ve been passionate about since college. Internships also help a lot in this regard because you can experiment with different projects during your studies, and when you finish college, you should have a clearer idea of what you want to do.
3. What should an engineer look for when deciding what area to specialize in?
First of all, they should choose something they like, and secondly, I would say that the field must have the potential for future development. In programming, there are many areas of specialization, and, fortunately, there are faculties such as the Faculty of Automation and Computers within the Polytechnic University of Bucharest that allow interaction with the most important areas. Thus the choice is easier.
4. Many young people change the companies they work for very often. What did you do, and what do you recommend?
Indeed, new generations change companies quite quickly. It takes a while to get used to a product/technology and contribute significantly to the development of a particular project. On the one hand, it’s good that they’re always experimenting and learning new things; on the other hand, they’re always starting from scratch.
Although, as I said before, I was lucky that my first job was in the field I liked, and with very interesting projects, I was also tempted after a few years to try something else. After taking that step, however, I realized that networking is my passion, so I returned to Keysight.
5. What does a senior software engineer do? What are their responsibilities?
A senior software engineer must know everything regarding the technical side of a project and help and guide new colleagues. Then, they need to think of ways to improve the product. And last but not least, they must have the courage to risk breaking things but also have the ability to fix them because otherwise, there can be no progress. In large companies, there are extremely complex projects where alignment with new requirements and technologies stagnates due to the probability that the change of a component will have an undesirable effect on the functionality of the product as a whole.
6. Can you tell us the stages of development of a software engineer from junior to senior? How many years of experience are required, and what do they need to do?
I don’t think the junior or senior engineer title is as important as the experience gained. Everyone should consider continuous learning and development. My opinion is that you are a senior when you have read enough code that nothing seems new to you, and after 12 years and hundreds of thousands of lines of code, I still have a lot to see. This field is so active that if you go a few months without following a large open-source project, you’ve lost track of what’s happening.
7. Many senior engineers ponder over becoming software architects and choosing a role that involves more management. What is your recommendation and why?
I believe the two roles require different skills and passions. Both are very important within the team, but you have to figure out if you like working with people (people skills) or if you are always focused on technical details.
8. Were there situations in which you had doubts about whether you were doing what you liked or not? If so, how did you solve them?
I think that even when you like what you do, it’s important not to get into a routine without that joy you feel when something works out for you and it wasn’t easy. When I got into such a situation, I chose to change the project to something more interesting and challenging.
9. What technologies are you currently working with, and how do those products change people’s lives in general?
I work in the field of TSN (Time Sensitive Networking) with applicability in fixed, wireless, or mobile networks. Our products help test our customers’ equipment in industries such as Automotive and Telecom, which are about to be put into production. Regarding technologies, we use Docker / Kubernetes Deployments, Virtualization of Networking Concepts (NFVs), Traffic Generation from Kernel and DPDK, VMware Virtualization (ESXi, vCenter), OpenStack Private Cloud Administration.
10. What would be the definition of success for an engineer?
As in the case of an actor, the success of an engineer is given by the portfolio of projects, knowledge, and talent. A successful engineer must deliver results, be dependable to take on new challenges, and at the same time, their work must be appreciated by other engineers, and they must be willing to share their experience.
Article powered by Keysight Technologies