Month summary - May 2023

Posted by Tobiasz Kedzierski on 31.05.2023

May 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

Last month was intensive with Google Cloud-related stuff. I heavily used Cloud Run and was able to create a pretty robust and scalable system, which also includes PubSub and Cloud SQL. But the most exciting thing for me was learning Flux, which is a GitOps tool that automatically keeps the Kubernetes cluster in sync with the source of configuration (git, of course). Flux can not only scan for changes in configuration files but also periodically check if a newer Docker image has become available and update the respective configuration files and cluster accordingly. It is an amazing tool, and it was a pleasure to learn it. I am extremely excited to use it in my pet projects.

Articles

CLI tricks every developer should know

Learn some tips, tricks, and tools for mastering the command line from GitHub’s own developers.

How Levels.fyi scaled to millions of users with Google Sheets as a backend

Our philosophy to scaling is simple, avoid premature optimization.

How to Answer “Tell Me About a Time You Failed” in a Job Interview

Stories of failure can reveal important insights about an applicant’s maturity, resilience, temperament, openness to learning, and ability to receive critical feedback — qualities that won’t appear on a resume or cover letter and probably won’t be brought up by the applicant unsolicited.

This blog is hosted on my Android phone

This post describes how I turned my Android device into a web server which can be accessed from a public URL, and how you can do it too.

Julia Evans: Introducing "Implement DNS in a Weekend"

Hello! I’m excited to announce a project I’ve been working on for a long time: a free guide to implementing your own DNS resolver in a weekend.

Julia Evans: Learning DNS in 10 years

Here’s a keynote I gave at RubyConf Mini last year: Learning DNS in 10 years. It’s about strategies I use to learn hard things. I just noticed that they’d released the video the other day, so I’m just posting it now even though I gave the talk 6 months ag

Productivity

Why engineers need to be bored.

An analysis on boredom in engineering productivity and how it can lead to deeper innovation.

AI

Complete Guide To Setup AutoGPT & Revolutionize Your Task Automation with GPT-4

Auto-GPT is an experimental open-source project that allows you to define a specific role (e.g., “book market analyst”) and a bunch of goals (e.g., “research the most successful sci-fi novels of 2022”, “summarize them”, “save the summary to a file," etc.) and let GPT-4 automatically create and perform all the necessary tasks that are needed to achieve your goals.

Python

Miguel Grinberg: What's New in SQLAlchemy 2.0?

As with previous software reviews, this is going to be an opinionated overview.

Parallel Nested For-Loops in Python

In this tutorial, you will discover how to change a nested for-loop to be concurrent or parallel in Python with a suite of worked examples.

Limiting concurrency in Python asyncio: the story of async imap_unordered()

In this article, we'll look at a few ways of limiting concurrency in asycio, and find out which one is best.

Trusted Publishing; how to publish to PyPI with Github Actions

PyPI recently introduced Trusted Publishing via a Github action. Allowing for a relatively easy and secure method to publish to PyPI.

How to write tests that need a lot of data?

A couple of techniques tried out by my teammates and I helped us to write clean tests that used a lot of data. In this post I want to share these techniques with you.

Django

Django + Docker = ❤️

This simple Django project is an excellent template for your future projects. It includes everything you need to quickly set up a quality technology stack and start developing your web application's business logic, skipping all the complex deployment issues at an early stage.

Python libraries

Atbswp

Literally Automate the boring stuff with Python, allows the user to record his mouse and keyboard actions and reproduce them identically as many times as he wants.

Tools

DevOps with Docker

This course provides an introduction to container technologies, with a particular focus on Docker and container orchestration using Docker Compose.

Awesome Terraform

Curated list of resources on HashiCorp's Terraform.

Frogmouth

A Markdown browser for your terminal

Flux

Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories), and automating updates to configuration when there is new code to deploy.

Cloud

How I design 12-factor cloud native app on GCP.

The 12-factor methodology is programming language agnostic and works with any combination of backing services.

Envoy

Envoy is an open source edge and service proxy, designed for cloud-native applications.

Kubernetes Network Policy Recipes

This repository contains various use cases of Kubernetes Network Policies and sample YAML files to leverage in your setup. If you ever wondered how to drop/restrict traffic to applications running on Kubernetes, read on.

Other stuff

Good Tech Things

Good Tech Things are comics, videos, flowcharts, and infographics handcrafted by Forrest Brazeal.

work chronicles

Unwind from your busy schedule with a smile.

Videos

KEYNOTE: Oh The Humanity! - Kate Gregory [C++ on Sea 2019]

Advanced Git Magic - Pauline Vos - Full Stack Europe 2022

Anais Urlichs: Full GitOps Tutorial: Getting started with Flux CD