janmonschke.com - weeknotesWeeknotes from janmonschke.com2024-01-19T00:00:00ZJan MonschkeLooking back at 20232024-01-19T00:00:00Z/weeknotes/2023/2023-in-review/<p>Bye, bye 2023 👋</p>
<ul>
<li><a href="#2023-resolutions">2023 resolutions</a></li>
<li><a href="#highlights">Highlights</a></li>
<li><a href="#side-projects">Side Projects</a></li>
<li><a href="#top-3-blog-posts">My top 3 blog posts</a></li>
<li><a href="#favorite-books">Favorite books</a></li>
<li><a href="#favorite-tv-shows">Favorite TV shows</a></li>
<li><a href="#favorite-podcasts">Favorite podcasts</a></li>
</ul>
<h2><a name="2023-resolutions"></a>Resolutions for 2023</h2>
<h3>Finish writing all hiking reports on my <a href="https://aweekinthewoods.com">hiking blog</a></h3>
<p>I did not finish writing the "two" remaining reports. One is for a trip to the Lake Disctrict which should fit into a single post. The other one is about hiking the Kungsleden, which is more like a four part series. The hardest part is editing all the images. The text comes naturally after looking at the images. Hope to finish at least the Lake District one this year.</p>
<p>Even though I did not write any content for the hiking blog, I did manage to spend time on improving the site (🚲🛖):</p>
<ul>
<li>I <a href="https://github.com/janmonschke/aweekinthewoods/pull/15">migrated the site to Eleventy</a> which reduced the site's size by A LOT. It is so much snappier now. It builds faster. Has a better dev experience. Saves a ton of bandwidth. God, I love <a href="https://www.11ty.dev/">Eleventy</a> <3</li>
<li>Created <a href="https://aweekinthewoods.com/scotland/west-highland-way/">a custom map (web)component</a>. This one is much smaller in size as the Google map, it's customized to my use case and I am able to provide the KML files as download now (<a href="https://github.com/janmonschke/aweekinthewoods/blob/b5bfecb1998f3f76312fd98faf1689d6bcdd70e9/_components/hike-map.webc">source</a>).</li>
</ul>
<h3>Write more weeknotes than in the previous year</h3>
<p>I failed this goal. I published 5 weeknotes this year, the same amount as in the year before.</p>
<p>I remember being very motivated to achieve this goal when I set it. But being back at work full-time, entertaining my son every free minute and just being exhausted from all that meant that I did not find the time during the week to write up my notes.</p>
<p>I'm not sure I'll be able to write more notes this year but I'll try 🤞.</p>
<h3>Reading 12 books this year</h3>
<p>My regular reading goal was 25 before my son was born. I knew that I wouldn't have that much time this year so I reduced it to 12. I am happy to report that <a href="http://bookrastinating.com/user/jan/2023-in-the-books?key=0802fc987d184bce95ed21caddad45b1">I managed to read 15 books in total</a>.</p>
<p>My goal for this year will be to slowly ramp up that number. I'm not setting a specific goal but it would be great to read more than 15 books this year.</p>
<h2><a name="highlights"></a>Highlights</h2>
<h3>Being on parental leave</h3>
<p>A combination of a very generous parental leave policy at my current job and the general parental leave allowance in Germany allowed me to basically be on parental leave from November '22 until September '23. My wife and I worked a couple months part-time, so it wasn't all fulltime parental leave but it was a great decision to take so much time off together.</p>
<p>I witnessed all of my son's major developments. From barrel-roling, to crawling to walking. Being together the three of us for so many months, we were able to spread the (mental) load as equal as possible. While it was never 50/50, we found a system that worked well for us.</p>
<p>We also managed to travel to see our families. The little one loves riding long-distance trains. When he was a baby, he basically slept through it. Now that he can walk, he explores the train, makes friends with other kids and sometimes even manages to take a nap ;)</p>
<p>Travelling with a kid is not the same as what it used to be, yet, we enjoyed it. It made us re-explore the places we were familiar with. First we were always looking for baby-friendly cafés to chill in and now we're exploring all the playgrounds we can find.</p>
<h3>Getting a cargo bike was a great decision</h3>
<p>This was probably the topic that I researched most this year. There are so many options out there. We were able to try out some bikes from friends and bike shops. There's only so much you can research upfront. Without trying out the bike, it's hard to know if it works for you and your family.</p>
<p>We decided on a <a href="https://chike.de/e-kids/">tilting three wheel bike with a fixed cabin in the front</a>. The cabin is super comfy. It being closed, makes riding in winter very smooth. The tilting mechanism allows us to ride in a sportive way. It's our favorite bike now and we use it even without our son.</p>
<h3>My French improved a lot this year.</h3>
<p>We're raising our son bilingually. I speak German with him and my wife French. At the beginning of the year we would also add English to the mix, because that's the language that my wife and I were used to speak together. At some point we decided to try to speak only French/German when our son is around and to our surprise, this worked quite well. By doing this, I also noticed that I feel a lot more comfortable speaking French. (Note: I did speak a little French before, so I didn't start at zero)</p>
<p>We went to France three times this year and every time I was more and more able to communicate without the help of my wife. I'm far from being fluent, but I feel like I'm on a good track to make significant improvements in my spoken French over the next couple of years.</p>
<h3>Coffee setup <small>(aka becoming a coffee snob)</small></h3>
<p>I'm happy to report that this year I've become a proper coffee snob ☕️🤓. My search for a good-enough but not over-the-top espresso setup was successful. Again, there were so many options and I spent so much time researching. Since our kitchen didn't have a lot of available space, it was clear from the start that I didn't even need to look at fancy machines.</p>
<p>During my research, I found the niche of manual espresso makers. These typically only require you to add ground beans and hot water. Pressure is generated by pushing lever(s). The model I went for is the <a href="https://www.rok.coffee/espressogc">Rok Espresso GC</a> which hit that sweet spot in terms of budget and size. In true coffee snob passion, I spent more money on a manual grinder. I went with the <a href="https://1zpresso.coffee/j/">1zpresso J-Max S</a>, since that one works especially well for espresso. It took me a couple of tries to dial in the system but now I'm super happy with it.</p>
<p>I even did go a step further and got myself a <a href="https://www.wacaco.com/products/picopresso">Wacaco Picopresso</a> to take with me when we're travelling. It's super handy and looks so tiny in my suitcase next to the gigantic grinder, haha. The Picopresso workflow is similar to the Rok workflow, so I didn't need to make a lot of changes. Instead of pushing levers, the Picopresso works has a hand pump to genereate pressure. I'm not 100% there yet in terms of results but the results are already impressive, coming from such a small machine.</p>
<p><small>(Added bonus: The Picopresso saves us a ton of money and frustration in cities where they charge upwards of 6€ for a mediocre cappucino. I'm looking at you, Paris 👀)</small></p>
<h2><a name="side-projects"></a>Side Projects</h2>
<p>I didn't expect to actually have time to work on side projects this year. But every now and then I managed to squeeze in an hour or two in the evening or during nap time when I felt motivated. Neither projects that I worked on were new projects. They were all projects I wanted to finish/work on for a long time.</p>
<h3><a href="https://quizzo.janmonschke.com">Quizzo</a></h3>
<p>
</p><figure>
<a href="/img/content/weeknotes/2022/9O5HGwhmzh-1500.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.avif 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.avif 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.avif 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.webp 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.webp 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.webp 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.jpeg 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.jpeg 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.jpeg 1500w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" src="/img/content/weeknotes/2022/9O5HGwhmzh-352.jpeg" width="1500" height="962" /></picture>
</a>
<figcaption class="picture__caption"></figcaption>
</figure><p></p>
<p>I started working on Quizzo in late 2022 while I was at React Finland. At that time, I was working on a virtual pub quiz that I wanted to play with my team at work. From previous quizzes, I knew that keeping track of the score was hard and cumbersome.</p>
<p>Naturally, I started to work on a web app that would let me create a quiz, help me to allocate teams and keep track of points during the quiz. It worked well for the first quiz. I did keep a paper backup of the quiz around though, in case the app would fail.</p>
<p>This year, I ran another pub quizz at work. In preparation, I found notes from the first quizz. Specifically, notes about what worked and didn't work when I ran the quizz. The main pain point was that I had to manually enter each team's answer. In our virtual quiz session, I would ask the team captains to DM me their answers which I then had to manually enter into the app. This became a problem especially for speed rounds where the first team to answer gets the points.</p>
<p>My solution for this was to add a "team" page, where the each team's captain sees the current question and can enter their answer. Whenever the question changes, the page automatically refreshes and shows the next question. Answers are added to the quizz host's overview (see screenshot) in real-time. To my surprise, adding this functionality was pretty simple and the real-time component based on <a href="https://en.wikipedia.org/wiki/Server-sent_events">Server-sent events</a> prove to be reliable.</p>
<p>Team captains are not required to sign in. The quizz's host sends each team captain a special url containing a secret token. The secret token authenticates the team captain to submit questions for only their team. The only person that needs to sign up is the quizz host. This was only necessary to have some basic protection against teams trying to send answers through the quizz host routes.</p>
<p>After a bit of polishing, I published the project under <a href="https://quizzo.janmonschke.com">quizzo.janmonschke.com</a>. There's few documentation at the moment since I don't really expect people to use it. It's built for my use case of hosting remote quizzes and maybe showing friends/colleagues how to use it. The sign up is open, so everyone could technically use it. It shouldn't be too hard to figure out the flow. Maybe I find the time this year to add some rudimentary documentation.</p>
<h3><a href="https://colorbattle.janmonschke.com">Colorbattle</a></h3>
<p>
</p><figure>
<a href="/img/content/weeknotes/2023/U7BcaI-Ab--705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.avif 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.webp 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.jpeg 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" src="/img/content/weeknotes/2023/U7BcaI-Ab--352.jpeg" width="705" height="929" /></picture>
</a>
<figcaption class="picture__caption"></figcaption>
</figure><p></p>
<p>Most of the game was finished already in 2022 but it was a little rough around the edges. I spent some time cleaning up the UI, added better onboarding and a new daily challenge that gives players a unique challenge each day.</p>
<p>Like Quizzo, this game also relies on real-time communication. Given the nature of this being a game, it needed a "presence" checker. Using SSE wasn't an option in this case, so I used websockets. They're a little more fiddly than SSE, so it took some time to get the server-client communication right. I've played many rounds with friends since then and haven't encounctered any issues so far.</p>
<p>I also moved the app off of Heroku and it's now hosted on <a href="https://railway.app?referralCode=aaNq2D">Railway</a> (which I love btw!)</p>
<p>The game can be played here: <a href="https://colorbattle.janmonschke.com/">colorbattle.janmonschke.com</a> 🕹️</p>
<h3><a href="https://aweekinthewoods.com">A week in the woods</a></h3>
<p>This is my hiking blog that I mentioned above. This year, I managed to migrate the blog from Gatsby to <a href="https://www.11ty.dev/">Eleventy</a>, create a custom hiking map and move it off of Google fonts.</p>
<p>Maybe I'll managae to work on the content this year...maybe...</p>
<h2><a name="top-3-blog-posts"></a>My top three blog posts</h2>
<p>Looking at my <a href="https://withcabin.com/">Cabin stats</a>, these are my site's top posts this year:</p>
<ul>
<li><a href="/changing-my-online-identity/">Changing my online identity</a>
<ul>
<li>My first post this year in which I explain why I deleted my Twitter account and changed my main online persona after switching to Mastodon. Looking at the current state of Twitter, I still stand by what I wrote and am happy to have found a new community ❤️</li>
</ul>
</li>
<li><a href="/adding-webmentions-to-your-static-blog/">Adding webmentions to your static blog</a>
<ul>
<li>This one was published just a couple of weeks after the online persona post. I still use an architecture that is very similar to the one I explain in this post. However, I migrated this blog to Eleventy, so the Gatsby part of that post doesn't apply anymore. I should really find the time to write an updated post that explains how to use the system in Eleventy.</li>
</ul>
</li>
<li><a href="/building-a-minimal-i18n-library/">Building a minimal i18n library</a>
<ul>
<li>This post is from 2019 and every once in a while it gets picked up in blogs or newsletters. The i18n library I am describing in this post is meant for tiny projects. It's super simple to use and doesn't require build steps which some people seem to like over the more complex alternatives out there. I'm still proud of it and I am using it in many of my side projects. However, I would still not recommend it for production usage in <em>actual</em> products.</li>
</ul>
</li>
</ul>
<h2><a name="favorite-books"></a>Favorite books</h2>
<p>As mentioned before, I managed to read 15 books this year. Three more than I set my goal to. I'm hoping to read the same amount or more this year. My favorite books this year were:</p>
<ul>
<li><a href="https://bookrastinating.com/book/14342/s/project-hail-mary">Project Hail Mary</a>
<ul>
<li>I loved <code>The Martian</code> and <code>Artemis</code> was okay. <code>Project Hail Mary</code> I might like even more than The Martian. It's a very unusual "first contact scenario" with a very witty main character. Style-wise it's very similar to The Martian. Which is probably why I liked it so much. I read that they're producing the movie this year and Ryan Gosling will be the main character. It'll be fun to see him in this very nerdy role.</li>
</ul>
</li>
<li><a href="https://bookrastinating.com/book/28931/s/the-kaiju-preservation-society">Kaiju Preservation Society</a>
<ul>
<li>This one hit me by surprise. It was so funny and weird. It had parallel universes in it but didn't feel too SciFi-y. Probably also the first book that I read that talks about the Covid pandemic.</li>
</ul>
</li>
<li><a href="https://bookrastinating.com/book/220/s/leviathan-wakes">Leviathan Wakes</a>
<ul>
<li>A couple years after <code>The Expanse</code> finished/was cancelled, I decided it's time to find out how the story continues. The books are great, possibly better than the show (and its sometimes sub-par acting). It's fun to compare the show's arc to the book's arc and to be surprised by how much deeper the books are going.</li>
</ul>
</li>
<li><a href="https://bookrastinating.com/book/41371/s/artifact-space">Artifact Space</a>
<ul>
<li><code>Artifact Space</code> is the promising beginning of a space opera series. The characters are very well written, the tech is believable. It took me some time to get into but once it got me, I didn't want to put it down.</li>
</ul>
</li>
</ul>
<p>A complete list of all the books I've read in 2023 can be found on <a href="https://bookrastinating.com/user/jan/2023-in-the-books?key=0802fc987d184bce95ed21caddad45b1">BookWyrm</a>.</p>
<h2><a name="favorite-tv-shows"></a> Favorite TV shows</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Ted_Lasso">Ted Lasso</a>
<ul>
<li>Even though season three (the final season) wasn't as strong as the previous two, I really enjoyed this one. The show makers found a good way to finish it. The episode in Amsterdam, as cheesy as some people find it, was my favorite.</li>
</ul>
</li>
<li><a href="https://en.wikipedia.org/wiki/Sex_Education_(TV_series)">Sex Education</a>
<ul>
<li>Another final season this year. This one had a weak start but then it got stronger. The end was sound. I related strongly with one of the main character's struggles this season since a very similar thing happened to me this year...</li>
</ul>
</li>
<li>We didn't really watch a lot of new shows this year. In the early winter months we started (and finished) a <a href="https://en.wikipedia.org/wiki/Friends">Friends</a> marathon. The summer months we rewatched <a href="https://en.wikipedia.org/wiki/Brooklyn_Nine-Nine">Brooklyn 99</a>.</li>
<li>Somehow we didn't watch the final season (<em>another</em> final season...) of <a href="https://en.wikipedia.org/wiki/The_Marvelous_Mrs._Maisel">The Marvelous Mrs. Maisel</a>. It's very high up on our list for this year though.</li>
</ul>
<h2><a name="favorite-podcasts"></a>Favorite podcasts</h2>
<ul>
<li><a href="https://www.techwontsave.us">Tech Won't Save Us</a>
<ul>
<li>I really only got into this podcast this year and I caught up quickly with older episodes. The research that's put into each episode and the depth of topics is outstanding. This <a href="https://www.techwontsave.us/episode/189_elon_musk_unmasked_origins_of_an_oligarch_part_1">four part series on the evil that is Elon Musk</a> is a great starting point to get into this podcast.</li>
</ul>
</li>
<li><a href="https://www.20k.org">20k hertz</a>
<ul>
<li>A rather recent find but I'm already caught up with all episodes of 2023. This podcast goes into detail on sounds/jingles/audio tech such as this episode on the <a href="https://www.20k.org/episodes/wilhelmscreamremix">Wilhem scream</a> or this <a href="https://www.20k.org/episodes/zeldabeep">Zelda mini series</a> that brought me straight back to my childhood.</li>
</ul>
</li>
<li><a href="https://darknetdiaries.com">Darknet Diaries</a>
<ul>
<li>Darknet Diaries is still my favorite podcast and it delivered again this year. It started off with a longer break but then came back with great episodes. My favorite one was <a href="https://darknetdiaries.com/episode/133/">I'm the real Connor</a>.</li>
</ul>
</li>
</ul>
Weeknotes 05/20232023-10-25T00:00:00Z/weeknotes/2023/05/<h2>Weeknotes</h2>
<h2>Life</h2>
<p>The cold season has started in daycare and the little one has a runny nose constantly. He's in a good mood though and his teachers are happy with him.</p>
<p>He made his first steps last week 😍 We weren't prepared for how emotional the moment would be. He was using a walking toy in the courtyard, went past some flowers and then decided to stop and just walk up to them by himself. Since then he's been walking so much every day. The teachers at daycare won the bet that he would start walking before his first birthday. I'll have to come up with a nice gift for them.</p>
<p>He also made his first best friend at daycare. Of course it's the only other French-German kid in his class. 🇫🇷🇩🇪</p>
<p>We started to change our spoken language approach at home. Before, my wife and I would talk English together and then our mother tongues to our son. Now we're just speaking in our mother tongues all the time. This works 95% of the time since we both understand each other's language quite well. It took some time to adjust but we now rarely switch back to English. When he's not around though, we do switch back. Since he's exposed to so much German at daycare, this approach should expose him more to French.</p>
<p>Our days still start very early (~5:30), so it's pretty dark when we open the blinds. That can feel depressing at times. But then, when we walk the little one to daycare through the park, we are witnessing the most beautiful sunrises 🌅.</p>
<h2>Work</h2>
<p>I've been working on a big refactoring of a core feature which ended up being less of a refactoring but more a "straightening" and documentation of the existing architecture. In order to get the feature out sooner and having more time to test it, the "straightening", documenting the architecture and adding new functionality mindfully, worked better. That way I can get feedback from product and internal users earlier and change the feature and fix bugs if necessary. The big refactor is not off the table though. I took notes along the way and created an action plan for the refactoring and will work on that right after.</p>
<p>The feature I'm talking about doesn't really have unit tests but is rather well covered by acceptance tests. This means the dev-test cycle is a little slower and my laptop's fans are running constantly. I really need to upgrade the machine. I was unlucky to get one of the last Intel MacBooks when I joined the company. The laptop lineup was refreshed a week after my start date, haha. Anyways, I filled the request to get an M2 and hope it'll all be much smoother in a couple of weeks.</p>
<h2>Web / Tech</h2>
<p>My little site got a couple thousand visits over the last week and I don't know where the traffic came from. I have a hunch that it came from a newsletter that linked to my <a href="https://janmonschke.com/building-a-minimal-i18n-library/">blog post on building a minimal i18n library</a> . Most of my site's traffic landed there last week and it appears they came with an <code>utm_source</code> of <code>customer.io</code>. Which is a tool for tracking all sorts of things, including newsletters. I did some digging, but couldn't find a newsletter linking here. So if you're reading this and you came through the newsletter, hi 👋, let me know on <a href="https://social.lol/@janmon/">Mastodon</a> which newsletter that was 🙂.</p>
<p>Speaking of Mastodon, I came across the <a href="https://streetpass.social/">StreetPass for Mastodon extension</a> and I installed it on all of my machines. It surfaces Mastodon accounts from the sites you visit. Many Mastodon users have added their accounts as <code><link /></code> tags to their sites for verification (e.g. <code><link rel="me" href="https://social.lol/@janmon"></code>. The extension lets you know when you have come across a new Mastodon account and lists all the ones you have already seen. Very handy to get Mastodon handles of blog post authors.</p>
<p>One blog post that stood out this week was this excellent overview on <a href="https://frontendatscale.com/blog/islands-architecture-state">sharing state on sites with an "island" infrastructure</a>. It feels similar to an architecture of a site that I was working on as a freelancer roughly 10 years ago, haha. But I'm glad that a lot of the building blocks for these architectures are now much more standardised (e.g. web components).</p>
<p>Another interesting blog post is this one which explains <a href="https://kettanaito.com/blog/one-thing-nobody-explained-to-you-about-typescript">the purpose of <code>tsconfig.json</code></a> . It's very well written and gives handy examples. It shows how to leverage multiple config files depending on the "context" of your TypeScript files (e.g. test vs frontend vs server context).</p>
<p>And, last but not least, I started using <a href="https://www.usebruno.com/">Bruno</a> as my API test tool of choice. I'm transitioning to a more backend-heavy task at the moment so I was looking for a nicer tool to running and inspecting API calls. Which, in Bruno, is a breeze. In fact, I liked Bruno so much, I contributed two PRs last week. One that <a href="https://github.com/usebruno/bruno/pull/694">fixes a CSS line-breaking issue</a> and another one <a href="https://github.com/usebruno/bruno/pull/750">that makes Bruno (more) GDPR compliant</a>.</p>
<h2>Entertainment</h2>
<ul>
<li>📚 I'm almost done with <a href="https://en.wikipedia.org/wiki/Caliban%27s_War">Caliban's War</a>. For some reason I went through it much fast than Leviathan Wakes which took me some months. Now it took me just a couple weeks. The urge to re-watch The Expanse is growing with every page I'm reading.</li>
<li>🍿 To wind down in the evening we started watching random <a href="https://en.wikipedia.org/wiki/Parks_and_Recreation">Parks and Recreation</a> episodes. Man, that was such a great show all around.</li>
</ul>
<h2>Song of the week</h2>
<p>Just like <a href="https://janmonschke.com/weeknotes/2023/04/">last week</a>, there is no song of the week this week. This time I want to recommend a "music" streaming service that I use every day at work. Listening to regular songs can distract me at times so I was looking for a more mellow alternative. I found <a href="https://brain.fm">Brain.fm</a> to work very well for me. The songs, and the added "neural effect" do put me into focus mode quite quickly. I can highly recommend it 🎉</p>
Weeknotes 04/20232023-10-03T00:00:00Z/weeknotes/2023/04/<h2>Weeknotes</h2>
<h2>Life</h2>
<p>Even though it's the end of September/early October, the days are still pretty warm and our little one is hitting playground after playground. He's about to start walking we think. Everywhere he can possibly pull himself up, he does so. Then traverses along the object. Stops to stand by himself and then repeats the whole process. Berlin playgrounds have quite the diverse offering. There's something for all ages. Our favorite playground so far has probably been <a href="https://maps.app.goo.gl/2Ti62TSJNCH4Yabh6">Weltspielplatz in Treptower Park</a>. It's a little far away for us, but there's so much to do and it's close to the water also.</p>
<p>We also went to an indoor playground called <a href="https://maps.app.goo.gl/3LU1atZFexrDLBTw5">MachMit</a> which is located in a former church. It has two floors. The one downstairs is an interactive exhibition and the floor upstairs is a gigantic climbing labyrinth. Our little one is still too young for most of the installations but he loved the ones he could try already. We can't wait to see how he'll like the climbing installations.</p>
<hr />
<p>More of the cafés around us are offering pumpkin spice latte (we tried <a href="/weeknotes/2023/03/">Brammibal's last week</a>). The newest one being <a href="https://maps.app.goo.gl/to7Amy9tgdkVBz1N7">Coffea in Ebertystr</a> . It's our go-to café these days. Located neatly between parks and playgrounds with a great lunch offering also. Their PSL is more on the desert-side of things with heavy whipped cream. I prefer the more spicy version of a PSL but I can see how people love these ones also.</p>
<h2>Tech stuff</h2>
<p>I've been blown away by the <a href="https://begin.com/blog/posts/2023-09-28-introducing-enhance-music">Enhance Music</a> tech demo. It's a music service just like SoundCloud (where I worked for 7 years) but as a multi page web app. SoundCloud is built as a gigantic single page app to allow for page navigation while music keeps playing (amongst other reasons like caching etc.). So this tech demo was quite a refreshing and brilliant take on this problem.</p>
<p>Their solution to the whole music in the background problem is to use iframes. Jep, frigging iframes. The page is basically split into two iframes. One is responsible for rendering the music catalogue, the other displays the music player. Each song in the catalogue is an <code><a /></code> tag with <code>target='player'</code>. So the <code>player</code> iframe will navigate to the requested song and start playing it. The catalogue frame is unaffected. I didn't know that links from one iframe would be able to target another iframe on the same page. So that kind of blew my mind.</p>
<p>This comes with a bunch of advantages like a lot less heavy page weight, faster load times, faster rendering etc. It's an interesting demo and we tried to achieve something similar at SoundCloud (also with iframes) but we were never given the time to execute on those plans. A rewrite of the SoundCloud monolith would have been very complicated and due to the nature of this architectural change, would have probably blocked most other development of the site.</p>
<hr />
<p>I upgraded to Sonoma, for the sole reason to be able to add websites to the dock. I LOVE that feature. Previously I used Chrome's PWA install dialog to add some websites to my app folder (because Firefox doesn't support this on the desktop, yet). But I'm trying to use Chrome less and less now so I'm happy that Safari has this built-in now. I'm not saying that I'm becoming a Safari user now. Just a couple of apps like Fastmail, Netflix and YouTube music made it in my dock so far.</p>
<h2>Work</h2>
<p>At work we realized that failing type checks didn't stop the CI for several months now. So, given the size of the project and that amount of people working on it every day, fixing those type errors was no easy undertaking. I volunteered to fix the types for my "department" and got down the one or the other rabbit hole. Sometimes even needing type fixes in dependencies.</p>
<p>Of course, we couldn't re-enable type checks on the CI before they were all fixed, so there were a couple of days were new type errors made it into <code>main</code> while you thought you were already done with your fixes. Anyhow, I quite liked getting into the nitty gritty of the code base.</p>
<p>On an "unrelated" note, I also enjoyed listening to the "type war" episode of JS Party where they talk about Svelte's decision to ditch TypeScript in favor of JSDoc. And of course they could not not address the elephant in the room that is the controversial way that <a href="https://github.com/hotwired/turbo/pull/971">TypeScript was janked out of turbo</a>.</p>
<h2>Side projects</h2>
<p>I wanted to continue my blog post on the history of <a href="https://colorbattle.janmonschke.com/">colorbattle 🕹️</a> , but didn't get to it at all the last two weeks. There is an outline and notes for each of the four rewrites and at what time in my life / career I decided to go for another rewrite. I've been swimming in nostalgia since I wrote up those note, connecting with people that I had not talked to in a long time. If this continues, I might be finished with the blog post at the end of next year 😅</p>
<h2>Entertainment</h2>
<ul>
<li>📚 I finished reading with <code>Leviathan Awakens</code> and watched the responding ending of the season of its TV show to compare the two. In the show, the end of book one and the beginning of book two actually overlap, so the end of book one is actually halfway in the second season. But yeah, it's very close to the book, surprisingly. I might watch the show again. Maybe after reading all the books (that they made seasons for).</li>
<li>🌐 I loved reading this background story to a YouTube comment: <a href="https://markslutsky.substack.com/p/something-good-88-irene">https://markslutsky.substack.com/p/something-good-88-irene</a></li>
<li>🍿 We finished almost all episodes of the final season of Sex Education. It started slow, and not as great as previous seasons. But it got better. You can also feel like they're trying to wrap up the story archs. They don't want to leave you hanging like some other shows did ;)</li>
</ul>
<h2>Video of the week</h2>
<p>No song of the week this time since I didn't have time to listen to a lot of new music. But here's one of my favorite clips of the show <code>Toast of London</code>.</p>
<script type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.5.0/lite-youtube.js"></script>
<p><lite-youtube videoid="grp-hFT2_u0"></lite-youtube></p>
Weeknotes 03/20232023-09-17T00:00:00Z/weeknotes/2023/03/<h2>Life</h2>
<p>For the first (and probably last time) this summer, I was able to make it to <a href="https://narrativ.es/@janl/111028575484732060">Jan's open lunch at Zenner</a> (a beer garden next to the river, inside a beautiful park). It was fun to meet some folks that I hadn't seen in literally years. Even though pretty much everyone there worked in tech, the conversations didn't necessarily revolve around that. One thing that came up were the not so uncommon boar or fox sightings in Berlin. You know, <a href="https://www.bbc.com/news/world-europe-53692475">those Berlin boars that steal laptops at nudist lakes</a> or that <a href="https://www.theguardian.com/world/2023/jul/21/escaped-lioness-berlin-most-likely-wild-boar">are sometimes mistaken for lions</a>. 🐗🦁</p>
<p>I went to the park with the cargo bike that <a href="/weeknotes/2023/02">we rented from Robin</a> the week before. It was the longest ride on that bike so far (around half an hour). The day before, we had already decided to get the same bike, so I was already imagining myself, riding those distances with my son very soon. We signed the leasing contract at the end of the week and are now waiting for the delivery. It should arrive in 2-3 weeks 🤞 (It's a <a href="https://chike.de/e-kids/">Chike e-kids</a>)</p>
<p>Our son had pretty high fever for 3 days this week, so we took time off to take care of him. He didn't have any symptoms apart from the fever which we found odd. Later on we learned that there is a children's disease that's literally called three-day-fever (at least in German, in English it's Roseola or sixth disease). The fever went away as quickly as it came and we were able to spend some time outside over the weekend. ☀️</p>
<p>One of the things we did right after he felt better, was to treat ourselves to some yummy Brammibal's donuts. To our delight, they had already started pumpkin pie spice season 🎉. Pumpkin pie spiced latte makes for the perfect donut pairing. But also reminds us that the days will be colder from now on 😅</p>
<h2>Side projects</h2>
<div style="width: 70%; margin: 0 auto;">
<p><a href="https://colorbattle.janmonschke.com">
<figure>
<picture><source type="image/avif" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.avif 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.webp 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2023/U7BcaI-Ab--352.jpeg 352w, /img/content/weeknotes/2023/U7BcaI-Ab--705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" img-no-link="true" src="/img/content/weeknotes/2023/U7BcaI-Ab--352.jpeg" width="705" height="929" /></picture>
<figcaption class="picture__caption"></figcaption>
</figure></a></p>
</div>
<p>I managed to get <em>most</em> of the remaining work done on the project that I mentioned last week (everything apart from a blog post about it, but more on that later). It's a color-matching game that I now have build a couple of times. Each time with a completely different tech stack. Each time I built it for a different reason. And every time it made sense to rewrite it. While I was pondering those previous iterations of the game, I got very nostalgic and I feel like it's worth a proper blog post. Which is the perfect side project for the next week(s).</p>
<p>Anyhow, the game can be played here: <a href="https://colorbattle.janmonschke.com/">colorbattle.janmonschke.com</a> 🕹️</p>
<p>While it's technically a multiplayer game, you don't need to wait for other players to get started. There are two modes where you can challenge the AI (ouuuuuhhh) and also a single player mode.</p>
<p>Let me know what you think about the game 🤩</p>
<h2>Entertainment</h2>
<ul>
<li>📚 I'm almost done with <a href="https://en.wikipedia.org/wiki/Leviathan_Wakes">Leviathan Wakes</a> and I don't remember much of the ending from the TV show. Either they completely rewrote the ending for the show or I really just forgot. I'll rewatch the last episode of the first season after I'm done with the book</li>
<li>🍿 I finished Painkiller. The ending was intense, shook me in so many ways. Can highly recommend the show but be warned that it might ruin your good mood 😉</li>
<li>🍿 The <a href="https://www.youtube.com/watch?v=WldgrH9SvbE">trailer for the final season of Sex Education</a> dropped and it looks great. Can't wait for the season to start. Though, I'm already sad it'll be the last one.</li>
</ul>
<h2>Song of the week</h2>
<p>Ginger Root - Loretta. This tune has been stuck in my head since this summer. It just won't leave. And that's okay. Ginger Root will be playing in Berlin this October but I don't think I'll be able to make it 😭.<br />
<a href="https://www.youtube.com/watch?v=u-WTfP3WJc4">
<figure>
<picture><source type="image/avif" srcset="/img/content/weeknotes/2023/xOlhLLNIPO-352.avif 352w, /img/content/weeknotes/2023/xOlhLLNIPO-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2023/xOlhLLNIPO-352.webp 352w, /img/content/weeknotes/2023/xOlhLLNIPO-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2023/xOlhLLNIPO-352.jpeg 352w, /img/content/weeknotes/2023/xOlhLLNIPO-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" img-no-link="true" src="/img/content/weeknotes/2023/xOlhLLNIPO-352.jpeg" width="705" height="499" /></picture>
<figcaption class="picture__caption"></figcaption>
</figure></a></p>
Weeknotes 02/20232023-09-10T00:00:00Z/weeknotes/2023/02/<h2>Life</h2>
<p>It's the first week that our son was looking forward to going to daycare. So far he'd been clingy at times, also cried a little. Not this week. He was squeaking with joy, greeting his friends and the caretaker. 😍 Couldn't be more proud of him!</p>
<p>We started planning our next trip back to the family in Paris and coincidentally it was announced this week that <a href="https://social.lol/@janmon/111022433617280701">the night train between Paris and Berlin will launch in December</a>. We hope to be able to try it out this year, though we are not sure if it's the best idea to travel in a night train with a 14 month-old. In any case, the existence of this route will make travelling to France so much easier for the years to come 🎉</p>
<p>I left Twitter this week. Earlier this year <a href="/changing-my-online-identity">I wrote about wanting to keep the account but in read-only mode</a>. The recent news around the company have made it clear to me though, that I don't want to associate with it anymore. On top of that, I hadn't used my account in ages. I asked for an archive of all my data, left a goodbye-tweet and deleted the account a day later. Thanks again <a href="https://front-end.social/@benschwarz">@benschwarz</a> for the reminder to finally delete that account, Ben left, reminded me that I don't use the site anymore, downloaded my data and sent out a goodbye tweet.</p>
<p>This Sunday we were lucky enough to try out our favorite cargo bike for a full day (thanks again <a href="https://chaos.social/@rmehner">@rmehner</a>). Our son loved it so so much. On the first ride he felt so relaxed and save, he even fell asleep 🤩. On the other rides he played with his toys, pointed at trees and blabbered around. We're happy he loves the bike as much as we do ❤️</p>
<h2>Work</h2>
<p>Not a lot to report this week since it's "on week". In those weeks, we can propose explorative projects or use the time to learn something new or just focus on our work. Most meetings are cancelled for the week in order to reduce distractions. The on week was perfectly timed for me coming back to work after parental week as it gave me time to catch up on new projects and check in on old topics.</p>
<h2>Misc</h2>
<p>I ttarted to use the <a href="https://blog.mozilla.org/en/products/firefox/its-a-new-firefox-multi-tasking-extension-side-view/">Side View extension</a>. I found it was very helpful for reviewing PRs with attached issues or other links. It's so handy to open them right next to the PR. So far it's working great for me. Hoever, it's sad that it's been abandoned. But it still works. Only issue I encountered so far: It would be great to be able to increase the width of the side view just a teeny tiny bit more for sites that don't work well in smaller viewports.</p>
<h2>Side projects</h2>
<p>I was looking at older weeknotes where I mentioned side projects and found that I sadly abandoned a couple of them. Which, I guess, is just normal. Motivation to work on some projects ebbs and flows. And sometimes completely vanished. The reason I looked into it was because I was about to start a new project, one that I had in mind for a long time. However, I also wanted to finish another one of the open ones to feel accomplished.</p>
<p>And there was actually one I almost finished last year (<a href="/weeknotes/2022/02">02/2022</a>) but then life happened, I guess. Or maybe it's just that I feel like the project's design isn't the best and I get stuck on details. Anyways, I made some progress this week. I removed some features that are not necessary for a launch. Tidied up some views, fixed some bugs and now I basically only need to buy a domain name. Funny how I didn't buy the domain first this time. 😂</p>
<h2>Entertainment</h2>
<ul>
<li>📚 <a href="https://en.wikipedia.org/wiki/Leviathan_Wakes">Leviathan Wakes</a> keeps delivering. It's funny to read the books when you've already seen the show though. Takes a bit of the magic away, I guess. When I imagine the characters and the locations they obviously always look like the ones on the TV show. It's not a bad thing to be honest. Makes me want to watch the show again.</li>
<li>🍿 I started watching <a href="https://en.m.wikipedia.org/wiki/Painkiller_(TV_series)">Painkiller</a> and I love hate it. It's about the opioid crisis in the USA and follows a family affected by the effects of the drug, an investigator going after a pharma company, sales reps from the pharma company and the family running the company. I think it's well done and I enjoy watching it, but it just makes me really sad. But I also cannot stop watching. Luckily it only has 6 episodes and I'm almost done 😅</li>
<li>🔗 Check out <a href="https://one-from-nippon.ghost.io/coffee-in-a-can/">this article on coffee cans in Japanese vending machines</a>. It brought me back to the time I travelled Japan and tried a different canned drink every day 😄. Often not knowing what I had bought but it always turned out to be fun. Well, almost always. Until I bought a hot can of chunky corn soup but I just wanted a refreshing drink.</li>
<li>🔗 Final one for today: <a href="https://steele.blue/geofence-pizza-ordering/">Using your bike's GPS to automate a pizza order at the destination of a race</a> 🍕🚴♀️</li>
</ul>
<h2>Song of the moment</h2>
<p>Given that their album preorder just started, I really wanted to share another Hidden Orchestra track. This time it's from their upcoming album and it's called Skylarks. Again, perfect music to focus IMO. If you like them, check out the other tracks I shared in <a href="/weeknotes/2021/02">2/2021</a> and <a href="/weeknotes/2021/04">4/2021</a>.</p>
<iframe width="100%" height="300" scrolling="no" frameborder="no" loading="lazy" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1458271972&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 01/20232023-09-04T00:00:00Z/weeknotes/2023/01/<h2>Life</h2>
<p>My son finished the fourth week of settling into daycare. In Berlin, as probably in a lot of other places, kids are slowly settled into their daycare routine. In the beginning I stayed with him there, observed him play with the other kids. Then I gradually left for longer durations. Until he's ready to have his lunch nap there and feels confident to interact with other kids and play by himself.</p>
<p>He was curious from day one and, as most kids were older, he was not afraid. Judging from the experience of friends, we were quite lucky that in week two he was already sleeping there and that he generally didn't reject being there. They only had to call me once and that was just before his nap time anyways. We're super proud of him and he's developing so much there ❤️</p>
<p>Speaking of which, he grew so quickly and the time flew so fast. My wife and I spent nine months after birth taking care of him together. The parental leave in Germany is quite generous and my employer gave me four extra months on top. Including the daycare month, I've now spent 10 months taking care of him (of which we both worked 3 months part-time). But it feels like much shorter than that. It feels like yesterday that he was such a tiny nugget. And now he's crawling like a champ, wants to go faster on the bike and starts to blabber. 😍</p>
<p>For several weeks we have now been looking into buying a cargo bike to help us bring the little one to daycare, to do big groceries and to go on bike trips with friends. There are so many different models on the market now which makes it hard to find the right one. Or rather, they're all great, just the it's hard to choose when there are so many options. Where we live in Berlin, we see a lot of <a href="https://muli-cycles.de/en/bikes/motor">Muli bikes</a> or <a href="https://urbanarrow.com/">Urban Arrows</a>.</p>
<p>The Muli is great because it's compact and very agile. It doesn't feel like cargo bike when you drive it, even without a motor. The Urban Arrow is a lot more inert, less agile and just very big and bulky. There are advantages to long bikes like the Urban Arrow e.g. the large amount of space, but they are ultimately too big for us.</p>
<p>We almost decided to get the Muli, but then friends recommended the <a href="https://chike.de/e-kids/">Chike</a> and that's the bike we're currently aiming to get. Before that, we want to rent it out for a longer tour though since so far we only had it for 30 minutes when testing it out at the dealership. Our son loved it, of course. It's a cargo bike made for transporting kids. The special thing about the Chike is that it has three wheels, two in the front, one in the back. Which in itself isn't that special and there are plenty of other bikes with the same configuration. However, the Chike's front wheels tilt when taking turns and so it feels much more like a two-wheel bike. I recommend checking out their promo video, it's a very unique bike.</p>
<h2>Work</h2>
<p>This week was my first week back at work. I was mainly catching up with what happened in the past months and then I of course had to redo plenty of the corporate trainings, haha. Many of my coworkers are still on vacation, which made it a very easy start so far. Easy is good, since it will take me some time to adjust to this new schedule. Morning routine with the little one, his morning nap, dropping him off at daycare, work work work, picking up the kiddo, evening routine, a little bit more work (meetings with the US) and then bed. Ouff. Let's see how that'll go.</p>
<h2>Side projects</h2>
<p>
</p><figure>
<a href="/img/content/weeknotes/2023/mzJfgTNwfS-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2023/mzJfgTNwfS-352.avif 352w, /img/content/weeknotes/2023/mzJfgTNwfS-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2023/mzJfgTNwfS-352.webp 352w, /img/content/weeknotes/2023/mzJfgTNwfS-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2023/mzJfgTNwfS-352.jpeg 352w, /img/content/weeknotes/2023/mzJfgTNwfS-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" src="/img/content/weeknotes/2023/mzJfgTNwfS-352.jpeg" width="705" height="645" /></picture>
</a>
<figcaption class="picture__caption"></figcaption>
</figure><p></p>
<p>I ported this blog to <a href="https://www.11ty.dev/docs/">Eleventy</a> last week. There was no real need to do this other than me being upset about how slow Gatsby was and how pointless it felt to load React on this blog. This is not a rant agains React, or any framework for that matter. It's just that it's completely unnecessary on a site like this one.</p>
<p>Porting the blog went super smoothly, given I had already done the same a few months back with my <a href="https://aweekinthewoods.com/">hiking blog</a>. Interestingly, the hiking blog started off as a clone of this blog. Was then ported to Eleventy. To then ultimately be the template for this blog's port to Eleventy. We went full circle there. 😄</p>
<p>This site is now 300kB lighter, loads and builds much faster and uses only native web features under the hood (including web components, thanks to <a href="https://www.11ty.dev/docs/languages/webc/">WebC</a>). The hardest part was to change all the <code>className</code> attributes to <code>class</code> 😅. I must say that I feel a lot more comfortable with Eleventy's collection and JSON data sourcing than with Gatsby's GraphQL. Which, of course, is a personal preference. I also <a href="https://social.lol/@janmon/110968694684373814">tooted about it</a>.</p>
<p>I had to alter the webmention implementation that I talked about <a href="https://janmonschke.com/adding-webmentions-to-your-static-blog/">in this blog post</a> a little bit which makes me think I should write a follow-up post that explains the (minimal) changes that are necessary.</p>
<h2>Entertainment</h2>
<ul>
<li>📚 <a href="https://openlibrary.org/books/OL30036715M/Project_Hail_Mary">Project Hail Mary</a> was a fun read, very much like The Martian was. I read it really quickly, loved the character development. Even though the similarities to The Martian are obvious, it does not feel repetitive. I'm looking forward to the movie adaption and how Ryan Gosling will do in the main role.</li>
<li>📚 Now I'm reading <a href="https://en.wikipedia.org/wiki/Leviathan_Wakes">Leviathan Wakes</a> which is the first book in the Expanse series. I'm a fan of the TV show that's based on these books and was sad to learn that they cancelled the show. Since the TV show only covers around 6 and a half books out of 9 of the novel series, there's a lot more to read. No, let me rephrase that. A TON. Those books are huge.</li>
<li>🍿 My wife and I re-watched <a href="https://en.wikipedia.org/wiki/Motherland_(TV_series)">Motherland</a>. It was one of the shows that we watched before the birth of our son as part of our "preparation" 😅 We were able to relate to some of the parent's stories already. The shows cracks us up every time and we'll be watching it again and again.</li>
</ul>
<h2>Song of the moment</h2>
<p><a href="https://music.youtube.com/watch?v=RPvbvHD2sdc&si=bcT0MNQ12Af7jjd2">
<figure>
<picture><source type="image/avif" srcset="/img/content/weeknotes/2023/aqbwd645GE-352.avif 352w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2023/aqbwd645GE-352.webp 352w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="" img-no-link="true" src="/img/content/weeknotes/2023/aqbwd645GE-352.jpeg" width="352" height="352" /></picture>
<figcaption class="picture__caption"></figcaption>
</figure></a></p>
<p>This week's song is not available on SoundCloud, so a YouTube Music link will have to do: <a href="https://music.youtube.com/watch?v=RPvbvHD2sdc&si=bcT0MNQ12Af7jjd2">Mayaewk - One Last Time</a>. Such a chill beat, the trumpets are amazing. My current go-to for the morning coffee ritual ☕️</p>
Weeknotes 05/20222022-09-18T00:00:00Z/weeknotes/2022/05/<h2>Life</h2>
<p>Fall has started and temperatures are dropping quickly in Berlin. Yet, somehow we managed to see plenty of friends in parks the last couple of weekends. It's neither too cold, nor too windy, just the right temperature (with the right clothing 😅).</p>
<p>Most days we're now preparing the flat for the baby. Every day feels like Christmas as boxes and boxes of (mostly second-hand) baby items arrive. There are so many good offers on eBay Kleinanzeigen and Vinted and all of them were in great condition so far. The only problem we had was a baby monitor that turned out to be a recalled product. The battery could potentially overheat and burn your skin 😰. Luckily we got a refund from manufacturer and were able to replace the item!</p>
<p>We feel a lot more prepared after a birth preparation course and plenty of great advice from friends and our midwife. In general, the support we received in Berlin has been outstanding. When it comes to organizing child care however, it feels like the wild west. There are processes put in place by the city of Berlin and then there are child care providers that tell you they will not follow those processes. They pretty much make up their own rules 🙃</p>
<p>After just over eight years it was time to replace my old MacBook Pro and it's the first time I did not go for a <code>Pro</code> MacBook. I went with a M2 MacBook Air and it's been a great decision. It's so fast, so light, has a nice screen and the battery seemingly lasts forever 🥰. Especially with <a href="https://www.apple.com/macos/monterey/">MacOS Montereys's Low Power Mode</a> ✌️ I have low power mode enabled all the time and the laptop still feels snappy for all for my everyday tasks such as working on my side projects, browsing, streaming. Such a marvelous device 🎉</p>
<h2>Work</h2>
<p>Got to go to my first (in-person) conference since the end of 2019 and it went great! I chose React Finland since I'm working with React at work pretty much every day. And because my friend <a href="https://mastodon.social/@nikgraf">Nik Graf</a> was scheduled to give a hilarious meta talk about the <a href="https://www.youtube.com/watch?v=25QQcPSzH8Y&list=PL-a9lBflNu2ph1J-a19LNLo3GKikBDsWZ&index=10">weird things about React</a>. I had never been in Finland before and loved Helsinki. When taking a break from the conf, I spent time in one of the many cute cafés, took a walk to book shops and sat in one of the many nice parks. Will definitely come back again. Special shoutout to the <a href="https://stately.ai/">Stately</a> crew, who were super fun to hang out with.</p>
<p>The last two weeks before the start of my parental leave have started. My final task is a major refactoring of a plugin that is a core part of the application my team works on. It involves talking a to the original implementors, hearing a lot of apologies about decisions that were made. It's weird how people apologise now for decisions that were perfectly fine 3 years ago, under different circumstances. In any case, progress is going great and I'm confident I'll be able to ship it before the birth of my son.</p>
<h2>Side projects</h2>
<p>
</p><figure>
<a href="/img/content/weeknotes/2022/9O5HGwhmzh-1500.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.avif 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.avif 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.avif 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.webp 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.webp 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.webp 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2022/9O5HGwhmzh-352.jpeg 352w, /img/content/weeknotes/2022/9O5HGwhmzh-705.jpeg 705w, /img/content/weeknotes/2022/9O5HGwhmzh-1500.jpeg 1500w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Screenshot of the pub quiz application" src="/img/content/weeknotes/2022/9O5HGwhmzh-352.jpeg" width="1500" height="962" /></picture>
</a>
<figcaption class="picture__caption">Screenshot of the pub quiz application</figcaption>
</figure><p></p>
<p>I'm preparing a remote pub quiz at work and found that while it's possible to keep score on paper, chances to get something wrong are quite high (for me at least). So obviously I decided to build an web app to help with with keeping score. In the app you create quizzes upfront. It supports regular multiple choice, open ended and estimation questions. When it's time for running the quiz, a new session can be started, teams randomly assigned and scores taken on the go. There's also the option to set time limits for questions.</p>
<p>This project gave me the opportunity to try out <a href="https://remix.run/">Remix</a> and I think I liked the experience so far. I'm not sure I'm doing things the proper Remix-way but the docs are not always clear on how things are supposed to be done. In any case, I love the approach to stick as close to web standards as possible! Oh, and <a href="https://www.prisma.io/">Prisma</a> is great too!</p>
<p>The code is <a href="https://github.com/janmonschke/quizzo">available on Github</a>, in case you're curious. It also contains some questions to get you started in hosting your first quiz.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2022/5YTab_Mpuh-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2022/5YTab_Mpuh-352.avif 352w, /img/content/weeknotes/2022/5YTab_Mpuh-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2022/5YTab_Mpuh-352.webp 352w, /img/content/weeknotes/2022/5YTab_Mpuh-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2022/5YTab_Mpuh-352.jpeg 352w, /img/content/weeknotes/2022/5YTab_Mpuh-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Screenshot of the gather town environment in which the quiz was held" src="/img/content/weeknotes/2022/5YTab_Mpuh-352.jpeg" width="705" height="434" /></picture>
</a>
<figcaption class="picture__caption">Screenshot of the gather town environment in which the quiz was held</figcaption>
</figure><p></p>
<p>(note from the future: The quiz went well. People loved the <a href="https://www.gather.town/">Gather Town</a> setup specifically.)</p>
<h2>Entertainment</h2>
<ul>
<li>📚 I started reading <a href="https://openlibrary.org/books/OL32009035M/The_Code_Breaker">The Code Breaker by Walter Isaacson</a> (which I got in Helsinki). Usually I don't read biographies, but this one is fascinating me as it's about Jennifer Doudna, one of the creators of CRISPR gene editing. Genetics was one of my favorite topics in high school and I wanted to learn more about CRISPR for a long time. I am specifically loving the chapters on the ethics of gene editing.</li>
</ul>
<h2>Song of the moment</h2>
<p>A very mellow track by Kraak & Smaak called Twilight. The intro doesn't do justice to the rest of the song. The build-up of the soundscape is outstanding ❤️:</p>
<iframe width="100%" height="300" scrolling="no" frameborder="no" loading="lazy" title="Embedded song from SoundCloud" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/726190648&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 04/20222022-07-24T00:00:00Z/weeknotes/2022/04/<p>(cw: war, death, pregnancy)</p>
<h2>Life</h2>
<p>This is a tough update to write. With the current situation in Ukraine still ongoing it still feels like nothing else matters as much. It feels paralyzing, it's not something to just easily move on from. Heck, the solution has not been resolved, it feels like it's constantly getting worse. There's not much I can do from here other than to donate to relief causes in the Ukraine and to help out at the welcome center at the train station from time to time. I don't know how this situation will be resolved, I just know the world that we lived in before has changed forever.</p>
<p>The weekend the war "started" (I know, it's been coming for years) was a tough one. That night, before Russia started its full-on invasion, my wife and I had to evacuate our apartment because they found a WW2 bomb at a construction site 300 meters from where we live. It's not an uncommon find in Berlin but it was the first time we had to be evacuated. We spent the night outside the blast radius with another friend. The bomb defusal situation gave the lingering invasion in the Ukraine a different perspective and it made it hard for me to find rest that night. The bomb eventually got defused in the eary hours of the morning and we were able to find sleep.</p>
<p>That morning we woke up to the horrifying news about the Russian invasion. I felt sick to my stomach. I wasn't able to think straight. I didn't feel safe anymore in Berlin, just a couple hundred kilometers away from Russian bombs destroying a European country on the pretense of de-nazification. This stupefied argumentation and style of propaganda reminds so much of the Nazis in Germany, something that I hoped I would not need to encounter Europe in my life time. But there we were. I talked a lot more to my family that day, especially to my aunt. She and my parents raised me to be a pacifist and an anti-fascist. My earliest memories memories revolve a lot around going to political demonstrations. The conversations with my aunt that day were tough. She was afraid of the war coming to Germany but she also found the words to calm me down.</p>
<p>The next morning I get a frantic phone call from my brother: My aunt passed away that night. She was way too young to go. I could not believe these news. I did not want to believe them. We had just talked a couple hours before. I could not make sense of how life had changed so drastically in just two days. I could not go to work. Could not find joy in the things I usually love. The fog surrounding me was thick and weighed down heavy on my shoulders.</p>
<p>A couple days later, I was pulled out of that downward spiral by great news from my wife: she was pregnant! Our joy was overflowing! Again, I cried all day, this time for a happy reason. Those news toggled a switch for me. I found the energy to go out and help at the Ukrainian welcome center at the train station in Berlin for the first time. We've gone back multiple time since then. I feel motivated to help out more where I can. Even now writing this, I still cannot believe how these news shifted my perspective then and still now.</p>
<p>So the last months we spent organising all that needs to done to prepare ourselves for welcoming a new human in our lives. We still have some time until the due date in November and we're making sure to enjoy the ride until then as much as we can. We're currently on our final vacation (🇫🇷☀️) without our son for probably the next couple of decades.</p>
<h2>Work</h2>
<p>After such an intense life update, I want to make this work update very light. I am very happy at Elastic and also proud to work for a company that is standing with Ukraine and <a href="https://www.elastic.co/ukraine-response">providing the security product for free to Ukrainian entities</a> 🇺🇦✊.</p>
<h2>Entertainment</h2>
<p>📚 Not a book recommendation but a fun thing I noticed in some book shops: literally not judging the book by its cover. A couple of shops were offering books wrapped in paper, only printing the first sentence on it without revealing the name of the book. It's fun to guess the title or the genre of the book with such limited information. I've bought one and it turned out to be an entertaining Mark Gimenez novel (similar to John Grisham).</p>
<p>🍿 <a href="https://en.wikipedia.org/wiki/Everything_Everywhere_All_at_Once">Everything Everywhere All at Once</a>: Go watch it! Don't even watch the trailer or read reviews. Let yourself be emerged in this absurd....-ly deep and hilarious movie. The only movie I watched in the cinema this year since they were showing it at midnight and I knew only a handfull of people would show up. This Covid thing is not yet over and even though I would always wear a mask in a closed room it felt better to go when there're not that many people around.</p>
<h2>Song of the moment</h2>
<p>A deliciously funky tune by Parcels: Overnight!</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" loading="lazy" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/698424172&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 03/20222022-02-16T00:00:00Z/weeknotes/2022/03/<h2>Work</h2>
<p>Last week <a href="https://www.elastic.co/blog/whats-new-elastic-8-0-0">Elastic 8.0 was released</a> 🎉. My contributions to this big release were rather minor since I joined when teams were wrapping up their 8.0 work already. It was very interesting to see the collective work towards such a big release. Hope the community will be as happy with that version as we are. I cannot wait to get my first bigger features into the next release 🙌.</p>
<h2>Side projects</h2>
<p>I made some progress on the color-picking game that I was writing about <a href="/weeknotes/2022/02">last week</a>. The game now has three different multiplayer modes: a) play against the computer b) challenge a random player c) play against a friend. The "AI" in a) is actually quite challenging, yet was quite simple to implement. It basically looks at the field and calculates the <em>potentially best next</em> move. It's not smart enough to look ahead or take the other player's move into account. However, it is fun to play against it 🤖.</p>
<p>I also just now finished building the first iteration of the single player mode. It was surprisingly easy since I built the game logic in a modular way and basically just needed to create a new state machine for this new mode 🎉.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2022/YGqaY60dbX-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2022/YGqaY60dbX-352.avif 352w, /img/content/weeknotes/2022/YGqaY60dbX-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2022/YGqaY60dbX-352.webp 352w, /img/content/weeknotes/2022/YGqaY60dbX-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2022/YGqaY60dbX-352.jpeg 352w, /img/content/weeknotes/2022/YGqaY60dbX-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Single Player mode" src="/img/content/weeknotes/2022/YGqaY60dbX-352.jpeg" width="705" height="709" /></picture>
</a>
<figcaption class="picture__caption">Single Player mode</figcaption>
</figure><p></p>
<p>The next task is to make the field generation more predictable and work with a seed phrase rather than tons of <code>Math.random()</code> calls. The goal is to eventually be able to share fields and/or to generate a daily challenge where the seed depends on the current date (hat tip to Wordle 👋).</p>
<p><small>If you're interested in beta testing the game, send me a message on Twitter</small></p>
<h2>Entertainment</h2>
<p>🎲 Played <a href="https://boardgamegeek.com/boardgame/263918/cartographers">Cartographers</a> for the first time. I bought this one on a whim at my local board game shop when I was looking for a new collaborative game. Cartographers is not collaborative but also not really competitive. Each player has to draw a map based on criteria that is gandomly generated for each round. The map is then graded and the player with the most points wins.</p>
<p>Players mostly work on their maps independently but some cards require you to draw on your opponent's map. It was easy to understand the rules and all players immediately wanted to play another round 🥳.</p>
<p>🍿 I started watching season 4 of <a href="https://en.wikipedia.org/wiki/Ozark_(TV_series)">Ozark</a>. It continues as strong as before, that is, if you liked the show before, you will like season 4 as well. It's interesting that they split up the season in half with the second half coming out in May. Makes me not want to watch it so quickly because of the inevitable cliff hanger after the first half.</p>
<p>I've been watching a series with friends every Wednesday but now that we finished <a href="/weeknotes/2022/02">The Expanse</a> we ran out of ideas of which shows to watch. If you have any recommendations, let me know 😄</p>
<h2>Song of the week</h2>
<p>What's that, the same artist two weeks in a row? Yep, it's Delv!s again! This time with his single <em>Brother</em>:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" loading="lazy" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/560562795&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 02/20222022-02-08T00:00:00Z/weeknotes/2022/02/<h2>Work</h2>
<p>The biggest change in ways of working at Elastic for me is that we're releasing software at defined intervals. I know similar release cadences from the mobile teams from previous companies (release trains they were called at SoundCloud 🚂). However, I got used to the process of deploying often, pretty much daily. The web team at SoundCloud would deploy PRs in batches, multiple times per day.</p>
<p>Of course this kind of release cadence does not make sense for software like Elasticsearch and Kibana. They are not consumer-facing apps but actual released pieces of software that comes in form of bundles. When you find a bug in a consumper app, you fix the bug in <code>main</code>, create a PR, run the tests, have someone look over it and deploy the same day. The process for released software is exactly that but you'll have to make sure to bring the fix to <code>main</code> and backport it to all releases that are in long-term support. 🏄♂️ And they're released at defined intervals.</p>
<p>A lot of this process is automated in Kibana and in <em>most</em> cases your backport PRs will merge just fine (🤞). It took me some time to get used to this way of working but now I appreciate it a lot. I feel less stressed about releasing every day and I have the feeling I allow myself more time to go into detail when reviewing other people's work.</p>
<p>That being said, it can get quite stressful when there is a major release on the horizon 🌅</p>
<h2>Side projects</h2>
<p>Over the winter holidays I picked up work on an older project again. A mini game that I built for the first time <a href="https://github.com/janmonschke/Brunch-colors/commit/96b3613833000a0b23b65bf2049f2a90f74f424c">11 years ago</a>. Back then it was a showcase for <a href="https://brunch.io/">a web build tool called Brunch</a> that I was working on with friends. That was back in the days when the field of web build tools was pretty empty. The original game was written in <a href="https://backbonejs.org/">Backbone</a> and <a href="http://coffeescript.org/">CoffeeScript</a>. Oh, and it was hosted as a <a href="https://couchapp.readthedocs.io/en/latest/intro/what-is-couchapp.html">Couchapp</a> <em>inside</em> of a CouchDB instance. 🤯 Those were wild days <3</p>
<p>Anyways, I started to rebuild the game with a more modern stack. Back then it only had a single-player mode, this time I started out with a multiplayer mode right away and still have to add the single player mode. The design is still very sub-par and I want to make the server a little more robust but it already feels like I will actually be able to release a side project this year 😅</p>
<p>Little teaser video:</p>
<p><video src="/assets/videos/02-colorbattle.mp4" controls=""></video></p>
<h2>Life</h2>
<p>For the first time after a long injury I was finally able to go back bouldering 🎉 Needless to say, my entire body has been feeling sore for three days now 😅 Looking forward to getting back into that routine.</p>
<h2>Entertainment</h2>
<p>🍿 <a href="https://en.wikipedia.org/wiki/Brooklyn_Nine-Nine">Brooklyn Nine-Nine</a> has become our new go-to show for a quick snack and I'm soooooo in love with the show 🥲</p>
<p>🍿 I'm so mad at <a href="https://en.wikipedia.org/wiki/The_Expanse_(TV_series)">The Expanse</a>. I loved all the new arcs that opened up in the final two episodes and now it's over. Just like that. 😭 I hope they'll one day continue producing the show. For now though, I think I'll have to start reading the books.</p>
<p>📚 I'm slowly starting to get into graphic novels and my absolute favorite in the last months was <a href="https://www.goodreads.com/book/show/8477057-daytripper">Daytripper</a>. A collection of bitter-sweet stories about life and death.</p>
<h2>Song of the week</h2>
<p>Something funky / souly for this week. I've listened to this song SO many times and I still can't believe that the artist hasn't blown up yet. 💃 Delv!s - Come My Way 🕺</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" loading="lazy" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/290179833&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 01/20222022-01-31T00:00:00Z/weeknotes/2022/01/<p>Welcome back to my "week"notes 👋</p>
<p>It's been a while but I'm glad I'm picking up this habit again 🎉</p>
<h2>Work</h2>
<p>I have been with Elastic for three months now and I am finally feeling like I understand 90% of the abbreviations and names of systems 😅. My team is great and I found a good rhythm. Elastic is a fully distributed company and there are plenty of people in my org that are based in similar timezones.</p>
<p>In my direct team however, everybody apart from me is based in the US. This means I have very focused mornings and no meetings until the afternoon. Actually, my first meeting every day is a 20min meditation session at 2pm my time 🧘♂️. When my team mates wake up there's typically a block of meetings and then it's already the end of my day.</p>
<p>As part of my onboarding I attended virtual <a href="https://www.elastic.co/training/elasticsearch-engineer">Elasticsearch training</a> that lasted all of last week. It felt almost like going back to university 🏫. Everyday I brought my big thermos of tea, took plenty of notes and spent a lot of time in lab assignments.</p>
<h2>Life</h2>
<p>January has been pretty much just like <a href="https://twitter.com/AuslanderMemes/status/1481181559189385216">every other January in Berlin</a>. It's gray, cold and very windy 🥶</p>
<p>This weekend we planned our trips to two of the weddings we're attending this summer. Most of our friends moved their weddings to this year due to Covid which means it's going to be a wedding marathon for us. Some of the weddings are in Italy and we're planning to extend our stays for a couple days here and there to explore the country a bit 🇮🇹. Can't wait for summer to arrive!</p>
<p>Every other weekend or so, if the weather allows, we're going on long walks to explore cafés with friends ☕️🚶. I am keeping a <a href="https://goo.gl/maps/3vDL9FP5fLDsU6AbA">list of my favorite cafés on Google Maps</a>.</p>
<h2>Entertainment</h2>
<p>🍿 We just finished watching <a href="https://en.wikipedia.org/wiki/Superstore_(TV_series)">Superstore</a>. The final season was shot last year so they were naturally talking a lot about Covid. Given that the show revolves around a team of supermarket employees it gave the whole topic another twist. It was one of the best seasons and sadly also the final one.</p>
<p>🍿 Speaking of final seasons: I've almost finished <a href="https://en.wikipedia.org/wiki/The_Expanse_(TV_series)">The Expanse</a> and I don't want it to end 😭</p>
<p>📚 Over the holidays I finished another book by Walter Tevis: <a href="https://www.goodreads.com/book/show/323172.Mockingbird">Mockingbird</a>. Can definitely recommend it. Another Science Fiction novel and again with heavy parallels and critique of modern society and technology.</p>
<p>🔊 Which brings me to a podcast recommendation: <a href="https://www.techwontsave.us/">Tech Won't Save Us</a>. It looks at developments in tech and it's influences on our behavior and politics.</p>
<h2>Song of the week</h2>
<p>Another one of those songs that immediately trigger flow state for me: Max Cooper - Resynthesis.</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" loading="lazy" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/999005980&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 13/20212021-10-26T00:00:00Z/weeknotes/2021/13/<h2>Life</h2>
<p>I took all my remaining vacation days and went hiking with a friend. We went to the Harz mountains in central Germany. They’re not as high as the Alps but they offer plenty of interesting trails. A good mixture of strenuous slopes, dense forests, sandstone caves and great views. Especially in autumn when the trees are so colorful.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/YFHImCv_Tt-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/YFHImCv_Tt-352.avif 352w, /img/content/weeknotes/2021/YFHImCv_Tt-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/YFHImCv_Tt-352.webp 352w, /img/content/weeknotes/2021/YFHImCv_Tt-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/YFHImCv_Tt-352.jpeg 352w, /img/content/weeknotes/2021/YFHImCv_Tt-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="The cabin and the camper van" src="/img/content/weeknotes/2021/YFHImCv_Tt-352.jpeg" width="705" height="528" /></picture>
</a>
<figcaption class="picture__caption">The cabin and the camper van</figcaption>
</figure><p></p>
<p>It’s rather cold these days and nights so I opted for a small cabin instead of my tent this time. It was also the first time my friend used his converted camper in temperatures close to zero. We both made it through the nights comfortably.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/4870o8Hobm-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/4870o8Hobm-352.avif 352w, /img/content/weeknotes/2021/4870o8Hobm-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/4870o8Hobm-352.webp 352w, /img/content/weeknotes/2021/4870o8Hobm-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/4870o8Hobm-352.jpeg 352w, /img/content/weeknotes/2021/4870o8Hobm-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Exploring the caves" src="/img/content/weeknotes/2021/4870o8Hobm-352.jpeg" width="705" height="528" /></picture>
</a>
<figcaption class="picture__caption">Exploring the caves</figcaption>
</figure><p></p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/QHqlQESCzr-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/QHqlQESCzr-352.avif 352w, /img/content/weeknotes/2021/QHqlQESCzr-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/QHqlQESCzr-352.webp 352w, /img/content/weeknotes/2021/QHqlQESCzr-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/QHqlQESCzr-352.jpeg 352w, /img/content/weeknotes/2021/QHqlQESCzr-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="The Harz mountains" src="/img/content/weeknotes/2021/QHqlQESCzr-352.jpeg" width="705" height="528" /></picture>
</a>
<figcaption class="picture__caption">The Harz mountains</figcaption>
</figure><p></p>
<p>We recorded all three hikes on Komoot in case you’re curious to explore the Harz mountains yourself. (<a href="https://www.komoot.com/tour/527402427">Hike 1</a>, <a href="https://www.komoot.com/tour/529188835">Hike 2</a>, <a href="https://www.komoot.com/tour/530287315">Hike 3</a>)</p>
<h2>Side projects</h2>
<h3>GPX viewer and editor</h3>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/sWHm_13Ble-352.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/sWHm_13Ble-352.avif 352w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/sWHm_13Ble-352.webp 352w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Rewrite of my GPX viewer/editor" src="/img/content/weeknotes/2021/sWHm_13Ble-352.jpeg" width="352" height="191" /></picture>
</a>
<figcaption class="picture__caption">Rewrite of my GPX viewer/editor</figcaption>
</figure><p></p>
<p>Hiking reminded me of a small application that I built a couple years ago. It’s a GPX viewer and editor. It visualizes recorded GPS tracks from GPX files and gives you a simple interface for manipulating recorded GPS points. My use-case was to clean up GPS recordings before uploading them to trail websites (like <a href="https://komoot.com">Komoot</a>). Sometimes individual GPS points are way off and my phone often records wrong elevation values. The tool allows you to clean up those points and to remove the elevation data altogether.</p>
<p>It’s pretty clunky to use and the track files are hard-coded. I have to go into the source code every time to change the file paths. I dread to use it every time.</p>
<p>But because it is so useful, I thought I would take the time now to finally finish it. Make the UI look a little nicer, allow to drag’n drop GPS files. In just a couple of hours I managed to get it in quite a good shape and I will finish it this week, I hope.</p>
<p>In order to make it more of a challenge for myself, I built the editor on top of <a href="https://lit-html.polymer-project.org/guide">lit-html</a> and <a href="https://xstate.js.org/docs/">xstate</a>. Getting a bit out of my create-react-app comfort-zone here and I’m quite enjoying it. I’ll make sure to publish the project and the code.</p>
<h2>Work</h2>
<p>‘Tis the season of the team events it seems. My product team got together for only the second time ever since we’re working in this setup. Our PM managed to convince a super-hip Korean restaurant to open for lunch for us (they usually only do dinner service). Their set menu with tea pairings was exceptional 🥰 Will definitely go again for dinner! (@ <a href="https://choiberlin.de/">Choi Berlin</a>).</p>
<p>Right after that we headed to the office for the grand re-opening celebration. It was great to see many of my colleagues one last time in person before I leave. And as on any SoundCloud party, the DJs were spectacular. I hope I’ll be invited to future events 🥳</p>
<p>The web collective also got together for an event last week. A remote Pizza-making workshop 🍕😍. While I had my doubts about a pizza made from scratch in an hour, I was pleasantly surprised with the outcome. That recipe is a keeper. Everyone managed to bake a decent pie, even my colleague who did not have an oven at home and had to resort to using a pan 🥘 😅</p>
<h2>Entertainment</h2>
<p>📚 I finished <a href="https://www.goodreads.com/book/show/52597312-utopia-avenue">Utopia Avenue</a>. David Mitchell is one of my most favorite authors but his last two books were not too much of my liking. Utopia Avenue turned that trend around. The story follows a psychedelic rock band in the 1970s, it’s creation, their rise, their conflicts, politics feminism and mental health. Told from the perspective of the individual band members in a true Mitchell fashion. Of course the story is inter-woven with other arcs from previous Mitchell books.</p>
<p>🍿 Like pretty much everybody else I know I binged Squid Game. My expectations were not that high so it definitely lived up to them. Very weird (in a good way), at times heart-breaking, generally very enjoyable. Don’t expect a lot of depth and you’ll be very entertained. Unless you cannot stand gory scenes 😉</p>
<h2>Song of the week</h2>
<p>One of those tracks that immediately triggers a flow state when I play it. Perfect for writing and programming. <em>Life in the Rain</em> by Quantic:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/279901774&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 12/20212021-10-12T00:00:00Z/weeknotes/2021/12/<h2>Work</h2>
<p>It's my last month at SoundCloud. I'm making sure to pair on as many of my tasks as possible to make the handover as easy as possible. My days are split between the pairing sesssions and ad-hoc meetings in which peeps ask about some specifics on projects that I worked on a lot. I have the feeling those projects are in good hands now.</p>
<p>My anticipation for starting at Elastic is rising at the same time. They have just been announced the <a href="https://www.elastic.co/blog/culture-elastic-recognized-by-fairygodboss-as-the-best-technology-company-for-women-two-years-running">"Best Technology Company for Women"</a> for the second year in a row which makes me super proud, even before I am starting there 😅</p>
<h2>Life</h2>
<p>Berlin is transitioning into fall and it's as beautiful as it gets right now. The days are sunny, the trees are colorful and the parks are full with people basking in the sun.</p>
<p>It does get darker a lot earlier now and we're using the evenings to finally work on the home improvements tasks that we postponed due to wedding & honeymoon. We know the closest IKEA by heart now 😄</p>
<p>After what feels like an eternity we now feel comfortable to drill into our ceilings. With some help from friends that are a lot more handy than us, of course. Which means we were able to install curtains everywhere and proper lights in some of the rooms. ✌️</p>
<p>This week I will go on a 3-day hike in the <a href="https://en.wikipedia.org/wiki/Harz">Harz mountains</a>. It's my first longer hike in a long while. We used to go on 7(+) day hikes at least once a year but covid made travelling and accommodations more complicated so we skipped it this and leat year. I hope I am still fit enough to tackle the mountains we're planning to hike 🏕. (My next weeknotes will be delayed by a couple of days or a week due to that trip)</p>
<h2>Entertainment</h2>
<p>📚 I'm finishing book #4 in the <a href="https://www.goodreads.com/series/192752-bobiverse">Bobiverse</a> series. In short, the series is about Bob, a <a href="https://en.wikipedia.org/wiki/Self-replicating_spacecraft#Von_Neumann_probes">Von Neumann probe</a> exploring the universe. It's written in a very humorous way, has plenty of hard science in it and some of the books are real page-turners. <a href="https://www.goodreads.com/book/show/42950440-heaven-s-river">Book 4</a> is my least favorite of the series so far but it's still entertaining enough for me to want to finish it 🤓</p>
<p>🍿 Over the course of the last week we binged <a href="https://en.wikipedia.org/wiki/Sex_Education_(TV_series)">Sex Educaction</a> season 3 and it was glorious 😍. Great continuation from the previous season, plenty of character development and an ending that makes me want to watch season 4 RIGHT NOW. Sadly it will be at least another year before the new season.</p>
<h2>Song of the week</h2>
<p>Another fall-inspired electro track this week 🍂😊. <em>Of Sea</em> by Nuage, remixed by Lycoriscoris:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1117082434&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 11/20212021-10-04T00:00:00Z/weeknotes/2021/11/<p>Wow, it's been a while. I basically skipped posting updates all summer long, whoops. Let me try to break down the most important events of the last months.</p>
<h2>Life</h2>
<p>I got married!! Again! Let me explain 😅</p>
<p>My wife and I got officially married last year but due to covid restrictions we were only able to celebrate with witnesses and family. The big event we had been planning for a hear and a half had to be moved to a year later. Which was this summer. The new regulations allowed us to have around 70 guests. 80% of them were fully vaccinated and even though we legally did not have to, we asked everyone to get tested on the day and it all went well 🎉</p>
<p>We celebrated at a farm in the heart of Brandenburg which allowed us to have most of the celebration outside. Luckily the weather also played its part ☀️. It was such an amazing day with a ceremony full of surprises, outdoor games, seeing friends we hadn't seen in over a year, sitting at the fire until the early morning and a great veggie dinner. Everything we could have dreamed of. 😊</p>
<p>Due to some last minute DJ cancellations we played playlists throughout the day that I prepared the week before. In secret though, I also planned to play a DJ set. I had never played on the equipment they had at the venue and only had a couple minutes to get used to it. With some minor adjustments, I made the set work. My goal was to play a Berlin open air-style "house" set. The kind of music I missed the most during the pandemic when all festivals got cancelled.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/tsZn1aLfwM-352.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/tsZn1aLfwM-352.avif 352w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/tsZn1aLfwM-352.webp 352w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="DJing at the wedding" src="/img/content/weeknotes/2021/tsZn1aLfwM-352.jpeg" width="352" height="234" /></picture>
</a>
<figcaption class="picture__caption">DJing at the wedding</figcaption>
</figure><p></p>
<p>I got the feeling that the crowd felt the vibe and went all-in into my mix of <a href="https://soundcloud.com/guesthousemusic/mark-funk-never-never">funky</a> and <a href="https://soundcloud.com/andmeandyou/me-the-rapture-ptii">dreamy</a> tracks. Multiple times in the set I had to join them on the dancefloor and get lost in the rhythm. Thanks again to my (former) colleagues Miguel and Julian for their help putting this together.</p>
<p>The set was not recorded because I'm a bloody amateur but I plan on recording it and I will post it here.</p>
<p>The rest of the summer we then spent at the French west coast on our honeymoon and then working remotely from Paris for a couple of weeks. Bordeaux and La Rochelle are such great places in the summer. The atlantic ocean then has the perfect temperature.</p>
<h2>Work</h2>
<p>I have decided to leave SoundCloud. It was not an easy decisions but I felt that after almost seven years it was time for a change.</p>
<p>I've learned and grown so much at that company and am grateful for the time. My favorite people, the web collective, are such a great bunch of talented, smart and funny humans. I will miss them a lot 🥲. However, since I'm staying in Berlin, I know I will bump into them often.</p>
<p>I'm super excited to join Elastic as a software engineer on their <a href="https://www.elastic.co/security">security product</a> in November. I have been interested in cyber security for a long time now and am happy to have gotten this opportunity to work in the field. Elastic has a small office in Berlin, but it's first and foremost a remote position. My team is spread evenely between Europe and the US but I don't think anybody else is working from Berlin. I'm curious to find out how it is to work for a company that has embraced remote working culture from the get-go. 🎉</p>
<h2>Entertainment</h2>
<p>I spent the summer reading a bunch of Walter Tevis' novels. He's the author of Queen's Gambit which was made into a beautiful short series on Netflix just recently. Which is also what motivated me to look into Tevis.</p>
<p>I started with <a href="https://www.goodreads.com/book/show/396329.The_Man_Who_Fell_to_Earth">The Man Who Fell To Earth</a> which is about an extraterrestrial being that comes to earth, impersonates as a human and ultimately suffers from the human condition. This book might seem like a science-fiction piece but is really more about society, capitalism and human psychology. Even though it was published in the 1960s it did not feel outdated and the parallels to current events surprised me.</p>
<p>I found the book of <a href="https://www.goodreads.com/book/show/62022.The_Queen_s_Gambit">The Queen's Gambit</a> as great as the TV show. It made for a great read even though I still remembered the story by heart. It moved me as much as when I watched it on Netflix and it was fun to spot the tiny differences between the mini series and the book.</p>
<p><a href="https://www.goodreads.com/book/show/323170.The_Hustler">The Hustler</a> I finished whitin 3 days. It is a short one for sure but such a page-turner nonetheless. I loved the detailed descriptions of the poolrooms, the game, the deception, the intensity. For some reason it gave me some Hemingway vibes.</p>
<p>Oh yes, another highlight, but not a book, was to see <a href="https://en.wikipedia.org/wiki/Dune_(2021_film)">Dune</a> in the cinema. I had not seen the previous movie, nor did I read the book before. Denis Villeneuve created something pretty spectacular and special. The atmosphere of the images and the great soundtrack by Hans Zimmer made me want to watch it again immediately. Can't wait to see the sequel and to read the books.</p>
<h2>Song of the week</h2>
<p>I hope you'll love this neo-classic piece by ANIMAL FEELINGS as much as I did when I first heard it a couple months ago. It's perfect for the upcoming days of fall 🍂:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/859410541&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 10/20212021-05-23T00:00:00Z/weeknotes/2021/10/<h2>Life</h2>
<p>It finally feels like the summer has arrived ☀️</p>
<p>I just came back from the park, where, as you can see above, I was literally hanging out with friends. Oh how have I missed those gatherings. There's a lot of catching up to do and lots of planning of more (corona-friendly) activities. The hottest topic are still the corona vaccinations, how to get appointments for those and discussing the latest episode of <a href="https://www.ndr.de/nachrichten/info/podcast4684.html">Coronavirus-Update</a>. A German podcast featuring two leading virology professors.</p>
<h2>Blog</h2>
<p>I unexpectedly found the time to write a blog post on <a href="/flexible-color-definitions-in-design-systems">flexible color definitions in design systems</a> 🎨. It's a tiny thing that came up at work and I thought other people could benefit from it as well. It always takes me some time to get over the impostor syndrome when writing a blog post. I always think the post is not in-depth enough, or way too obvious so there would be no need to write about it. I am trying to get better at getting over that feeling and hope to write a couple more posts this year 📝</p>
<h2>Conference</h2>
<p>Last year I did not attend a conference, not even an online one. Well, maybe I watched the keynote and a talk or two from last year's <a href="https://nextjs.org/2020/conf">Next.js Conf</a> but that was it. No mingling with other people in break rooms, no sitting in a virtual audience.</p>
<p>It might have to do with the fact that the one conference that I attend each year got cancelled last year. This year however, <a href="https://www.webaudioconf2021.com">Web Audio Conference</a> is definitely going to happen from July 5th to 7th 🎼. It will be fully virtual and I heard they will be using <a href="https://gather.town/">Gather</a> as a virtual space. It looks pretty fun, I love the old-school RPG graphics ❤️</p>
<p>Previous editions of the Web Audio Conf also featured live performances an jam sessions. I'm curious to see if and how they are going to do this in the virtual environment.</p>
<h2>Side projects</h2>
<h3>Ping</h3>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/p2ZjnEJEEq-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/p2ZjnEJEEq-352.avif 352w, /img/content/weeknotes/2021/p2ZjnEJEEq-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/p2ZjnEJEEq-352.webp 352w, /img/content/weeknotes/2021/p2ZjnEJEEq-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/p2ZjnEJEEq-352.jpeg 352w, /img/content/weeknotes/2021/p2ZjnEJEEq-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="ping logo" src="/img/content/weeknotes/2021/p2ZjnEJEEq-352.jpeg" width="705" height="323" /></picture>
</a>
<figcaption class="picture__caption">ping logo</figcaption>
</figure><p></p>
<p>Preview of the <em>ping</em> logo ❤️</p>
<p>I am easing back into working on <em>ping</em> 🔈. It's always amazing when you come back to a project after a couple of months and it just works 🤩. As warm-up tasks I'm going to implement a couple basic components that are used on a couple of pages. Just to get back into the flow. The bigger chunky tasks I will tackle later. For now, it feels great to progress little by little. 😊</p>
<h2>Entertainment</h2>
<p><a href="/weeknotes/2021/09/">Last week</a> I forgot to mention that I started watching <a href="https://en.wikipedia.org/wiki/Schitt%27s_Creek">Schitt's Creek</a> and I'm totally obsessed with it. Season one started slow but after 4 episodes it got so much better. I highly, highly recommend the show!</p>
<h2>Song of the week</h2>
<p>The weather makes me want to dance to happy Indie music, so this week I will end this post with <strong>Go Out</strong> by <strong>KYTES</strong> 🎸</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/695907137&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 9/20212021-05-16T00:00:00Z/weeknotes/2021/09/<h2>Life</h2>
<p>Wahoo, I'm back after a long break! As mentioned in the last update, I moved apartments. Apart from a couple lightbulbs, the new apartment was completely empty so it kept us pretty busy over the last two months. Let me tell you, planning and building a kitchen is a fun adventure on its own, let alone during a global pandemic 🙃. But now the kitchen is done, the rest of the flat is progressing nicely and it starts to feel like our new home already. Its proximity to one of my favorite parks in Berlin made it very easy to feel at home to be honest :)</p>
<p>The new flat is located really close to one of the Berlin vaccination centers. It gives us a first-row seat for observing the progress of the German vaccination campaign. We noticed that people that come to get their jab are getting younger and younger. It's reassuring to see this progress and I hope we will see better days in the not so distant future!</p>
<p>Speaking of vaccination: I got my first shot last week (AZ) 💉. As expected, it did knock me out for a day. It felt like a flu and it was gone as quickly as it came. I was surprised to find out that there is <a href="https://www.pei.de/DE/newsroom/hp-meldungen/2020/201222-safevac-app-smartphone-befragung-vertraeglichkeit-covid-19-impfstoffe.html">an app to track side effects of the vaccination</a>. Germany usually is not known for being on the digital forefront for these services, so I was left somewhat impressed 🤓.</p>
<h2>Work</h2>
<p>Over the last two months I transitioned into a different team and into a slightly different role. I had never met most of the team in person and a big chunk of it has joined remotely within the last year. It almost feels to me like joining a new company and also joining remotely. The team has been super welcoming and it's been great to learn about a lot about a part of the company that I had not worked much in before.</p>
<h2>Side projects</h2>
<p>I have not had time to work on any of my side projects in the last months and it felt great to not work on a computer after work. I think I had a good balance before but I might cut down on side project time a bit more in the future.</p>
<p><em>Somewhere</em> might be finished soon anyways. The university has prolonged the deadline and the project is pretty much done now. As always, those last 20% take much longer than expected 😅</p>
<h2>Entertainment</h2>
<p>I finished <a href="https://www.goodreads.com/book/show/16278318-armada">Armada</a> a couple weeks ago and it was very underwhelming to be quite frank. Ernest Cline's endless pop culture references made sense in <a href="https://www.goodreads.com/book/show/9969571-ready-player-one">Ready Player One</a> but they felt completely out of place in Armada. The story had lots of potential, yet felt rather flat in the end. Much to the reason of those references and too many tropes.</p>
<p>After Armada I started <a href="https://www.goodreads.com/book/show/24233708-an-absolutely-remarkable-thing">An Absolutely Remarkable Thing</a> by YouTuber Hank Green and it took me by surprise. It's a light SciFi-ish story that feels very current. One of the main themes is the influence of social media and platforms like YouTube on society and it reminded me a lot of the state of those mediums during the Trump presidency.</p>
<p>I'm currently reading the sequel <a href="https://www.goodreads.com/book/show/49003616-a-beautifully-foolish-endeavor">A Beautifully Foolish Endeavor</a> which has a stronger SciFi feel to it and is written in a very different style (several POV instead of a single one). I have the feeling I will like this one even more than the first one in the series 🤩</p>
<h2>Song of the week</h2>
<p>Let me close this post off with a groovy, poppy, modern disco tune by the Hamburg-based group Pool:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/564409644&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 8/20212021-02-21T00:00:00Z/weeknotes/2021/08/<h2>Life</h2>
<p>I'm in the middle of a move, so my updates might not be as thourough or interesting in the next couple of weeks but I will keep up the habbit 😊.</p>
<p>We did get back into listening to audio books this week. Turns out that packing moving boxes is the perfect activity for audio books. We are still listening to <a href="https://en.wikipedia.org/wiki/Sapiens:_A_Brief_History_of_Humankind">Sapiens</a>. It's a whooping 15h long 🤓</p>
<h2>Side projects</h2>
<h3>Somewhere</h3>
<p>Not much to show for this week on somewhere. I am adding legal pages, fixing small issues in the responsive layout and trying to add a 3d scene to the landing page. A placeholder image is shown while the scene, and the whole 3d engine, is loaded asynchronously. I am currently struggling to fade nicely between the two because the perspective of the scene and the placeholder don't match. Will ask for help from the artist 👨🎨</p>
<p>Also the scene is 8mb and it's pretty much empty. We probably need to tick some extra boxes when exporting the files 😅</p>
<h3>Ping</h3>
<p>Didn't manage to spend any time on ping this week due to move preparations. The only thing that I did was to buy this <a href="https://fireship.io/courses/react-next-firebase/">course on NextJS and Firebase</a> from <a href="https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA">Fireship</a>. I love their YouTube videos and the course promises to be similar to their videos.</p>
<p>Unrelated/Related: I love that there are so many creators selling their courses/books/workshops independently these days 🤩</p>
<p>I have not yet managed to watch a lot of the course but I hope to get to that in the next weeks. Probably after the move.</p>
<h2>Song of the week</h2>
<p>Like last week, I am sticking with some <a href="https://soundcloud.com/toytonics">Toy Tonics</a> again. The sun is out, the parks are buzzing with people (keeping safe distances). I am dreaming of the time when we can celebrate life and music at the small island-festivals in Berlin. This is the song I want to dance to:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/149479296&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 7/20212021-02-14T00:00:00Z/weeknotes/2021/07/<h2>Side Projects</h2>
<h2>Hiking</h2>
<p>We had lots of sun and snow this week which made for the perfect winter hiking weather 🥾. Though there are no impressive mountains in Berlin, there are quite some hilly forests. They're beatiful, even in the deepest winter. Life at work and with the move can be very hectic these days. I really need more of these <a href="https://time.com/5259602/japanese-forest-bathing/">forest bathing</a> sessions!</p>
<h3>Somewhere</h3>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/WkmfBDPIp3-1500.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/WkmfBDPIp3-352.avif 352w, /img/content/weeknotes/2021/WkmfBDPIp3-705.avif 705w, /img/content/weeknotes/2021/WkmfBDPIp3-1500.avif 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/WkmfBDPIp3-352.webp 352w, /img/content/weeknotes/2021/WkmfBDPIp3-705.webp 705w, /img/content/weeknotes/2021/WkmfBDPIp3-1500.webp 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/WkmfBDPIp3-352.jpeg 352w, /img/content/weeknotes/2021/WkmfBDPIp3-705.jpeg 705w, /img/content/weeknotes/2021/WkmfBDPIp3-1500.jpeg 1500w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Building Somewhere in the Responsively editor" src="/img/content/weeknotes/2021/WkmfBDPIp3-352.jpeg" width="1500" height="1320" /></picture>
</a>
<figcaption class="picture__caption">Building Somewhere in the Responsively editor</figcaption>
</figure><p></p>
<p><a href="/weeknotes/2021/06/">Last week</a> I worked on the foundation of the responsive behaviour for the landing page. This week I applied the constraints to the content on the page and worked out little issues here and there.</p>
<p><a href="https://twitter.com/cangoektas">Can</a> and <a href="https://twitter.com/juliozynger">Julio</a> recommended a handy little tool called <a href="https://responsively.app/">Responsively</a>. It previews your site live on different device sizes and orientations. It has worked super well for me and I'm actually looking forward to using it again soon 😍</p>
<p>Next, I will replace the static image of that little creature on the landing page with a 3D animated version. The image will blend into the 3D canvas once the 3D model is loaded.</p>
<h3>Ping</h3>
<p>I used my newly acrued knowledge of Firebase Cloud Storage to build the MVP of the file upload. As per my new usual, I first sketched out the behaviour of the module in XState's visualizer and once I was content, I added the actual implementation. I love this workflow because the XState UI allows me to play around with the machine without writing any of the business logic. This flow feels super natrual to me by now. 🌅</p>
<p>I'm happy with the upload and now <a href="http://julianpanzer.com">Julian</a> and I are thinking of getting another developer on board. We want to ship an MVP as early as possible to a group of beta testers. I hope I can share more soon ☺️</p>
<h2>Entertainment</h2>
<p>I finished reading <a href="https://www.goodreads.com/book/show/23168809-the-end-of-all-things">The end of all things</a> by John Scalzi which was a great conclusion of the series. Now I'm lacking ideas for a new sci-fi series to start 😅</p>
<p>I might continue with <a href="https://www.goodreads.com/series/206992-space-team">Space Team</a> where I'm midway-through and the author is 12 books in the series and promised to write more. So a steady source is guaranteed there. It's not so much hard sci-fi but more sci-fi in the same vein as Hitchhiker's guide to the galaxy. It's problematic to read at night because it does make me giggle out loud 😂</p>
<p>The other series I finished this week is <a href="https://en.wikipedia.org/wiki/The_Expanse_(TV_series)">The Expanse</a>. Not the books though, the series. I'm glad to hear there will be another season. I loved the little side-story on earth this season and was sad to see one of my fav characters die. 😭 It appears that the next season might be the last one before they take a break. I'm not complaining, I'm happy that Amazon bought the rights for the series after ScyFy decided to not continue it. They deserve a break. As long as they come back.</p>
<p>I did find a new series to watch already because the second season of <a href="https://en.wikipedia.org/wiki/Snowpiercer_(TV_series)">Snowpiercer</a> (yes, there is a TV series that plays in the movie's realm) has been released. The first season was rather mediocre and the writing/acting didn't convince me. The second season started a lot stronger though and I'm looking forward to what's happening next. Especially how this all ties back into the movie's story.</p>
<h2>Song of the week</h2>
<p>I took some long, sunny, snowy walks this week with my headphones on. Many funky, jazzy house tunes released on <a href="https://soundcloud.com/toytonics">Toy Tonics</a> (a small Berlin-based label) provided the perfect atmosphere. Since I can only share one track each week (because, you know, those are the rules...I guess), I will give you this one by <a href="https://soundcloud.com/coeo">COEO</a>:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/178406952&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 6/20212021-02-07T00:00:00Z/weeknotes/2021/06/<h2>Side Projects</h2>
<h3>Somewhere</h3>
<p>The project is nearing its end soon so the students are in scrum mode. The Babelsberg orchestra finished recording the background music and it sounds absolutely amazing. The digital soundtrack was already great. Hearing it played by an actual orchestra is just on another level 🤩.</p>
<p>For me it means I'm preparing the landing page so it works well on all kinds of devices. In the beginning we mainly wanted to support iPads and desktop browsers. Now that we saw that I have some extra time, I can add support for mobile phones as well. 📲</p>
<p>My favorite approach to building the responsive behaviour is to start of with a simple box version of the website. Each box represents one of the main content sections, is labeled with a descriptive name and has a unique background color. Then I add the code that makes the boxes behave correctly on different devices.</p>
<p>By limiting myself to only boxes in this first step, I can focus on the responsive behaviour and not get caught up in small imperfections in the actual content. It also makes the site render very fast. 🏎</p>
<p>My main tool to test the responsive behaviour is the <a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design Mode in Firefox</a>. When I'm happy with the result, I put it on codepen and check out how the layout behaves on my mobile phone. Check out the box version that I built last week below. You can use the scale buttons to see different breakpoints:</p>
<iframe height="350" style="width: 100%;" scrolling="no" title="Unrund responsive landing" src="https://codepen.io/janmonschke/embed/preview/qBqZaQE?height=265&theme-id=light&default-tab=result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href="https://codepen.io/janmonschke/pen/qBqZaQE">Somewhere responsive landing</a> by Jan
(<a href="https://codepen.io/janmonschke">@janmonschke</a>) on <a href="https://codepen.io">CodePen</a>.
</iframe>
<h3>Ping</h3>
<p>It was a week of reading up on technologies again for Ping. The product needs a file upload. We are using Firebase, so I read through the documentation of <a href="https://firebase.google.com/docs/storage/">Firebase Cloud Storage</a> to see if it fits our use case. So far it looks like it will suffice. It's probably a bit too powerful for what we need 😄. I was pleased to find out that the API also supports merging of files (aka object composition) in a single operation. No need to download files to a server, concatenate them and then upload them again.</p>
<p>In addition to reading on file storage, I also managed to implement parts of the core recording logic. A recording in a session can now be controlled by a host and all clients will happily record locally when told so. So far there is only the option to download the recorded file to your computer. No upload yet, but that is already a great achievement 🎉.</p>
<p>I will go into the details on what Ping actually is about in the near future. But for the time being, you'll have to live with these teasing updates 😅</p>
<h2>Entertainment</h2>
<p>My favorite podcast at the moment is <a href="https://darknetdiaries.com/episode/">Darknet Diaries</a>. Their newest episode <a href="https://darknetdiaries.com/episode/84/">"jet-setters"</a> features an interview with <code>the hacker known as "Alex"</code> who wrote this <a href="https://mango.pdf.zone/finding-former-australian-prime-minister-tony-abbotts-passport-number-on-instagram">amazing report on how they found Tony Abbott's passport number on Instagram</a>. I remember literally laughing out loud when I read the story last year. It was great to hear more about what was going on behind-the-scenes and how "Alex" felt during the process. If podcasts are not your thing, I highly recommend still reading the article!</p>
<h2>Song of the week</h2>
<p>This week it's one of those songs again that puts me right into flow and makes me dance at my desk. It has strong synthwave vibes, so if that's your cuppa tea, give it a listen. I'm a big fan of <a href="https://soundcloud.com/toddterje">Todd Terrje</a> and I'm sure he'll pop up in this section a couple more times 😎</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" loading="lazy" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/133250756&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Weeknotes 5/20212021-01-31T00:00:00Z/weeknotes/2021/05/<h2>Side Projects</h2>
<h3>Ping</h3>
<p>I made a lot of progress on the collaborative screen in Ping. The main achievement there was that I added a video call component (built with <a href="https://www.twilio.com/docs/video">Twilio Programmable Video</a>) 🎥. This involved understanding the Twilio SDK for the client, which handles the room session and displays the video call, and the server, which creates rooms and grants users access to specific rooms.</p>
<video controls="" loop="" alt="select camera flow">
<source src="/assets/videos/05-ping-select-camera.mp4" type="video/mp4" />
</video>
<p>I learned about the <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices">enumerateDevices API</a> and how media devices are represented. This allowed me to build the flow above that selects preferred devices. The video loops and will not show the screen that comes after clicking the <code>Join</code> button. That screen I will keep secret for now 😄.</p>
<p>One problem I was struggling with was how Twilio is handling presence in video calls. When a participant closes the tab, no event is fired for other participants that indicates that the person has left the call. I'm used to working with WebSockets and it's pretty straight-forward to determine when a socket disconnects there. It might be a whole different beast in WebRTC-land.</p>
<p>Anyways, this gave me the chance to revisit my knowledge on the <a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload"><code>onbeforeunload</code></a> event and how it allows developers to prevent accidental tab closures. In case the user did want to disconnect from the video call and close the tab, I am now cleaning up the session in that handler.</p>
<h2>Life</h2>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/T108okL2c0-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/T108okL2c0-352.avif 352w, /img/content/weeknotes/2021/T108okL2c0-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/T108okL2c0-352.webp 352w, /img/content/weeknotes/2021/T108okL2c0-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/T108okL2c0-352.jpeg 352w, /img/content/weeknotes/2021/T108okL2c0-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Berlin winter wonderland" src="/img/content/weeknotes/2021/T108okL2c0-352.jpeg" width="705" height="352" /></picture>
</a>
<figcaption class="picture__caption">Berlin winter wonderland</figcaption>
</figure><p></p>
<p>It was a low-energy kind of week with temperatures way below freezing and lots of snow ⛄️. The sun was out a lot though and it makes me look forward to the upcoming spring season. It felt great to walk in the parks in Berlin. The hills full of kids on their sleighs. 🛷</p>
<h2>Entertainment</h2>
<p>We found <a href="https://en.wikipedia.org/wiki/The_Laundromat_(film)">The laundromat</a> when we searched for an easy-going comedy on Netflix. It turned out to not be that easy-going at all. It's definitely a comedy but there is quite a lot of critique of our financial markets in it 💹. As you would expect from a movie that is based on a book about the <a href="https://en.wikipedia.org/wiki/Panama_Papers">panama papers</a>. I found it especially interesting to watch in the week where everybody was talking about the <a href="https://en.wikipedia.org/wiki/GameStop_short_squeeze">GameStop short squeeze</a>. 🍿</p>
<h2>Song of the week</h2>
<p>Last week <a href="https://delvonlamarrorgantrio.bandcamp.com/">Delvon Lamarr Organ Trio</a> released their new album <em>I told you so</em>. I have been waiting for this one for so long. I randomly stumbled upon this band on YouTube where I saw <a href="https://www.youtube.com/watch?v=jhicDUgXyNg">their version of "Move on up"</a>. The energy and groove of the organ and the virtuos play on the guitar had me instantly hooked. They were my favorite live band in 2019 and I hope they come back once this whole pandemic situation settles. My favorite track on their new album is <em>Aces</em>:</p>
<iframe style="border: 0; width: 100%; height: 120px;" src="https://bandcamp.com/EmbeddedPlayer/album=3476419932/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/track=3935491811/transparent=true/" seamless="" loading="lazy"><a href="https://delvonlamarrorgantrio.bandcamp.com/album/i-told-you-so">I Told You So by Delvon Lamarr Organ Trio</a></iframe>
Weeknotes 4/20212021-01-24T00:00:00Z/weeknotes/2021/04/<h2>Side projects</h2>
<h3>Somewhere</h3>
<p>I managed to finish the animations for the loading screen which also act as onboarding. You can check them out in the video below. It's always great to see how powerful a couple of simple CSS animations and transitions can be. I'm very pleased with the result. 🤩</p>
<video controls="" loop="" alt="Somewhere loading animation">
<source src="/assets/videos/04-somewhere-animation.mp4" type="video/mp4" />
</video>
<h3>Ping</h3>
<p>I spent only an hour or two on ping this week. I made the sign up screen component more generic to also support sign in. Next step in the proof of concept is to build a basic version of the screen that will let users collaborate.</p>
<p>Oh and I looked into <a href="https://firebase.google.com/docs/functions/callable">callable functions on Firebase</a>. I'm currently using Vercel's serverless functions but I'm pretty sure that after the proof of concept I will port those to callable functions. They are just a tad more convenient to work with when you are already using other Firebase products. 🔥</p>
<h2>Life</h2>
<p>We are moving to a new apartment at the end of March and it's really hard to plan a kitchen when all kitchen studios are closed. Pretty much our only option is the IKEA kitchen planner website.</p>
<p>It's a pretty powerful tool and it must be one hell of a big engineering project. You can build your entire kitchen, it renders an interactive 3D model, checks for potential issues, tells you the price, has a huge catalogue of items etc.</p>
<p>I looked under the hood a bit and it seems to be a <a href="https://en.wikipedia.org/wiki/WebAssembly">WebAssembly</a> project which made me even more curious 🤯.</p>
<p>Also: IKEA and Web<strong>Assembly</strong>...get it? 😂</p>
<p>Right, I will see myself out 🏃♂️</p>
<h2>Entertainment</h2>
<p>I watched a lot of The Expanse over the weekend and am almost at the end of the current season. To slow me down a bit, I started to read <a href="https://www.goodreads.com/book/show/23168809-the-end-of-all-things">The end of all things</a> by John Scalzi. Which also is the the final novel in its own series (the Old Man's war). It's always so annoying to finish a series 😅 I really need to find new a sci-fi book and/or TV show. Maybe there is something similar to The Expanse?</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/blL3WWOv4q-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/blL3WWOv4q-352.avif 352w, /img/content/weeknotes/2021/blL3WWOv4q-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/blL3WWOv4q-352.webp 352w, /img/content/weeknotes/2021/blL3WWOv4q-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/blL3WWOv4q-352.jpeg 352w, /img/content/weeknotes/2021/blL3WWOv4q-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Ultra tiny epic galaxies" src="/img/content/weeknotes/2021/blL3WWOv4q-352.jpeg" width="705" height="590" /></picture>
</a>
<figcaption class="picture__caption">Ultra tiny epic galaxies</figcaption>
</figure><p></p>
<p>Staying true to this week's subliminal sci-fi topic, we played <a href="https://boardgamegeek.com/boardgame/285826/ultra-tiny-epic-galaxies">(Ultra) Tiny Epic Galaxies</a>. I love this game for so many reasons. It's both single- and multiplayer, you can adjust the difficulty level and there are so many different planets and abilities to discover. It makes every round unique. Also, the <em>ultra</em> tiny version of this game fits into my pocket 😄</p>
<h2>Song of the week</h2>
<p>This week I have a Steve Reich remix for you. My favorite remix of "<a href="https://soundcloud.com/steve-reich-official/music-for-18-musicians">Music For 18 Musicians (Section VI)</a>". This one is created by Joe Acheson, the creative mastermind behind <a href="https://soundcloud.com/hiddenorchestra">Hidden Orchestra</a>. I could not find the track on its own though, only embedded in other mixtapes. It plays from 12:52 in this mix:</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/80898659&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 3/20212021-01-17T00:00:00Z/weeknotes/2021/03/<h2>Work / SoundCloud</h2>
<div style="max-width: 340px; margin: 0 auto;">
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/ZVhfJLzuco-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/ZVhfJLzuco-352.avif 352w, /img/content/weeknotes/2021/ZVhfJLzuco-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/ZVhfJLzuco-352.webp 352w, /img/content/weeknotes/2021/ZVhfJLzuco-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/ZVhfJLzuco-352.jpeg 352w, /img/content/weeknotes/2021/ZVhfJLzuco-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Golden record that I got for my 5 year anniversary" src="/img/content/weeknotes/2021/ZVhfJLzuco-352.jpeg" width="705" height="928" /></picture>
</a>
<figcaption class="picture__caption">Golden record that I got for my 5 year anniversary</figcaption>
</figure><p></p>
</div>
<p>It was my six year anniversary at SoundCloud this week 🥳 I still can't believe I've been at the company for that long. I'm incredibly grateful to work there and am still learning something new every day to this year. Here's to many more years ☕️ 🎉</p>
<p>The golden record was actually given to me at my five year anniversary, as it's the custom at the company. I could not think of a better image to celebrate this week's milestone. 😄</p>
<h2>Side projects</h2>
<p>A reader on Twitter asked how much time I spend per week on side projects and how I have the energy to work on those. My previous notes on side projects must have given the impression that I work on them every day and all weekend. None of that is true. Most days I do not have the energy to work on anything after work and I'm happy to not be on a computer to be honest. Especially on weekends I am trying to decompress from digital tech as much as I can. 📚 🥾 🏕</p>
<p>All in all, I spend couple of hours, up to 6 or 8, per week on side projects. I reduced that time after reading <a href="https://www.joshwcomeau.com/blog/year-in-review-2020/#q2-the-pandemic-and-an-injury">Josh's experience with Cubital Tunnel Syndrome</a>.</p>
<h3>Blog</h3>
<p>Most of that time this week I spent setting up <a href="/weeknotes">weeknotes</a> and turning my weekly notes into <a href="/weeknotes/2021/02/">proper</a> <a href="/weeknotes/2021/01/">prose</a>. I added all the notes to the index and then created a collection page and an RSS feed. I could re-use most of the <a href="/blog">blog post</a> setup to be honest 🤩</p>
<h3>Ping</h3>
<p>The biggest chunk of work on ping I actually did not spend with coding. I wrote up on architecture, data entities, business ideas and more in our <a href="https://notion.so">Notion</a> 📝. We're certainly not planning to incorporate any time soon. However, it's very important to me to write these things down as early as possible to make sure we have a common understanding of where we want to go with this product. The architecture documents are a great reference for me and for potential future engineers 🕵️♂️.</p>
<p>I also learned a lot about <a href="https://firebase.google.com/docs/firestore/security/rules-conditions">Cloud Firestore Security Rules</a> and <a href="https://firebase.google.com/docs/firestore/query-data/queries#collection-group-query">Collection group queries</a> this week. As part of the proof-of-concept I want to check if Firebase supports all our queries and if its security model is both restrictive and flexible enough.</p>
<p>So far, the security model looks promising but it takes me some time to wrap my head around. The logic is executed in the storage layer and not on the application server which takes some getting used to. I'm going with a hybrid approach of very restrictive storage layer rules and more complex access logic in the application server. Right now feels good this way 😅. I wish there was an easier way to execute and write the access rules locally so that I would not have to do that in their UI. Maybe I should spend some time reading up on their <a href="https://firebase.google.com/docs/firestore/security/test-rules-emulator">rule emulator</a>.</p>
<p>I really like that Firebase supports subcollections at document level because it allows for great encapsulation and makes it easy to cascade-delete data. Until recently it was hard to query across subcollections though. E.g. if you had a relationship like <code>Post -> Comments</code> and you wanted to get all comments by a user. Without splitting up <code>Post</code> and <code>Comments</code> into top-level collections, it was not possible to execute that query ✂️. With the addition of <a href="https://firebase.googleblog.com/2019/06/understanding-collection-group-queries.html">Collection group queries</a> you don't have to do that anymore. After adding an index for the subcollection, you can query it like any other top-level collection 🤯.</p>
<h2>Life</h2>
<p>We are seeing a more snow these days in Berlin. It's still not enough for it to stick around for more than a couple of hours. But it brings us joy to walk through snow on our daily city hike. Due to the current pandemic situation here, we are sticking to walking late in the evenings. This lets us reduce the exposure to other people. However, the government is talking about introducing a curfew which could mean the end for that habit. Here's to hoping the curfew will not prevent this daily escape of the flat to clear our heads.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/g7J4wjpyZn-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/g7J4wjpyZn-352.avif 352w, /img/content/weeknotes/2021/g7J4wjpyZn-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/g7J4wjpyZn-352.webp 352w, /img/content/weeknotes/2021/g7J4wjpyZn-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/g7J4wjpyZn-352.jpeg 352w, /img/content/weeknotes/2021/g7J4wjpyZn-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Vegan tuna salad on bagel" src="/img/content/weeknotes/2021/g7J4wjpyZn-352.jpeg" width="705" height="323" /></picture>
</a>
<figcaption class="picture__caption">Vegan tuna salad on bagel</figcaption>
</figure><p></p>
<p>One of our recent favorite dishes is this <a href="https://www.instagram.com/p/CIfix5ZpqIm/">vegan tuna salad on bagel</a> (recipe by Max La Manna). It's so easy to make, tastes super fresh and is pretty healthy on top of it. Writing about it now makes me want to have it again next week 😋.</p>
<h2>Entertainment</h2>
<p>I finished reading "The Last Emperox", the final book in the <a href="https://www.goodreads.com/series/202297-the-interdependency">Interdependency trilogy by John Scalzi</a>. The final book, as it's often the case, was not the strongest one in the series. It felt like Scalzi rushed this one a bit to fit it into a single book. Some of the events could have been their own books but then they ended up being just a couple chapters long. But maybe that is just me being sad about the end of the series, longing for more of the same 😅</p>
<p>Staying on the topic of science fiction: This week I finally started watching season 5 of <a href="https://en.wikipedia.org/wiki/The_Expanse_(TV_series)">The Expanse</a>. The first episode is promising with new arcs popping up left and right and I felt right at home in the season. Looking forward to watching more of it.</p>
<h2>Song of the week</h2>
<p><a href="https://www.stefanjudis.com/blog/web-weekly-2/">Stefan</a> released his notes faster than me and stole my music pick for this week, so I had to chose a new one. This week's song has a lot more melody and groove than the other recent ones and I hope you enjoy it as much. When this song comes up, I can't help myself but micro-dance to the tunes at my standing desk.</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/290368052&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 2/20212021-01-10T00:00:00Z/weeknotes/2021/02/<h2>Side Projects</h2>
<h3>Ping</h3>
<p>Made a lot of progress this week modeling a core user flow with <a href="https://xstate.js.org/">XState</a>. XState has become my go-to tool for modeling complex flows after great the experience I had using it for build <a href="https://creators.soundcloud.com/mastering-on-soundcloud">SoundCloud mastering</a>. The flow that I was working on in Ping involves checking browser support, sign-in state (with a separate machine that models sign-in/sign-up), checking resource access, before the user lands on the actual screen.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/dy_StSKpCp-1500.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/dy_StSKpCp-352.avif 352w, /img/content/weeknotes/2021/dy_StSKpCp-705.avif 705w, /img/content/weeknotes/2021/dy_StSKpCp-1500.avif 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/dy_StSKpCp-352.webp 352w, /img/content/weeknotes/2021/dy_StSKpCp-705.webp 705w, /img/content/weeknotes/2021/dy_StSKpCp-1500.webp 1500w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/dy_StSKpCp-352.jpeg 352w, /img/content/weeknotes/2021/dy_StSKpCp-705.jpeg 705w, /img/content/weeknotes/2021/dy_StSKpCp-1500.jpeg 1500w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="State diagram of the user flow" src="/img/content/weeknotes/2021/dy_StSKpCp-352.jpeg" width="1500" height="477" /></picture>
</a>
<figcaption class="picture__caption">State diagram of the user flow</figcaption>
</figure><p></p>
<p>What I love about XState is that I can visualize the state machine on their <a href="https://xstate.js.org/viz/">viz</a> page. It not only helps me to understand the flow better but it also allows me to simulate scenarios by interacting with the machine. It might look a bit messy at first, but in code it's a breeze to work with ❤️</p>
<p>Authentication was easy enough to set up with Firebase but it's not super straight forward to share the Firebase session with next.js so I think I will rely on the Firebase client for rendering 404s and such. There are a couple of solutions that I found that add the firebase auth token to a cookie which is then consumed by next to use for prefetching the data. However, that token times out after 10 minutes and the workraound of keeping that token up to date in an interval feels rather britle to me at this point. I will use that token for API-routes though because I can refresh it before the request to make sure it's valid.</p>
<h2>Life</h2>
<p>We both back at work now after a two week stay-at-home vacation. Usually during the winter break we are visiting both our families which always makes for a very rewarding, but also stressful trip. It felt good to not have to rush through Europe and to take the time for the family in different ways. This year in lengthy video calls with televised gift giving and shared Christmas dinners. Everybody was eager to make the best of the situation and we even managed to get some more further-away relatives to join the Christmas calls.</p>
<p>
</p><figure>
<a href="/img/content/weeknotes/2021/GzEfA3CRxb-705.jpeg" target="_blank" aria-label="Click to open image in new window">
<picture><source type="image/avif" srcset="/img/content/weeknotes/2021/GzEfA3CRxb-352.avif 352w, /img/content/weeknotes/2021/GzEfA3CRxb-705.avif 705w" sizes="(max-width: 705px), 100vw" /><source type="image/webp" srcset="/img/content/weeknotes/2021/GzEfA3CRxb-352.webp 352w, /img/content/weeknotes/2021/GzEfA3CRxb-705.webp 705w" sizes="(max-width: 705px), 100vw" /><source type="image/jpeg" srcset="/img/content/weeknotes/2021/GzEfA3CRxb-352.jpeg 352w, /img/content/weeknotes/2021/GzEfA3CRxb-705.jpeg 705w" sizes="(max-width: 705px), 100vw" /><img class="picture" loading="lazy" decoding="async" alt="Our Christmas dinner" src="/img/content/weeknotes/2021/GzEfA3CRxb-352.jpeg" width="705" height="323" /></picture>
</a>
<figcaption class="picture__caption">Our Christmas dinner</figcaption>
</figure><p></p>
<p>The situation also allowed us to make a vegetarian Christmas dinner. It took us 4 hours to make the <a href="https://www.avantgardevegan.com/recipes/ultimate-vegan-christmas-roast-wellington/">vegan roast wellington</a> and the <a href="https://www.instagram.com/p/CH-vpLypsj3/">sweet potato pumpkin mash</a> but it was totally worth it 😋 We failed to make it vegan for the lack of vegan cheeses in the close-by supermarkets. Weirdly, it's much easier to find great vegan cheeses in supermarkets in Paris than it is in Berlin.</p>
<p>After the first couple of days back at work we noticed that we didn't walk as much anymore and we went back to our bad habit of working long hours. So we decided to aim for a walking a cumulative 5km each day and to hold each other accountable to that. It did work pretty well in this first week. It's amazing how much difference it makes to walk for half an hour to an hour. I always feel a lot less anxious and more clear and focused afterwards. I hope we'll be able to stick to that habit.</p>
<h3>Entertainment</h3>
<p>Speaking of habits, for board game night this week we played <a href="https://boardgamegeek.com/boardgame/30549/pandemic">Pandemic</a> for the first time. It's definitely weird to play this game while being in a global pandemic and so many of the game's mechanics must feel so much more relatable now than ever before. What I really like about it is that it's a collaborative game and you can only win when you play together. 10/10 would play again and again.</p>
<p>Our listening-to-an-audio book experiment continued as well and we found that it worked pretty well while we were cooking together. So we'll keep doing that for now :) We picked up a delivery at our <a href="https://sterngartenodyssee.de">food coop</a> this week and it appears to still be winter with lots of root veggies. Nothing better than hot, hearty stews in these wintery days!</p>
<h3>Song of the week</h3>
<p>Today I'm recommending a recording of a concert that I attended at <img src="https://www.radialsystem.de/?lang=en" alt="Radialsystem" /> in 2015. It's another one of those tracks that I listen to whenever I need to get into a flow. Pretty much any <img src="https://soundcloud.com/hiddenorchestra" alt="Hidden Orchestra" /> track does that for me. It's got that perfect blend of rhythm and atmosphere, spanning all sorts of genres along the way.</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/227927677&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>
Weeknotes 1/20212021-01-03T00:00:00Z/weeknotes/2021/01/<p>Happy new year 🎉</p>
<p>welcome to my first ever weeknotes entry! Last year, I've enjoyed reading the weeknotes of others and started to love the format so much that I decided to give it a shot myself (thanks <a href="https://blog.chrislowis.co.uk/">Chris</a> and <a href="https://xn--dtour-bsa.studio/">Thomas</a>).</p>
<p>These posts will be different to my not-so regular blog posts in that they will be shorter, more personal and hopefully more regular 😅. You will see random coding thoughts, side project updates but also life updates, recommendations on books or TV series, and maybe even recipes that I love 😉.</p>
<h2>Side projects</h2>
<p>Let's start this entry with an update on which side projects I'm currently (and actively) working on. I will ignore the massive pile of half-started side projects for now.</p>
<h3>Somewhere</h3>
<p><a href="https://somewhere.gl/">Somewhere</a> is an interactive storybook for kids written in WebGL. It's a student project at the <a href="https://www.filmuniversitaet.de/en/">film university of Babelsberg</a> that I'm helping out as an advisor on all things web technology and act as a helping hand on their landing pages and basic interactions. The project is still very much in stealth mode and will be published after they got graded in the first quarter of this year. I can't wait to show it around, the students have come up with such a nice story and a great format to tell it.</p>
<h3>Ping</h3>
<p>So...Ping...well. This project is even more stealthy than <em>Somewhere</em> 😂. Heck, we don't even have a domain name for it yet. Let's say it's going to be some sort of podcasting tool that I'm working on together with my buddy <a href="http://julianpanzer.com/">Julian</a>. It's the <em>VERY</em> early days, which is why I can't share much about it yet. Julian is working on the initial designs and flows, while I am setting up the base architecture for the web app. It's an interesting problem to solve because it involves real-time collaboration. Ping's proof of concept will be based on NextJS, Firebase and XState 🥰. I hope I can share more about it soon.</p>
<h2>Life</h2>
<p>I am trying to reduce my daily screen time, so my partner and I have agreed to have at least one board game evening per week. On those evenings we put away our phones after dinner and focus on the game afterwards. The first weeks we have played <a href="https://boardgamegeek.com/boardgame/230802/azul">Azul</a> a lot and we love it. It's pretty well balanced and has a high replayability factor. It can become quite addictive and you might find yourself wanting to play more and more rounds, so make sure to set yourself a time limit 😄.</p>
<p>Another measure we are trying to take to reduce screen time is to listen to audio books together. We started with <a href="https://en.wikipedia.org/wiki/Sapiens:_A_Brief_History_of_Humankind">Sapiens: A Brief History of Humankind</a> which is great! However, we haven't really found a good situation for when to listen to these books. Listening to it while playing board games was quite distracting, especially when you have to learn the rules of the game. We'll try out other setups in the next weeks.</p>
<h2>Entertainment</h2>
<p>We finished watching <a href="https://en.wikipedia.org/wiki/I_May_Destroy_You">I may destroy you</a> this week and oh boy was it an emotional rollercoaster. The acting is so on point and the story so heartbreaking at times. I highly, highly recommend the series.</p>
<h3>Song of the week</h3>
<p>This one is my go-to songs to focus while working, enjoy 🎼</p>
<iframe width="100%" height="300" title="Embedded song from SoundCloud" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/414078642&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" loading="lazy"></iframe>