5 months ago
Johannesburg, South Africa or Cape Town, South AfricaSenior
Responsibilities
- Perform complex research, design, and software development assignments across software functional areas or product lines.
- Provide input to project plans, schedules, and development methodology for cross-functional software products.
- Design software across multiple systems and translate user or customer requests into solutions.
- Finalize requirements with technical personnel and write or review detailed specifications for complex system components.
- Implement development processes, coding best practices, and code reviews.
- Design and work with complex data models and multiple data storage subsystems.
- Train entry-level software engineers and mentor less-senior developers on methodologies and optimization techniques.
Requirements
- 5+ years of software engineering experience.
- Bachelor's degree in engineering or computer science, or equivalent experience.
- Experience with cloud platforms; AWS is strongly preferred, with Azure or Google Cloud also acceptable.
- Strong proficiency with data manipulation language and optimization techniques.
- Strong understanding of normalized and dimensional data modeling principles.
- Strong knowledge of multiple data storage subsystems.
- Expertise in development languages including Java/J2EE, JavaScript, JSP, .Net, and Python.
- Knowledge of applicable tool sets and test-driven development.
- Ability to collaborate competently with technical personnel and team members to finalize requirements.
Benefits
- Flexible working hours and a work/life balance-focused working environment.
- Wellbeing initiatives, shared parental leave, study assistance, and study leave.
- Medical aid.
- Retirement plan with disability, critical illness, life cover, and funeral cover.
- Modern family benefits including adoption and surrogacy.