
Learn: Profession Developer
Find out moreNew task
Vanya is a beginner specialist in a web studio, where his main task is to support and maintain the backend of sites developed for old clients. This role requires attention to detail and proficiency with various technologies used in web development. Vanya actively explores new tools and methods to ensure the smooth running of projects and customer satisfaction. Junior, which means "younger" in English, is an entry-level developer position in a web studio. This category of developer includes specialists with limited experience who are just beginning their journey in the field of web development. In addition to junior developers, there are also middle (mid-level) and senior (senior) developers, who possess a higher level of skills and experience. Juniors often work under the supervision of more experienced colleagues, which allows them to develop their skills and deepen their knowledge of web development technologies and tools. Backend (or back, from the English back end) is the server part of a website or application, responsible for processing and storing data. It plays a key role in ensuring the functionality and performance of web resources. In contrast, the frontend is the visible part of an application or website that the user interacts with. Developers who work with both the frontend and backend are called full-stack developers. These specialists have a wide range of skills and are able to create full-fledged web applications, covering both the client and server parts.

Vanya's work week begins with morning meetings, since in his company a sprint lasts only one week. Every Monday, the team meets to discuss goals and objectives for the coming days. This keeps everyone on the same page and effectively distributes workloads. Importantly, short sprints facilitate rapid adaptation to change and increase team productivity. Regular meetings allow Vanya and his colleagues to quickly resolve emerging issues and adjust plans, which ultimately contributes to the successful completion of projects.
A standup meeting is a gathering where the team discusses completed and outstanding tasks and plans activities for the upcoming sprint. This is an essential element of the workflow, allowing employees to coordinate their efforts, identify problems, and find solutions. Effective standup meetings improve communication within the team and increase overall productivity. During discussions, participants can share opinions, propose ideas, and set priorities for future work.
A sprint is a time period of one to four weeks during which the team must complete specific tasks. Sprints are a key element of the Scrum methodology and help organize the workflow, ensuring regular iterations and task completion monitoring. By using sprints effectively, the team can quickly adapt to change and increase productivity. Sprints improve communication and collaboration within the team, and allow for progress tracking and project adjustments.
Scrum is a project management method that is part of the Agile development methodology. This approach enables adaptability to change and efficient workflows. Scrum helps teams achieve results faster by improving communication and transparency throughout all project stages. By using Scrum principles, organizations can optimize their workflows and increase productivity, making it a popular choice in software development and other industries.
This time, he was tasked with implementing validation in an online store. Previously, all validation was performed client-side, which increased the risk of errors and vulnerabilities. Now it is necessary to implement server-side data validation to ensure the reliability and security of user interactions. This will improve data quality, minimize errors, and enhance the overall security of the online store.
Data validation is the process of verifying user-entered information. This stage is important for ensuring the correctness and reliability of the data processed by the system. Validation helps prevent errors, improve user experience, and protect the system from potential threats, such as incorrect or malicious input. Proper data validation plays a key role in web application development and forms the foundation for their security and functionality.

There is still a week left until Friday, and after the rally Vanya headed to the smoking room. He took out a cigarette and began eavesdropping on the conversation between the middle and senior developers.
I was recently exploring a repository and came across a lot of foobars. I spent a whole hour trying to figure it out, but in the end, I decided not to waste any more time and rewrote the code from scratch.
New developers, often called juniors, can produce low-quality code, which raises questions about the code review process. How exactly does code written by newcomers pass review? It is necessary to pay attention to implementing standards and practices that will help improve code quality at the early stages.
Check the commit history on GitHub.
Vanya choked, quickly put out his cigarette, and hurried back to his desk, trying to avoid trouble.
A repository is a repository of a project's source code. It organizes all the necessary files and resources, providing convenient access to them for developers. Repositories enable effective version control, change tracking, and project collaboration. Using repositories significantly simplifies the development process and promotes software quality.
Foo and Bar are names of functions and variables that do not reflect their purpose. While such names may be used in training materials and documentation, their use is undesirable in real-world projects. Unclear names make it difficult for other developers to read and understand the code, which can lead to errors and increased support time. To improve code quality, it is important to use descriptive names that clearly indicate the functionality and purpose of elements.
Crap code is a term for low-quality or poorly written code. It is typically characterized by a confusing structure, lack of comments, and inefficient algorithms. Such code is difficult to maintain and scale, which can negatively impact the overall quality of the software. Developing and maintaining projects containing crap code requires significantly more time and resources, which ultimately leads to increased costs and decreased team productivity. Avoiding crappy code is possible by adhering to clean coding principles, writing clear and structured solutions, and regularly refactoring.
Code review is the process of thoroughly examining code to improve its quality and reliability. This practice helps identify errors, flaws, and improve the structure of software. Code review facilitates knowledge sharing between developers, allowing them to learn from each other and implement best practices. Furthermore, regular code reviews help reduce bug fixing time and improve overall team productivity. It is important that code reviews be conducted systematically and consistently, ensuring high development standards and supporting continuous process improvement.
GitHub is a platform for storing IT project repositories, allowing developers to collaborate effectively in a team. With GitHub, users can manage code versions, track changes, and collaborate with other project participants. This service has become an indispensable tool for developers, providing a convenient interface for working with Git and integration with other development tools. GitHub also offers discussion and feedback features, making it an ideal solution for collaborative software development.
A commit is a record of changes to a repository. Each commit includes information about the changes made, a comment, and the name of the author who made the change. Commits are a fundamental element of version control in version control systems like Git and allow you to track the history of changes, restore previous versions, and facilitate collaboration on projects. Properly formatted commits, including informative comments, promote a better understanding of the project history and simplify the collaborative development process.
The team lead was already waiting for him at his desk.
After implementing the photo upload feature, an issue arose in the personal account. Now the system crashes when entering a promo code.
Do you really think this happened because of me? My code has nothing to do with promo codes.
The site needs to be rolled back immediately and all functionality restored by the end of the week. We can't let the client notice that one of our key features is missing.
I already have a task scheduled for this week, and I won't be able to make all the necessary fixes.
This isn't your first mistake, and if you don't complete this task on time, we'll set a new record—we've never fired a newcomer so quickly.
A team leader, or team lead, in the context of software development is a specialist who combines programming and management skills. The team leader's primary responsibility is to coordinate the team's work, not to write code. They ensure that tasks are completed efficiently, monitor the development process, and help resolve any issues that arise. The team leader plays a key role in achieving project goals by maintaining communication between team members and other stakeholders.
A bug, or error, in software is an unexpected result or abnormal behavior of an application. Bugs can manifest themselves in various forms, including crashes, incorrect calculations, and incorrect data display. Understanding the causes of bugs and methods for fixing them is an important part of software development, helping to improve the quality and reliability of products. Identifying and fixing bugs helps minimize the negative impact on users and improves the overall effectiveness of programs.
To rollback means to undo changes made and restore a previous version. This procedure is often used in programming and data management to return a system or document to a stable state, especially after unwanted changes or errors. Proper use of the rollback function can significantly improve work efficiency and reduce the risk of data loss.
A feature is a useful or sometimes entertaining function of a program that makes it more attractive and convenient for users. Functions that are features can significantly improve the user experience, increasing the efficiency of working with an application or software. Understanding and using features allows developers to create higher-quality and more in-demand products.
A fuckup (from the English "to fuck up") means a serious error or failure. This term is used to describe situations when something went wrong, and the result was significantly worse than expected. Fuckups can occur in various areas of life, including business, personal relationships, and projects. Understanding the causes of failures and analyzing errors helps prevent them from happening again and promotes personal and professional growth.
Bug Fixing
Debugging was challenging, but Vanya knew he couldn't afford to make a mistake again. He'd lost his job at three companies in the past year, and a fourth layoff would negatively impact his resume. It was important not only to fix the errors but also to demonstrate his skills and abilities to avoid further employment problems.
Debugging is the process of identifying and fixing errors in software code. Debugging plays a key role in software development, as it improves the quality and stability of applications. Effective debugging helps developers quickly find and fix problems, which leads to more reliable and functional software solutions.
Vanya worked on the code for three days and three nights, but couldn't achieve the desired result. In desperation, he decided to ask for help from a colleague who had previously code reviewed his last commit.
Sorry, but if I had known there were errors in your code, I would not have approved your pull request.
But you left a comment with lgtm!
Now I will have to pay for this. I have already regretted more than once helping you get a job. The team lead noticed that I turned a blind eye to the errors in your code, and now we both find ourselves in a difficult situation. If necessary, I can find a new job, but for you, it will be much more difficult. You have a great opportunity to improve your skills and knowledge.
I'll figure this out myself.
Approval (from the English word "approve") means confirmation or approval of something. This term is widely used in various fields, including business, technology, and project management. The approval process often involves evaluating and coordinating documents, proposals, or solutions to ensure their compliance with established standards and requirements. It is important to understand the meaning of approval, as it plays a key role in decision-making and quality assurance in organizations.
A pull request is a request for approval of code changes made by a developer. This process allows other team members to review, discuss, and suggest improvements to the code before it is integrated into the main project branch. Pull requests improve code quality and streamline teamwork by providing the opportunity for collaborative review and analysis of changes.
LGTM (from "looks good to me") is a popular abbreviation used on GitHub in commit confirmation comments. This expression is typically used when there are no constructive comments on the submitted code. Using LGTM allows developers to quickly confirm that the code looks acceptable and doesn't require changes, which speeds up the review process and promotes effective teamwork.
There are only two days left to fix the bug and implement the new feature, and Vanya has barely made any progress. After a day at work, he stopped by the store as usual, but instead of energy drinks, he chose beer, remembering the Ballmer Peak principle.
The Ballmer Peak is a humorous theory that claims that at a blood alcohol level between 0.129% and 0.138% (equivalent to about two beers), a programmer gains unusual coding abilities. The concept was proposed by Steve Ballmer, who served as CEO of Microsoft from 2000 to 2014. The theory has become popular among IT professionals and programmers, highlighting an interesting paradox about the effect of alcohol on creativity and productivity in programming.
After sleepless nights and drinking beer, Vanya fell asleep right at the computer.
The next morning, Vanya didn't immediately realize he was awake. Lying face down on the keyboard, he continued to hear the piercing sound of his alarm. Although only a few minutes had passed, for him they stretched out into an eternity. At that moment, it seemed as if time had stood still, and the world around him froze in anticipation.
Feeling self-loathing, he headed to work. Sitting down at his desk and delving into the code, he suddenly realized what the error was. It is known that many problems in application development are solved when the programmer is resting. Having fixed the error in a matter of minutes, he went to his team lead to discuss the solution.
I fixed the error.
Great, but I'm surprised it took so long to complete the task. Let's test your code and deploy it to production.
Production environment refers to the working environment, typically the server on which the ready-to-use application is deployed and runs. This is a critical stage in the development process, as it is in production that users interact with the software. The production environment must ensure stable performance, security, and availability of the application, making it the foundation for the success of any IT project.
Testing was successful. Although Vanya felt calmer, he was slow to rejoice, as he only had a day and a half left to complete a task that would typically take at least a week.
Vanya was lost in thought.
He had recently started learning JavaScript, which allowed him to copy the validation code from the frontend and adapt it for use on the backend. This experience significantly simplified the development process and increased the efficiency of working with data. Mastering JavaScript opens new horizons in web development, allowing you to integrate the client-side and server-side parts of an application more seamlessly.
JavaScript is the primary language for front-end development. It enables the creation of interactive web pages and enhances the user experience. Thanks to its versatility, JavaScript is used to develop dynamic content, animation, and client-side event handling. Combined with HTML and CSS, JavaScript forms the foundation of modern web applications, providing functionality and visual appeal. Today, JavaScript remains a key tool for developers, thanks to a wide range of libraries and frameworks such as React, Angular, and Vue.js.
After a day of sustained effort, he finally completed his work. The team lead praised his efforts and hard work.
You did it when you really wanted to. You're lucky that we don't deploy to production servers on Fridays, so you have until mid-Monday to thoroughly test and make any necessary adjustments.
Deployment is the process of deploying code into a production application, allowing it to run on a specific computer or server. Deployment involves several steps, such as preparing the environment, setting up configurations, and transferring files. This process is key to ensuring the correct functioning of the software and allowing users to access new application versions or updates. A proper deployment ensures that the application will run stably and efficiently.
Inspired by the results achieved, Vanya retested all aspects of the project, which allowed him to approach the next meeting with confidence. Now he knew he would no longer face the need to fix old bugs.
This is relevant for the current sprint.
History may have taught Vanya some important lessons. It can help you better understand the world of programmers and perhaps inspire you to become one. Understanding the specifics of the programming profession opens new horizons and opportunities for personal and professional growth.
Read also:
- What is a framework and how to choose a front-end framework: advice from experienced developers
- "To keep up with everything, I hardly sleep": how to become a really cool mobile developer
- Mike Pound: what are feedback shift registers and what are they for
Profession Developer
A course for those who dream of working in IT, but don't know where to start or doubt themselves. We will help you choose the best of 6 professions, overcome all your fears, and navigate your way to employment.
Find out more
