I wrote in the past about how I'm a pessimist that strives for positive outcomes. One of the things that I gradually learned is is wishing others to succeed. That is something that took me a long time to learn. I did not see the value in positive towards other people's success, but there is. There is one thing to be sceptical to a project or...
Most software that exists today does not forget. Creating software that remembers is easy, but designing software that deliberately “forgets” is a bit more complex. By “forgetting,” I don't mean losing data because it wasn’t saved or losing it randomly due to bugs. I'm referring to making a deliberate design decision to discard data at a later...
Life begins. An empty page. A hollow echo on an barren stage. We wander through the quiet air, Unsure of what awaits us there. With work and study, I filled the days, But purpose wanes in fading haze. An emptiness remained inside, A restless longing I tried to hide. But then a hand, warm in the night, Turns the dark to softest light. Two souls...
This year, one of the projects I was involved in at Sentry was the launch of The Open Source Pledge. The idea behind it is simple: companies pledge an amount proportional to the number of developers they employ to fund the Open Source projects they depend on. I have written about this before. Since then, I've had the chance to engage in many...
subtext: in my opinion, and for companies (and their users) that want a good balance between protecting their core business with Open Source ideals. Following up to my thoughts on the case for funding Open Source, there is a second topic I want to discuss in more detail: Open Source and commercialization. As our founder likes to say: Open Source...
Both last week at London tech leaders and this week at the Open Source Summit in Vienna I engaged in various discussions about pledging money to Open Source. At Sentry we have been funding our Open Source dependencies for a few years now and we're trying to encourage others to do the same. It’s not an easy ask, of course. One quite memorable...
Now that uv is rapidly advancing I have started to dive back into making multi-version imports for Python work. The goal here is to enable multiple resolutions from the solver in uv so that two incompatible versions of a library can be installed and used simultaniously. Simplified speaking it should be possible for a library to depend on both...
As I'm getting older a lot of my social circles are becoming ever more conservative. The focus shifts from building with ambition to fiercly protecting what one has achieved. Shifting the mind on protectionism makes one consider all that can cause damage. It puts the focus on the negative, it makes those negative thoughts feel much more...
Given that I can't stop creating template engines, I figured I might write a bit about my learnings of creating MiniJinja which is an implementation of my Jinja2 template engine for Rust. Disclaimer: this post might be a bit more technical. There is a good chance you have come across Jinja2 templates before as they became quite common place in...
It has been a few months since I wrote about Rye here last. You might remember that in February I passed over stewardship of my Rye packaging too to Astral. The folks over there have been super busy in building a lot of amazing tooling for Python packaging in the last few months. If you have been using Rye in the last few months you will have...
My colleague Ben Vingar wrote a tool called Counterscale which I would describe as “deploy your own analytics”. Except there is a catch: it needs Cloudflare to run. Is it really self hosted if your only way to deploy it is some proprietary cloud vendor? What's a Stack? Many years ago we talked about software stacks. A common one happened to be...
This is mostly an FYI for node developers. The issue being discussed in this post has caused us quite a bit of pain. It has to do with how node deals with timeouts. In short: you can very easily create memory leaks [1] with the setTimeout API in node. You're probably familiar with that API since it's one that browsers provide for many, many...
Given that building programming languages and interpreters is the developer's most favorite hobby, I will never stop writing templating engines. About three years ago I first wanted to see if I can make an implementation of my Jinja2 template engine for Rust. It's called MiniJinja and very close in behavior to Jinja2. Close enought that I have...
There was a bit of a kerfuffle about subverting open source projects recently. That incident made me think about something that's generally on my mind. That thought again was triggered by that incident but is otherwise not in response to it. I want to talk about some of the stresses of being an Open Source contributor and maintainer but...
You're probably familiar with tech debt. There is a joke that if there is tech debt, surely there must be derivatives to work with that debt? I'm happy to say that the Rust ecosystem has created an environment where it looks like one solution for tech debt is collateralization. Here is how this miracle works. Say you have a library stuff which...
This will be a slightly different post. It has to do with the country I am living in with my family: Austria. More importantly it has to do with some some observations and of mine about how this country functions. There is a rather famous quote about Vienna: “If the world once ends, I'll move to Vienna, because that's where everything happens...
Two weeks ago I asked the question again about What Rye should be. There has been one thing that I have not publicly shared before and that is that ever since Rye exists I have also been talking to Charlie Marsh about Python packaging and Python tooling. It turns out that we had some shared ideas of what an ideal Python tooling landscape would...
In April of last year I released Rye to the public. Rye, both then and now, represents my very personal vision of what an improved Python packaging and project management solution can look like. Essentially, it's a comprehensive user experience, designed so that the only tool a Python programmer would need to interface with is Rye itself and it...
You likely know that I've contributed significantly to the Open Source community, that I work for an Open Source Company, that we got shit for calling ourselves Open Source and that we subsequently created a new license to address at least some of these concerns. I also shared my personal thoughts on that license recently which unfortunately...
A lot has been said about Python typing. If you have been following me on Twitter (or you have the dubious pleasure of working with me), you probably know my skepticism towards Python typing. This stems from the syntax's complexity, the sluggishness of mypy, the overall cumbersome nature of its implementation and awkwardness of interactions...
I recently came across a tweet and one statement in it really triggered me: the claim that a bundleless dev server does not work. The idea here being that you cannot avoid bundling during development for performance reasons. This challenges the code concept and premise of vite's design. Its dev server primarily operates by serving individual...
Sentry relicensed under a new license, called the Functional Source License (FSL). Like the BUSL it replaces, It's not an Open Source license by the OSI definition, but it comes with an irrevocable grant: after two years it turns into an Apache 2.0 licensed artifact (or MIT for the alternative form). It's the response to a lot of feedback we...
This year I decided that I want to share my most important learnings about engineering, teams and quite frankly personal mental health. My hope is that those who want to learn from me find it useful. You can't make it 15 minutes on Twitter or elsewhere, without running into a post about a botched return to work implementation. You also can't...
I very rarely write recaps of conferences but this time around I could not resist. This is for a lot of reasons. To kick things off, quite a bit of what was on my mind relates quite directly to a perception of a general negativity in the Rust community that I share. Most specifically this quote by Adam Chalmer: Rustconf definitely felt sadder...
This year I decided that I want to share my most important learnings about engineering, teams and quite frankly personal mental health. My hope is that those who want to learn from me find it useful. I consider myself a functional and pragmatic pessimist. I tend to err on the side of anticipating the worst outcome most of the time. This...