A separate professional service

Practical Software Development Mentoring

One-to-one coaching, team learning sessions and focused technical workshops grounded in the code, decisions and production lessons of a working engineer.

I do not offer a performance of knowing everything. I help people slow a difficult subject down, build the mental model, practise it in code and learn how to investigate when the answer is uncertain.

Ways we can work together

Learning shaped around a real need

A useful session starts with where you are, what you need to accomplish and what evidence would show that the idea has become understandable.

One-to-one mentoring

A focused space for a developer to unpack a concept, review code, prepare for a technical conversation, plan a project or build confidence through guided practice.

Team workshops

Collaborative sessions for a team adopting a pattern or technology: short explanation, worked example, questions, trade-offs and an exercise connected to the team’s environment.

Code and architecture clinics

Bring a design, pull request or technical problem. We trace the behaviour, make assumptions visible and leave with practical options rather than a generic checklist.

Established mentoring strengths

Subjects grounded in commercial practice

These are the areas where I can draw on substantial delivery, support and leadership experience.

C# and the Microsoft .NET stack

ASP.NET Core, Web API and REST

SQL Server, EF Core and performance

Angular and full-stack integration

Business workflows and application design

Debugging and production investigation

Code reviews and maintainable code

Technical leadership and junior development

Guided learning in newer areas

For React, Blazor, Infrastructure as Code, Microsoft Foundry (formerly Azure AI Foundry), RAG and agents, I offer collaborative guided learning based on current study, working examples and published material. I make that level of experience clear before a session.

How I teach

Explain, demonstrate, practise, reflect

  1. 1. Establish the mental model.

    We define unfamiliar terms and connect them to something you already understand.

  2. 2. Work through code.

    We build or inspect a small example and predict its behaviour before running it.

  3. 3. Explore trade-offs.

    We discuss where the approach helps, where it costs, and what simpler alternative exists.

  4. 4. Leave with a next step.

    You finish with notes, an exercise or a practical change you can apply independently.

What informs the sessions

Commercial experience, active practice and written material

I have supported colleagues through pairing, code reviews, technical guidance and knowledge sharing during commercial roles. That experience matters because teaching software development is rarely about syntax alone; it is about helping somebody make a decision in context.

The published Journal provides a growing curriculum that can be taught one-to-one or adapted for a team. It also lets you inspect how I explain before arranging anything. Sessions can use those articles as preparation, then spend live time on questions, code and application.

Mentoring is collaborative. I will say when I need to verify something, and I expect learners to challenge an explanation. The goal is not dependence on a mentor; it is stronger independent reasoning.

Tell me what you want to understand or improve

Share the topic, audience, current experience and preferred format. I can suggest an honest, focused session rather than sell a generic package.

Contact me about mentoring