Closing Date | 2023/10/31 |
Reference Number | SHO231024-1 |
Job Title | Software Engineering Apprentice |
Job Type | Contract/Fixed Term |
Location – Country | South Africa |
Location – Province | Western Cape |
Location – Town or City | Brackenfell, Cape Town |
Purpose of the Job | The purpose of the Software Engineering Apprentice is to support the software development teams in building cutting-edge software and systems for the Shoprite Group by designing, implementing, and testing of software applications using the best breed of software development technologies. This role will work closely with the software development team to provide support in the development, deployment, and maintenance of assigned software solutions for the organization, as well as participate in code reviews and other software development processes, whilst being challenged and provided with tremendous growth opportunities in a customer-facing, fast-paced and agile environment. Within this context, our Software Development team is looking to appoint a Software Engineering Apprentice who has recently graduated with a degree in Information Technology, Computer Science or in a final year of completing an equivalent qualification and is eager to grow their career software development. While providing support to the software development team, you will also be exposed to a range of software development practices and technologies. |
Job Advert Details | |
Job Category | IT |
Job Objectives | Participate in cross-functional, agile software development teams to understand and support software development requirements and deliver high quality software. Work closely with Senior and Lead Software Developers/Engineers and team to support with coding/programming in building innovative technologies in a large, distributed computing environment. Assist in the design, development, and testing of software applications, using appropriate coding techniques and methodologies. Demonstrate continuous effort to learn and improve within the team, and search for opportunities to innovate and optimize software solutions. Utilize applicable technological resources to create conceptual, logical and physical solution on assigned solutions, using learnt coding techniques and methodologies. Learn and apply software development standards and best practices for coding, unit testing, code reviews, etc. design and code the right solutions starting with broadly defined problems. With support from Senior Developers Maintain and support existing software applications Collaborate with other IT and business teams to integrate software solutions with existing systems Support and Participate in Software Development Lifecycles (SDLC) to deliver high quality software. Stay abreast emerging software development principles, designs, technologies, and coding standards. Actively participate in Software Development Community of Practice sessions, including relevant learning and development channels. |
Qualifications | Grade 12 certificate. Diploma/ Degree in Computer Science, Software/Computer Engineering, Mathematics, IT, related field or in final year of relevant qualification completion |
Experience | Exposure with distributed, multi-tiered systems, algorithms, and relational databases (i.e., SQL, MySQL) Proficiency with one or more high-level programming languages i.e., C#, Java, Python, Golang, Python, C, C++, PHP, etc. Exposure to OOP and SOLID programming or design principles. Familiarity with software development tools such as Git, JIRA, or Agile methodologies Exposure to Linux toolset and Microsoft Operating systems and/or scripting i.e., Bash or PowerShell Experience with JavaScript Frameworks i.e., Angular, react, Vue.js, etc. Cloud environment i.e., AWS, Azure or GCP, etc. |
Knowledge and Skills | Computer systems savvy – Basic understanding of key concepts and facts pertaining to computers and other hardware, programming languages, commercial operating systems, web or database systems, network hardware and software, IT security and other IT system technologies. High level of self-motivation and drive to set, meet and exceed on goals and expectations. Curious and willing to learn – Proactively identifies new areas for learning; seizes learning opportunities and actively uses newly gained knowledge and skill on the job. Good communication skills – Communicates well both verbally and in writing. Able to explain and simply technical concepts and confidently convey information to stakeholders. Able to compile well-developed and visual reports. Able to work under pressure and under tight time constraints in a high-volume, fast-moving environment. Creativity and Innovation – Approaches situations with an open mind and demonstrates a unique way to solve problems as opposed to relying on others. Has integrity and takes accountability for actions and mistakes. |