On a scale of 1 to spaghetti code, how complicated was your last project?

Do you feel that each time you start right, but then things suddenly get messy? Or maybe even starting "right" is difficult? You check some tutorials, but they recommend different tools, and you end up even more confused?

Wouldn't it be better to have a solid framework for your next project? A project structure that can be extended without turning into a mess? Simple and robust dependency management tools that will work for years? Tests that are actually fun to write and documentation process that automates as much as possible?

Start building modern Python projects!

Material examples
Example of the workshop's materials

"Modern Python Projects" is a 2-day-long on-site workshop where you learn how to build a good Python project. It includes the following modules:

  1. Python & packages management

    We start by learning how to switch between different Python versions easily. Then, how to manage dependencies and make sure they don't break in production. If you don't understand how to use virtual environments or what's the point of using them, the practical exercises will help you clarify everything.

  2. Project structure

    There is no blueprint for a "perfect Python project", but I will show you some good starting points for typical scenarios (like building a Flask website or a Python module). You will learn how to use one of the most popular tools to bootstrap any type of Python project. Throughout the workshop, you will be building a simple project that you can reuse in the future..

  3. Tests

    • If you don't write tests, I will show you how easy it is to start.
    • If you already do, I will show you features that can further improve your tests like mocking, factories, and useful plugins.

  4. Documentation

    Writing documentation is often the least favorite and most neglected part of software development. But you can automate a lot of it, and I will show you how to do this. You can build your documentation each time you push to GitHub/GitLab. You can automatically generate API documentation from the docstrings in the source code. And you can even test the code examples to make sure they still match the actual code!

  5. Deployment

    If your projects take a lot of time to deploy and require many manual steps - that's because deployment is difficult. I will show you two different ways how to make it easier and automate most of it:

    • Deploying to a platform-as-a-service like Heroku (when you want to deploy something fast)
    • How to dockerize your application and what you can do with that Docker image?

You will also get access to a video tutorial that explains how to set up the VS Code editor for working with Python.

Is it hands-on?

Of course! Not only will you be building a real Python project throughout this workshop, but there are also additional exercises to help you practice using all the tools and techniques.

You will be learning from an experienced Python developer and trainer using battle-tested tools that helped to create many successful projects.

Lessons learned during those two days can be easily applied to any existing project.

Not convinced? Check out the "demo" version from PyCon 2020

For PyCon 2020, I have prepared a two-hour-long version of this workshop. It helps developers get up to speed writing Python projects, but it focuses more on setting up their tools, like the "VS Code" code editor. Check it out to see if you enjoy my teaching style and if it's something you would be willing to spend more time (and money) on.

What did others say about this workshop?

Sebastian Witowski's - Modern Python Developer's Toolkit Pycon talk is probably worth one month of education for an intermediate Python developer. I highly recommend it!

Sam Ezebunandu (Twitter)

Fantastic presentation. I'm amazed at how much useful info author managed to cram into a two and a half hours long video. If you're a beginner to intermediate python user this video will literally save you days' worth of research by pointing you in the right direction.

Aleksandar Kostic (YouTube)

Awesome presentation. Cover everything from A to Z in Python using modern Python tools. Great job!

Vlad Bezden (YouTube)

The above tutorial alone is enough to help you create solid Python projects using modern tools. If you want to learn even more tools and techniques, practice them with hands-on exercises under the guidance of an experienced Python developer - let's get in touch!

Can it be customized?

Yes, to a certain extent. "Modern Python Projects" workshop is using Flask (for the mini-project that you will be building), pytest (for testing), and Sphinx (for documentation). If you are using something else (Django instead of Flask, MkDocs instead of Sphinx), let me know, and I can adjust the workshop accordingly. If there are too many changes, I can:

  • Prepare a custom workshop for you (if multiple developers are involved)
  • Provide advice for your next project as part of my regular consulting service

Workshop details

Duration: 2 days
Language: English
Cost: 6,000-8,000€ + VAT (depends on the location and requested customizations). Please contact me for an individual estimate
Location: On-site (at your company)
Maximum group size: 12-15 people
Requirements: Basic knowledge of Python

Interested? Let's talk!

When would you like to schedule the workshop, for how many people and any other information that can help us quickly schedule the workshop for you.