Sanyam Khurana

@curiouslearner
90 Followers
85 Following
167 Posts
MSCS GeorgiaTech ๐Ÿ | CPython ๐Ÿ Bug Triager | DSF Member #Mozillian | #FOSS Communities | #blogger @TheGeekyWay | He/him | #Gratitude
Githubhttps://github.com/CuriousLearner
Portfoliohttps://www.sanyamkhurana.com/#/
Personal Bloghttps://www.sanyamkhurana.com/blog/
The Geeky Wayhttps://www.thegeekyway.com/

Some regrettable personal news:

As of ~45 mins ago I am no longer employed. I'm still trying to find my bearings, but would be gateful for whatever leads y'all have.

(I will say more in a bit, once I actually have the time to spare)

#GetFediHired

As promised:

I'm a staff-ish level software engineer, fairly deeply involved in the Python community (see @NorthBayPython which I organise, and @ThePSF where I'm a board Director). Things I like: understanding/taking apart/reassembling systems; open source; technology in service of humans. Otherwise not terribly picky :)

Things I'm good at: programming in #Python (other languages acceptable, of course), communicating complicated stuff in conference talks, probably a few things related to that. Ask?

#FediHired #GetFediHired

I wanted an easy way to showcase merged OSS PRs without manually curating links, so I built this GitHub Action. It writes a markdown list into your README between markers.

https://github.com/CuriousLearner/oss-contributions-action

#FOSS #GitHub #DevTools

It's time to get out the vote y'all! Wagtail has been nominated for TWO CMS Critic Awards! If you love our software, please show your support by voting for us.

Get your ballot here: https://cmscritic.com/vote

(P.S. If you're in NC, don't forget to vote in the primaries either! March 3 is Election Day!)

#WagtailCMS #Django #Python #OpenSource #CMS

Released 0.3.0 of dj-typed-settings, a library to help update and use #Django settings. ๐ŸŽ‰

- Add `load_env()` to load .env files.
- Add `parse_db_url()` and `parse_cache_url()` to parse database and cache URLs.
- Add schema for Task settings.
- Validate fields that are `str | int` are actually digits.
- Add Literal types for `TEMPLATE.BACKEND`, `DATABASE.ENGINE`, `CACHE.BACKEND`, and `AUTH_PASSWORD_VALIDATOR.NAME`.

๐Ÿ› ๏ธ https://github.com/adamghill/dj-typed-settings
๐Ÿ“ฆ https://pypi.org/project/dj-typed-settings/

GitHub - adamghill/dj-typed-settings: Check your Django settings for common issues.

Check your Django settings for common issues. Contribute to adamghill/dj-typed-settings development by creating an account on GitHub.

GitHub

Thanks, Quansight for supporting open source so forcefully!

https://labs.quansight.org/blog/oss-fund-2025

One question I donโ€™t stop to ask myself enough that always seems worth it: is there a simpler way to do that?

โ€œEasyโ€ can be an intoxicating invitation to simmering calamity.

TIL: In Django abstract base models, hardcoding related_name can cause reverse accessor collisions across subclasses. Use dynamic placeholders instead: %(app_label)s + %(class)s in related_name / related_query_name.

https://til.sanyamkhurana.com/#/topics/django/dynamic-related-name-in-abstract-models

#Django #Python #TIL

Sanyam Khurana's TILs

A collection of Today I Learned (TIL) posts by Sanyam Khurana. Quick notes, coding tips, and discoveries.

Curious: What was your first programming language?

Mine: BASIC (2006), then jumped through C/C++/Java, and now mostly Python + JS.

Recently added Go - itโ€™s been a fun change of pace and loving it for the tooling/infra.

Help me settle a debate. In this layout, do you see rows, columns, both, none?