About the job Intermediate Software Engineer
Intermediate Software Engineer
Cape Town
About the role
We believe that education in South Africa is ripe for disruption at a massive scale.
You would be in good company if you are ready to be part of the Innovation and Technology team whose mission it is to use technology for the rapid improvement of education.
You will add the most value when you are empowered to provide input into the business case for the software as well as the UX designs to get to the most optimal solution. Your job is not just to deliver code.
About the company
This organisation provides education solutions ranging from early childhood learning to professional certification, curriculum-based print materials, e-learning content and tools, as well as teacher training. They publish in 11 official languages and have the widest range of CAPS-approved content, trusted by teachers. Their quality educational resources and materials are used in schools, TVET colleges, higher education institutions, and home and professional environments.
This company is part of a larger group of companies headquartered in Cape Town, where innovation and quality converge to create exciting opportunities for growth.
Responsibilities:
- Design and deliver functional code according to a product backlog
- Agile software development
- Provide input on UX and UI designs to optimise development efforts
- Give architectural advice where required
- Continuous self-development and expansion of skills
- Software and product support for live production versions while development is ongoing
- Communicate technical needs and risks effectively outside of the team
- Be familiar with devops and infrastructure deployment
- Write effective documentation for architecture and infrastructure
About you
You have a love for teams of creative and happy people, closely collaborative innovation, creating value through lean principles and being adaptive rather than reactive.
As part of a cross-functional team, you will also need these equally important skills:
- Communication skills that allow you to collaborate and explain your process, approach and motivation to various stakeholders, including technical and nontechnical people
- Able to work well in a team as well as individually
- Excited about learning, pushing technical limits and finding new solutions
- Excellent analytical and problem-solving skills
- A propensity to fail fast and learn fast and share both failure and learning with others
- Prioritising learning over being right. Understanding others rather than becoming defensive
- Understanding the value of the software to the business rather than an us & them mentality
Minimum Requirements:
- Minimum 4 years of relevant software development experience.
- Cloud-based system experience
- Relevant B.Sc. or B.Eng. university degree would be preferred
Experience and skills:
Our teams generally use the following technologies. You will need to have some depth of experience in at least some of them:
- Flutter and Dart for mobile development, Android and iOS native development are also appropriate
- API integration through HTTP. REST and REST-like interfaces
- GraphQL integration
- Relational databases and SQL
- NoSQL databases (time series, graph, document, key-value, etc.)
- Use cloud-based infrastructure (AWS). This includes compute and data storage elements
- Automated deployment infrastructure (Github actions and Codemagic)