
Software Developer/Engineer
- Johannesburg, Gauteng
- Contract
- Full-time
- Software Development: Design, develop, and deploy efficient and scalable software solutions in line with project requirements.
- Code Quality: Write clean, maintainable, and efficient code while adhering to best practices and coding standards.
- Collaborative Problem Solving: Work with developers, project managers, and QA teams to troubleshoot, test, and deploy applications.
- System Architecture: Assist in creating system architecture and design for new applications and features.
- Documentation: Write and maintain technical documentation for internal and external use.
- Continuous Improvement: Contribute to the improvement of the development process, tools, and methodologies.
- Maintain and Improve Applications: Debug, troubleshoot, and update existing applications to ensure functionality and optimization.
- Agile Methodology: Participate in Agile development cycles, including sprint planning, standups, retrospectives, and sprint reviews.
- Mentorship: Collaborate in knowledge-sharing activities within the team.
- Bachelor's degree in Computer Science, Software Engineering, or a related field, or equivalent work experience.
- 5+ years of professional experience in software development.
- Proven experience with preferred programming languages such as C# (.NET, .NET Core 8+), SQL, and Java 8+.
- Experience with Python 3.9+ and Node.js 16+.
- Experience with mobile development frameworks such as Ionic and Flutter.
- Solid understanding of algorithms, data structures, and software design principles.
- Experience with web frameworks and RESTful API design.
- Technical Skills:
- Strong proficiency in back-end development using .NET and .NET Core.
- Knowledge of relational and NoSQL databases and query optimization (especially SQL).
- Familiarity with version control systems like Azure DevOps and Git.
- Understanding of automated testing and debugging.
- Knowledge of CI/CD pipelines is a plus.
- Experience in cloud platforms (e.g., AWS, Azure) and containerization tools (e.g., Docker, Kubernetes).
- Problem-Solving: Ability to identify, debug, and solve complex software issues independently and as part of a team.
- Communication Skills: Strong verbal and written communication skills to explain technical concepts clearly.
- Teamwork: Ability to collaborate effectively with other engineers and non-technical teams (e.g., Product, QA).
- Attention to Detail: Strong attention to detail and a commitment to delivering high-quality software.
- Knowledge of Agile methodologies and DevOps practices.
- Contributions to open-source projects or a portfolio of personal projects.
- Strong analytical and troubleshooting skills.
- Ability to work in a fast-paced environment and manage competing priorities.
- A positive and proactive attitude, with the ability to adapt to change and new challenges.