Adam Johnson

Home | Blog | Training | Projects | Colophon | Contact


Teaching at DjangoCon Europe 2019

I run prepared and bespoke workshops, for small class sizes of around 10 developers. I normally teach in person as it makes discussion more open, but am happy to teach remotely if that’s better for your organization. I’m based in London, UK, but am happy to travel pretty much anywhere.

Prepared Workshops

I have material prepared for several workshops, although I tailor the level based on the participants:

Secure that Django Application!

This is a one-day workshop aimed at developers who have used Django on at least one project.

Django often “has your back” when it comes to security basics, but it is still a nuanced topic. You can’t make good security trade-offs unless you know what you’re trading off.

Participants work through several insecure Django applications, learn how each vulnerability exists, and activate the features that mitigate such attacks. This includes:

After this workshop, participants will have an understanding of the relative cost of vulnerabilities, the ease of mitigation, and where security is evolving both in Django and the browser.

I can adapt this workshop to other Python web frameworks.

This is based on my DjangoCon Europe 2019 talk “Django and Web Security Headers” (blog post) and my work on Django and django-cors-headers.

Working with the Python Open Source Ecosystem

This is a one-day workshop aimed at developers using Python who would like to engage more with the open source projects they use.

Much of the benefit of open source software is the ability to “see inside” the process, and even contribute back. But often it can feel like it’s hard to get a handle on what exactly is going on.

Participants will:

After this workshop, participants will be much better equipped to engage with the open source projects your organization is already using.

This is based on my work maintaining a open source projects and Django sprints that I’ve helped run at conferences, such as PyCon UK and the London Python Sprints meetup.


Adam has been a volunteer tech adviser to Omnifolio since 2015... His grasp of complex business logic is amazingly fast and, coupled with his extensive knowledge of Django under-the-hood, has suggested several seemingly minor code changes all resulting in significant performance improvements. He's generous and patient with his expertise and, more generally, a very friendly and thoughtful person to work with.

—Neil Bachelor, Founder @ Omnifolio

I haven't met any dedicated trainer/tutor other than Adam. He's a go-to person, regardless of your skillset he'll take his time to explain context and also give you the best techniques. I strongly recommend his service to anyone who needs it. He is very knowledgeable with an incredible personality and his teaching approach is just phenomenal. Look no further!

Noah Alorwu, Software Engineer and Community Builder, PSF Fellow

I'm hugely grateful to Adam for his excellent advice for building a new product with Django. His direct involvement in the Django project and his experience running Django in production at various organizations gives him valuable insights when making decisions for projects of all sizes and complexity.

Django developers of all skill levels will have something to learn from Adam. If your organisation is looking to improve developer processes or make important/difficult engineering changes I don't think there are many better people to help.

—Rupert Baker, founder of SharedGoals and TeamUp


If you’re interested in booking a workshop at your organization, please email so we can arrange a call.

If there is a topic you’d like to focus on, I’d also love to discuss arranging a bespoke workshop for you.

Public Workshops

I currently have no planned public workshops. I’ll announce these on my blog so please subscribe if you are interested:

Subscribe via RSS, Twitter, or email:

One summary email a week, no spam, I pinky promise.

The Fire of Knowledge