The Rise and Rise of FastAPI (mini documentary)
https://lemmy.ml/post/39879769
Affirm is hiring Software Engineer II, Backend (Loan Originations & Reporting)
🔧 #kotlin #python #aws #kubernetes #mysql
🌎 Remote; United States
⏰ Full-time
🏢 Affirm
Job details https://jobsfordevelopers.com/jobs/software-engineer-ii-backend-loan-originations-reporting-at-affirm-com-jul-23-2025-74f065?utm_source=mastodon.world&utm_medium=social&utm_campaign=posting
#jobalert #jobsearch #hiring
📢 We are thrilled to present one of the panels at #PyLadiesCon.🐍🎉
Don't miss this opportunity to learn from the best and connect with the #Python community.🐍
Register for PyLadiesCon now:👇
https://2025.conference.pyladies.com/en/

PyTogether: Collaborative lightweight real-time Python IDE for teachers/learners
Link: https://github.com/SJRiz/pytogether
Discussion: https://news.ycombinator.com/item?id=46150447
Django 6.0 released
https://europe.pub/post/7149638
Django 6
https://docs.djangoproject.com/en/6.0/releases/6.0/
#HackerNews #Django #Django6 #WebDevelopment #Python #Framework #ReleaseNotes
I love my new ESP32 Reverse Feather TFT microcontroller, but it was a struggle getting #CircuitPython installed on it.
https://shallowsky.com/blog/hardware/installing-circuitpython-reverse-feather-tft.html
Doing a refactor in some Python code and struck by how awful this would be without the static typechecker. Like, changing the return type of one function and the typechecker is catching calls to it I didn't know existed, from a project I barely know exists, from a team member I've met once in person.
This kind of change would be horrifying without static typechecking. With it, it's Thursday.
Django 6
https://docs.djangoproject.com/en/6.0/releases/6.0/
#ycombinator #Python #Django #framework #open_source
Content warning:Advent of Code 2024 Day 4 Spoilers
I had a late start this morning and didn't have a chance to do #AdventOfCode Day 4 until just now.
I leaned on a couple of utility functions (xy_to_coord, which converts x and y to a complex number for ease of use as a key; and get_neighbors_all, returns a generate that gives the direction and coordinate of the eight squares surrounding its argument) that I'd made in previous years.
First I parsed the input into a set of roll positions, then transformed it into a dictionary of roll locations => neighbor counts.
For Part 1, I just checked the locations that had fewer than 4 neighbors. For Part 2, I put that set of locations into a queue, reduced the counts of each one's neighbors, adding any that fell below 4 neighbors into the queue, and ran until the queue was exhausted.
Both were pretty straightforward to implement. I definitely have the feeling that this was a warm up grid problem, though! 😂
https://github.com/biesnecker/aoc-anyhow/blob/main/202504.py

RE: https://mastodon.social/@ednl/115661825430815480
Turns out it wasn't the summing of the whole grid on every loop that took so long. Well, also that. But it pales in comparison to the import of numpy and scipy. Those two imports take TWENTY times as long as the whole rest of the program:
import libs : 309.9 ms
parse input : 1.2 ms
part 1 : 0.3 ms
part 2 : 14.3 ms
part 1+2 : 14.6 ms
no import : 15.8 ms
all : 325.7 ms
Updated source code: https://github.com/ednl/adventofcode/blob/main/2025/04.py
Django 6 Released
https://lemmy.ml/post/39874038