Ranks Definitions
Ranks Definitions
Ranks Definitions
Rookie
Junior
Middle Level 1
Middle Level 2
MIddle Level 3
Senior Level 1
Senior Level 2
Senior Level 3
Expert Level 1
Description
Learning
Junior level: software engineer has ability to work on small to medium-sized projects
under the guidance of more experienced engineers, their focus on learning and developing
their technical skills, and their need for mentorship and feedback from senior colleagues.
Middle Level 1: Engineers at this level are considered to be proficient in their technical
skills and have developed a good understanding of the software development process.
They can work independently on medium to large projects and have a good understanding
of the business domain they are working on. Have proactive attitude.
Middle Level 2: Engineers at this level have gained more experience and expertise in their
specific technical area, such as front-end development, back-end development, or testing.
They are able to work on complex projects independently or as part of a team, and can
mentor junior engineers. They also have a broader understanding of the business domain
and are able to contribute to strategic decision-making.
Middle Level 3: Engineers at this level are considered to be highly experienced and
specialized in their technical area. They have a deep understanding of the software
development process and can lead large, complex projects. They are able to mentor and
train other engineers, and may have management responsibilities. They also have a strong
business acumen and can provide valuable insights and recommendations to senior
leadership.
Senior Level 1 engineers are often in charge of the most important projects within
company. This is the ideal position for a software engineer that has aspirations of learning
how to manage multiple aspects of the business. They are groomed as potential managers
and may report directly to high-ranking individuals in the company.
They have extensive knowledge of the company structure and goals. Before beginning a
project, they’re able to assess risks, identify potential problems ahead of time and find
solutions without guidance.
Having high technical skills, a senior developer is comfortable with multiple technologies.
Seniors should be aiming at acquiring transferable knowledge that will allow them to
recognize and write good code in any programming language. This knowledge also helps
adapt to constant technical changes.
They have extensive knowledge of the company structure and goals. Before beginning a
project, they’re able to assess risks, identify potential problems ahead of time and find
solutions without guidance.
They can help companies implement new technologies and train workers to use them.
either moving towards management or becoming an independent contributor.
Senior Level 3 may participate in recruiting and managing new talent, provide their own
contributions to projects, delegate projects to tech leads and make changes to the
development process. They can help companies implement new technologies and train
workers to use them.
They typically communicate regularly with the chief technology officer to set long-term
strategy and then make sure their department meets those new expectations.
A director of engineering must understand a company’s broader goals and vision. To hold
this position, they should have extensive education in programming, coding languages,
software development and troubleshooting strategies.
Required
YOE: < 1
Just granduate from the University.
YOE: 1+
- Familiarity with software development methodologies, such as Agile or Scrum.
- Experience of foundation knowledge of OOP, Clean Code, Unit Test, SOLID
- Familiar with module design
- Familiar REST API, Client-Server communication
- Familiar with Test tools: Postman, Browser's DevTool
- Familiar with Linters: SonarLint, Language Linter <TSLInt, ESLint, ...>
- Familiar with software security: Authentication/Authorization, JWT, JQL Injection,...
- Ability to work collaboratively in a team environment and communicate with colleagues
and stakeholders.
Year of experience: 3+
1. In-depth knowledge and expertise in their specific technical area, such as front-end
development, back-end development, or testing.
2. Proficiency in multiple programming languages and technologies relevant to their area
of expertise.
3. Experience working with complex systems and architectures, and understanding of
software design patterns.
4. Familiarity with software development processes and methodologies, and ability to lead
and mentor junior engineers.
5. Strong understanding of web development concepts and technologies, including web
services, APIs, and user interface design.
6. Experience with databases and understanding of data modeling and database design
principles.
7. Understanding of software testing and quality assurance processes.
8. Ability to support other members and influence people
9. Have at least 1 internal workshop or 2 blog posts to share knowledge within 6 months
10. Experience with DevOps and can setup deployment for a simple service/project
Year of experience: 3+
1. Mastery of their specific technical area, with deep expertise and knowledge of the latest
industry trends and best practices.
2. Ability to design and develop complex software systems and architectures, and lead
large-scale projects.
3. Strong understanding of software engineering principles and ability to mentor and train
junior engineers.
4. Familiarity with multiple programming languages and technologies relevant to their area
of expertise, and ability to learn and adapt to new technologies quickly.
5. Experience with cloud computing technologies and architectures, as well as knowledge
of security principles and practices.
6. Ability to analyze and solve complex technical problems, and provide strategic
recommendations to senior leadership.
7. Strong communication and leadership skills, with the ability to work effectively with
colleagues and stakeholders at all levels.
8. Experiene with network typology such as VPC(AWS)/vNET(Azure)/Subnet concept.
9. Experiene with project Security, using tools to scan CVE, potential bugs, XSS, SQL
Injection
Year of experience: 5+
- Language:
+ Besides functional programming and OOP, they work with concurrent and logic
languages, e.g. Erlang and Prolog respectivel
+ Good at least 3 languages and framework belong to each language
- Platforms & tools:
+ Seniors have had professional experience with more than 6 platforms. They are already
creating debuggers or other tools necessary to enhance the platform.
+ Seniors are the source advice on platform internals.
- Day-to-day duties: Seniors brainstorm the right technological solutions to complex
problems
take charge of the team, coordinating its workflow to consistently produce business value.
Year of experience: 10+
- Database:
+ Understand at least 4 databases and choose the best ones for project
+ Have good knowledge with DB maintenance features, in particular, DB mirroring and DB
replication.
+ Understand two-phase commit algorithm (2PC)
+ Can replace slow cursor-based operations with much more efficient JOIN statements,
where possible.
+ well-versed in database administration, performance, and index optimization
- Language:
+ Besides functional programming and OOP, they work with concurrent and logic
languages, e.g. Erlang and Prolog respectivel
+ Good at least 3 languages and framework belong to each language
- Platforms & tools:
+ Seniors have had professional experience with more than 6 platforms. They are already
creating debuggers or other tools necessary to enhance the platform.
+ Seniors are the source advice on platform internals.
- Day-to-day duties:
+ Seniors brainstorm the right technological solutions to complex problems
+ Take charge of the team, coordinating its workflow to consistently produce business
value.
YOE: 10+
Note Column1