October 2023
I am aggregating here some more or less interesting stuff of various IT related materials which I came across this month. Some of them are strictly related to the things I did or am currently doing.
Some thoughts
This month, I spruced up my Python API and background workers on Google Cloud Platform repo. It's a neat package with a simple app and all the setup for FastAPI, CloudRun, and PubSub. Just a fun little project showcasing Python on Google Cloud – check it out!
By the way, last month I gave a lightning talk at PyCon CZ based on this repository.
Articles
What is a merge queue, and does your team need one?
Merge queues aren’t right for every team and whether or not your team needs a merge queue depends on a number of factors.
How “It works in my machine” turns “It works in my container”?
Let’s dive into why the “It works in my container” situation arises.
When Taylor Swift crashed Ticketmaster: A lesson on scaling for spikes
In general, it is a good practice to brace for 10 billion system calls by deploying all the mitigation tactics mentioned above (caching, elastic demand, graceful degradation, etc.).
How to get more interviews, offers, and higher compensation at top tech companies
Main takeaways from the live event discussion from over 35 years of experience.
You don't hate JIRA, you hate your manager
I'm usually not one to run to the defense of a specific technology, especially one I hate. Though, I think it's important that people hate things for the right reason.
Managing difficult software engineers
This guide is born out of those countless interactions, conversations, and experiences.
Designing Accessible Text Over Images: Best Practices, Techniques, And Resources (Part 1)
In this two-part series of articles, Hannah Milan covers the best practices when using various accessible text over images techniques for designing your web and mobile app content. These practices can help you to make the text over images more accessible while retaining an aesthetically pleasing look. Get ready to deep-dive through the subtle changes in your design, such as the text’s position, size, and background style, and explore the importance of using real text for accessibility purposes, as opposed to using images of text.
3 Git Configuration Tips I Use Every Day
If you want to move past add, commit, and push, keep reading.
Automatic HTTPS
Caddy is the first and only web server to use HTTPS automatically and by default.
Amazon Prime Video reduced costs by 90% by ditching Microservices
This article is not sponsored by the World Monolith Supremacy Association.
My solopreneur story: zero to $45K/mo in 2 years
Today is exactly 2 years since I quit my job and become a full-time indie hacker.
A Visual Guide to Sed
Mastering the text substitution tool.
Dominik Szczepaniak: Mermaid – Diagrams as a Code
Dobrze zaprojektowany diagram może stanowić lepsze przedstawienie kodu lub architektury niż obszerne opisy, interfejsy czy komentarze w kodzie. W tym artykule przedstawię Ci kilka argumentów za tym, dlaczego warto korzystać z diagramów, jakie są główne problemy z pracą z diagramami. Pokażę Ci narzędzie Mermaid, które pozwala w prosty i przyjemny sposób zarządzać diagramami w postaci kodu, a także pokażę Ci jak szybko postawić aplikację serwującą dokumentację wzbogaconą o diagramy wykonane w Mermaid.
Productivity
Maybe you should do less 'work'
Working in tech, I've observed developers who work as hard as possible when they don't need to. I'm here today to tell you that it's a bad idea and you shouldn't do it.
Learning at work - Julia Evans
Here are some things me & people on twitter came up with. Everything in here is stuff I can do during my workday.
How I learned to program in 10 years - Julia Evan
Anyway, this is mostly to say – if you’re programming and just starting out, and worrying that people say you can learn to program in 24 hours or 12 weeks… whatever. It’s taken me 11 years so far, and I’m not done :)
15 principles for managing up
When your boss loves you, you have options. Here's how to help your manager get what they need, so you get what you want.
The top 7 software engineering workflow tips I wish I knew earlier 🧰
Your time matters.
Python
6 Cool Things You Can Do With The Functools Module
In conclusion, the functools module in Python’s Standard Library is a treasure trove of tools, especially for those who frequently work with functions and decorators.
What is Inversion of Control and Why Does it Matter?
Three Techniques for Inverting Control, in Python
Inversion of Control is a principle for improving the modularity of software. It's a powerful strategy for simplifying systems that might otherwise become tangled and difficult to understand.
We Have To Talk About Flask
Flask 3.0 was released on September 30th, 2023, along with a parallel 3.0 release of Werkzeug, its main dependency. That day, the Flask-Login extension, one of the most popular of all Flask extensions, stopped working due to a backwards incompatible change introduced in Werkzeug. It is October 19th when I'm writing this, and Flask-Login remains broken.
Building Custom Middleware in FastAPI
In this article you’ll see how to build custom middleware, enabling you to extend the functionality of your APIs in unique ways by building function-based and class-based middleware to modify request and response objects to suit your need and to handle rate limiting. You’ll also see how to write test cases and the best practices to follow.
Services vs Command Handlers - Szymon Miks
Organizing code in an application is crucial for its maintainability and scalability. Two common approaches for structuring code are services and command handlers. In this blog post, we will explore these approaches and discuss when it is appropriate to use each one.
Asyncio, twisted, tornado, gevent walk into a bar...
... they pay, they leave, they drink, they order.
Make Each Line Count, Keeping Things Simple in Python
Simplicity in your code means fewer possibilities for bugs to hide and easier debugging when they do arise 📈
asyncio: real world coroutines - Michał Klich
In this article, I’ll be writing about working with coroutines, handling errors, retrying them automatically, and tracking execution progress.
An Intro to Protocol Buffers with Python
Protocol buffers are a data serialization format that is language agnostic. They are analogous to Python’s own pickle format, but one of the advantages of protocol buffers is that they can be used by multiple programming languages.
Do not use requirements.txt
However, pip was designed to be a package installer and not a full-fledged project workflow tool. pip lacks two essential features, dependency lockfiles and automatic management of virtualenvs
The most performant timestamp functions in Python
Use
time.time()
for epoch timestamps.Use
datetime.utcnow()
for datetime timestamps.For tz-aware datetimes, you should do your own research. I only skimmed the surface here
Django
Supercharge Your Django App: 7 Sneaky Tricks to Crush Slow Database Queries
Django provides many tools and methods for optimizing database queries in its Database access optimization documentation. In this blog post, we will explore a collection of additional and essential tips I’ve compiled over the years to help you pinpoint and resolve your inefficient Django queries.
Why is the Django Admin “Ugly”?
While talking with people at Djangocon US, one question kept coming up: “why is the Django admin so ‘ugly’?”. I’m paraphrasing here, so pardon the click-bait title, but the question came in many forms. Why does the Django admin have a “dated” UI? Why has the Django admin not changed much in all these years? Why is the Django admin missing
?
Python libraries
loguru
Loguru is a library which aims to bring enjoyable logging in Python.
Diagrams
Diagram as Code
Diagrams lets you draw the cloud system architecture in Python code.
hypothesis
Hypothesis is a powerful, flexible, and easy to use library for property-based testing.
RenderCV
LaTeX CV generator from a YAML/JSON input file.
Prefect
Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines
Cloud
Wait, is cloud bad?
I regret to inform you that there is discourse
GoogleCloudPlatform/cloud-run-hello
Demo container for Google Cloud Run.
Other stuff
Social Cooling
LIKE OIL LEADS TO GLOBAL WARMING...
DATA LEADS TO SOCIAL COOLING
Quick tip: Getting all links from any web site into a spreadsheet using browser developer tools
Open Developer Tools (press F12)
Go to the Console tool
Enter (or copy and paste) the following:
console.table($$('a'),['innerHTML','href'])
Killed by Google
Google Graveyard
A Senior Engineer's CheckList
This is a simple checklist, and while it is useful to any software engineer, it is especially useful to senior engineers.
The Book of Secret Knowledge
This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information gathered in one piece. It is an invaluable source of knowledge for me that I often look back on.