Software Engineering Manager- Remote
An NPO focusing on integrated learning experiences is looking for an experienced remote Software Engineering Manager to start as soon as possible for a fixed term contract until 31 December 2025. The suitable candidate must have a strong technical background (at least 6 years' as a senior Software Engineer) and be comfortable leading teams, guiding technical decisions and managing technical projects from conception to delivery. You have experience across the full development life-cycle, are confident in a Linux environment and understand the complexities of system architecture and design
PLEASE NOTE THAT NO CV'S WILL BE KEPT FOR FUTURE USE. IF YOU DO NOT HEAR FROM US WITHIN 3 WEEKS PLEASE CONSIDER YOUR APPLICATION AS UNSUCCESSFUL.
Responsibilities
ONLY APPLY IF YOU HAVE THE NECESSARY QUALIFICATIONS:
- Lead, mentor and develop a high-performing development team, fostering a culture of collaboration and continuous improvement.
- Collaborate with the development team to design scalable and maintainable software solutions that align with business objectives.
- Manage the full software development life-cycle, ensuring that projects are delivered on time, within scope and with high quality.
- Oversee the development and adherence to coding standards, best practices, and processes (e.g. code reviews, testing, documentation).
- Actively participate in recruiting, interviewing and onboarding new software engineers, ensuring the team maintains a high standard of talent.
- Work closely with cross-functional teams (e.g. product, EdTech, commercial) to ensure alignment between technical solutions and business needs.
- Stay up to date with emerging technologies and industry trends and implement improvements to enhance the team's productivity and the quality of solutions.
- Oversee production systems, ensuring high availability and reliability. Coordinate with the development team to resolve technical issues, including after-hours support if necessary.
- Foster the professional growth of the development team by identifying areas for upskilling and ensuring access to resources that support learning and development.
Requirements
- Proven experience leading and managing software development teams, including mentoring and coaching engineers.
- At least 6 years of experience as a senior software engineer, with a solid technical background in development and system architecture.
- Demonstrated experience in designing, deploying and maintaining scalable software solutions in production environments.
- Strong problem-solving, analytical and communication skills, with the ability to collaborate effectively with both technical and non-technical stakeholders.
- Experience working in Linux/Unix environments, with proficiency in monitoring and maintaining production servers.
- Familiarity with containerisation and orchestration tools (e.g. Docker, Kubernetes), along with continuous integration and delivery practices (e.g. CircleCI).
- Expertise in Python and experience with web frameworks (e.g. Pyramid, Django, Flask) is highly desirable.
- Proven track record of working with relational databases (e.g. PostgreSQL) and optimising complex SQL queries.
- Ability to manage multiple projects and priorities in a fast-paced environment while ensuring high-quality standards.
- A bachelor's degree in Computer Science, Information Systems, Engineering, or a related field (or equivalent practical experience).
- Passionate about leading and mentoring software engineers to reach their full potential.
- Balance technical leadership with project management, ensuring the team is aligned and productive.
- Hands-on when needed but trust your team to take ownership of their work.
- Value technical excellence but you're pragmatic in your approach to building solutions.
- Respect the core fundamentals of Computer Science (like design patterns), but you encourage innovative thinking to solve complex problems.
- Foster a culture of continuous learning and improvement.
- Comfortable working in a 100% remote environment.
Desired Skills
- Python (Pyramid
- Flask
- SQLAlchemy
- Jinja)
- PostgreSQL and ClickHouse
- Redis and Memcached
- Docker for containerisation
- Kubernetes for orchestration.