PyDev of the Week: Tim Schilling

This week we welcome Tim Schilling (@CodenameTim) as our PyDev of the Week! You can catch up with Tim by checking out his website. Tim is also active on Mastodon and GitHub.

Let’s spend some time getting to know Tim better!

Can you tell us a little about yourself (hobbies, education, etc):

My name is Tim Schilling, my pronouns are he/him. I live in Illinois, US with my wife and our two cats. I went to school for computer engineering, but never got into embedded systems. I’ve practically only ever worked with web applications.

I’ve started two businesses. The first was a SaaS offering to small shuttle companies to support online reservations. This was back in 2013 so there was a reasonable market, but I absolutely couldn’t sell. I was through half my money and only had three months of expenses left before I switched to consulting. That business is still ongoing, but as of Jan 2022 it’s no longer my sole source of income.

When I’m not working, I can be found making breakfast piles (tomatoes on top of onions on top of over-medium eggs on top of toasted sourdough), successfully gardening tomatoes and hot peppers, poorly gardening everything else, brewing beer, mentoring with the Underdog Devs program, and trying to answer questions for folks on the Django forum and Discord server.

Why did you start using Python?

When I decided to create my reservation SaaS product, I knew I didn’t want to use ASP.NET which was my primary skill at the time. Looking at the market, it seemed like there were two major players. Ruby on Rails and Django. I played around with both and despite there being many more RoR jobs I picked Django. I enjoyed the explicitness of Python and Django whereas I felt that Rails had a bit too much “magic”; I couldn’t see how everything worked as a beginner. It also helped that an engineer that I looked up to used Python on the side and I figured, “I should be like Jim and know Python too!” Plus, Python has the coolest programming language name.

What other programming languages do you know and which is your favorite?

I know a fullstack developer’s amount of JavaScript, CSS and SQL. I enjoy working with spreadsheet formulas (I had a wicked Excel file for a financial market game as a kid), but have largely focused primarily on Python. I have done some work with ASP, C#, Java, Ruby, Rust and Elixir, but I would never say I know them.

Clearly Python is my favorite.

What projects are you working on now?

– My Django debugging tutorial (https://github.com/tim-schilling/debug-tutorial/) I presented this as a tutorial at DjangoCon US 2022. It has a number of labs that are meant to introduce developers to debugging tools for Django applications. It primarily covers the browser developer tools and the Django Debug Toolbar.
– django-debug-toolbar – My favorite utility for debugging a django web application.
– django-auth-adfs  – Supports Django authentication via Active Directory.
– django-safemigrate – Runs migrations before deployment while deferring others for after. It’s great for adding nullable columns before a deployment, then removing columns after.
– Projects that are still in the design phase still count as projects right? If so, then Django Cairn. The goal is to be a directory of Django resources and point folks to our collective Django knowledge that’s not in the core documentation.

Which Python libraries are your favorite (core or 3rd party)?

If we’re counting core modules as libraries, then I really like itertools and functools. They make programming really enjoyable.

Outside of those and Django I would say Celery. It does so much and is a really fantastic resource. When a project grows to a specific size, I always find myself using Celery.

How did you get into helping out with the Django Debug Toolbar?

The first time was back in 2014 and Aymeric Augustin asked the public for help maintaining the toolbar. I reached out and started increasing my contributions to the project. In two months, I was added as a collaborator. However, my participation with the project weaned towards the end of 2015. I came back to the project at the end of 2019 and have been assisting Matthias Kestenholz with it regularly since.

What are your top three favorite things about the Django Debug Toolbar?

1) Working with Matthias Kestenholz; he’s a great collaborator, he’s intelligent and most importantly he’s kind.
2) SQL Panel – it makes it so easy to find my queries and diagnose issues related to it.
3) History Panel – David Sutherland (https://github.com/djsutho) wrote this as a third-party panel which we merged into the core toolbar library in 2021. It made the toolbar compatible with AJAX requests and JSON responses.

Is there anything else you’d like to say?

Volunteer! Lacey Williams Henschel had a fantastic lightning talk on youth mentoring that I recommend folks to check out (https://speakerdeck.com/williln/lightning-talk-10-reasons-you-would-make-a-great-youth-mentor).

If youth mentoring isn’t your thing, there are also programs like Underdog Devs (https://www.underdogdevs.org/). Underdog Devs works with folks who where previously incarcerated or come from an economically disadvantaged background to create an opportunity for them in tech.

If you don’t feel like you’re qualified to be a mentor, you can contribute to open source libraries. Projects are always looking for help with triage, documentation, translation and coding. The best thing you can do is be consistent, empathetic and patient. We’ll get there eventually.

Thanks for doing the interview, Tim!