Mentoring & Teaching

I'm passionate about helping the next generation of software developers grow their skills and build meaningful careers in technology. Over the years, I have been fortunate to work with talented individuals and teams at a variety of stages in their journey.

Current Mentoring

We Think Code

I'm a second-year mentor for cohorts attending training at We Think Code, a non-profit coding school in South Africa. We Think Code provides free, world-class software engineering education to talented individuals who might not otherwise have access to such opportunities.

What I Do

  • Guide students through complex programming concepts
  • Code reviews, ensemble and pair programming sessions
  • Career advice and industry insights
  • Help students transition from bootcamp to professional roles

STEM Ambassador

As a STEM Ambassador, I specialize in supporting teachers who are called on to deliver coding sessions for students, helping them to get familiar with the ideas of physical computing, python and building hands-on, creative projects that make technology approachable and fun.

Activities include

  • School visits and coding workshops
  • micro:bit programming sessions
  • Encouraging underrepresented groups in tech
  • Making programming accessible and engaging

My Mentoring Philosophy

  • Start with the fundamentals: Solid basics in programming, testing, and problem-solving create a strong foundation for any technology stack.
  • Learn by doing: The best way to understand code is to write it, break it, and fix it. I encourage hands-on experimentation.
  • Embrace failure as learning: Every bug is a lesson, every failed test is feedback, and every refactoring teaches you something new about your code.
  • Test-driven thinking: Whether it's formal TDD or just thinking about how to validate your work, testing mindset improves code quality and developer confidence.
  • Continuous improvement: Technology changes rapidly, but the principles of good software development remain consistent. Focus on learning how to learn.

What I Can Help With

Technical Skills

  • Languages: .NET, JavaScript, React, Python, C/C++, micro:bit programming
  • Practices: Test-Driven Development, Agile methodologies, code refactoring
  • Architecture: Software design patterns, legacy code modernization
  • Tools: Version control, debugging, continuous integration

Career Development

  • Transitioning from bootcamp to professional developer
  • Code review best practices
  • Building a professional portfolio
  • Interview preparation and technical discussions
  • Finding your first job in tech
  • Growing from individual contributor to technical leadership

Behavioural Skills

  • Problem-solving approaches
  • Communication in technical teams
  • Working with legacy codebases
  • Mentoring others (paying it forward)
  • Conference speaking and community involvement

Mentoring Approach

I believe in collaborative learning - while I bring experience to the relationship, I'm always learning from the fresh perspectives and creative solutions that mentees bring.

  • Regular check-ins: Whether weekly or bi-weekly, consistent contact helps maintain momentum and address challenges as they arise.
  • Goal-oriented: We work together to define clear, achievable objectives and track progress toward them.
  • Real-world focus: I try to connect everything back to practical, professional scenarios you'll encounter in your career.
  • Safe space for questions: No question is too basic or too advanced. Creating an environment where you feel comfortable asking anything is essential.

Success Stories

Over the years, I've had the privilege of watching many talented individuals grow from nervous beginners to confident professionals. Some have landed their first developer jobs, others have been promoted to senior roles, and a few have even started mentoring others themselves.

The most rewarding part isn't just seeing technical growth, but watching people discover their passion for creating software that makes a difference.

Interested in Mentoring?

While my schedule varies depending on current commitments, I'm always interested in hearing from people who are serious about growing their software development skills.

I work best with mentees who are:

  • Self-motivated and willing to put in the work
  • Open to feedback and constructive criticism
  • Interested in writing clean, tested code
  • Eager to learn fundamentals, not just the latest frameworks

Current availability: Due to my existing commitments with We Think Code and other responsibilities, I have limited slots for new mentees. However, don't let that stop you from reaching out - I'm happy to provide advice or point you toward other resources.

Get In Touch

If you're interested in mentoring or have questions about getting started in software development, feel free to reach out using the links at the bottom of the page. Even if I can't take on new mentees immediately, I'm always happy to provide guidance or connect you with other resources in the community.