Location: Pretoria or Johannesburg, South Africa (Hybrid Work Model)
Role Description: We are seeking an experienced Senior Full Stack Developer to join our team. In this role, you will take on the responsibility of architecting, designing, and developing software applications utilizing Java and/or .NET technology stacks, languages, frameworks, and platforms. As a Senior Full Stack Developer, you will lead projects, mentor junior engineers, and contribute significantly to the software development life cycle.
Key Responsibilities
- Architect, design, and develop software applications using Java and/or .NET technology stacks.
- Lead projects, providing technical expertise and guidance to ensure successful project delivery.
- Mentor and coach junior engineers, fostering their professional growth and development.
- Collaborate with cross-functional teams to deliver high-quality software solutions.
- Analyze and debug complex software issues, ensuring robustness and reliability of applications.
- Stay updated with emerging technologies and industry best practices to continuously improve our software development processes.
- Bachelor's degree in Computer Science, Engineering, or related field.
- 7-10 years of experience in software architecture, design, and development with a focus on Java and/or .NET technologies, languages, frameworks, and platforms, at a Senior/Lead level.
- Proven experience in architecting, designing, and implementing complex/enterprise software systems.
- Strong understanding and appreciation of software design patterns, practices, reference architectures, TDD, DDD, BDD, etc.
- Proficiency in Java programming languages and frameworks such as J2EE, Spring, SpringBoot, Hibernate, etc. AND/OR .NET languages and frameworks such as ASP.net, Blazor/Razor, C#, .NET Core, EF, etc.
- Expertise in front-end technologies such as Angular/React, or Vue.js, including TypeScript and JavaScript.
- Experience with both relational and non-relational database systems in the relevant stacks.
- Knowledge of software testing methodologies, tools, techniques, as well as logging, monitoring, etc.
- Excellent communication skills, both verbal and written, with the ability to work effectively in cross-functional teams.
- Leadership and mentoring skills to guide and mentor junior engineers effectively.