What does a back-end developer do? How to start such a career, and what technologies are worth learning to do this job effectively? Here is a new series of articles about working in IT, which we start with an interview with Jakub Wachol, a back-end developer who has been in our team from the very beginning. We asked him not only for advice for beginning back-end developers but also about successes, challenges, how the development process looks from his perspective and what his role is when working on digital products.
The new series of articles on our blog will consist of interviews with experts in their fields who will introduce you to the specifics of working in various areas of software development. This is a great way for beginning developers to find the inspiration or spark that will push them towards specific technologies and competencies. For people who are looking for an IT job, this will be a great way to get to know our work culture and Primotly team members better. We are constantly developing through participating in new projects, acquiring new clients and establishing new business partnerships. If you feel that we fit together, be sure to check the Career tab, see the current job offers or just send us your CV so that we can get to know each other better!
Jakub Wachol - A developer with over 15 years of work experience. We have worked together from the very beginning of our existence as a company (and even before). When Primotly started to operate (then as bPol), he comprehensively managed projects as a full stack developer, and with time he focused only on the back end. He specializes in PHP and Python. Jakub perfectly navigates the Symfony framework. After the successes related to the implementation of ElasticSearch, Jakub is now working intensively on replacing them with modern Algolia services.
Let's assume that this interview is found by someone who is just looking for their place in the IT industry. How would you explain to him/her what a back-end developer does?
The easiest way to explain it is to start with the other side, which is the front end. This is all that the client sees - the visual appearance of the project. There you can click on something or move something. However, it must be remembered that such activity must be properly processed to fulfil a specific task. Everything that happens after performing a given action on the website is the back end.
Let’s use e-commerce as an example. If you order a product in an online store, the appropriate request must come somewhere. Then it has to be sent to the warehouse, they continue to handle it there, someone is printing the appropriate label, then the information goes to the courier company, it responds, then the logistics department processes it. The data can also be viewed later by the analysis or finance department, and so on. This is all happening behind the back of the project. So the backend is all the magic that the user does not see.
You have been working at Primotly for several years. How did you get here?
It all really started with our collaboration with Bernhard, who is now our Vice President. The company did not exist then. We were both running our own business at the time, and I replied to his advertisement. We quickly found a common language - I sent my CV, then we chatted briefly and soon I started getting my first tickets related to new projects.
It is difficult for me to count exactly how many years I have been dealing with back end here. Twelve? Maybe fourteen? Lots of time! In the meantime, Bernhard started to hire more people, and thus bPol was created, which later turned into Primotly. The company has grown over the years and I must admit that it was very satisfying to see how we develop - me, our team and the Primotly brand itself.
Have you wanted to be a back-end developer from the beginning of your career in the IT industry?
It's hard to say if my career turned out this way because I was especially interested in back end. When I started working in the IT industry several years ago, there was no such division into back end and front end. Together with Bernhard we did it all full stack. We dealt with the projects comprehensively, dealing with CSS styles and JavaScript. It was only later in the developers' industry that these divisions into frontend and backend began to appear. It's even hard for me to say when I focused only on the back end. I started to get more of this type of tasks and somehow, I moved smoothly to the back end. Today I don't actually do the front end anymore. You have to remember that technology has developed extremely quickly in recent years. The developer must keep pace with the changes. It is easy to be left behind, so I leave the front end to those colleagues who devote all their time only to this, thanks to which they implement the visual side of projects at the highest level
Becoming a better back-end developer
Where to find knowledge about the back end? What do you think is the fastest way to progress, acquire competencies and learn new technologies?
Programmers at every level of advancement today have very wide opportunities when it comes to self-development and acquiring new competences. And what's important, huge amounts of knowledge and free code are free of charge. All you need is determination and the ability to learn independently. I personally read a lot, subscribe to industry mailing lists, and listen to podcasts. Later, of course, you have to put the acquired knowledge into practice. So you have to code, code and code again. I do not use the courses because I can gain much more by learning while working with other programmers. Almost every pull request for which code review is made can be a very valuable lesson.
Can you say more about learning through code reviews?
We can't send something into production that has not been approved by another developer. There must always be a pull request followed by code review. The question comes as to whether anyone can merge their code to the production version of the software. Such changes must be approved by other developers. In practice, one or more people should approve the changes to the code. And it is here that we have a huge field to learn. When checking the code, we observe what solutions are used by others and in which technologies they work. You can get a lot of new knowledge from it!
A dose of back end knowledge
Top 5 favorite websites, newsletters and podcasts, according to Jakub Wachol, that are worth following when looking for back end knowledge:
1. Medium.com - all kind of articles related to programming,
2. PHPinternals.news - podcast about PHP news,
3. A Cloud Guru - YouTube channel with weekly basis news about AWS,
4. TheCodingTrain - YouTube channel with lot of interesting stuff around algorithms and machine learning,
5. Symfony.com - blog with latest news about Symfony.
What personality trait is the most important for someone working as a back-end developer?
Probably the most important thing in my job is patience and resistance to stress. Communication with clients who always want to change their projects as quickly as possible is not always easy. However, it seems to me that whether you are doing a back end or a front end this feature will always be needed
Do you think only someone with a “technical mind” can become a software developer?
It seems to me that there is no such thing as a division between the technical-minded people and those with the mind of humanists.We once had a former English teacher on the team doing back end, and he was doing quite well. I only noticed one particular feature that distinguished him. It is difficult to say whether it was related to his humanistic education. He asked a lot of questions, liked to talk, and was a little too inquisitive. When we were not working under time pressure, there was no problem with it, because when he found out everything, he performed his tasks very well. When we had to do something quickly, this inquisitiveness delayed the work of the whole team a bit. But I guess that was just his personality, and it had little to do with whether someone was better or worse at math, for example.
Back-end developer at Primotly
What is the structure of the back-end developer's activities during the project?
At Primotly, we work in two-week cycles (sprints). We implement projects in accordance with Scrum, which is one of the most popular methods of using the Agile methodology. Work on a project begins with sprint planning. We receive tasks, estimate the time of their completion, and then the details of individual tickets are discussed. If we have such an opportunity and we know that we will not do something in 2 weeks, we postpone the tasks for the next sprint. When everything is planned, we start to act.
My day begins with checking unread messages. After I shut down my computer the day before, some bugs may have popped up, so the next thing I have to do in the morning is to make sure everything is going well on the project. Then I check the logs for problems on the server. If everything is ok, I start my tasks. The ready ones go to the testers and when approved, they can be sent to production. If I complete all the tasks by the end of the sprint, I do things from the backlog.
Product managers and people responsible for business development always have something to do for us, so tasks are scheduled for a year or even two years ahead. Even though we have a lot of work to do, everything is well planned, so usually we are not accompanied by any additional stress. A mature organization such as ours has the advantage that all processes are well optimized, refined and systematized.
What technologies are currently used by back-end developers?
We already work primarily in the cloud environment. Today, back-end developers are not really interested in architecture anymore, because everything is based on Amazon Web Services. Serverless computing is becoming the leading standard. I recommend Lambda - serverless, event-driven compute service that we use.
When it comes to the Primotly framework, we base our products on Symfony. It is difficult to find a stronger competitor to this solution today. The cloud is the future because almost no one sets up their own servers anymore. All these innovative solutions significantly improve our work because we do not need servers or their configuration. I think that young back-end adepts should start with these technologies.
What distinguishes React and Symfony - technologies in which Primotly developers specialize?
I won't talk too much about React - I'll leave it to my front-end colleagues. Interviews with them will surely soon appear in this series of articles on our blog. The fact is, however, that at the moment this technology is gaining more and more popularity and I'm glad that Primotly went in that direction.
Symfony is an equally good choice. A mature project that is constantly developing and there is no question that it will be finished any time soon. A huge database of plugins, which is constantly evolving, gives wide opportunities for product development and implementation of solutions in line with customer expectations. Top and most famous companies use Symfony, so this is the best proof of the quality of this technology.
Which Primotly project are you most proud of today?
The first thing that comes to mind is the implementation of ElasticSearch. It was a really complex task and a lot depended on it. All listings, product pages and searches were based on this technology. As you know, the conversion resulting from the search has a big impact on the sales results, so we had to do it at the highest level. The implementation took a while, but everything was successful and works exactly as it should.
However, we did not stop at ElasticSearch and continue to develop towards modern and advanced technologies. We are currently moving to Algolia, a newer and faster search and recommendation services package. This is another interesting and demanding project where you need to ensure greater integration with the front end. The back-end mainly deals with indexing and keeping the data updated on the Algolia side here. The work is progressing, we face new challenges, but it gives me a lot of satisfaction. I am interested in search solutions, which is why I am even more willing to get involved in such projects.