Role Summary
The Intermediate Software Engineer role presents an opportunity to take on more responsibility and become a dependable contributor to the development team. This role involves designing and developing sophisticated applications, writing clean and efficient code, testing and debugging software, and collaborating with cross-functional teams to deliver high-quality products. As an Intermediate Software Engineer, you will also mentor Junior Software Engineers, promote best practices, and contribute to the continuous improvement of our development processes.
Key Responsibilities:
- Design and develop complex software applications, ensuring scalability, performance, and maintainability.
- Test and debug code to ensure reliability and functionality, adhering to company standards.
- Collaborate with team members, including project managers, designers, and other engineers, to deliver solutions aligned with business goals.
- Document code and maintain clear, organised records of project progress and updates.
- Meet project deadlines while managing tasks effectively in a dynamic environment.
- Provide technical support for applications in production, troubleshooting and resolving issues.
- Mentor Junior Software Engineers by offering guidance, code reviews, and technical advice.
Key Skills and Qualifications:
- Solid understanding of software design patterns and the ability to apply them effectively to solve complex problems.
- Proficient in working independently with minimal supervision, while also recognising when to seek guidance or support.
- Experience with source control tools (e.g., Git) and familiarity with cloud services (e.g., Azure, AWS, or GCP).
- Strong knowledge of C# / Angular, databases, including the ability to write advanced SQL queries.
- Familiarity with DevOps practices, including CI/CD pipelines, and collaboration with operations and infrastructure teams.
- Proficient in writing and maintaining unit tests to ensure software quality and reliability.
- Strong communication and collaboration skills to work effectively in team settings.
Preferred Qualifications:
- Bachelor's degree (diploma) in Computer Science, Software Engineering, or a related field (or equivalent experience).
- 4+ years of software development experience.
- Knowledge of Agile or Scrum methodologies.
- Previous experience mentoring junior engineers or working in a leadership capacity.