Of course, the role of ASE is not a new word in IT. In some companies, including grocery companies, where a grading system is used, you can find such a role (usually called Principal Developer). To better understand who ASE is, what they do and why the company needs them, I asked the “advanced” first wave engineers what it means to be ASE. I’ll tell you everything in order.
Who is ASE?
First of all, this is an engineer who has some deep unique expertise, while he can quite quickly enter a project with any technology, we can say that this is a Multi-skill or Cross-stack engineer. Now it is fashionable to call it a T-shape model, an approach when an engineer has some kind of deep area, but nothing prevents him from understanding and helping the team fix a small bug on the frontend, for example.
Konstantin Perikov works at EPAM for 3 years, develops information retrieval systems – building various search engines, works with Open Source engines: Lucene, Solr, ElasticSearch. He was among the first to receive Advanced Engineer status in Enterprise Search.
“When I joined the company as Chief Engineer, I thought this was the ceiling. I had to choose – go to SA, or to managers. When I was told about ASE at the end of 2019, I realized that this is exactly what I like, and this is what stopped me for several years to sign up for an assessment (a kind of certification) at SA. I love programming, this is what I do every day, not only at work, but also on some home or Open Source projects.
The main idea of ASE and the difference from SA and managers is that a person has to write code. Every day, for several hours. This inspired me to go and try a new role. “
Dmitry Tabolich, Senior Solution Architect, has been working at EPAM for more than 8 years, was at the origin and was one of the authors of this track within the company.
“The topic of Software Engineering is close to me, and the problem of career growth for engineers is quite understandable, since for some time in the company I was responsible for the process of attestation (assessment) of Software Engineer in Solution Architect, where people often chose this vector of development as the only“ non-managerial “. This is how the initiative arose to revise the entire Software Engineer line (from Junior to Distinguished), taking into account the possibility of development without the difficulty of choosing and repurposing. We thought for a long time about the concept and way of identifying such specialists, and once Pavel Weller, one of the CTOs of EPAM and the ideologist of the ASE concept, proposed an interesting informal metric for defining such specialists: ‘known to others’. It is difficult to measure, but it is easy to understand what is meant. Let’s say there is a Java developer that everyone turns to for advice as part of a teamwork, or even from other teams or projects, and then practitioners. If someone is famous in their practice, that is good; if he is known throughout the company, that’s even better.
An Advanced Engineer doesn’t have to be a speaker at every conference, he just knows more than others and does things that no one else can do. ”
Mainly to solve complex engineering problems. The market changes, decisions change, they become more complex. In addition to deep technical skills, ASE has advanced problem solving abilities. Moreover, ASE is able not only to solve the problem, but to predict and prevent its occurrence. A sort of technical guru-predictor.
This applies not only to solving point problems, but also to global planning. The implication is that having a great deal of expertise should allow a person to draw conclusions, where the technology is heading, what trends will be next year, what solution can be offered to customers in the future.
Dmitry Tabolich: “Sometimes a project requires one engineer, but a very strong one, such a classic tech lead. We know that EPAM has such engineers, but how can we identify them among tens of thousands of specialists if the maximum grade is Chief? Of course, we can take an architect with development experience, but sometimes you need someone who can focus specifically on writing code and implementing engineering practices. ”
What qualities should ASE have?
Within EPAM, a competency matrix has been developed, which spells out the requirements for engineers at each level.
First of all, high technical requirements are imposed on ASE. ASE is a technical expert with deep practical and theoretical knowledge in several areas and diverse experience with different programming languages and environments and in different business areas. This is what he encounters every day – he writes code and does it exceptionally clean, using EngX (Engineering excellence) or, in other words, best engineering practices and approaches to coding, testing, etc. At the same time, he is able to check the architecture or simply act as a technical consultant on the project. The key is to focus on building the final product or system and understanding aspects of the life cycle of their operation (performance, safety, scalability, etc.).
Denis Chichmarev, one of the members of the ASE development working group: “In general, these are skills, knowledge and experience in solving problems that you cannot google. It takes a lot of theoretical knowledge and practical experience to solve problems that nobody has solved before. ”
It is understood that an Advanced engineer should not so much lead as be able to lead a team of engineers, be a strong technical leader, not just point out the final correct solution to a problem, but explain and lead the team members to this decision. In other words, experienced engineers are independent units, and it is important that they know how to work with the team and help the team become better.
Konstantin Perikov: “What often sets ASE apart is its Public influence. ASE is a person who has weight in the professional community (at first at the company level), is an ambassador and can help in a difficult situation on a completely unfamiliar project. You can’t just do your job at the table and expect to be invited to a standard committee, for example. You don’t have to be a skilled speaker, you can publish or be a mentor.
A person must be able to share their unique experiences – this is what makes them a truly valuable resource.
But you can’t just become a speaker or mentor. First of all, you need to have deep knowledge in the subject area. ”
How to become an ASE?
To obtain the status of an advanced engineer, you need to pass an assessment – this is the process of collecting your achievements (a kind of portfolio that colleagues evaluate) and interviewing other specialists, a technical discussion. The commission assesses both the depth of technical skills and “public influence”, that is, it looks at the merits of an engineer not only on projects, but also in the external professional environment.
An important part of the assessment is the test task. The purpose of this stage is to test the depth of technical skills, the ability to find a solution to a problem in a short time, and develop a solution prototype. At the session with the candidate, architecture, approaches, technical nuances are discussed in detail. A ready-made Open Source solution can also act as a test project. Practical programming skills are tested through interview coding sessions.
All these requirements apply to external candidates as well.
Where will ASE develop further?
Konstantin Perikov: “The concept of development ad infinitum implies that along with the expertise of an engineer, his sphere of influence also grows. At the first level, for example, the engineer influences the unit, then the whole community, etc. An equally significant development vector is participation in the creation of a new, high-tech and unique engineering product, sharpened for solving certain problems.
Also, we must not forget about a systematic approach to solving problems, building systems (problems) – ASE should be able to look not only deep into the solution (product), but also understand how it can be integrated, understand what reference architectures, approaches and technologies can and must be reused.
We believe that all these traits make an engineer a real ASE. ”
Denis Chichmarev: “There are absolutely different people among ASE. We have an engineer who knows C ++ so well that he is involved in defining world standards for it. Others, on the other hand, are exploring new technologies and stacks. Keeping track of what’s going on in the software engineering world. They don’t need a manager to tell them what to do, what to read, where to grow.
The only thing that ASE has in common is that they seek knowledge on their own and so zealously as if they cannot live without it. ”
- Advanced Software Engineer is an advanced engineer in every sense of the word. He knows what most do not know, solves issues that “cannot be Google”, uses best practices to solve problems and creates his own – innovative ones.
- Advanced Software Engineer is a technical guru, he codes every day for at least several hours, without being distracted by project management tasks, resource allocation in the team. Hands-on experience above all!
- Advanced Software Engineer is a mentor, mentor. Its main value is not in storing all the information accumulated over the years of practice, but in how he disposes of this information – he shares it in a blog, talks at conferences or just to his team.