Your Journey to Software Mastery

Embark on an adventure of building projects and mastering software development with our simple yet comprehensive courses, brought to you by the visionary PyDjangoBoy.

        
# Learn Python, Django, PySpark, and read programming news, ebooks, software downloads, and blogs!
class CodeAdventures:
    def __init__(self, name):
        self.name = name

    def embark_on_journey(self):
        print(f"Welcome, {self.name}! Get ready for the code adventures, pydjangoboy!")

        try:
            # Learning and exploring different technologies
            technologies = ['Python', 'Django', 'PySpark']
            for adventure, tech in enumerate(technologies, start=1):
                print(f"Adventure #{adventure}: Exploring {tech}...")
                if adventure == 3:
                    print("Found some exciting projects to work on!")

            # Reading programming news, ebooks, and blogs
            print("Staying updated with the latest news and reading resources, pydjangoboy...")

            # Downloading software and reading blogs
            print("Downloading useful software and reading programming blogs, pydjangoboy...")

        except Exception as e:
            print(f"Oops! {e}. No worries, {self.name}! We'll troubleshoot our way out, pydjangoboy!")

        finally:
            print("Remember, the journey of learning is an adventure itself, pydjangoboy!")

# Create instances and start the coding adventures!
coder = CodeAdventures("pydjangoboy")
coder.embark_on_journey()

jaiveeru = CodeAdventures("jaiveeru")
jaiveeru.embark_on_journey()
        
    

Embark on a Journey of Discovery with PyDjangoBoy!

Dive into the world of possibilities and master the art of web development with PyDjangoBoy. Our carefully crafted learning path empowers you to grasp the essentials while skipping the unnecessary.


Latest From Blog

šŸ‘©šŸ’»šŸ” Explore Python, Django, Django-Rest, PySpark, web 🌐 & big data šŸ“Š. Enjoy coding! šŸš€šŸ“š

More From PyDjangoBoy

šŸ‘©šŸ’»šŸ” Explore Python, Django, Django-Rest, PySpark, web 🌐 & big data šŸ“Š. Enjoy coding! šŸš€šŸ“š

Latest Python Updates

Latest Programming Updates: Python, Django, PySpark, PyCharm, VS-Code, and More! šŸ

Python 3.14.3 and 3.13.12 are now available!

Posted by Thomas Wouters


Python 3.14.3 is now available!

Python 3.14.3 is the third maintenance release of 3.14, containing around 299 bugfixes, build improvements and documentation changes since 3.14.2. Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, seeĀ . What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed fromĀ Ā or from itsĀ . SeeĀ Ā for more information. The JSON file available for download contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store download page our documentation Python 3.13.12 isĀ Ā now available! Python 3.13.12 is the twelfth maintenance release of 3.13, containing around 250 bugfixes, build improvements and documentation changes since 3.13.11. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to theĀ . Python Software Foundation Regards from an international releasing task force spread out over a whopping 10 timezones this time, Your release team,Thomas WoutersĀ Hugo van KemenadeĀ Ned DeilyĀ Steve DowerĀ Ć…ļæ½ukasz Langa

Python 3.15.0 alpha 5 (yes, another alpha!)

Posted by Hugo


www.python.org/downloads/release/python-3150a5/ Python 3.15 is still in development. This release, 3.15.0a5, is the fifth of eight planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2026-05-05) and, if necessary, may be modified or deleted up until the release candidate phase (2026-07-28). Please keep in mind that this is a preview release and its use is recommended for production environments. Many new features for Python 3.15 are still being planned and written. Among the new major new features and changes so far: The next pre-release of Python 3.15 will be 3.15.0a6, currently scheduled for 2026-02-10. At last it was given out that some time next day the ship would certainly sail. So next morning, Queequeg and I took a very early start. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from a still snowfully subzero Helsinki, Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.15.0 alpha 4

Posted by Hugo


www.python.org/downloads/release/python-3150a4/ Python 3.15 is still in development. This release, 3.15.0a4, is the fourth of seven planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2026-05-05) and, if necessary, may be modified or deleted up until the release candidate phase (2026-07-28). Please keep in mind that this is a preview release and its use is recommended for production environments. Many new features for Python 3.15 are still being planned and written. Among the new major new features and changes so far: The next pre-release of Python 3.15 will be 3.15.0a5, currently scheduled for 2026-02-10. Upon this every soul was confounded; for the phenomenon just then observed by Ahab had unaccountably escaped every one else; but its very blinding palpableness must have been the cause. Thrusting his head half way into the binnacle, Ahab caught one glimpse of the compasses; his uplifted arm slowly fell; for a moment he almost seemed to stagger. Standing behind him Starbuck looked, and lo! the two compasses pointed East, and the Pequod was as infallibly going West. But ere the first wild alarm could get out abroad among the crew, the old man with a rigid laugh exclaimed, ā€œI have it! It has happened before. Mr.Ā Starbuck, last night’s thunder turned our compasses—that’s all. Thou hast before now heard of such a thing, I take it.ā€ ā€œAye; but never before has it happened to me, sir,ā€ said the pale mate, gloomily. Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from a snowfully subzero Helsinki, Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.15.0 alpha 3

Posted by Hugo


www.python.org/downloads/release/python-3150a3/ Python 3.15 is still in development. This release, 3.15.0a3, is the third of seven planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2026-05-05) and, if necessary, may be modified or deleted up until the release candidate phase (2026-07-28). Please keep in mind that this is a preview release and its use is recommended for production environments. Many new features for Python 3.15 are still being planned and written. Among the new major new features and changes so far: The next pre-release of Python 3.15 will be 3.15.0a4, currently scheduled for 2026-01-13. Instantly the captain ran forward, and in a loud voice commanded his crew to desist from hoisting the cutting-tackles, and at once cast loose the cables and chains confining the whales to the ship. ā€œWhat now?ā€ said the Guernsey-man, when the Captain had returned to them. ā€œWhy, let me see; yes, you may as well tell him now that—that—in fact, tell him I’ve diddled him, and (aside to himself) perhaps somebody else.ā€ Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from an even deeper darker Helsinki, Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.14.2 and 3.13.11 are now available!

Posted by Hugo


Two more, just three days after the last? Yes! We found some regressions, so here’s an expedited pair of releases. They also come with some bonus security fixes. www.python.org/downloads/release/python-3142/ Python 3.14.2 is the second maintenance release of 3.14, containing 18 bugfixes, build improvements and documentation changes since 3.14.1. This is an expedited release to fix the following regressions: : Exceptions in in running programs while upgrading Python. gh-142206 : Exceptions in dataclasses without method. gh-142214 : Segmentation faults and assertion failures in insertdict. gh-142218 : Crash when using multiple capturing groups in gh-140797 And these security fixes: : Remove quadratic behavior in node ID cache clearing () gh-142145 CVE-2025-12084 : Fix a potential virtual memory allocation denial of service in http.server gh-119452 See the full . changelog www.python.org/downloads/release/python-31311/ Python 3.13.11 is the eleventh maintenance release of 3.13. This is an expedited release to fix the following regressions: : Exceptions in in running programs while upgrading Python. gh-142206 : Segmentation faults and assertion failures in insertdict. gh-142218 : Crash when using multiple capturing groups in gh-140797 And these security fixes: : Remove quadratic behavior in node ID cache clearing () gh-142145 CVE-2025-12084 : Fix a potential denial of service in http.client gh-119451 : Fix a potential virtual memory allocation denial of service in http.server gh-119452 See the full . changelog Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from deeper darker Helsinki, Your release team, Hugo van Kemenade Thomas Wouters Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Python 3.13.10 is now available, too, you know!

Posted by Thomas Wouters


Python 3.13.10

The latest version of Python 3.13 is now available! PythonĀ 3.13.10 is the tenth maintenance release of 3.13, containing around 300 bugfixes, build improvements and documentation changes since 3.13.9. Full Changelog Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. Regards from your package managers,

Python 3.14.1 is now available!

Posted by Hugo


This is first maintenance release of Python 3.14

Python 3.14.1 is the first maintenance release of 3.14, containing around 558 bugfixes, build improvements and documentation changes since 3.14.0. Major new features of the 3.14 series, compared to 3.13 Some of the major new features and changes in Python 3.14 are: For more details on the changes to Python 3.14, see . What’s new in Python 3.14 The installer we offer for Windows is being replaced by our new install manager, which can be installed from or from its . See for more information. The JSON file available for download contains the list of all the installable packages available as part of this release, including file URLs and hashes, but is not required to install the latest release. The traditional installer will remain available throughout the 3.14 and 3.15 releases. the Windows Store download page our documentation Seki Takakazu (é–¢ Ä­�Ä’Œ; c.Ā March 1642 – December 5, 1708) was a Japanese mathematician and samurai who laid the foundations of Japanese mathematics, later known as (Ä’Œç®—, from (ā€œJapaneseā€) and (ā€œcalculationā€). Seki was a contemporary of Isaac Newton and Gottfried Leibniz but worked independently. He created a new algebraic system, worked on infinitesimal calculus, and is credited with the discovery of Bernoulli numbers (before Bernoulli’s birth). Seki also using a polygon with 131,072 sides inscribed within a circle, using an acceleration method now known as Aitken’s delta-squared process, which was rediscovered by Alexander Aitken in 1926. calculated Ćā‚¬ to 11 decimal places Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the . Python Software Foundation Regards from deepest darkest Helsinki, Your release team, Hugo van Kemenade Ned Deily Steve Dower Ć…ļæ½ukasz Langa

Latest Django Updates

Latest Programming Updates: Python, Django, PySpark, PyCharm, VS-Code, and More! šŸ

Django security releases issued: 6.0.2, 5.2.11, and 4.2.28

Posted by Jacob Walls •


In accordance with our security release policy, the Django team is issuing releases for Django 6.0.2, Django 5.2.11, and Django 4.2.28. These releases address the security issues detailed below. We encourage all users of Django to upgrade as soon as possible. CVE-2025-13473: Username enumeration through timing difference in mod_wsgi authentication handler The django.contrib.auth.handlers.modwsgi.check_password() function for authentication via mod_wsgi allowed remote attackers to enumerate users via a timing attack. Thanks to Stackered for the report. This issue has severity "low" according to the Django security policy. CVE-2025-14550: Potential denial-of-service vulnerability via repeated headers when using ASGI When receiving duplicates of a single header, ASGIRequest allowed a remote attacker to cause a potential denial-of-service via a specifically created request with multiple duplicate headers. The vulnerability resulted from repeated string concatenation while combining repeated headers, which produced super-linear computation resulting in service degradation or outage. Thanks to Jiyong Yang for the report. This issue has severity "moderate" according to the Django security policy. CVE-2026-1207: Potential SQL injection via raster lookups on PostGIS Raster lookups on GIS fields (only implemented on PostGIS) were subject to SQL injection if untrusted data was used as a band index. As a reminder, all untrusted user input should be validated before use. Thanks to Tarek Nakkouch for the report. This issue has severity "high" according to the Django security policy. CVE-2026-1285: Potential denial-of-service vulnerability in django.utils.text.Truncator HTML methods django.utils.text.Truncator.chars() and Truncator.words() methods (with html=True) and truncatechars_html and truncatewords_html template filters were subject to a potential denial-of-service attack via certain inputs with a large number of unmatched HTML end tags, which could cause quadratic time complexity during HTML parsing. Thanks to Seokchan Yoon for the report. This issue has severity "moderate" according to the Django security policy. CVE-2026-1287: Potential SQL injection in column aliases via control characters FilteredRelation was subject to SQL injection in column aliases via control characters, using a suitably crafted dictionary, with dictionary expansion, as the **kwargs passed to QuerySet methods annotate(), aggregate(), extra(), values(), values_list(), and alias(). Thanks to Solomon Kebede for the report. This issue has severity "high" according to the Django security policy. CVE-2026-1312: Potential SQL injection via QuerySet.order_by and FilteredRelation QuerySet.order_by() was subject to SQL injection in column aliases containing periods when the same alias was, using a suitably crafted dictionary, with dictionary expansion, used in FilteredRelation. Thanks to Solomon Kebede for the report. This issue has severity "high" according to the Django security policy. Affected supported versions Django main Django 6.0 Django 5.2 Django 4.2 Resolution Patches to resolve the issue have been applied to Django's main, 6.0, 5.2, and 4.2 branches. The patches may be obtained from the following changesets. CVE-2025-13473: Username enumeration through timing difference in mod_wsgi authentication handler On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch CVE-2025-14550: Potential denial-of-service vulnerability via repeated headers when using ASGI On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch CVE-2026-1207: Potential SQL injection via raster lookups on PostGIS On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch CVE-2026-1285: Potential denial-of-service vulnerability in django.utils.text.Truncator HTML methods On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch CVE-2026-1287: Potential SQL injection in column aliases via control characters On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch CVE-2026-1312: Potential SQL injection via QuerySet.order_by and FilteredRelation On the main branch On the 6.0 branch On the 5.2 branch On the 4.2 branch The following releases have been issued Django 6.0.2 (download Django 6.0.2 | 6.0.2 checksums) Django 5.2.11 (download Django 5.2.11 | 5.2.11 checksums) Django 4.2.28 (download Django 4.2.28 | 4.2.28 checksums) The PGP key ID used for this release is Jacob Walls: 131403F4D16D8DC7 General notes regarding security reporting As always, we ask that potential security issues be reported via private email to security@djangoproject.com, and not via Django's Trac instance, nor via the Django Forum. Please see our security policies for further information.

Djangonaut Space - Session 6 Accepting Applications

Posted by Djangonaut Space Mission Control •


We are thrilled to announce that Djangonaut Space, a mentorship program for contributing to Django, is open for applicants for our next cohort! šŸš€ Djangonaut Space is holding a sixth session! This session will start on March 2nd, 2026. We are currently accepting applications until February 2nd, 2026 Anywhere on Earth. More details can be found in the website. Djangonaut Space is a free, 8-week group mentoring program where individuals will work self-paced in a semi-structured learning environment. It seeks to help members of the community who wish to level up their current Django code contributions and potentially take on leadership roles in Django in the future. ā€œI'm so grateful to have been a part of the Djangonaut Space program. It's a wonderfully warm, diverse, and welcoming space, and the perfect place to get started with Django contributions. The community is full of bright, talented individuals who are making time to help and guide others, which is truly a joy to experience. Before Djangonaut Space, I felt as though I wasn't the kind of person who could become a Django contributor; now I feel like I found a place where I belong.ā€ - Eliana, Djangonaut Session 1 Enthusiastic about contributing to Django but wondering what we have in store for you? No worries, we have got you covered! šŸ¤ āœļø Mission Briefing šŸ“· AMA Recap

DSF member of the month - Omar Abou Mrad

Posted by Sarah Abderemane •


For January 2026, we welcome Omar Abou Mrad as our DSF member of the month! ⭐ Omar is a helper in the Django Discord server, he has helped and continuously help folks around the world in their Django journey! He is part of the Discord Staff Team. He has been a DSF member since June 2024. You can learn more about Omar by visiting Omar's website and his GitHub Profile. Let’s spend some time getting to know Omar better! Can you tell us a little about yourself? (hobbies, education, etc) Hello! My name is Omar Abou Mrad, a 47-year-old husband to a beautiful wife and father of three teenage boys. I’m from Lebanon (Middle East), have a Computer Science background, and currently work as a Technical Lead on a day-to-day basis. I’m mostly high on life and quite enthusiastic about technology, sports, food, and much more! I love learning new things and I love helping people. Most of my friends, acquaintances, and generally people online know me as Xterm. I have already an idea but where your nickname "Xterm" comes from? xterm is simply the terminal emulator for the X Window System. I first encountered it back in the mid to late 90s when I started using Redhat 2.0 operating system. Things weren’t easy to set up back then, and the terminal was where you spent most of your time. Nevertheless, I had to wait months (or was it years?) on end for the nickname "Xterm" to expire on Freenode back in mid 2000s, before I snatched and registered it. Alas, I did! Xterm, c'est moi! >:-] How did you start using Django? We landed on Django (~1.1) fairly early at work, as we wanted to use Python with an ORM while building websites for different clients. The real challenge came when we took on a project responsible for managing operations, traceability, and reporting at a pipe-manufacturing company. By that time, most of the team was already well-versed in Django (~1.6), and we went head-on into building one of the most complicated applications we had done to date, everything from the back office to operators’ devices connected to a Django-powered system. Since then, most of our projects have been built with Django at the core. We love Django. What other framework do you know and if there is anything you would like to have in Django if you had magical powers? I've used a multitude of frameworks professionally before Django, primarily in Java (EE, SeamFramework, ...) and .NET (ASP.NET, ASP.NET MVC) as well as sampling different frameworks for educational purposes. I suppose if I could snap my fingers and get things to exist in django it wouldn't be something new as much as it is official support of: Built-in and opinionated way to deal with hierarchical data in the ORM alongside the supporting API for building and traversing them optimally. Built-in websockets support. Essentially the django-channel experience. Built-in ORM support for common constructs like CTEs, and possibly the ability to transition from raw SQL into a queryset pipeline. But since we're finger-snapping things to existence, it would be awesome if every component of django (core, orm, templates, forms, "all") could be installed separately in such a way that you could cherry pick what you want to install, so we could dismiss those pesky (cough) arguments (cough) about Django being bulky. What projects are you working on now? I'm involved in numerous projects currently at work, most of which are based on Django, but the one I'm working right now consists of doing integrations and synchronizations with SAP HANA for different modules, in different applications. It's quite the challenge, which makes it twice the fun. Which Django libraries are your favorite (core or 3rd party)? django-debug-toolbar hands down. It is an absolute beast of a library and a required tool. It is also the lib that influenced DryORM django-extensions obviously, for its numerous helper commands (shell_plus --print-sql, runserver_plus... and much more!) django-mptt while unmaintained, it remains one of my personal favorites for hierarchical data. It's a true piece of art. I would like to mention that I'm extremely thankful for any and all core and 3rd Party libraries out there! What are the top three things in Django that you like? In no particular order: The ORM; We love it, it fits nicely with the rest of the components. I feel we should not dismiss what sets Django apart from most frameworks; Its defaults, the conventions, and how opinionated it is; If you avoid overriding the defaults that you get, you'll end up with a codebase that anyone can read, understand and maintain easily. (This is quite subjective and some may very well disagree! ^.^) The documentation. Django’s documentation is among the best out there: comprehensive, exhaustive, and incredibly well written. You are helping a lot of folks in Django Discord, what do you think is needed to be a good helper according to you? First and foremost, I want to highlight what an excellent staff team we have on the Official Django Discord. While I don’t feel I hold a candle to what the rest of the team does daily, we complement each other very well. To me, being a good helper means: Having patience. You’ve built skills over many years, and not everyone is at the same stage. People will ask unreasonable or incorrect questions, and sometimes they simply won’t listen. Guiding people toward figuring things out themselves. Giving a direct solution rarely helps in the long run. There are no scoreboards when it comes to helping others. Teaching how to break problems down and reduce noise, especially how to produce the bare minimum code needed to reproduce an issue. Point them to the official documentation first, and teaching them how to find answers. Staying humble. No one knows everything, and you can always learn from your peers. Dry ORM is really appreciated! What motivated you to create the project? Imagine you're having a discussion with a djangonaut friend or colleague about some data modeling, or answering some question or concern they have, or reviewing some ORM code in a repository on github, or helping someone on IRC, Slack, Discord, the forums... or simply you want to do some quick ORM experiment but not disturb your current project. The most common ways people deal with this, is by having a throw-away project that they add models to, generate migrations, open the shell, run the queries they want, reset the db if needed, copy the models and the shell code into some code sharing site, then send the link to the recipient. Not to mention needing to store the code they experiment with in either separate scripts or management commands so they can have them as references for later. I loved what DDT gave me with the queries transparency, I loved experimenting in the shell with shell_plus --print-sql and I needed to share things online. All of this was cumbersome and that’s when DryORM came into existence, simplifying the entire process into a single code snippet. The need grew massively when I became a helper on Official Django Discord and noticed we (Staff) could greatly benefit from having this tool not only to assist others, but share knowledge among ourselves. While I never truly wanted to go public with it, I was encouraged by my peers on Discord to share it and since then, they've been extremely supportive and assisted in its evolution. The unexpected thing however, was for DryORM to be used in the official code tracker, or the forums, or even in Github PRs! Ever since, I've decided to put a lot of focus and effort on having features that can support the django contributors in their quest evolve Django. So here's a shout-out to everyone that use DryORM! I believe you are the main maintainer, do you need help on something? Yes, I am and thank you! I think the application has reached a point where new feature releases will slow down, so it’s entering more of a maintenance phase now, which I can manage. Hopefully soon we'll have the discord bot executing ORM snippet :-] What are your hobbies or what do you do when you’re not working? Oh wow, not working, what's that like! :-] Early mornings are usually reserved for weight training.\ Followed by a long, full workday.\ Then escorting and watching the kids at practice.\ Evenings are spent with my wife.\ Late nights are either light gaming or some tech-related reading and prototyping.\ Weekends look very similar, just with many more kids sports matches! Is there anything else you’d like to say? I want to thank everyone who helped make Django what it is today. If you’re reading this and aren’t yet part of the Discord community, I invite you to join us! You’ll find many like-minded people to discuss your interests with. Whether you’re there to help, get help, or just hang around, it’s a fun place to be. Thank you for doing the interview, Omar!

Django bugfix releases issued: 5.2.10, 6.0.1

Posted by Jacob Walls •


Today we've issued the 5.2.10 and 6.0.1 bugfix releases. The release packages and checksums are available from our downloads page, as well as from the Python Package Index. The PGP key ID used for these releases is Jacob Walls: 131403F4D16D8DC7

DSF member of the month - Clifford Gama

Posted by Sarah Abderemane •


For December 2025, we welcome Clifford Gama as our DSF member of the month! ⭐ Clifford contributed to Django core with more than 5 PRs merged in few months! He is part of the Triage and Review Team. He has been a DSF member since October 2024. You can learn more about Clifford by visiting Clifford's website and his GitHub Profile. Let’s spend some time getting to know Clifford better! Can you tell us a little about yourself (hobbies, education, etc) I'm Clifford. I hold a Bachelor's degree in Mechanical Engineering from the University of Zimbabwe. How did you start using Django? During my first year in college, I was also exploring open online courses on EDx and I came across CS50's introduction to web development. After watching the introductory lecture -- which introduced me to git and GitHub -- I discovered Django's excellent documentation and got started on the polls tutorial. The docs were so comprehensive and helpful I never felt the need to return to CS50. (I generally prefer comprehensive first-hand, written learning material over summaries and videos.) At the time, I had already experimented with flask, but I guess mainly because I didn't know SQL and because flask didn't have an ORM, I never quite picked it up. With Django I felt like I was taking a learning fast-track where I'd learn everything I needed in one go! And that's how I started using Django. What projects are you working on now? At the moment, I’ve been focusing on improving my core skills in preparation for remote work, so I haven’t been starting new projects because of that. That said, I’ve been working on a client project involving generating large, image-heavy PDFs with WeasyPrint, where I’ve been investigating performance bottlenecks and ways to speed up generation time, which was previously around 30 minutes 😱. What are you learning about these days? I’ve been reading Boost Your Git DX by Adam Johnson and learning how to boost my Git and shell developer experience, which has been a great read. Aside from that, inspired by some blogs and talks by Haki Benita, I am also learning about software design and performance. Additionally, I am working on improving my general fluency in Python. What other framework do you know and if there is anything you would like to have in Django if you had magical powers? I am not familiar with any other frameworks, but if I had magic powers I'd add production-grade static-file serving in Django. Django libraries are your favorite (core or 3rd party)? The ORM, Wagtail and Django's admin. What are the top three things in Django that you like? The community The documentation Djangonaut Space and the way new contributors are welcomed How did you start contributing to Django? I started contributing to Django in August last year, which is when I discovered the community, which was a real game changer for me. Python was my first course at university, and I loved it because it was creative and there was no limit to what I could build with it. Whenever I saw a problem in another course that could be solved programmatically, I jumped at it. My proudest project from that time was building an NxN matrix determinant calculator after learning about recursion and spotting the opportunity in an algebra class. After COVID lockdown, I gave programming up for a while. With more time on my hands, I found myself prioritizing programming over core courses, so I took a break. Last year, I returned to it when I faced a problem that I could only solve with Django. My goal was simply to build an app quickly and go back to being a non-programmer, but along the way I thought I found a bug in Django, filed a ticket, and ended up writing a documentation PR. That’s when I really discovered the Django community. What attracted me most was that contributions are held to high standards, but experienced developers are always ready to help you reach them. Contributing was collaborative, pushing everyone to do their best. It was a learning opportunity too good to pass up. How did you join the Triage and Review team? About the time after I contributed my first PR, I started looking at open tickets to find more to work on, and keep on learning. Sometimes a ticket was awaiting triage, in which case the first step was to triage it before assigning it to working on it, and sometimes the ticket I wanted was already taken, in which case I'd look at the PR if available. Reviewing a PR can be a faster way to learn about a particular part of the codebase, because someone has already done most of the investigative part of work, so I reviewed PRs as well. After a while I got an invitation from Sarah Boyce, one of the fellows, to join the team. I didn't even know that I could join before I got the invitation, so I was thrilled! How the work is going so far? It’s been rewarding. I’ve gained familiarity with the Django codebase and real experience collaborating with others, which already exceeds what I expected when I started contributing. One unexpected highlight was forming a friendship through one of the first PRs I reviewed. SiHyun Lee and I are now both part of the triage and review team, and I’m grateful for that connection. What are your hobbies or what do you do when you’re not working? My main hobby is storytelling in a broad sense. In fact, it was a key reason I returned to programming after a long break. I enjoy discovering enduring stories from different cultures, times, and media—ranging from the deeply personal and literary to the distant and philosophical. I recently watched two Japanese classics and found I quite love them. I wrote about one of the films on my blog, and I also get to practice my Japanese, which I’ve been learning on Duolingo for about two years. I also enjoy playing speed chess. Do you have any suggestions for people who would like to start triage and review tickets and PRs? If there’s an issue you care about, or one that touches a part of the codebase you’re familiar with or curious about, jump in. Tickets aren’t always available to work on, but reviews always are, and they’re open to everyone. Reviewing helps PRs move faster, including your own if you have any open, sharpens your understanding of a component, and often clarifies the problem itself. As Simon Charette puts it: ā€œTriaging issues and spending time understanding them is often more valuable than landing code itself as it strengthen our common understanding of the problem and allow us to build a consistent experience accross the diverse interfaces Django provides.ā€ And you can put it on your CV! Is there anything else you’d like to say? I’m grateful to everyone who contributes to making every part of Django what it is. I’m particularly thankful to whoever nominated me to be the DSF Member of the month. I am optimistic about the future of Django. Django 6.1 is already shaping up with new features, and there are new projects like Django Bolt coming up. Happy new year šŸŽŠ! Thank you for doing the interview, Clifford and happy new year to the Django community šŸ’š!

Hitting the Home Stretch: Help Us Reach the Django Software Foundation's Year-End Goal!

Posted by Jeff Triplett •


As we wrap up another strong year for the Django community, we wanted to share an update and a thank you. This year, we raised our fundraising goal from $200,000 to $300,000, and we are excited to say we are now over 88% of the way there. That puts us firmly in the home stretch, and a little more support will help us close the gap and reach 100%. So why the higher goal this year? We expanded the Django Fellows program to include a third Fellow. In August, we welcomed Jacob Tyler Walls as our newest Django Fellow. That extra capacity gives the team more flexibility and resilience, whether someone is taking parental leave, time off around holidays, or stepping away briefly for other reasons. It also makes it easier for Fellows to attend more Django events and stay connected with the community, all while keeping the project running smoothly without putting too much pressure on any one person. We are also preparing to raise funds for an executive director role early next year. That work is coming soon, but right now, the priority is finishing this year strong. We want to say a sincere thank you to our existing sponsors and to everyone who has donated so far. Your support directly funds stable Django releases, security work, community programs, and the long-term health of the framework. If you or your organization have end-of-year matching funds or a giving program, this is a great moment to put them to use and help push us past the finish line. If you would like to help us reach that final stretch, you can find all the details on our fundraising page Other ways to support Django: Benevity Workplace Giving Program: If your employer participates, you can make donations to the DSF via payroll deduction. Sponsor Django via GitHub Sponsors: Support Django directly through GitHub's sponsorship platform. Official Merch Store: Buy official t-shirts, accessories, and more to support Django. Thank you for helping support Django and the people who make it possible. We are incredibly grateful for this community and everything you do to keep Django strong.