Hero Background

All standalone technical workshops

Here is the full menu of the standalone technical workshops we have on offer. More are on the way!

Corporate solutions

If you are looking for corperate or team solutions then you might be interested in one of the following:

Standalone Technical Training

Apache Airflow - Basics to advanced

Automate data and task workflows with Apache Airflow! From the basics of task scheduling to advanced techniques for managing complex task interdependencies, this workshop will guide you through everything you need to know to get the most out of Airflow.

Duration: 2 Days

Level: Beginner to Advanced

Details

Apache Airflow was originally created by the nice folks at Airbnb. Airbnb was growing rapidly and, as they grew, so did their task and data pipeline orchestration needs. They created Airflow to solve their own urgent needs. And then they open-sourced it.

Airflow is a kind of task scheduler, but with a lot of super powers. Here are a few of things it's good at:

  • Complicated Task Interdependencies: You can build complicated task structures to handle many different needs. In Airflow these are called DAGs - Directed Acyclic Graphs. You can do some pretty hardcore things with these
  • Logging and Monitoring: You can see what tasks ran and when, and exactly what happened
  • Retries: You can set tasks up so that they retry themselves, and you can rerun tasks and entire workflows whenever you want to
  • Secret Management: Automated tasks often need credentials, and those need to be kept safe
  • Scale: Airflow allows you to create as many workers as you need, and those workers can be spread across many computers/vms/pods/whatever. There isn't an upper bound
  • Usability: It has a really nice UI that you can interact with to view and control things
  • Extendable: Airflow is designed for flexibility

One of the really cool things about Airflow is that DAGs are authored using Python code. A DAG is a graph of tasks and their interdependencies. Since DAGs are written with normal Python code (instead of some kind of configuration language), you can be quite creative about how you author them.

What We Will Cover

This workshop will take you from the basics to advanced concepts, helping you to get to grips with some of Airflow's weirder parts for building, scheduling, and managing workflows at any scale. We'll show you how to use Airflow to create reliable, maintainable data pipelines, automate tasks, and troubleshoot complex workflows effectively.

  • Introduction to Workflow Orchestration and Apache Airflow: Explore the role of Airflow in data engineering and why it’s a popular choice for building and automating complex workflows.
  • Installing and Configuring Airflow: Get started with Airflow by setting up a development environment and learning the essentials of configuring the platform.
  • Working with DAGs (Directed Acyclic Graphs): Learn how to define workflows using DAGs and explore their structure to create clear, maintainable workflows.
  • Creating and Scheduling Tasks: Discover the basics of creating tasks with Python operators, dependencies, and setting up scheduling rules.
  • Managing Data Pipelines: Build modular and reusable pipelines by breaking workflows into smaller tasks and organizing code efficiently. Exploring the importance of Idempotent tasks
  • Error Handling and Retries: Learn to manage failures and set up retry logic to make workflows more resilient and fault-tolerant.
  • Working with Airflow Operators: Explore the range of built-in operators and use custom operators to tailor workflows to your needs.
  • Managing Dependencies and Task Concurrency: Set up task dependencies and manage parallel execution to optimize workflow performance.
  • Advanced Scheduling with CRON and Timetables: Deepen your experience with scheduling and configure custom schedules to fit specific data needs.
  • Managing Secrets and Credentials: Securely handle credentials and API keys using Airflow’s connection management and environment variables.
  • Workflow Monitoring and Logging: Track and troubleshoot workflows with Airflow’s logging and monitoring tools, helping you spot issues before they become problems.
  • Dynamic DAGs: Implement dynamic DAG generation for flexible workflows. You can write Python code to generate DAGs for you

How the Workshop Will Work

You will be introduced to concepts in a hands-on way. Every concept will be practised and implemented.

You will also be given DAG challenges to solve along the way to build up and solidify your skills.

Prerequisite Knowledge

Participants need to be comfortable writing Python code.

Prerequisite Software

Please be aware that Airflow only works on certain operating systems. Here is a link to the official docs:

Installation Prerequisites

Tell me about the next one Request a Group Booking

Building RESTful APIs with Django Ninja

Learn to build fast, modern APIs with Django Ninja's type-safe, intuitive framework. Work with automatic documentation, data validation, authentication, and testing while creating production-ready RESTful APIs that power modern applications.

Duration: 2 Days

Level: Intermediate

Details

Need to build fast, clean, and well-documented APIs? Django Ninja makes it easy. In this hands-on workshop, you’ll learn how to design and build RESTful APIs using Django Ninja’s intuitive, type-hint-friendly interface. We’ll cover routing, data validation, authentication, and documentation—giving you everything you need to power modern frontend apps or mobile clients with a robust backend.

Why Django Ninja?

While Django REST Framework has long been the go-to solution for APIs in Django, Django Ninja offers a fresh, modern approach. Inspired by FastAPI, it brings type hints, automatic documentation, and intuitive syntax to Django API development. It's fast to write, fast to run, and produces APIs that are easy to understand and maintain.

This workshop focuses on practical API development patterns that you'll use in real projects.

What We Will Cover

  • Getting Started with Django Ninja: Installation, setup, and your first API endpoint
  • Type-Safe API Design: Leveraging Python type hints for automatic validation and documentation
  • Request & Response Handling: Working with path parameters, query parameters, and request bodies using Pydantic models
  • Data Validation: Built-in validation, custom validators, and error handling
  • Authentication & Authorization: JWT tokens, API keys, and permission-based access control
  • Database Integration: Connecting your APIs to Django models with efficient queries
  • API Documentation: Automatic OpenAPI/Swagger documentation generation
  • Testing APIs: Writing comprehensive tests for your endpoints
  • Error Handling: Proper HTTP status codes and custom exception handling
  • API Versioning: Strategies for maintaining backward compatibility
  • Performance Optimization: Caching, pagination, and query optimization

Modern API Development

This isn't just about learning Django Ninja syntax—you'll explore modern API design principles:

  • RESTful resource design
  • Proper HTTP status code usage
  • API security best practices
  • Documentation-driven development
  • Contract-first API design

Prerequisite Knowledge

This course expects solid knowledge of Django fundamentals including models, views, and URL routing.

Basic familiarity with REST APIs and HTTP concepts is helpful. Some experience with type hints in Python is beneficial but not required — we'll cover what you need to know.

Tell me about the next one Request a Group Booking

Deploying your Django application with FlyIO

Based on popular demand! Deploying a Django application can be a challenging task, especially the first time around, with many steps and configurations to navigate. In this hands-on workshop, we’ll guide you through deploying your Django project, making it accessible on the web and ready for production use.

Duration: 1 day

Level: intermediate

Details

Deploying your Django application for the first time can feel daunting. From selecting a hosting provider to configuring your server, handling secrets, and ensuring security, there's a lot to tackle. This workshop will help you cut through the confusion and walk you through each step of getting your Django project live on FlyIO, a flexible and powerful hosting platform. By the end, you’ll have your own deployed Django application, complete with database setup, secure static file handling, and optimized performance.

What We Will Cover

In this workshop, we’ll cover a complete deployment workflow, ensuring your application is production-ready. Topics include:

  • Fundamentals of Application Deployment: Learn the basics of deploying a Django application, from initial setup to going live.
  • Static File Hosting: Configure static file handling to serve CSS, JavaScript, and other resources efficiently.
  • Setting Up a PostgreSQL Database: Configure a cloud-based PostgreSQL database to handle your application’s data.
  • Performance Optimization: Explore caching strategies and performance tweaks that can improve load times and responsiveness.
  • Managing Secrets and Environment Variables: Securely manage sensitive information like API keys and database credentials.
  • Domain Setup and HTTPS Configuration: Set up a custom domain name for your application and configure HTTPS to ensure secure communication.
  • Monitoring and Logging: Implement monitoring and logging to gain visibility into your app’s performance and troubleshoot any issues that arise in production.

Who Should Attend

This workshop is designed for developers with intermediate experience in Django who are ready to take the next step and deploy their applications. Basic knowledge of Django is required, but prior experience with cloud deployment is not necessary.

Join us to turn your Django project into a live, production-ready application!

Tell me about the next one Request a Group Booking

Django Database model design

Database design is at the heart of many Django applications. This hands-on workshop will introduce you to the basic concepts, and then build up your skills and experience through a series of exercises of increasing difficulty.

Duration: 2 Days

Level: Intermediate

Details

Database design is at the heart of many Django applications, and learning how to structure your models effectively can make or break your project. In this hands-on workshop, you’ll learn how to craft Django database models that meet real-world requirements, maintain performance, and remain easy to update as your application grows.

What We Will Cover

We'll start off with foundational concepts - in order to reason about Django models, it's important to have a grasp of the underlying structures. We'll start off with exploring the basics of SQL tables, relationships and queries.

Once the foundations are in place, we will move through a series of examples and challenges of increasing difficulty levels.

  • Introduction to SQL Core Concepts: Django models represent SQL tables. Here we will cover the core concepts of SQL
  • Introduction to Django Models: Learn the basics of defining models, field types, and how they relate to SQL
  • Relationships and Data Integrity: One-to-one, one-to-many, and many-to-many relationships with practical examples and best practices
  • Design Patterns for Common Use Cases: Explore patterns for handling hierarchical data, tagging systems, audit trails, and more
  • Advanced Querying With Django ORM: Write efficient queries using Django ORM methods, custom managers, and query optimizations
  • Data Validation and Constraints: Use validators, constraints, and database-level checks to ensure data quality
  • Migrations and Schema Evolution: Understand how to manage database migrations effectively and avoid common pitfalls during schema changes
  • Best Practices for Model Design: Learn tips for scalability, maintainability, and aligning your models with application requirements

How the Workshop Will Work

You will be introduced to concepts in a hands-on way. Every concept will be practised and implemented.

You will also be given challenges to solve along the way to build up and solidify your skills.

Prerequisite Knowledge

Participants need to be comfortable writing Python code.

This workshop is designed for developers familiar with Django basics who want to deepen their experience with database modelling. It will be especially useful for people who have a project that they want to work on. There will be a lot of space for questions.

If you are not yet familiar with Django then you might take a little bit longer on some parts.

Tell me about the next one Request a Group Booking

Django core fundamentals

This workshop provides a comprehensive introduction to Django, covering its core components and how they work together to help you build dynamic, data-driven web applications.

Duration: 2 days

Level: Beginner to intermediate

Details

Django, the web framework for perfectionists with deadlines, is a high-level Python web framework that takes the hassle out of web development by providing a set of robust tools for building secure, scalable, and maintainable applications. This hands-on workshop will guide you through the core concepts of Django, demystifying its components and showing you how to use them to create powerful web applications.

From models and views to templates and forms, you'll learn how Django’s architecture fits together, and how to leverage its features to handle everything from user input to database interactions. By the end, you’ll explore not just how to use Django, but how it helps developers write clean, efficient, and reusable code.

What We Will Cover

Getting Started With Django

  • When to Use Django: How it compares to other web frameworks
  • Setting Up a Django Development Environment: Configure your local development setup
  • Creating Your First Django Project and App: Initialize new Django projects
  • Exploring the Structure of a Django Project: Understand Django's file organization

The Django MVT Architecture

  • Models: Defining your data structure and working with Django's ORM
  • Views: Writing functions to process user requests and return responses
  • Templates: Building dynamic HTML pages with Django's templating engine

Connecting to a Database

  • Fundamental mechanisms of how Django interacts with a database
  • Using migrations to manage schema changes over time.
  • Querying and updating the database using Django’s ORM.

Handling User Input With Forms

  • Building and validating forms in Django.
  • Handling form submissions and processing user data securely.
  • Creating custom form fields and validators.

Routing and URLs

  • Mapping URLs to views using Django’s URL dispatcher.
  • Using dynamic URLs to handle parameters and route flexibility.

Static Files and Media

  • Managing static assets like CSS, JavaScript, and images.
  • Handling user-uploaded files with Django’s media handling features.

Authentication and Authorization

  • Setting up user authentication with Django’s built-in system.
  • Managing user accounts, login/logout functionality, and permissions.

Django Admin Interface

  • Using the Django admin to manage data and app configuration.
  • Customizing the admin interface for better usability.

Best Practices in Django

  • Writing clean, reusable code with Django apps.
  • Structuring your projects for scalability and maintainability.
  • Debugging common issues and working with Django’s error messages.

Who Is This For

  • Python developers who are new to web development and want to learn Django.
  • Developers with some experience in web development who want to add Django to their toolkit.
  • Anyone looking for a structured, practical introduction to Django’s core features.

What to Expect

This workshop is hands-on and interactive, with guided examples and exercises to reinforce learning. By the end, you’ll have built a small but complete Django application, gaining the confidence and knowledge to start creating your own projects.

Tell me about the next one Request a Group Booking

Getting Git: A Beginner’s Guide to Version Control and the Terminal

Git is a life skill. This workshop is designed for absolute beginners to help you build solid experience with Git, the tool that powers modern software collaboration. You’ll also gain confidence using the terminal, setting you up for success in managing your projects efficiently and collaboratively.

Duration:

Level: Beginner

Details

Git can feel intimidating at first, but with the right foundation, it becomes a powerful tool in your developer toolkit. This hands-on workshop will demystify Git and version control, focusing on key concepts, essential commands, and practical workflows.

You’ll learn to track changes in your code, collaborate with others, and recover from mistakes. Along the way, we’ll get comfortable using the terminal to execute Git commands and build habits for a smooth development workflow.

No prior experience with Git or the terminal is needed — just a willingness to lean into the learning!

What We Will Cover

  • What Is Version Control: Explore the purpose of Git and why version control is essential for developers
  • Working With the Git Graph Structure: To work effectively with Git, it's useful to be able to visualise what is happening under the hood
  • Getting Started With Git: Install Git, configure your environment, and create your first repository
  • The Git Workflow: Learn the three stages of Git (Working Directory, Staging Area, and Commit History) and how they work together
  • Essential Git Commands: Practice foundational commands like init, add, commit, status, and log
  • Branching Basics: Explore branches and why they’re crucial for collaboration. Learn to create, switch, and merge branches.
  • Undoing Mistakes: Discover how to undo changes safely with commands like checkout, reset, and revert
  • Connecting to Remote Repositories: Push and pull changes to/from platforms like GitHub
  • Introduction to the Terminal: Practice navigating the terminal, managing files, and running Git commands effectively
  • GitHub Fundamentals: GitHub is one of many online platforms that help you set up, manage and collaborate on Git repos. Learn the basics of this powerful platform and what it can do for you

Hands-On Exercises

Participants will work on interactive exercises to reinforce learning, including:

  • Creating and managing a new Git repository for a simple project.
  • Simulating a typical Git workflow: making changes, staging files, committing updates, and viewing history.
  • Experimenting with branching to work on features or bug fixes independently.
  • Resolving common issues like merge conflicts in a guided and approachable way.
  • Pushing a project to GitHub and collaborating with a partner on a small task.

Who Should Attend

This workshop is for anyone new to Git or the terminal. Whether you’re just starting out in programming, transitioning into development, or looking to boost your confidence in version control, this workshop will set you on the right path.

Tell me about the next one Request a Group Booking

Land Your Next Developer Job: Showcasing Skills and Building Trust

This short course is designed to help you honestly and effectively showcase your skills, build a strong portfolio, and earn the attention and trust of potential employers. Through practical advice and guided exercises, we’ll focus on crafting a standout online presence, sharing meaningful projects, and communicating your value as a developer—all without resorting to shortcuts or interview tricks.

Duration:

Level:

Details

In today’s competitive job market, many would-be developers try to hack the job market. Many rely on AI tools to generate false CVs and nonesense cover letters, many try to cheat at job interviews. This makes things risky for organisations looking to hire. This forces organisations to close doors on people with real potential, and to undercut their own ability to deliver value.

This workshop focuses on building job hunt strategies that focus on building trust and removing risk for employers.

In today’s competitive job market, authenticity and demonstrated skill stand out above all else.

This workshop focuses on helping developers build a solid foundation for their job search by presenting themselves honestly and professionally. You’ll learn how to create a portfolio that highlights your real-world abilities, write resumes and cover letters that connect with employers, and showcase your technical and communication skills in a way that earns trust.

The goal isn’t to game the hiring process — it’s to prepare you to step confidently into your next opportunity, armed with the tools and mindset to succeed.

What We Will Cover

The job hunt is not a single event, it's broken down into phases

Getting Noticed

  • How to Showcase Projects: Demonstrate your skills, problem-solving ability, and real-world impact
  • Crafting Clear Project Write-Ups: Highlight challenges, solutions, and results
  • Tips for Tailoring Your Portfolio: Align with your career goals
  • Writing Resumes: Focus on skills and accomplishments, not fluff
  • Demonstrating Soft Skills: Show collaboration and communication effectively
  • The Power of Community: Build meaningful professional relationships
  • Anti-Patterns and Resume Padding: Avoid common mistakes and false claims
  • Setting Up a Professional Portfolio: Create compelling site or GitHub profile
  • Using LinkedIn: Connect meaningfully with peers and potential employers

Searching For and Applying to Jobs

  • Prioritizing Your Efforts: What kind of job makes sense for you?
  • Keeping Track of Your Job Application Efforts: Organize and monitor your search
  • Structuring cover letters: Show genuine interest and alignment with a company’s mission.

The Interview

  • Exploring what employers are really looking for during technical assessments.
  • Practising how to explain your thought process and problem-solving approach.
  • Honest strategies for handling “I don’t know” moments with professionalism and curiosity.
  • How to answer questions in a way that builds confidence in your honesty and ability.
  • Showing growth potential through stories of learning and overcoming challenges.
  • Balancing confidence with humility to create a positive impression.
  • Mindsets and attitudes for success

Accepting a Job Offer

  • Evaluating offers holistically: Considering salary, benefits, company culture, growth opportunities, and work-life balance.
  • Asking clarifying questions to ensure you understand expectations, role responsibilities, and potential challenges.
  • How to negotiate respectfully and professionally, including when and how to ask for adjustments.
  • Exploring when to accept or decline an offer based on alignment with your goals and values.
  • Setting the tone for your new role: Expressing gratitude and preparing for a successful start.

Who Is This For

  • Developers actively seeking their first job or looking to advance in their careers.
  • Recent bootcamp graduates or self-taught developers ready to enter the job market.
  • Developers who want to showcase their skills authentically and build trust with employers.

What to Expect

This workshop is highly practical and collaborative, with hands-on exercises to refine your portfolio, write impactful resumes, and rehearse authentic interview techniques. By the end, you’ll have a polished toolkit to showcase your skills and the confidence to approach job applications and interviews with integrity.

You will be expected to interact with your peers - you will be giving people honest feedback about their work, and seeing different approaches to showcasing skills. Remember that this is about authenticity so there will be things to learn from each other.

Tell me about the next one Request a Group Booking

Modern frontend development with Django, HTMX, Tailwind, Playwright and AlpineJS

In this interactive workshop, you'll learn how to build a modern CRUD application using Django, HTMX, and AlpineJS. It's all about making web development faster, more fun, and accessible for backend developers. With a small group size and hands-on guidance, you’ll create your own project while exploring new tools and simplifying your workflow—all at your own pace.

Duration:

Level: Intermediate

Details

Once upon a time, if you wanted a truly modern web frontend experience for your Python web app you would have limited options. Many people would reach for heavy frontend tools and frameworks such as React, Vue or one of their many competitors. And those tools generally have their own recommendations around testing.

Times have changed - tools like HTMX and AlpineJS are taking Python Web dev by storm and simplifying the creation of modern frontends

These tools make full-stack web dev fast and fun, they simplify development, shrink code bases, and give backend devs the ability to do modern frontend work. In my personal experience, I've seen the adoption of these tools lead to massive productivity gains for junior and senior devs alike.

This workshop will walk you through the process of building and testing your own unique CRUD application with a rich and modern frontend.

Why HTMX Is Worth Learning

If you are interested in learning more about why HTMX is worth being excited about, here is a webinar that goes into some detail.

The Stack

We'll be using the following tools:

  • Django
  • HTMX
  • TailwindCSS
  • AlpineJS
  • Playwright

Prerequisite Knowledge

It would be useful if you are comfortable with the following:

  • Python: You should be comfortable writing basic Python code
  • Virtual environments
  • HTML

Why Django?

Django is brilliant. It's the web framework for perfectionists with deadlines. It's worth knowing about. And, for newer web developers, Django is an amazing teacher in its own right.

That said, if you are not into Django then that is fine! The focus of this tutorial is on building the frontend. The vast majority of what we cover in this tutorial can be used as is with other web frameworks. For example FastAPI, ExpressJS or similar.

Why CRUD?

90% of the web is CRUD. CRUD stands for Create, Read, Update and Delete. Once you know how to implement simple CRUD apps, you will be able to do quite a lot.

My Own Unique CRUD App?

The workshop will guide you through the process of building a specific application. You will be encouraged to choose your own adventure and make use of the skills covered to build your own project.

In previous workshops learners have worked on projects like:

  • A music store for independent creators
  • A household chore scheduler
  • A conference talk tracker
  • A personal learning pathway creator
  • Yet another todo list app
  • much more

You can do quite a lot with a CRUD app.

Tell me about the next one Request a Group Booking

Real-time frontends with Django-channels and HTMX

Build dynamic, real-time web interfaces using Django Channels and HTMX. Learn to create live notifications, chat systems, and streaming data features without heavy frontend frameworks. Perfect for developers who want to add real-time functionality to their Django applications while keeping things simple and maintainable.

Duration: 2 Days

Level: Advanced

Details

Modern web users expect dynamic, responsive interfaces—and Django can deliver. This practical workshop explores how to build and test real-time features using Django Channels and HTMX. You’ll learn how to push updates to the frontend without page reloads, enabling rich, interactive experiences like live notifications, chat, and streaming data — all without reaching for a heavy frontend framework.

Why Real-Time Django?

Traditional web applications rely on request-response cycles, but modern users expect instant updates. Whether it's live chat, real-time notifications, or collaborative editing, users want to see changes as they happen. Django Channels extends Django to handle WebSockets and other protocols, while HTMX lets you add dynamic behavior with minimal JavaScript.

This workshop isn't just about learning two technologies—it's about exploring how to architect real-time features that scale and remain maintainable.

What We Will Cover

  • Setting up Django Channels: Configure your Django project for real-time capabilities with proper ASGI deployment
  • WebSocket Consumers: Build consumers that handle real-time connections and message routing
  • HTMX Integration: Use HTMX to create seamless real-time UI updates without complex JavaScript
  • Channel Layers: Implement Redis-backed channel layers for multi-process real-time messaging
  • Authentication & Authorization: Secure your real-time features with proper user authentication
  • Testing Real-time Features: Write tests for WebSocket consumers and real-time functionality

Prerequisite Knowledge

This is an advanced course. Participants should be comfortable with Django fundamentals and have basic familiarity with HTMX.

You should be familiar with Django models, views, templates, and URL routing.

Tell me about the next one Request a Group Booking

Software Engineering Best Practices for Data Scientists and Research Engineers

Bridge the gap between research and production-ready code. Learn essential software engineering practices that make data science projects maintainable, scalable, and collaborative. Perfect for data scientists and researchers who want to build robust, professional systems.

Duration: 3 Days

Level: Intermediate

Details

Data science and research often begin with experimentation and rapid prototyping, but bringing these ideas to production requires different skills. This workshop bridges that gap by introducing essential software engineering practices that make data science and research projects maintainable, scalable, and collaborative.

Why Software Engineering for Data Science?

Many data scientists and researchers enter the field through academic paths or specific problem-solving contexts, missing crucial software engineering lessons that could significantly increase their impact, and save them from a lot of struggle. The difference between a working prototype and production-ready code lies in applying solid engineering principles.

This workshop focuses on practical techniques that add leverage to your data science work, enabling you to build systems that others can contribute to, maintain, and trust in production environments.

What we will cover

  • Reproducible Workflows: Building pipelines that produce consistent results across environments and team members
  • Code Organization & Architecture: Structuring projects for maintainability and collaboration
  • Testing Data Science Code: Strategies for testing models, data pipelines, and analytical code
  • Version Control for Data Science: Managing code, data, and model versions effectively
  • Environment Management: Dependency management, containerization, and deployment considerations
  • Code Quality & Readability: Writing clean, documented code that others can work with
  • Modular Design Patterns: Loose coupling, separation of concerns, and reusable components
  • Configuration Management: Handling parameters, secrets, and environment-specific settings
  • Error Handling & Logging: Building robust systems that fail gracefully and provide useful diagnostics
  • Performance Optimization: Profiling, optimization strategies, and scalability considerations
  • Collaboration Workflows: Code reviews, pair programming, and team development practices
  • Production Deployment: Transitioning from notebooks to production systems

Design for Production

This workshop emphasizes both good process AND good design:

  • Process: Version control workflows, testing strategies, and collaboration patterns
  • Design: Code architecture, modularity, and system design principles
  • Production Considerations: Scalability, monitoring, and maintenance requirements

Beyond Proof of Concept

Learn to build systems that scale beyond individual use:

  • Code that teammates can work with and extend
  • Pipelines that run reliably in different environments
  • Models that can be maintained and updated over time
  • Systems that handle edge cases and failures gracefully
  • Documentation that enables knowledge transfer

Prerequisite knowledge

This workshop is designed for data scientists and researchers with basic Python experience who want to improve their software engineering practices.

You should be comfortable with Python basics, have worked with data analysis libraries (pandas, numpy, etc.), and ideally have some experience with Jupyter notebooks. No prior software engineering experience is required.

Tell me about the next one Request a Group Booking

Understanding Django by Integrating AllAuth

Authentication systems need to be secure and user-friendly. Building them by hand is a lot of work, and not recommended. AllAuth is the go-to package for handling user authentication and account management. It is very versatile - AllAuth is very customisable and has an impressive list of features (including many social login options). But integrating and customising it is not exactly straight-forward

Duration:

Level: Intermediate to advanced

Details

Django-allauth is frankly brilliant. It provides robust, secure, fully-featured and flexible authentication out of the box. There is a good reason that it's the go-to authentication package for Django developers.

Many people hear about AllAuth and all it can do and then, when they try to dig in and integrate it into their application, they struggle and then move on to some other solution. This is partially because AllAuth is built to be highly super configurable - creating an easy-to-follow tutorial that shows each person how to hit their own use case and match their visual design is not so straight-forward.

The best way to get your head around it is to dig in the code, see examples of AllAuth in action, and experiment with different options. For many people this is intimidating. And many simply don't know how to get started.

AllAuth Is Not Unique

The skills needed to integrate AllAuth into an application are not unique to allAuth. Being able to dig through code and docs, and tweak and override things to work how you need them to is necessary when it comes to many advanced Django dev tasks.

Getting good at AllAuth makes you a better Django developer!

This workshop aims to get you to be the kind of person who can handle things like AllAuth integration with ease.

In this hands-on, practical workshop you will integrate and customise AllAuth in a realistic application. In doing so you will learn what it takes to integrate it into any application and you'll get comfortable in peeking under the hood to see how it works.

What We Will Cover

  • Installing and Configuring Django-AllAuth: Step-by-step guidance for setting up django-allauth in your project.
  • Navigating the Django-AllAuth Codebase: Yes, we'll be reading the source code to understand how it works! This is useful because customisation is not always obvious, digging around in the code can be very helpful
  • Customizing Templates: Learn to adapt Django AllAuth's default templates and styling
  • Social Authentication: Enable social logins
  • Customizing User Models: Extend Django’s User model with custom fields and integrate it with django-allauth.
  • Account Management: Explore features like email verification, password resets, and user account settings.
  • Authorization and Permissions: Once you know who a user is, the next step is to make sure they can only do what you allow them to do in your application

Learning From the AllAuth Code

The best way to learn to get AllAuth to dance is by looking at the AllAuth code. By peeking under the hood, we'll be able to get an idea of what the package maintainers think is important.

Prerequisite Knowledge

This workshop requires a solid grasp of Django's core concepts.

If you are new to Django you can still join in but it's important to realise that there will be a much steeper learning curve.

You can prepare for this workshop by completing Django's official tutorial

Tell me about the next one Request a Group Booking
See scheduled workshops