The EPAM Advanced Software Engineering career path was announced in 2019 to recognize experienced technologists who wanted to advance their skills in engineering, while at the same time continuing to grow in the managerial track. The Advanced Software Engineering (ASE) program is designed for software engineers with 10 or more years of industry experience, who want to become managers, directors, or C-level executives.
Technology has been changing for as long as I've been working with it. And the pace of change has been accelerating. Advanced engineering as a concept seems to be the next logical step in the evolution of EPAM’s engineering DNA. Until recently, our engineers did not have a managerial career track, and now they will. And that makes me very happy.
We've always had Advanced Engineers, we just didn't have a proper name for the role and its function. Previously, an entire team, a single Chief Engineer, or sometimes a Solution Architect played the advanced engineer role. That person might have been both a developer and an architect.
There are lots of Chief Engineers and Solution Architects who act as informal Advanced Engineers. In the past, they were pigeonholed into the job and had no path to growth. With the new role of Advanced Engineer, their skills and knowledge can be recognized and growth opportunities made available to them. Formalizing the function into a separate career track also makes it easier to find qualified candidates.
I've chosen this track as the next step of my career. I was already a Chief Software Engineer at EPAM Anywhere, but then I heard that there was a special track for technical guys like me with cross-stack development experience who like complex tasks and non-standard workflows. I thought, "Why not?" and started preparing.
Advanced Engineers analyze the client’s business goals, study the requirements of a product, and make decisions regarding the overall technical and design strategy. Advanced Engineers accomplish this by understanding the company’s underlying technology architecture and how it conforms to the product requirements.
Advanced Engineers need to have extensive cross-stack development experience across a host of different domains and a variety of programming languages. They analyze requests, create detailed technical designs, and turn those designs into simple prototypes to demonstrate feasibility.
Most importantly, Advanced Engineers are responsible for ensuring that the products they build are scalable and meet performance criteria, while always preparing for the future. Advanced Engineers need to be able to think ahead, anticipate potential problems, and create a plan for mitigating them.
Advanced Engineers participate in presales, consult clients, and conduct audits of the code of existing technology solutions to evaluate its effectiveness. They're also expected to proactively promote High Engineering Culture, incorporate emerging technology, share their best engineering practices, enhance EPAM’s image for our clients, and be a role model for our Engineers.
Just keep solving technical problems with beautiful, correct, fast, maintainable, readable code — and enjoy the process while doing it.
The world of software engineering is evolving at a rapid pace. With increasing complexity in software systems, the need for top-notch technologists is growing.
The top five characteristics of an Advanced Engineer:
To be an Advanced Engineer, you need both technical and business skills. Technical skills include experience with coding languages, frameworks, and tools as well as in-depth knowledge of the latest development trends. The necessary business skills can be gained by working on projects with different stakeholders or taking courses in project or product management.
By engineering maturity, we mean ASEs’ understanding of their primary stack — inside knowledge of collections, memory models, multithreading, runtime environment, and various algorithms (e.g. garbage collectors, balancing, non-standard algorithmic problems). We can also include here the engineering aspect, processes, clean code, object-oriented and functional programming, and more.
There are a few key reasons why a project might need an Advanced Engineer.
The answer to that question lies in the focus on what an engineer does and wants to do in their future career: client-facing solution consulting and architecture vs. day-to-day, hands-on, expert-level problem-solving. So, the start of an Advanced Engineer and Solution Architect (SA) career track may look similar, and a strong technologist is likely capable of playing either role. As these professionals progress through their careers, however, the differences become more evident:
This question concerns how an engineer works and wants to work in the future:
Any Software Engineer who wants to keep doing engineering in practice has a chance to become an Advanced Engineer in the future.
As for who is ready to become an Advanced Engineer in the near term: usually, this person is a very experienced Lead Engineer with extensive practice in developing complex systems.
Solution Architects (who often play the ASE role on the project) may also switch their career path to Advanced Software Engineering. This change makes sense for SAs who feel they’re more suited to a technical path rather than a client-facing business role.
Be eager to learn new stuff related to technologies. Never give up coding, since that's the key point that defines an ASE. At the same time, dive into modern technologies and, of course, be open to collaborating with others. Don't be focused on project activities only, since your contribution involves a broader impact. Your self-development will become your mission.
At EPAM Anywhere, we invest considerable effort in developing a continuous learning culture to help ASE talent stay ahead of the rapid evolution in the tech industry. Potential and current Advanced Software Engineers can accelerate their competencies through the continuous learning path in Advanced Software Engineering, following the 70-20-10 rule, which consists of programs, professional communities, and self-study resources.
My Resource Manager Hleb Valasiuk, Director, Delivery Manager, and my colleague Andrei Palchys, a fellow Chief Software Engineer, were my mentors. They were always open to answering my questions. Andrei, for example, helped me in preparing artifacts and shared his experience. And I'll never forget when Hleb took a look at my PoC project required for my ASE Assessment and asked me to improve the user experience right before the session. While stressful, this helped me a lot in securing my ASE role.
Apply for our Software Developer jobs to start your journey to an Advanced Software Engineering career!
Thanks to Denis Chichmaryov (Director, Software Engineering), Dzmitry Tabolich (Senior Solution Architect), Dzmitry Zhyuliuk (Software Engineering Manager), Kirill Sultanov (Chief Software Engineer II), and Rufat Khaslarov (Chief Software Engineer I) for their contribution to this guide.
The article was originally published on November 19, 2020 and updated on April 20, 2022