Learn how the Pioneers, Settlers, and Townplanners framework can transform your team's approach to innovation, stability, and scalability.| all things considered...
Photo by Florian Klauer on Unsplash After five years of working backwards, writing some and reading even more documents, I’ve gathered a few thoughts on why writing is hard and the mistakes I often see people making. On Working Backwards Link to heading “Working Backwards” is a concept developed at Amazon. It focuses on starting from the customer and working backward to ensure solutions are relevant. This is, of course, just a brief introduction. If you’re interested in the details, I...| Posts on all things considered...
two people in front of a computer doing pair programming in the style of a picasso painting (DALLE) Engineering effectiveness is a prominent topic. Traditional Pull Request (PR) reviews show their limitations when it comes to efficiency, knowledge sharing, and delivering value. Instead, trunk based development, coupled with methodologies such as pair and mob programming, are a superior process. Along with the strategic utilization of feature flags, this methodology presents an alluring argume...| Posts on all things considered...
Photo by Marco Bianchetti on Unsplash Continuous delivery is the holy grail of building software. Not just continuous integration, like running your whole test suite on every push or pull request. Deploying multiple times a day improves cycle times. But if you are still trying to make this happen in your organization. If you are still trying to workout the details of canary releases, Blue/Green deployments, or traffic switching in Kubernetes: don’t do it. Those ideas are great, but they hav...| Posts on all things considered...
Photo by Ivan Henao on Unsplash This is maybe the most complex question that is never asked in the interview process in tech. And often not even on a managerial level. But: it is such an interesting one to discuss! There might be no right or wrong. But it does reveal a lot about people’s thought processes and mental models they have collected.| Posts on all things considered...
Photo by Adrian Schwarz on Unsplash Cities are an interesting way to think about Software. Cities have foundations, like infrastructure for cars, electricity. Housing for people to live and work. Stores to sell and buy goods. Also, Cities are often referred to as an organism. Just like a large organization, a department, or a team are an organism. But these organisms are building software.| Posts on all things considered...
Well, that was a writer’s block. For about a year I’ve been planning to write a response post to Mikio Braun’s Everyone Is Still Terrible At Creating Software post. It resonates a lot with me and has triggered myself into completely overthinking my writing. I spent weeks and months over a number of drafts, all connected. Never finished. And some are still just in my head. To be honest, right now it feels strange to think about how we could build software better and how we might set up t...| Posts on all things considered...
More and more work involves collaboration. Multiple people working in a team on the same thing that is becoming ever more complex. What does this mean for an organization? Information and knowledge, especially in the technology domain, is becoming a commodity. All the best technical tools to build your next Google is just a Google search away. In the age of digital products, market access is getting cheaper every day. This increases the importance of the team and their effectiveness as it bec...| Posts on all things considered...
Last Friday I got to know Tailscale by a complete coincidence. Someone I follow on twitter mentioned it: Oof, Tailscale is groundbreaking. Wireguard vpn itself is magic, kind of like how git was compared to previous scm. And Tailscale is Wireguard's Github. Makes it accessible to the masses. — Carlo Cabanilla 🌻 (@clofresh) February 12, 2021 What can I say: it blew my mind! I always wanted to setup a VPN connection between my droplet and my NAS at home for backups. But of course I was way...| Posts on all things considered...
I’m currently reading Leadership is language by L. David Marquet, the same author of Turn the Ship Around. In this book, Marquet describes the different ways people communicate and how it influences the outcomes we get. This should not be any news really, but the book explains in much more detail how this happens. Especially when there is a power dynamic between the participants of a conversation or meeting. The main theme across the book is the sinking of a ship called El Faro caused by a ...| Posts on all things considered...
Why is moving from a monolithic architecture to a microservices based one so hard? And is it worth it? Often those projects happen in organizations that were successful in the past and now enter a phase of scaling. This can be scaling by adding lots and lots of developers, or by allowing individual scaling of sub-components, because the system is screaming under load and is getting more and more expensive to run.| Posts on all things considered...
Update: This post was trending on Hackernews in April 2021. See the discussion. In many organizations today there is one thing that almost always is true: there are too many things done in parallel, there is too much work-in-progress, everyone is busy but nothing gets done. If this is so ubiquitous why is no one doing anything about it? Are people not aware or do they not know how to fix it? This is so predominant, that it almost is too easy to just claim:| Posts on all things considered...
In e-commerce search enabling dynamic prices or campaigns requires some attributes to be more volatile than others. A discount on Black Friday that is should only be valid between 7 PM and midnight. The flags that promote the discount. The teasers on product listings showing what products will have a discount, before the discount is in effect. Products that are only discounted for a certain customer group. Traditionally this is solved by updating the documents in the search index. Around the ...| Posts on all things considered...
The date slowly approached and then it just happened. After almost four years I left Zalando end of March. I joined Zalando as Senior Engineer in the search team. In this role I helped migrate the search systems from the old monolith (Jimmy) to a microservice based architecture. In those times, microservices where meant literally and a lot of them were created. The system was based on SolrCloud and basically a home-grown Kafka like messaging system based on SQS and DynamoDB. A lot of assumpti...| Posts on all things considered...
Writing narratives and technical documents becomes a more and more relevant skill to have when navigating today’s organizations. Often times successful alignment between teams or even departments rely on this form of communication. Personally I have seen how I was unable to convey my thoughts and ideas to a wider audience simply because I was not able to write them down. Later I learned that only writing them down is not enough to form an alignment.| Posts on all things considered...
My new habit is starting to form and shape itself. I started the new year with a few little habits I want to establish and my writing habit slowly kicks in. Originally I intended to take 30 minutes every day to write: my thoughts on this blog, comment on documents in the company and finish my own documents. Until now I have mostly been the reading type of person. Back in school I’ve spent a significant amount of money on books about programming. This helped me to get into the field. Since I...| Posts on all things considered...
When moving from an individual contributor role into management, the biggest challenge for me was to provide difficult feedback. This might have been bigger for me compared to others as within a very short period of time a number of my colleagues and peers suddenly started to report to me. Looking back at 2019 overcoming this has been my biggest personal achievement. What is ruinous empathy? Link to heading One of the books I read in 2019 is Radical Candor, a “new management philosophy”. ...| Posts on all things considered...
About a year ago I transitioned into management. I changed my role from Senior Software Developer to Engineering Lead in Zalando. In this post I want to share my experience, good and bad, things that went well, where I screwed up and what I’m taking from it. A difficult first year Link to heading As my manager put it in my performance review: the last year was one of my most challenging ones. And he was right. In theory my game plan was pretty simple: I became Engineering Lead for the team ...| Posts on all things considered...
So here I am, again claiming to stick to blogging. This time I’ll start with a look back at 2018 and my New Year resolutions that will make sure 2019 will be a blast. Last year was a challenge for me as so many things happened that impacted my work-life. I transitioned into management and became Engineering Lead in the Search department at Zalando. I was surprised at how much I actually like working with people. In my life as individual contributor I was mostly writing code and argued about...| Posts on all things considered...
Earlier this month Monica Lent published a list of Tech talks that’ll change how you think. Every one on this list is awesome and some have influenced me pretty heavily. Especially Simple made Easy by Rich Hickey. To these I’d like to add a few from my list of favorite talks. Full Stack Awareness Link to heading In this, Arthur Bergman rants about how everything is broken. We, as engineers, are so used to just connect a few systems and the new feature is working. We take so many things fo...| Posts on all things considered...
My usual web application stack for the past years was based on a nginx as reverse proxy in front of a number of Python processes. Static resources were served by nginx. Each Python process was stateless, state was stored in some kind of database. If the processes needed some shared ephemeral state like counters a local redis instance solved that. A battle tested common ground for Python based web applications.| Posts on all things considered...
Elasticsearch is a search server based on Apache Lucene. As a developer it is easy to use, has an expressive query DSL and all is based on JSON serialization. Often though I find myself in a position where I need to adapt queries frequently and non-trivially, say in a demonstration in front of customers or product owners. The questions are mostly similar: “what if I also filter for X”, “how does the ranking change, when I add a freshness function”, “do I get a better result if I boo...| all things considered...