A Day in the Life of a Full-Stack Engineer
In the dynamic landscape of software development, the role of a full-stack engineer is both critical and comprehensive. These versatile professionals are the architects and builders of the web, crafting the user-facing elements while simultaneously managing the server-side processes that keep digital platforms running smoothly. It’s a role that demands not only a wide-ranging skill set but also a problem-solving mindset and a continuous drive for learning. In this blog, Maksym Zavodniuk shares insights into his role as a Full-Stack Engineer.
The Role of a Full-Stack Engineer
A full-stack engineer designs and implements features across both back-end (BE) and front-end (FE) tasks. We are adept in languages and libraries such as JavaScript, React, Angular, and Vue for the FE, and we handle interface design with CSS. On the BE, we are proficient in managing databases like MongoDB, SQL, or PostgreSQL. Depending on our specific depth of expertise, we may lean more towards FE or BE.
A Day in the Life at Agoda
I’ve been with Agoda for three years, and I am currently in the WhiteLabel Booking Creation team. The day-to-day tasks of a full-stack engineer in my team at Agoda can vary greatly. They range from BE-oriented duties to purely FE tasks and sometimes a mix of both. Sometimes, we even delve into configuring CI/CD pipelines and understanding the inner workings of various services.
For some tasks, a deeper understanding of the system is required. In such cases, we usually start with an ‘Investigation’ task. The main goal here is research, gathering information on data handling, flow, and how data is represented in a database. This is a case where BE and FE experience really helps to see the full picture of why some decisions were made.
Recently, we had a task for preventing duplicate bookings, ensuring that the same room type wasn’t booked twice under the same name for the same dates. This task called for a database update to store user’s information for comparison. On the FE, we also implemented a validation mechanism to prompt a warning.
Technical Skills and Tools
As a web full-stack engineer, it’s crucial to know JavaScript. It’s the only way to make your web application dynamic and modern-looking. JavaScript is also commonly used as a programming language when building back-end applications, especially for those engineers who transition from a front-end background. It’s quite convenient to use the same syntax across the stack. However, being a full-stack engineer doesn’t necessarily mean you need to stick to a single programming language.
To maintain a balance, I regularly switch between FE and BE tasks at work. In my spare time, I enjoy working on personal side projects, often exploring technologies that differ from my daily work tasks.
Effective Communication and Collaboration
Ensuring seamless communication and collaboration between FE and BE teams is vital. We employ collaborative techniques such as brainstorming, design reviews, investigation tickets, and maintaining clarity through API contracts.
Professional Growth and Learning
I stay updated with new technologies by participating in tech communities, discussing with colleagues at Agoda, taking courses, reading articles, and increasing confidence with some practice or PoC.
Reflecting on a Defining Career Moment
A defining moment in my journey was my first job in a full-stack role, where I worked with the MEAN stack. It was a hands-on experience that allowed me to see my contributions come to life across the entire development stack, from front-end form validation to back-end data processing.
Career Advice for Aspiring Full-Stack Engineers
If you’re looking to pursue a career as a full-stack engineer or join Agoda, my advice is to build a strong foundation in both FE and BE development. Practical experience is crucial. Don’t be afraid to get your hands dirty and learn by doing. Don’t shy away from challenges; they’re opportunities to deepen your expertise.
My role as a full-stack engineer at Agoda has been a journey of constant learning, adaptation, and problem-solving. It’s a role that demands a passion for technology and a dedication to lifelong learning. Whether it’s troubleshooting a database issue or crafting a responsive user interface, the path of a full-stack engineer is filled with opportunities for growth and innovation.