Frontend developer career growth at NML.
Defining Developer. Positions
Junior developer
Basic knowledge of HTML, CSS and JavaScript. Should have at least 1-year experience in the relevant technology stack. Requires guidance and mentorship
You slowly learn to repair minor, less significant errors or bugs on the front end. You learn a front-end framework. You contribute to the codebase by building out UI components. How quickly you jump to the next career level depends only on your commitment and the number of people you can learn from.
Role highlights
- Has the ability to perform simpler technical tasks independently but requires guidance/mentorship on more complicated tasks
- Has the ability to fix small, less important bugs without assistance
- Can contribute to scrum ceremonies
- Will not resolve production issues without assistance
- Should be supervised
- Needs to get comfortable with the codebase before doing anything too crucial.
- Is not in a position to liaise with clients and stakeholders
- Will take longer than intermediate and senior to complete tasks
- Takes implementation guidance from more senior developers
- Code and pull requests will be reviewed more carefully and receive more feedback than intermediates and seniors
- Would ask for help more frequently
- There is an emphasis on learning and development
- Still needs to learn good front-end principles
- Still needs to learn how front-ends are architected
- Seeks out opportunities to expand their technical and non-technical skills through continuous learning practices.
- Communicates clearly and effectively, especially in writing, when working with peers, team members or their manager on technical tasks or issues.
- Adheres to the NML communication guidelines
Key Characteristics and Qualities
Shows Initiative
- Being proactive - identifying an opportunity where you can take action
- Ask questions
- Understand when to ask for help and who to ask and recognising when you are out of your depth
Inquisitive
- Having a curious mindset, open-minded
- Open to feedback / constructive criticism and willingness to internalise and do the work to improve
Eager (to learn)
- Keen to always expand knowledge base and improve skills.
- Learning from team members and seniors
Engaged
- Continually contributing whatever the context (within team meetings, code related, company wide suggestions etc)
Driven
- How am I improving on my skill set, my communication, my interactions (personal growth mindset)
Hardworking
- Not doing the bare minimum
Reliable
- Doing what you saying you are going to do, turning up when you're expected to, offering help when its needed
Ask questions
- Understand when to ask for help and who to ask and recognising when you are out of your depth
Open-minded
- Open to feedback / constructive criticism and willingness to internalise and do the work to improve
Intermediate developer
Has experience on several projects with 3+ years experience in the relevant technology stack. Has the ability to perform the tasks assigned to them independently. Ie: must understand the UI and business requirements and be able to translate them into font-end solutions with minimal guidance.
Role highlights
- Can set up the front-end dev environment on their own and assist with configuring build & release pipelines
- Learns to write maintainable code according to best practices
- Learns to update code to be more maintainable and adhere to best practices
- Is capable of implementing solutions based on the complexity, and asks for guidance when the complexity increases unexpectedly.
- Assists to break major tasks down into smaller sub-tasks
- Is able to find major bugs in front-end code
- Is able to review front-end code and provide relevant feedback
- Has the ability to perform technical tasks independently but could require guidance/mentorship on more complicated tasks
- Is in a position to liaise with clients and stakeholders
- Will take longer than senior developers to complete tasks
- Knows when and who to ask to ask for help
- Able to assist junior developers in learning relevant skills
- Is able to construct applications using components
- Can identify and build re-usable abstract components
- Has proficiency in consuming REST and GraphQL APIs
- Has a good understanding of good font-end principles
- Has a good understanding of how font-ends are architected and tested
- Communicates clearly and effectively, especially in writing, when working with peers, team members or their manager on technical tasks or issues.
- Adheres to the NML communication guidelines
Key Characteristics and Qualities
Shows Initiative
- Being proactive - identifying an opportunity where you can take action
- Ask questions
- Understand when to ask for help and who to ask and recognising when you are out of your depth
Inquisitive
- Having a curious mindset, open-minded
- Open to feedback / constructive criticism and willingness to internalise and do the work to improve
Engaged
- Continually contributing whatever the context (within team meetings, code related, company wide suggestions etc)
Team-oriented
- Taking your team into account before saying something or doing something. Carrying your weight (putting your hand up for certain things)
Dedicated
- Commitment to the job, team, and company goals. Going the extra mile
Hardworking
- Not doing the bare minimum
Humble / humility
- Not assuming that you're always right, being open to other perspectives
Reliable
- Doing what you saying you are going to do, turning up when you're expected to, offering help when its needed
Honesty
- Transparency and not being deceiving. Conducting yourself with integrity
Time management
- Managing your time to deliver on work
Active listening
- Listening to what someone says without already preparing a response. Being present during a conversation
Patience
- With your teammates, clients, and different perspectives
Open-minded
- Open to feedback / constructive criticism and willingness to internalise and do the work to improve
Communication
- Ability to articulate yourself clearly and effectively
Task estimation
- Being able to accurately calculate how much time you need to complete a task and being able to communicate it to the relevant parties
Senior developer
Has experience on many projects with 8+ years experience in the relevant technology stack. Has learned a lot from their mistakes and knows exactly what they can and shouldn’t do, what code they can change and what they should leave unchanged. Has the ability to perform the tasks assigned to them independently. Understands the UI and business requirements and can translate them into technical solutions. Provides guidance and mentorship to juniors and intermediates.
Role highlights
- Can demonstrate knowledge about how their work fits into the larger business.
- Writes maintainable code according to best practices
- Updates code to be more maintainable and adhere to best practices
- Breaks major tasks down into smaller sub-tasks
- Can find major bugs in code quicker than an intermediate
- Does regular code reviews for less experienced developers
- Has experience in solving problems and tasks of different complexity
- Able to provide architectural guidance on REST and GraphQL API design
- Is responsible for mentoring junior and middle team members
- Can independently solve different problems due to past experience
- Can distil complex problems through the application of common front-end design patterns
- Can manage a team of developers doing simple to mid-level tasks
- Should have enough experience to architect and structure a small front-end project
- Has the ability to develop and mentor the less experienced developers of the team
- Has a solid view of the project deliverables and suggests better ways to improve the process and implementation
- Regularly liaises with clients and stakeholders
- Has a good understanding of the design of libraries and frameworks.
- Understands good front-end coding principles
- Understands how font-ends are architected and tested
- Can debug production issues across multiple levels of the frontend stack
- Communicates clearly and effectively, especially in writing, when working with peers, team members or their manager on technical tasks or issues.
- Adheres to the NML communication guidelines
Key Characteristics and Qualities
Eager (to learn)
- Keen always to expand the knowledge base and improve skills. Learning from team members and seniors
Team-oriented
- Taking your team into account before saying something or doing something. Carrying your weight (putting your hand up for certain things)
Driven
- How am I improving on my skill set, my communication, my interactions (personal growth mindset)
Dedicated
- Commitment to the job, team, and company goals. Going the extra mile
Solutions Oriented
- Finding solutions and not just starting problems. Sees the bigger picture
Humble / humility
- Not assuming that you're always right, being open to other perspectives
Reliable
- Doing what you saying you are going to do, turning up when you're expected to, offering help when its needed
Aptitude to understand the client
- Understanding client requirements and converting them into actions
Patience
- With your teammates, clients, and different perspectives
Deliver Feedback
- Ability to deliver constructive criticism effectively
Patience
- With your teammates, clients, and different perspectives
Communication
- Ability to articulate yourself clearly and effectively
Leadership experience
- Guidance, mentorship, communicate goals and motivate the team to achieve those goals
Professional communication
- Communication on all platforms are in line with NML standards
Task estimation
- Being able to accurately calculate how much time you need to complete a task and being able to communicate it to the relevant parties
Team Lead
Coming soon