Experienced professional with a track record of aligning technology strategy with business goals. Expert at leading and managing cross-functional teams. Well versed in designing and implementing complex software systems. Expert in Agile Development, and in modern Software Engineering practices.
Expertise:
- Interim CTO, Director of Engineering, Head of Engineering, and Engineering Manager roles.
- Advising Senior Leadership on management, leadership, technology, and development processes.
- Leading multi-disciplinary delivery teams—both co-located and distributed.
- Recruiting, managing, coaching, mentoring, and training technical staff.
- Architecture, design, and hands-on implementation of complex software systems.
- Facilitating the elicitation and negotiation of requirements with multiple stakeholders.
- Reviving struggling projects to get them back on course.
- Technology Strategy.
- Digital Product Management.
- Agile Methodologies, including Large-scale Agile Development.
- (Distributed) mob programming, and pair programming.
- Team Topologies.
- OKRs.
- Automated Testing, Test Driven Development (TDD), Behaviour Driven Development (BDD).
- Continuous Integration, Continuous Delivery, Continuous Deployment.
- Cloud computing.
- Service-based architectures and Microservices.
- API Design and Management.
- DevOps.
- Technologies: Java, Kotlin, JavaScript, C++, Python, C#, Swift, Flutter, Groovy, Unix scripting, Docker, AWS, AWS Lambda, SQL, NoSQL, Jira, Confluence, Jenkins, Git, GitHub, GitLab, BitBucket.
Other professional interests:
- Frequent conference speaker, and organizer.
- Contributor to the book “97 Things Every Programmer Should Know” published by O’Reilly.
- Technical reviewer of several professional books.
- Member of the ACM, the IEEE Computer Society.
- Host for the Software Engineering Radio podcast