I help organisations to build effective development teams by adopting modern software engineering practices.

My preferred way to work is to augment a team as a developer/coach, in order to drive improvement from the inside.

Contact Me for my availability and rates.

Below are examples of some of the area I can advise on:

Test-driven Development

  • An effective Red/Green/Refactor cycle
  • Faster test feedback
  • Writing fast, clear and more maintainable tests

Automated Testing

  • Adding tests to a legacy codebase
  • Speeding up a slow test suite
  • Avoiding fragile tests

Workflow

  • Making effective use of Git and GitHub
  • Techniques to avoid difficult merge conflicts

Architecture

  • Decoupling from frameworks
  • Making use of Service Objects

Code Review

  • Introducing a strong culture of code review
  • Providing feedback

Refactoring

  • Restructuring code when there are no tests
  • Improving code without fear of introducing defects

BDD (Behaviour-Driven Development)

  • Improving collaboration
  • Specification by Example
  • Executable Specifications (e.g. Cucumber)

Continuous Integration and Continuous Deployment

  • Reducing cycle time
  • Deploying with confidence

Automated Code Quality

  • Measuring test coverage
  • Verifying coding style
  • Detecting code smells
  • Identifying security issues

Experience

Check my Past Work to see the clients I’ve worked with.

Location

I have recently relocated to Toronto as a Permanent Resident, but will consider travel or remote work.