PyCon Lithuania 2024

Maxim Danilov

Python/Django Senior Software Engineer, Solution Architect and Tech Speaker.

I start my career as a programmer specializing in embedded solutions in 1997, and grow to the role of Chief Technology Officer in 2023. Through many successful projects, I gained a robust understanding of various software development paradigms. After more than 10 years as a code mentor, I finally earned the title 'Super Mentor in Engineering' in December 2023.


Twitter handle. For example (@handle-name)

https://twitter.com/danilovmy

Notable open source projects that you contribute to. Add URLs, one per line.

https://github.com/pydantic/pydantic (issues V2)
https://github.com/lepture/authlib (bugs, issues, pr)
https://github.com/danilovmy/django-tof (owner)
https://github.com/tiangolo/fastapi (issues)
https://github.com/denoland/fresh (issues)
https://github.com/denoland/deno (issues)
https://github.com/sublimelsp/LSP-ruff (issues)
https://github.com/pauloxnet/uDjango(issues)
https://github.com/django/django (issues, bugs, speaker)


Sessions

04-03
11:00
30min
Django FTL: Resolving bottlenecks on the path to high performance.
Maxim Danilov

Raw Django doesn't take the first places when comparing the performance of Python web frameworks. However, it can be pretty fast if we identify the bottlenecks and find ways to avoid them. Comparing performance and implementation complexity before and after gives us an understanding of which features should be implemented and what can be skipped.

Web
Room 111
04-03
13:30
25min
µDjango 2.0, an asynchronous microservices technique.
Maxim Danilov

A standard Django project involves working with multiple files and folders from the start. Let's see how the work with a Django project changes when we have only one file. This solution automatically transforms Django into a microservice-oriented async framework with "batteries included” philosophy.

Web
Room 203
04-04
15:00
45min
Simplifying large Python projects by distributing complexity.
Maxim Danilov

An overcomplicated project increases development and maintenance time.
If a complete redesign is not possible, we can distribute the complexity across the existing codebase.
If AI assistants cannot help us with this task yet, we should discuss manual methods and tools that can be useful.
Using examples of real large projects, we will discuss that despite different business types, geographical and social contexts, these projects share similar architectural mistakes and how they can be redesigned.

Python
Room 218