Principal Engineer / Software Architect
- London
- Permanent
- Full-time
- System Design & Architecture: Lead the design and development of scalable, reliable, and secure software architectures. Translate business requirements into technical solutions that align with company goals and industry best practices.
- Technical Leadership: Provide technical guidance and mentorship to engineering teams, ensuring adherence to architecture standards and best practices. Lead code reviews, technical discussions, and decision-making processes. Create task lists that breakdown new features to enable work to be distributed across engineers and tracked.
- Collaboration: Work closely with analysts, engineers, and other stakeholders to understand system requirements, constraints, and objectives. Ensure the architecture supports future growth and flexibility.
- Technology Selection: Evaluate and recommend appropriate technologies, frameworks, and tools for software development, ensuring that the system is innovative and cost-effective.
- Quality Assurance: Ensure software designs and implementations follow best practices, coding standards, and appropriate testing methodologies. Guarantee high performance, security, and scalability of the architecture.
- Documentation & Communication: Create clear, comprehensive, and maintainable documentation for system architectures, workflows, and technical specifications. Communicate effectively with non-technical stakeholders to ensure understanding of architectural decisions.
- Continuous Improvement: Stay updated on emerging technologies and industry trends to keep our systems modern and ahead of the competition. Drive innovation and continuous improvement in software architecture and development processes.
- Degree in Computer Science, Software Engineering, or a related field.
- Many years of experience in software development to an advanced standard likely at a Principal Engineer level.
- Proven experience in designing and developing complex systems, preferably with exposure to a Software as a Service deployment model.
- Proficiency in modern programming languages and frameworks like TypeScript, JavaScript, NodeJS, Angular and Swift.
- Experience using the Swift Vapor framework for server side API development would be particularly advantageous.
- Strong understanding of software architecture principles, patterns, and design methodologies.
- Experience with cloud platforms (Azure, AWS, GCP) and microservices architecture.
- Knowledge of databases, both relational (SQL) and NoSQL.
- Familiarity with DevOps practices and tools (CI/CD, containerization with Docker, Kubernetes).
- Understanding of Agile methodologies and best practices.
- Experience with distributed systems, high-availability designs, and performance optimization.