Interview with Mariusz Wróbel, Team Leader at Edge One Solutions
Is the trend of remote work, popularized thanks to the pandemic, also applicable to programmers?
When it comes to remote work, I could joke that the developers were doing this before it was fashionable. Usually, it was shift work, 2-3 days in the office and the rest remotely. Of course, the pandemic changed it a lot and showed that also representatives of other professions, such as accounting, can work from home, although no one had imagined it before. The main advantage of this model is the broadly understood flexibility and time savings that is no need to commute to work and no spending money due to the elimination of costs caused by commuting. Thanks to the Pandemic, remote working tools, instant messaging, content-sharing systems, etc. have been developed to a very significant degree. This has allowed us to significantly expand our team of developers – some of them have never been in our office before.
Speaking of developers’ work, are there any disadvantages to this model?
The main disadvantage I notice is the one with the psychological background. It is not without reason that programmers, or even more broadly – computer scientists – for many years were perceived as closed people, sitting in the basement or the attic, and alone programming or performing other, more or less advanced things on the computer. Meanwhile, as I mentioned earlier, in programming projects, contact with other people is extremely important, and soft skills can only be acquired through constant interactions. Those who are fresh out of college, or still in college, should pay special attention to this aspect – the desire to constantly gain knowledge and experience may deepen social problems. That is why it is equally important to contact family, friends, and colleagues and in our company, we pay special attention to such interactions.
Where should beginner programmer derive their knowledge and experience from?
I have been recruiting programmers for more than a dozen years, and I see that a lot has changed during this time. Currently, it is fashionable to criticize studies because the programming knowledge gained there quickly becomes outdated. This is true, but I still believe that studies are needed because you can gain knowledge that candidates often lack. They don’t know, for example, how a web browser, a network, or an operating system works, how to navigate Linux, and so on. There are also very important subjects in college, such as software engineering, where you learn about system modeling methods. You can learn how to design applications and how to represent various aspects using technical nomenclature. Just knowing a programming language is not enough here.
But how do you start your professional career?
Here are two more advantages of the studies. First, you get to know a lot of people there, and these contacts can be very useful later because when one graduate finds a job, the person will be asked to recommend some other programmers – most companies are looking for more than one person. Secondly, while you are in college you can go for an internship, during which you gain invaluable experience, as well as – again – meet more valuable people. I strongly recommend all future programmers find a good company for an internship. How to spot good company? Senior programmers will try to teach the interns good practices. During the internship, it is also worth getting interested in conferences for programmers, such as Confitura in Warsaw. If the content of the lectures at such a meeting is like what we learned during the internship, it means that we have chosen a good company. However, you need to avoid places where the future programmer is not treated as a team member, where the human and not his code is assessed. When going for an internship or recruitment, it is also a good idea to have a basic portfolio prepared that you worked on during your studies – code for a simple game, an application, or some own open source. Presenting such code during an interview makes a very positive impression and allows you to prove your passion.
What happens when the programmer concludes that for some reason, he, or she “does not fit” the project to which he or she was assigned by his employer?
There are two types of companies that hire developers. One type is called a software house, as part of which proprietary software is created, which can then be sold to other entities or made available on the web for a fee. In such companies, inevitably, the employee has fewer options – usually a burnout syndrome or other cause of reluctance to work ends in a change of employer, but of course, there is a possibility to transfer to another department where software dealing with a different domain is produced, which can help to keep the employee in the company. Another type of company, like ours, is the one which has many clients from all over the world. An employee is hired to work on a specific project, but upon a request, we can consider together whether it would be justified to transfer him/her to another team for the benefit of all parties. Of course, this is always an individual matter related to specific motivations. In many cases, it also involves a certain process that lasts for a certain period, and the length of this project exit phase depends on the person’s role.
What about changing career paths, such as giving up being a programmer and starting to lead software testing or user interface design, is it possible?
There are not many programmers who transfer into the position of UX Designer, but it often happens that software quality testers – who are well acquainted with the mechanisms of code creation – become programmers. The most open-minded people may also try to move to positions responsible for project management. Of course, they need to meet specific requirements, and undergo appropriate training – many companies, support this process in order not to lose a valuable person.
In times of constant cyber-attacks, the issue of code security is very important. To what extent is this a developer’s responsibility?
Of course, security is considered in several layers. We do not expect the programmers of the business layer of the application to be experts in this field, but they must have basic knowledge of XSS or SQL injection attacks and be able to verify whether their code is vulnerable to such attacks. They must also be aware of the security of the various components they use, such as the risk of data leakage from the form or backend validation. They should also be in constant contact with the IT security department, if there is one in the company, as its employees will be conducting extensive testing for code vulnerabilities.
Finally, let’s talk about the topic related to programmers around which perhaps the most myths have grown, namely their salaries…
I confirm we deal with these myths almost every day. The most popular one is that if you go into IT, all you must do is not kill yourself over a keyboard, and you will already have a job with a salary higher than the national average wage. This is not true, people without minimal experience are simply not hired. Earnings are indeed very good, but strongly dependent on experience and skills. Besides, programmers can be divided into two groups. The first one includes people who want to participate in interesting projects, even at lower rates. This way – in addition to satisfaction – they gain experience and a very solid point on their resume. But some people want to work for the highest possible wage – this is visible in the recruitment process. They apply at the same time to many companies like ours and demand “exaggerated” expectations, because they know that the need for the developers in market is very high. Sometimes they succeed, especially when they find their way to a project commissioned by a wealthy client. Such people also often try to apply directly to companies from abroad.
How common is it?
It is noticeable, but it is hardly possible to say that it is standard nowadays. Working directly for foreign clients has only one advantage – a relatively high salary because the margin of the contracting company is not deducted from it. The main disadvantage, on the other hand, is that you are competing with programmers from all over the world, so the recruitment process itself can be very difficult. Not only do you have to be a specialist in your field, but you also need to know your client’s language very well, and often have extensive knowledge of the business culture conditions of the country from which the client comes. It also happens that working hours can be inconvenient when the client is from a different time zone. But all the time you also should keep in mind that the project you are currently involved in may close in two weeks. When you work for a contracting company, it is the company’s job in such a situation to assign the programmer to a new project, in order not to lose him. If he is “unemployed” for a period, he still receives a salary, which provides him with financial security, which is very important when you have a family and loans. Working directly on foreign contracts significantly increases the risk of financial instability, which in turn forces you to maintain a large financial cushion. Therefore, in my opinion, it is better to go to a company that takes a certain margin from the client’s revenues but guarantees employees greater financial security.
If you are looking for a team of developers with years of experience, contact us!