Never pay for any CBT, test or assessment as part of any recruitment process. When in doubt, contact us
Were a proudly South African team of professional designers and software engineers that specialise in producing apps. Our mission is to enrich peoples lives through simple, engaging and delightful applications that are of the highest technical and creative standards.
Overview
The Intermediate Software Engineer role is a mid-level position within the engineering team, responsible for implementing moderately complex features and optimising existing code. This role requires a solid technical background, good problem-solving skills, and effective communication skills to collaborate with cross-functional teams and drive projects to successful completion.
Key Responsibilities
Software Development:
- Implement moderately complex features, perform code optimisation, and refactor existing code
- Write clean, maintainable, and efficient code following best practices and coding standards
- Collaborate with team members to ensure successful completion of tasks
Technical Leadership:
- Provide guidance and support to junior developers, sharing knowledge and expertise
- Participate in design discussions and contribute to technical decision-making
Quality Assurance:
- Ensure code quality by conducting thorough testing and debugging
- Collaborate with the QA team to develop and execute test plans and test cases
Learning and Skill Development:
- Stay up-to-date with industry trends, best practices, and emerging technologies
- Continuously develop technical skills and adapt to new technologies as required
Collaboration and Teamwork:
- Collaborate with team members, contributing to planning, estimation, and prioritisation of tasks
- Work closely with other departments (e.g., Product, Sales, Marketing) to ensure alignment of engineering goals with overall business objectives
Other:
- Complete daily, accurate timesheets that is submitted weekly for review
Key Competencies
Technical Expertise:
- Demonstrate proficiency in one or more programming languages, frameworks, and tools
- Good understanding of software development methodologies, best practices, and design patterns
- Familiarity with system architecture, data structures, algorithms, and performance optimisation techniques
Leadership and Mentorship:
- Ability to guide, coach, and support junior developers
- Experience in contributing to cross-functional teams and fostering collaboration among team members
Project Management:
- Good organisational and planning skills, with the ability to manage multiple tasks concurrently
- Ability to adapt to changing priorities and maintain focus on project objectives
Communication and Collaboration:
- Good written and verbal communication skills, with the ability to convey complex technical concepts to both technical and non-technical stakeholders
- Good interpersonal skills, with a focus on building rapport and fostering teamwork
Problem Solving and Critical Thinking:
- Good analytical and problem-solving skills, with the ability to identify and address complex technical challenges
- Skilled in evaluating trade-offs and making informed decisions based on available data and resources
About You
At Glucode we value individuals who are proactive and have a strong sense of responsibility. We encourage teamwork and collaboration, but we also believe in giving our employees the freedom to take the initiative and work on individual projects.
The ideal candidate for this position is someone who is passionate about building apps that will have a positive impact on users' lives. You should have a strong background in programming and be able to demonstrate proficiency in a variety of programming languages. Knowledge of Flutter is a plus.
Overall, the ideal candidate for this position is someone who is passionate about technology, has a strong work ethic, and is committed to delivering high-quality work that will have a positive impact on users' lives.
Core Requirements
- BS/MS degree in Computer Science, Engineering, or a related field, or equivalent experience.
- Experience in Objective-C/Swift/UIKit and other native iOS frameworks is mandatory.
- 3-5 years of experience in iOS development.
- Experience in using AppStore Connect: This means that you have experience in the process of submitting and managing iOS applications in the App Store.
Required Skills and Attributes
- Knowledge and proficiency in OOP principles, general software development, and TDD.
- Ability to perform automation tests to ensure software quality and reliability.
- Proficiency in creating and using CocoaPods/SwiftPM to manage dependencies and simplify software development.
- Expertise in source control systems and CI/CD to ensure smooth and efficient collaboration among team members.
- Demonstrated debugging and problem-solving skills to troubleshoot and resolve software issues.