Welcome! I'm Lorna Jane Mitchell: web development consultant, trainer and author. I work mostly with PHP, git and the LAMP stack - plus the various excellent technologies associated with it. Part of the time, I am Principal Developer for Siftware, the other part of the time I spend on open source activities, consultancy and training.

This site is a combination of a blog, a central place to keep links to my books, talks and other resources, and also a place to put a bit of information for anyone who wants to work with me. If you have any questions, or if you'd like to work with me, then please let me know.

Work With Me

PHP Migration

Ready for new PHP but need a hand getting your application upgraded? I am happy to assess your codebase and advise on upgrade paths.


If your team needs to gain or improve their technical skills, I can help. Get in touch with me and we'll work out a package that fits your needs.


With buckets of LAMP experience, I can help your team work through the tough spots - and I love to lend a safe pair of hands to help others along.

PHP Services

Time for better tools or better practice? Time for a new version of PHP? Let me lend a hand to make your transition go smoothly.

From The Blog

Git Won't Check Out A Path It Autocompleted

One of my git repositories has developed a tendency to refuse to checkout a feature branch locally that exists on the remote repo. My git bash completion works, but then strange things happen! It turned out to be that I had two remotes with the same refspec, so I thought I'd write down the behaviour I saw and hopefully help someone else to fix this problem faster if they see it. Continue reading

Why My Open Source Project Needs a Code of Conduct

I'm an open source project maintainer, working on the projects associated with joind.in, and recently we added a Code of Conduct to all our projects (we have quite a few as you can see from our github organisation page https://github.com/joindin).

I feel the same way about codes of conduct for open source projects as I do about codes of conduct for events. You can absolutely run a totally safe and effective event without one, but by having one you make very clear what your expectations are - and in turn this manages the expectations of the people attending that event. Continue reading

PHP: Calling Methods on Non-Objects

PHP has subtly changed the wording of this error between various versions of the language, which can trip up your log aggregators when you upgrade so I thought I'd give a quick rundown of the changes around the "call to member function on non-object" error in PHP, up to and including PHP 7 which has an entirely new error handling approach. Continue reading

Talks, Articles, Podcasts, and More


ChatOps With Hubot

VelocityConf, October 2015

Pick Your Git Branching Strategy

GitHub Community Meetup, October 2015

Git and Github Fundamentals

OSCON, October 2015

What To Expect From PHP 7

OSCON, October 2015

ChatOps With Hubot

TechnologyUG, October 2015

API Survival Kit Workshop

FOWA, October 2015