Have you ever wondered what a programmer does on a daily basis? In the following article, we will dispel all your doubts! We invited Michał, Wojtek and Bartek, three of our Node.js developers, to share insights into their everyday professional life and the projects they are working on.
- What projects are our Node.js developers involved in?
- Does every programmer’s day look the same?
- Do they spend their entire day writing code?
- What learning sources do they recommend to other Node.js developers and where do they gain their knowledge from?
You will find all the answers to these and more questions in the text below.
What projects are our Node.js developers working on?
Michał Starski (Regular Node.js developer): is working on a platform for bank employees to manage electronic assets (mainly cryptocurrencies).
Bartek Wieczorkowski (Senior Node.js developer) is working on a platform for process management and online medical services. This application allows patients to log into the system as a public service paid for by the local governments of individual cities. Thanks to this, patients can easily register for appointments and tests to selected specialists and easily check available medical services.
Wojtek Ossowski (Senior Node.js Developer) works on a project in which he creates a platform for integration with financial institutions.
Do you want to work on unique projects that change the world of technology?
What are the constant work elements of their day-to-day job?
- Daily // stand-up meeting: a team summary of yesterday’s work and discussion of the plan for today. It is an important element of everyday work, in which the team members and the customer (Product Owner) participate. Thanks to the daily meetings, you can check if the scheduled tasks have been successfully completed and if any problems occurred as well as update your action plan for the day. It is also an important moment for the Product Owner who keeps track of the project status.
- Programming: after the daily meeting, it is the time for the most important thing in the developer’s work – programming. Usually, our employees have a great freedom and flexibility in projects, thanks to which they can plan the time and sequence of tasks themselves. In the course of work, they also implement tickets in Jira and fix functionalities. Consultations with team members and helping others are also an integral part of the work. Due to the fact that node.js is mainly a backend, a large part of a node.js developer’s work is consulting with the frontend developer and checking his or her needs in relation to the backend. After all, teamwork is at the heart of programming.
Most of our developers work in scrum in usually two week long sprints, i.e. periods of time for which short-term project goals are set. The elements of one sprint are:
- Backlog refinement
Backlog refinement is the work on the Product Backlog during which the tags that can be used in the future are estimated. As a result, the Backlog with each iteration contains better prepared elements that are decomposed and estimated with identified dependencies, and also understood together at the appropriate level. During the backlog refinement, ”planning poker” usually takes place, during which each team member estimates one task in the best way according to him, and then the whole team discusses its legitimacy and jointly sets the estimation. Backlog refinement provides expanded knowledge of what awaits the development team from the perspective of the entire backlog. Thanks to this, the team knows what and why they will be doing, and is also able to identify various dependencies in advance.
- Sprint review
It always occurs at the end of a sprint. It takes place in various ways. Usually all the successes and elements to be changed in the field of work on the project are listed on the board, and ideas for implementation are discussed. Then, there is a discussion on each of the listed topics. An important element of the sprint review is ”shout out”, i.e. clear appreciation of successes. It is a form of appreciation for developers that receives special attention.
- Sprint planning
Sprint planning always takes place after the sprint review, on the basis of which the client evaluates the previous sprint, estimates how much the team is able to do and on this basis fills the task table so that the estimation covers the sprint period.
Some of the developers, who do not work in the sprint system, work according to extreme programming techniques, i.e. by working closely with the client and providing solutions depending on current needs. In this system, much attention is paid to testing and planning with the customer. What does work in this system look like? We asked Wojtek, whose project is based on extreme programming assumptions:
“We have single components that we can test directly without using a dozen services, we also have a lot of autonomy. We can afford to separate the complexity. In our work, we focus on: test driven development, simple design, hexagonal architecture as well as microservices. According to the rules of extreme programming, we focus a lot on quality, tests and programming in pairs. Direct cooperation with the client makes it possible for us to sit down together and edit the code at the same time. ”
Additionally, our developers have meetings with Project Managers once a month. This is the moment to check how they feel about their project and if there is anything they would like to change in the context of their work. In addition, they also hold regular 1-2-1 meetings with Team Leaders, where development and evaluation opportunities are mainly discussed.
Is development and setting your career path important to you? Join our team!
Due to the experience and seniority of our Senior Developers, apart from the daily programming part, they are also responsible for architectural issues. These include the selection of tools, patterns, application implementation issues – so the entire product lifecycle. Our developers, apart from their excellent technical skills, are also technical consultants for clients. Thanks to this they are an integral business part of every project.
An important part of the day is also the time for self-development. At Espeo, we set the bar high and help our employees grow. This is possible thanks to, among other things, an individual training budget allocated to each of them. They are supported in this by Team Leaders, who determine the best development path and ways of its implementation.
In addition, our developers often use different sources of knowledge themselves. What do Michał, Bartek and Wojtek recommend for beginner and advanced Node.js developers?
- Michał: “Nowadays, YouTube is a good source for me to develop specific skills. I find a lot of valuable content there with which I can improve my skills or find answers to current problems. In addition, I often check the Massachusetts Institute of Technology (MIT) courses where I am currently expanding my blockchain knowledge. If someone needs more structured knowledge, I recommend the Udemy platform, mainly when it comes to frontend development.”
- Bartek: “As for the courses for beginners, I can recommend the ones on Linkedin Learning platform. You can find a lot of interesting content and build a solid foundation.”
- Wojtek: “First of all, I would pay attention to getting to know the concepts, because language is an utility to achieve certain goals. Thanks to the Node.js’ speed you can apply design patterns at a high scale. In this context, I recommend the literature that is the basis for my work. This includes: Pragmatic Programmer by Andy Hunt & Dave Thomas, Implementing DDD byVaughn Vernon, Patterns of Enterprise Application Architecture by Martin Fowler.”
Node.js is an increasingly popular programming language that allows you to work on unique, unconventional projects. Thanks to our developers’ solutions, we are able to collectively change the world of technology and develop various problematic areas. At Espeo, you have the opportunity not only to work on exceptional projects, but also for continuous development, support of a team leader in determining and implementing a career path, as well as work in an ambitious, expert team. Sounds good enough?