Senior Software Engineer (Full-time)
Summary
Senior Software Engineer for the IT department of a financial services institution in Bloemfontein, South Africa (hybrid). The role involves designing, building, testing and maintaining business-critical applications, contributing to architecture, and mentoring juniors, using languages like Java, C#, Python or JavaScript, SQL databases, and web frameworks.
About the Role
Our client, a reputable financial services institution in Bloemfontein, is seeking a highly skilled Senior Software Engineer to join their dedicated IT department. This is a hybrid role, offering a balanced approach to work, combining in-office collaboration with the flexibility of remote work. You will be instrumental in designing, developing, and maintaining robust software solutions that support critical business operations. This position involves working on complex projects, contributing to architectural decisions, and mentoring junior developers. We are looking for an individual with a passion for clean code, a problem-solving mindset, and a commitment to delivering high-quality software within an agile environment. This is an excellent opportunity to grow your career within a stable and respected organization.
Key Responsibilities
- Design, develop, test, and deploy high-quality software applications using modern programming languages and frameworks.
- Collaborate with business analysts, product owners, and other engineers to define software requirements and specifications.
- Write clean, maintainable, and efficient code following established coding standards and best practices.
- Participate actively in code reviews, providing constructive feedback to team members.
- Troubleshoot, debug, and resolve software defects and issues.
- Contribute to architectural design decisions and technical roadmap planning.
- Develop and maintain unit, integration, and end-to-end tests.
- Optimize application performance and ensure scalability and reliability.
- Stay up-to-date with emerging technologies and industry trends.
- Mentor and guide junior software engineers, fostering their technical growth.
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- 5+ years of professional experience in software development.
- Proficiency in one or more programming languages such as Java, C#, Python, or JavaScript.
- Experience with relational databases (e.g., SQL Server, Oracle, PostgreSQL).
- Strong understanding of object-oriented programming (OOP) principles.
- Experience with web development frameworks (e.g., .NET, Spring, Node.js, React, Angular).
- Familiarity with Agile development methodologies (Scrum, Kanban).
- Experience with version control systems (e.g., Git).
- Excellent analytical and problem-solving skills.
- Strong communication and interpersonal skills, with the ability to work effectively in a team.
Benefits
- Competitive salary package and annual performance bonus.
- Comprehensive medical and dental coverage.
- Generous pension fund contribution.
- Opportunities for continuous learning and professional development.
- Hybrid work model providing a flexible work environment.
- Access to modern development tools and technologies.
- A stable and supportive work culture.
- Annual leave and company holidays.