Hi! 🌊

I'm Kamil; I work as a software engineer and this is a collection of all things I've been working on in my personal time.

Interested in my work?

Consider subscribing to the RSS Feed or joining my mailing list: madebyme-notifications on Google Groups .

Disclaimer: Only group owner (i.e. me) can view e-mail addresses of group members. I will not share your e-mail with any third-parties — it will be used exclusively to notify you about new blog posts.

Generating SVG Avatars From Identifiers

When you create a new social service on the internet, one of the things you need to think about is how to make a user’s space feel like their own. Services like GitHub, Roll20, or Reddit generate — or allow you to generate — a custom avatar (i.e. Identicons) for your account. Avatar auto-generation is especially neat, as it does not require any engagement from the user. Let’s try to figure that out on our own.

10 min Kamil Rusin

Performance Analysis of Python’s dict() and {}

Some time ago, during a code review, I had a discussion with a colleague of mine about preferring dict() over {} in new Python code. They argued that dict() is more readable — and expresses intent more clearly — therefore should be preferred. I wasn’t convinced by that, but at that time I didn’t have any counterarguments, so I passed.

Yet that made me wonder: what’s the difference between the dict type and {} literal expression?

14 min Kamil Rusin

Redirecting Subdomains to URLs

This blog is hosted on GitHub Pages. The service offers free static website hosting (TLS included!). The way it works is that GitHub issues a dedicated subdomain for each hosted website; for this one it’s: However, if you try to access it you’ll be redirected to instead.

6 min Kamil Rusin

Life in Weeks

This entry has been inspired by Buster Benson’s Life in Weeks. The rules are very similar: each block represents a week in my life. More significant events are named and might have descriptions.

2 min Kamil Rusin

Keep a Changelog

Recently I was tasked with initialization of a new Python project. One of the requirements was to prepare a changelog. I liked the idea, but my gut feeling was that the future project contributors won’t keep the changelog always up-to-date and it’s quality will decline over time. This article proposes a feature which enforces changelog updates, when it’s required to do so.

6 min Kamil Rusin