Core Purpose:
A Senior Developer is a hands-on software engineering leader, designing, developing, and implementing complex software features. In addition to writing code, the senior developer mentors junior developers and collaborates with cross-functional teams to deliver high-quality products on time. She/He will use engineering practices in test driven development, continuous integration, and automated deployment.
Key Performance Areas: Core, essential responsibilities / outputs of the position (KPA's):
Technical Implementation
• Produce designs for high complexity user stories and start owning software architecture initiatives.
• Writing well designed, scalable, and testable code following software engineering best practices.
• Ensure that developers apply agreed coding practices, continuous integration, and automated deployment.
• Ensure all code is reviewed. Write and review automated tests. Introduce and own quality controls in CI/CD processes.
• Help define secure coding practices and recommendations in collaboration with the security team.
• Identify and report risks and issues related to project and provide technical mitigations.
• Support developers in technical unpacking to inform Agile estimation sessions.
• Drive bug resolution in production environments. Demonstrate good understanding of tools such as Kibana, Grafana, etc.
• Demonstrate ability to research & present findings and recommendations to an audience. Drive knowledge sharing sessions. Start presenting at meetups.
• Coach and mentor junior developers.
Collaboration
• Together with project teams assist in the implementation of the strategy related to coding practices, continuous integration and automated deployment.
• Highlight to senior leaders bottlenecks and production issues proactively and consult teams in order to improve technical solutions.
• Work in collaboration across various teams/squads in order to embed Agile ways of working.
Planning & Delivery
• Work strictly within timelines and deliverables to ensure efficiency in delivery.
• Articulate progress regularly to technical leads to ensure proper tracking of project and team deliverables
Stakeholders
• Interface with internal and external industry experts to anticipate customer needs and facilitate solutions development.
• Collaborate across functional teams within the Broader team to enable the development of solutions necessary to drive the desired business outcomes for customers.
• Survey developers and technical members of the organization to understand their main pain points in the coding and development process
Governance and Risk Management
• Participate in the creation and implementation of functional policies, standard operating procedures and best practices that ensure operational efficiency, accuracy, security, integrity and compliance with relevant laws and regulations.
• Highlight any risks to senior technical leads to enable fast mitigation of these risks.
Job Requirements (Education, Experience and Competencies):
Education:
• A National Diploma in IT, Engineering or other Sciences
• Bachelor’s Degree or Higher advantageous
Experience:
• Minimum of 6 years’ experience in Agile Software Engineering
• A solid understanding of software engineering fundamentals
• Experience in developing and scaling high-quality tech platforms in cross-functional product teams
• Technical experience and functional knowledge of the newest technologies and trends
• Can implement architecture decisions at a team and product level
Technical Skills - Hands on experience in one of the following:
• Languages: Java, C#, JavaScript/NodeJs, GoLang
• Frameworks: Express JS, Spring Boot, Quarkus, Go Fiber
• Front End: React, Angular, VueJS
• Mobile Apps: IOS, Android, React Native, PWA Frameworks
• ORM Tools: JPA, Spring Data, Entity Framework, Hibernate
• Relational Databases: Oracle, MSSql, PostgreSQL, MySQL
• Non-relational Databases: MongoDB, Cosmos DB
• Cloud Environments: Azure, AWS, GCP
• Software Engineering: SOLID principles, Object Oriented Design Patterns, Refactoring, Testing
• Continuous Delivery: Test Automation, Version Control, Branching Strategies
• DevOps: Containers, CI/CD Tools, Observability Tools (Kibana, Prometheus, OpenTelemetry)
• Experience executing technical priorities within the Backlog
• Ability to learn and adapt to grow and maximize own potential