<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://patrick.ruoff.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://patrick.ruoff.dev/" rel="alternate" type="text/html" /><updated>2026-10-18T14:26:38+00:00</updated><id>https://patrick.ruoff.dev/feed.xml</id><title type="html">Patrick Ruoff</title><subtitle>Connecting the dots in your data</subtitle><author><name>Patrick Ruoff</name></author><entry><title type="html">I rebuilt my 9-year selfie time-lapse with Genie Code</title><link href="https://patrick.ruoff.dev/2026/10/18/genie-code-lifelapse.html" rel="alternate" type="text/html" title="I rebuilt my 9-year selfie time-lapse with Genie Code" /><published>2026-10-18T07:00:00+00:00</published><updated>2026-10-18T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2026/10/18/genie-code-lifelapse</id><content type="html" xml:base="https://patrick.ruoff.dev/2026/10/18/genie-code-lifelapse.html"><![CDATA[<h2 class="section-heading">Summary</h2>
<ul>
    <li>In 2024 I built a time-lapse of 229 selfies by hand with Python and OpenCV. It took me 3 days of trial and error and needed some real computer-vision knowledge.</li>
    <li>Today, just two years later, I rebuilt it from 500 photos with Databricks Genie Code. I described what I wanted in plain language and didn't write a single line of code myself.</li>
    <li>The result was ready in 3 hours after only a handful of prompts, while the largest part was manual image selection from my phone's photo library. The code aligns every photo on the eyes instead of the whole face and rotates it so the eyes are always level, so the face no longer jumps or tilts between frames, and it shows fewer dropped frames due to failed recognition.</li>
    <li>So I got a better result in less time, and shifted my focus from technical expertise to design and feel.</li>
</ul>

<h2 class="section-heading">What is the project about?</h2>
<p align="justify">
    Since 2017, I've been taking a selfie every now and then. In 2024, I turned 229 of them into a 36-second
    time-lapse (<a href="/2024/07/19/ai-project.html">original post</a>). My approach was simple: OpenCV detected the
    box around the face in each photo, and I cropped every photo with a fixed margin around that box, then put them
    all together into a video.
</p>

<h2 class="section-heading">How did I do it this time?</h2>
<ul>
    <li>The photos sat in a Unity Catalog Volume.</li>
    <li>I worked on Databricks ML compute with a single node (given the small volume).</li>
    <li>My one rule: I describe the result I want, and I never write or edit code myself. I only accept, reject or redirect. Genie Code takes the technical decisions.</li>
</ul>

<h2 class="section-heading">How did the conversation with Genie Code go?</h2>
<p align="justify">
    It went really smoothly. Genie Code planned the steps, picked the libraries, ran the code and showed
    me the preview frames I'd asked for. While it worked through the 500 photos, I could step away and come back to
    finished results.
</p>
<p align="justify">
    From there I ran a few short iterations, all of them about how the result looked, not technical details:
</p>
<ul>
    <li><b>Keep more of each photo.</b> Aligning faces leaves uneven edges that get cropped away, so I asked Genie Code to keep as much of the remaining image area as possible. It worked: there's no padding in the result.</li>
    <li><b>Add an intro and outro.</b> I wanted a short text intro and the last photo to stay on screen longer, so the time-lapse starts and ends with a short pause.</li>
</ul>
<p align="justify">
    My focus stayed on design and feel. Genie Code handled the technical side.
</p>

<video loop muted playsinline controls preload="metadata" height="auto" width="100%" display="block">
    <source src="/img/posts/genie_code_lifelapse/genie_code_demo.mp4" type="video/mp4"/>
    Your browser does not support the video tag.
</video>
<span class="caption text-muted">The generated notebook with Genie Code on the right. There's a lot 
    of code generated that I didn't need to review in this context but focus solely on the results.</span>

<h2 class="section-heading">Why does aligning on the eyes work better than aligning on the face?</h2>
<p align="justify">
    My 2024 version used OpenCV's Haar cascade face detector, which only returns a box around the face. Genie Code
    chose MediaPipe Face Landmarker instead. It finds 468 facial landmarks, averages 12 points per eye to get each
    eye's center, and then rotates, scales and shifts every photo so both eyes land on the same fixed coordinates.
    That gives three improvements:
</p>
<ul>
    <li><b>Rotation correction:</b> the eyes are always level, even when I tilted my head.</li>
    <li><b>Precise centering:</b> frames are centered on the midpoint between the eyes, not on a face box that shifts with jaw and hair.</li>
    <li><b>Consistent scale:</b> the distance between the eyes is fixed (600 px in the reference frame), so the face is the same size no matter how close I held the camera.</li>
</ul>

<h2 class="section-heading">So what's the result like?</h2>
<p align="justify">
    I love it! The new version has more than twice as many photos as the 2024 one (500 instead of 229), and the extra
    years show. Over time I got more adventurous with glasses, hats and other headwear, and my look kept changing.
    Even so, Genie Code (and I!) kept the face in place from frame to frame, so the changes are easy to follow instead
    of distracting.
</p>



<video loop muted playsinline controls preload="metadata" height="auto" width="100%" display="block">
    <source src="/img/posts/genie_code_lifelapse/timelapse.mp4" type="video/mp4"/>
    Your browser does not support the video tag.
</video>
<span class="caption text-muted">Time-lapse of 500 aligned selfies from 2017 to 2026: the face stays in the same position while glasses, headwear and hairstyle change.</span>

<h2 class="section-heading">How did the 2026 version compare with the 2024 one?</h2>
<table class="table">
    <thead>
        <tr><th></th><th>2024 (by hand)</th><th>2026 (Genie Code)</th></tr>
    </thead>
    <tbody>
        <tr><td>Time to the finished video</td><td>~3 days</td><td>~3 hours</td></tr>
        <tr><td>Lines of code I wrote</td><td>500</td><td>0</td></tr>
        <tr><td>Prompts</td><td>n/a</td><td>6 prompts</td></tr>
        <tr><td>Photos processed</td><td>229</td><td>500</td></tr>
        <tr><td>Aligned on</td><td>Face box (OpenCV Haar cascade)</td><td>Eye centers (MediaPipe Face Landmarker)</td></tr>
        <tr><td>Can someone else run it?</td><td>Only with my local setup</td><td>Anyone with access to the notebook</td></tr>
    </tbody>
</table>

<p align="justify">
    I'm sure I could turn this into an app in no time with
    <a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/genie-app-builder">Genie App Builder</a>
    (currently in Beta): upload a folder of photos, get the time-lapse back. Once you have such tools available, you
    can really get creative with what you want to build. What a time to be alive!
</p>

<h2 class="section-heading">What does this say about AI coworkers?</h2>
<p align="justify">
    Genie Code didn't replace judgment. It replaced setup and boilerplate. I still decided what "aligned" meant,
    spotted which frames were wrong and said when the result was good enough. It's a super coworker which makes a
    project like this (and more elaborate ones) quick to take on.
</p>

<h2 class="section-heading">Key takeaways</h2>
<ul>
    <li>Databricks Genie Code cut the work from about 3 days to about 3 hours while improving the result.</li>
    <li>Writing clear prompts that described the result, not the technical details, did most of my work.</li>
    <li>Steering still matters: follow-up prompts were corrections of my requirements.</li>
</ul>

<h2 class="section-heading">FAQ</h2>
<p align="justify">
    <b>Do I need to know Python to use Databricks Genie Code?</b><br>
    No. I gave plain-language instructions and reviewed the results. Knowing what a good result looks like helps more
    than knowing the code. In fact, for this project I didn't read the code at all and just checked the outputs.
</p>
<p align="justify">
    <b>Can Databricks Genie Code do image processing?</b><br>
    Yes. In this project it used MediaPipe Face Landmarker to find the eyes in 500 photos, aligned and cropped them,
    and rendered a GIF and an MP4.
</p>
<p align="justify">
    <b>What is the difference between Genie Code and Genie One?</b><br>
    Today, Genie Code is for technical work such as code, notebooks and pipelines. Genie One is for business users who
    ask questions about governed data in plain language.
    (<a href="https://docs.databricks.com/aws/en/genie/">Genie docs</a>)
</p>
<p align="justify">
    <b>Why run a small personal project on Databricks instead of a laptop?</b><br>
    Mainly because I wanted to build it with Databricks Genie Code, which is built for exactly this kind of data
    science and machine learning work: exploring files, choosing models, running code on ML compute and checking the
    results. On top of that, there's no setup, the photos stay in governed storage, and the pipeline can be rerun or
    shared. And everybody can try it with
    <a href="https://www.databricks.com/learn/free-edition">Databricks Free Edition</a>!
</p>

<p align="justify">
    <em>Disclosure: I work at Databricks. Opinions here are my own.</em>
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[500 selfies in nine years. How I rebuilt my time-lapse with Databricks Genie Code in 3 hours instead of 3 days.]]></summary></entry><entry><title type="html">An Ergonomic Home Office</title><link href="https://patrick.ruoff.dev/2025/08/19/ergonomic-HO.html" rel="alternate" type="text/html" title="An Ergonomic Home Office" /><published>2025-08-19T07:00:00+00:00</published><updated>2025-08-19T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2025/08/19/ergonomic-HO</id><content type="html" xml:base="https://patrick.ruoff.dev/2025/08/19/ergonomic-HO.html"><![CDATA[<p align="justify">
    We all learned in recent years that working from home has its perks and challenges. 
    One benefit I'll highlight in this post is
    setting up your working environment exactly as you want - especially when it comes
    to ergonomics.
</p>
<p align="justify">
    I've personally struggled with wrist and back pain over the last couple of years despite being 
    relatively young and sporty. I experienced what many learn in their late 20s:
    <center><em>
    Sitting in front of a laptop all day takes its toll on your body.
    </center></em>
</p>
<p align="justify">
    Since I'm a professional keyboard warrior I had to figure out some ways to make my working hours
    healthier.
    Some of the adjustments I mention here are already broadly accepted and some are more daring
     - necessity is the mother of invention, right?
</p>

<h2 class="section-heading">Before we start</h2>
<p align="justify">
    I extended my current setup over the years and by now it cost me quite a chunk of money. What's central to
    thinking about these investments is that they are among the highest return-on-invest items I own.
    Since I work from home for around 8 hours on 200 days a year, I use them more often than any other item apart from my bed.
    So I regret not a single cent spent. Also, (at least here in Germany) you can get some tax back for
    home office investments.
</p>


<h2 class="section-heading">Back pain</h2>
<p align="justify">
    I developed back pain around 4 years ago. Consequently, I successfully implemented a couple of things to 
    improve my posture: 
</p>

<ul>
    <li>better chair with more adjustability</li>
    <li>height-adjustable table</li>
    <li>monitor arm for better positioning</li>
    <li>walks between working sessions</li>
    <li>doing some stretching & core exercises every day</li>
</ul>
<p align="justify">
    All these have been discussed broadly elsewhere and I recommend you learn about how to
    set them up correctly for your unique body. I'll dig deeper into a gadget that's more daring but
    really made a difference to me.
</p>
<p align="justify">
    At one point, I figured that I would most likely have less back issues if I had a
    non-sedentary job. So if I not only want to fight symptoms but change the real
    source of my problems, I could either quit my office job or 
    try to be more active at my desk. As you might have guessed, I chose the rat race and bought a walking pad (pun intended).
</p>

<img class="img-fluid" src="/img/posts/walkingpad.jpeg" alt="Patrick on a walking pad in an interview situation">
<span class="caption text-muted">Me in an interview with a major German bank (re-enacted)</span>

<p align="justify">
    I find that walking at your desk has many benefits: 
</p>
<ul>
    <li>it's not as static as standing and sitting, providing the movement necessary for a healthy back</li>
    <li>you have some physical effort while working, which I am sure is better for your heart and general health over the long run</li>
    <li>you're the coolest kid in the meeting when everybody sees your head moving up and down,
        giving you plenty of opportunities to brag about your healthy new gadget</li>
</ul>
<p align="justify">
    The walking pad significantly improved my ability to work at a desk without back pain.
    I find the steady movement it provides so much better than just standing still for hours. This should 
    be reflected in natural movement patterns as our bodies evolved to walk for long distances every day.
</p>
<p align="justify">
    When friends are interested in buying a walking pad themselves, many fear they might lack concentration
    while walking or have difficulties to type. I can share that I personally never had either one
    but I recommend to keep the speed low at about 2 km/h.
</p>
<p align="justify">
    A central tip on this is to optimize for position change time. You might already
    have a height-adjustable desk and know the situation where you remember that you should stand up
    but it takes a couple seconds so you tell yourself: "nah, not now" and end up sitting all along again. 
    It's the same for the walking pad, which takes even longer to switch to. If you have a non-foldable pad stored behind
    your wardrobe, it'll take you maybe a minute to get it, place it under the desk, plug it in, raise your desk
    height and start the mill. That's why I went for a narrow foldable that's on one side of my broad table so all I need to do
    is to raise the table, unfold the pad, get the monitor, mouse and keyboard to the other side and start walking.
    It also paid off to get a monitor arm that can swiftly be turned from side to side.
    The whole process might take me as little as 15 seconds and by now I rarely find myself too much in a hurry not to switch
    position when I feel I should. I also set a timer to 40 minutes every time I sit down so I remember to make use 
    of my investment.
</p>




<h2 class="section-heading">Wrist pain</h2>
<p align="justify">
    I remember experiencing wrist pain for the first time when I was writing the 130 pages of my
    master's thesis on my laptop's keyboard. Back then (without ChatGPT) I had to type for hours on end 
    every day for weeks. I soon realized, the pain faded when I used an external keyboard for one hand
    and the laptop's keyboad on the other so the position of my wrists was more natural. Unfortunately though,
    this is quite tedious since the Shift and control keys are not synced between both keyboards.
</p>
<p align="justify">
    Years later my issues became critical while I was on a yearly bike trip with my closest friends. 
    That year, we had many sections on gravel and I didn't have any suspension.
    The stress of the impacts on my wrists was immense so I developed carpal tunnel syndrome, numbing
    two fingers on one hand and having constant tickles on the other. Luckily, the syndrome improved
    after a couple of weeks but I found that the issues were worst after long workdays.
    That made me set out to find an alternative to writing on my laptop's keyboard which led
    me to the world of split ergonomic keyboards.
</p>
<p align="justify">
    I now own a Glove80 and I wouldn't go back again. Its main benefits are:
</p>
<ul>
    <li>it's split and height-adjustable so you can find the most natural position for your hands</li>
    <li>it's concave and has a columnar staggered layout for natural finger movement</li>
    <li>it's programmable, so you can optimize the layout to your personal usage patterns</li>
</ul>


<img class="img-fluid" src="/img/posts/glove80.jpeg" alt="">
<span class="caption text-muted">My desk view. The UI on the display can be used to configure the keyboard's behavior.</span>


<p align="justify">
    I found the first point to be most critical for my wrist issues and recommend everybody to get a keyboard with
    a more natural layout. After I switched to a
    Logitech ERGO K860 (that's not programmable), my pain was remedied already.
</p>

<p align="justify">
    Still, I now went for the Glove80 since it's programmable, which I was hesitant about at first - but it turned out to be a real game-changer for typing speed and accuracy.
    With a very simple web-UI you can digitally change, which character/command will be sent from the
    keyboard when you hit a specific button. Also, you can specify whole layers of new layouts
    that are activated when holding a certain key - just like shift changes the output of
    other keys.
</p>

<p align="justify">
    So the central idea is to make best use of the keys that are easy to reach from the resting
    position of your fingers - also called the home row (i.e. asdf on the left hand).
    With simple layers for numbers and special characters, I now use only the 46 best available keys
    out of the 80 the Glove80 offers. Consequently, I don't need to move and twist my wrist at all
    any more, which makes typing both faster and less stressful on my hands.
</p>
<p align="justify">
    Another feature of programmable keyboards with the same benefits are the so called 
    "home-row modifiers". It's the genius realization
    that buttons on the home row, such as 'f' are just tapped and never held (or why would you
    want a long sequence of 'fff...'). Combine this with the fact that the modifier keys (such as
    Shift, CMD, CTRL, layer) are among the most frequently used keys and are held only and never 
    tapped. So keyboard designers made it possible to have different functions per key
    for tapping or holding them. For instance, my 'f' key is a 'f' if I tap it and a Shift
    if I hold it. That's a critical improvement since 'f' is on the home row and therefore extremely
    easy to reach!
</p>
<p align="justify">
    Learning and adapting this new layout surely takes some time and effort but it pays off 
    hundredfold if you consider how many years you'll spend typing.
</p>

<p align="justify">
    Even if you don't want to switch to a split keyboard yet, I have two further recommendations
    that had a huge impact on my wrist pain.
    First, get a vertical mouse. They are widely available and lack nothing other mice
    offer while being less of a strain on your hand.
    Second, try hovering your wrist instead of using palm rests or such. I only stumbled
    upon this on Reddit but it's very natural and easy and relieved my wrists immediately.
    A bonus for people who also ride the bike a lot: get your bike fitted to your body
    professionally. I always thought
    my setup is decent but only after spending 200€ on this I got rid of my issues for
    long rides.
</p>
<p align="justify">
    That's all I want to share for now. Thanks for sticking around and please don't hesitate
    to reach out regarding your ergonomic challenges.
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[We all learned in recent years that working from home has its perks and challenges. One benefit I'll highlight in this post is setting up your working environment exactly as you want - especially when it comes to ergonomics. I've personally struggled with wrist and back pain over the last couple of years despite being relatively young and sporty. I experienced what many learn in their late 20s: Sitting in front of a laptop all day takes its toll on your body. Since I'm a professional keyboard warrior I had to figure out some ways to make my working hours healthier. Some of the adjustments I mention here are already broadly accepted and some are more daring - necessity is the mother of invention, right?]]></summary></entry><entry><title type="html">The Psychology of Money</title><link href="https://patrick.ruoff.dev/2025/05/17/Psychology-of-Money.html" rel="alternate" type="text/html" title="The Psychology of Money" /><published>2025-05-17T07:00:00+00:00</published><updated>2025-05-17T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2025/05/17/Psychology-of-Money</id><content type="html" xml:base="https://patrick.ruoff.dev/2025/05/17/Psychology-of-Money.html"><![CDATA[<p align="justify">
    I was surprised when I realized this 2020 piece by Morgan Housel was never brought to my attention despite selling 7 million
    copies already and being endorsed by public thinkers I follow, such as James Clear, Tim Ferriss, Chris Williamson, or Daniel Pink.
    Now that I read it, I join them by proclaiming: 
</p>
<p align="justify"><center><em>
    The Psychology of Money is the single most important book everyone should read for thinking about their own and others' financial decisions.
</center></em></p>
<p align="justify">
It's short, to-the-point, and covers a broad range of relevant concepts for better understanding our relationship with money.
In it, Housel explains many of the lessons of Nassim Taleb's Incerto (that I wrote about 
<a href="https://patrick.ruoff.dev/2025/04/08/my-year-in-books.html#incerto-nassim-nicholas-taleb" target="_blank">recently</a>)
and makes them more easily approachable.

<p align="justify">
After I landed my first job, I thought about what to do with my savings. That was quite frightening to me, 
since I felt, I now had to learn all about stocks and markets and follow the news all day.
At least that's what the finance experts do to get the optimal value from their investments, right?
Luckily, I soon came across "Fooled by Randomness" by Nassim Taleb. It brought me to believe the best strategy for me 
was to simply set up a savings plan on a broad low cost ETF and try not to check its performance. To me, this was both revelation and 
liberation! Who would have thought that the best way is so easy!? Taleb also made me aware of the psychological factors - 
hence the tip to not check the performance.
</p>
<p align="justify">
For me, "The Psychology of Money" arrives at the same conclusion and sums up so many lessons in only a few pages 
while being written for a broad audience. So when friends start to think about how best to save money, I now 
recommend this one.
</p>
<p align="justify">
It's phenomenal success speaks for itself so get a copy already! 
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[I was surprised when I realized this 2020 piece by Morgan Housel was never brought to my attention despite selling 7 million copies already and being endorsed by public thinkers I follow, such as James Clear, Tim Ferriss, Chris Williamson, or Daniel Pink. Now that I read it, I join them by proclaiming: The Psychology of Money is the single most important book everyone should read for thinking about their own and others' financial decisions. It's short, to-the-point, and covers a broad range of relevant concepts for better understanding our relationship with money. In it, Housel explains many of the lessons of Nassim Taleb's Incerto (that I wrote about recently) and makes them more easily approachable.]]></summary></entry><entry><title type="html">Great books I read in 2024</title><link href="https://patrick.ruoff.dev/2025/04/08/my-year-in-books.html" rel="alternate" type="text/html" title="Great books I read in 2024" /><published>2025-04-08T07:00:00+00:00</published><updated>2025-04-08T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2025/04/08/my-year-in-books</id><content type="html" xml:base="https://patrick.ruoff.dev/2025/04/08/my-year-in-books.html"><![CDATA[<p align="justify">
    Last year started with a tough setback. After I got into skiing in the winter,
    I fell and got a herniated disc. That was when I was just training to do my first
    half Iron Man and also got a spot for the Berlin Marathon later in the year. These dreams
    were eradicated in an instant. It should be fair to say, I had every reason to be upset.
    Yet, pretty soon, I discovered something unexpectedly positive about it.
</p>

<p align="justify">
    Prior to the injury, I had invested lots of time in the preparation for my
    athletic goals and did not read as much any more. 
    Forced to lie on my back most of the day, I finally — for the first time in my life — found both the 
    time and the will to read many classics that were on the top of my list for years. 
    I read many hours every day and since then finished one book every two weeks despite reading
    slowly and mostly thought-provoking nonfiction material. Soon, this period became
    supremely inspiring and rewarding to me, with a couple books making it to my personal top 10.
    
    My hope with this post is that you might also find motivation to invest some time into reading 
    some of these books - without the need to hurt yourself first.
</p>

<h4 class="section-heading">Lessons when reading a lot</h4>
<p align="justify">
    Before going into the details of the best titles I read, I'd like to touch on some lessons and experiences 
    that I had while reading that much for the first time.
</p>

<p align="justify">
    It might not apply to you in the same way but when I read regularly, I tend to feel like
    I think clearer and calmer throughout the day. 
    This could stem from the focused attention reading requires — a welcome contrast to my sometimes connected and distracted days.
    At times, reading even has a similar effect on me as meditation where random thoughts arise from the back of my consciousness
    that I can then deliberately process. 
</p>

<p align="justify">
    Somewhat related to this was my observing a steadily decreasing friction for picking
    up a book. Earlier, I often felt too tired to read on harder topics after a mentally exhausting day
    but it got easier and easier the longer I kept at it. Yet, for any given day there is still a limit to how much I can
    consume and reflect on.
</p>

<p align="justify">
    Which brings me to another important point: I learned to really reflect
    on what I read. Often - especially while reading nonfiction - thoughts about applying the material
    to my own life arise. I stop and think about that deeply, challenging what I read and my previous approach to the issue.
    I also write down the most important learnings in my own words and even keep some as flashcards in an app so
    I'll repeatedly get reminded of the lesson. What also really helped me is reading with the intention of 
    discussing the content with somebody. It simply makes me more attentive and I find the greatest value in
    getting my understanding challenged by others.
</p>

<p align="justify">
    Here I also want to mention that I always considered myself a slow reader, and still do. I tried to learn speed reading but
    it makes me nervous and so far I can't imagine that you can think and reflect as deep about the content while
    reading fast.
</p>

<p align="justify">
    Another very interesting aspect about reading a lot is that many books will touch on the same points.
    While that might sound repetitive, I found it fascinating — especially when authors disagreed on the same topic.
    Then, you have two opposing views elaborated before you that you can think about even harder. 
    On the other hand, I found it also really exciting to learn that many
    of the authors and people I admire agree on some unexpected points. For instance, Steve Jobs, Tim Ferriss, Cal Newport,
    Albert Einstein and Nassim Taleb (all of whom are mentioned later in this post) share a love for long walks,
    to a degree that might seem extreme by today's sedentary standards. They describe how while walking
    they think deeply about main challenges they face - either alone or in conversation with
    others. Another surprise to me was to discover that Naval, Ferriss, Taleb, and von Schirach 
    (who's not explicitly mentioned here but whose books I like a lot too) advocate for the 
    stoic school of thought. The stoic classics by Marcus Aurelius and Seneca are mentioned repeatedly in the best terms -
    which I did not expect from modern intellectuals. This made me pick up Meditations
    by Marcus Aurelius, which I currently read (very) slowly and already highly recommend if you're interested in stoic principles.
    <!-- Lastly, in a number of books my distaste for the news of the day got echoed by the authors themselves.
    Many advocate for ignoring the noise of current events altogether, suggesting instead
    that we read distilled, high-quality reports every other day. -->
</p>

<p align="justify">
    But now let's talk business. I included not all but only the best books I've read that year across all kinds of domains.
    If something bores you, just jump to another section - I cover a wide range of nonfiction domains. Here are the 
    links to every title:
    <ul>
        <li><a href="#elon-musk-walter-isaacson">Elon Musk - Walter Isaacson</a></li>
        <li><a href="#the-war-of-art-steven-pressfield">The War of Art - Steven Pressfield</a></li>
        <li><a href="#the-almanack-of-naval-ravikant-eric-jorgenson">The Almanack of Naval Ravikant - Eric Jorgenson</a></li>
        <li><a href="#the-seven-habits-of-highly-effective-people-stephen-covey">The Seven Habits of highly effective people - Stephen Covey</a></li>
        <li><a href="#the-gene-siddhartha-mukherjee">The Gene - Siddhartha Mukherjee</a></li>
        <li><a href="#amusing-ourselves-to-death-neil-postman">Amusing Ourselves to Death - Neil Postman</a></li>
        <li><a href="#the-relationship-handbook-george-pransky">The Relationship Handbook - George Pransky</a></li>
        <li><a href="#range-david-epstein">Range - David Epstein</a></li>
        <li><a href="#the-righteous-mind-jonathan-haidt">The Righteous Mind - Jonathan Haidt</a></li>
        <li><a href="#code-charles-petzold">Code - Charles Petzold</a></li>
        <li><a href="#the-4-hour-workweek-timothy-ferriss">The 4-Hour Workweek - Timothy Ferriss</a></li>
        <li><a href="#to-have-and-have-not-ernest-hemingway">To Have and Have Not - Ernest Hemingway</a></li>
        <li><a href="#finite-and-infinite-games-james-carse">Finite and Infinite Games - James Carse</a></li>
        <li><a href="#chaos-kings-scott-patterson">Chaos Kings - Scott Patterson</a></li>
        <li><a href="#incerto-nassim-nicholas-taleb">Incerto - Nassim Nicholas Taleb</a></li>
        <li><a href="#little-bets-peter-sims">Little Bets - Peter Sims</a></li>
      </ul>
      
</p>



<h4 class="section-heading" id="elon-musk-walter-isaacson">Elon Musk - Walter Isaacson (2023)</h4>
<p align="justify">
    Ok, actually some more about me first: right after new year's I got my eyes lasered and 
    had to keep them closed for about a week. So I could only listen to audiobooks - a medium 
    I like most for biographies. What a great coincidence that the master of biographies,
    Walter Isaacson, just finished his newest piece on the richest man on the planet 
    (formerly, maybe). I loved Isaacson's work on Steve Jobs, Jennifer Doudna, Albert Einstein, 
    and Benjamin Franklin, so I was looking forward
    for a balanced view on the polarizing character of Elon Musk. My expectations were
    more than satisfied. The book is filled with interesting and inspiring stories while
    following a clear development of Musk's character and discussing his flaws and 
    virtues, both of which there are plenty.

    What especially stuck with me is his insight on the iterative approach to development.
    Musk is dedicated to always try new ideas without fear of blowing things up (like
    his rockets used to). If nothing ever goes wrong, you're not risking enough.
    Really thought-provoking and exciting to see how he had unseen success across
    various industries with this approach and his extreme commitment.
</p>
<p align="justify">
    Isaacson also covers Musk's vices and the stories of those that suffered under his extreme
    leadership and general personality. The book ends with Musk's seemingly insane move to
    buy Twitter - becoming CEO of 4 major companies at once. In the year since, Musk got even more 
    public attention since he's increasingly involved in the Trump administration, leading the DOGE department.
    I definitely recommend the book to anyone who is remotely interested in Musk, his life, and his work.
    You will have your idea about him changed or refined in many ways.
</p>


<h4 class="section-heading" id="the-war-of-art-steven-pressfield">The War of Art - Steven Pressfield (2002)</h4>
<p align="justify">
    Finally I tackled this short work that seems to be on every must-read list out there
    on the internet. Don't confuse it with "The Art of War" as I have. 
    I read on the topic of work ethic a lot already but found this to be a true masterpiece 
    as a category of its own in style.
    I loved every bit of it and will re-read it for sure. The book covers 
    dedication to ones work and the mindset that one should bring to their art. I related
    this to my work of building software solutions, which I find is a form of art too. The "war" 
    is an inner struggle with resistance to do anything but work. I'm sure everybody
    can relate and goes to battle almost every day. So if you're at all open for an 
    artistic and inspiring new view on the matter, I beg you to read this one.
</p>


<h4 class="section-heading" id="the-almanack-of-naval-ravikant-eric-jorgenson">The Almanack of Naval Ravikant - Eric Jorgenson (2020)</h4>
<p align="justify">
    This is pretty unique: Naval's almanack was first published by Naval himself as a 
    tweetstorm. He then did a podcast with Eric Jorgenson in which they discuss Naval's 
    ideas in more depth. The transcript of this podcast became to be the book.
    The original tweetstorm, podcast and the transcript are available for free but you 
    can also order the book if you like (as I did since I didn't know it's free). Naval 
    is one of the more extreme examples of living the American Dream.
    He grew up in New York City as a poor immigrant with only his mother and brother
    as family. He spent most of his childhood in the library, which
    had practical reasons since his mother had to work and wanted him safe after school.
    So he read tons of books of various fields, which he considers the single most important
    habit that lead to his future success. He got multiple degrees and briefly had a 
    job at BCG but his progression really took off after he moved to Silicon Valley.
    There he founded a number of startups and became an early-stage investor in over 200 companies, 
    including Uber, FourSquare, and Twitter.
</p>
<p align="justify">
    What's special about Naval is not only his knowledge for wealth creation but also his 
    views on happiness and philosophy. This combination of fields seems to relate strongly
    to many modern individuals that think about how to achieve economic success while
    spending their life in a good and happy way. To get a sense, I highly recommend
    <a href="https://www.youtube.com/watch?v=3qHkcs3kG44" target="_blank">Naval's interview</a>
    at the Joe Rogan Experience.
</p>
<p align="justify">
    I'm inspired by his ideas on most topics, yet I got the most immediate returns from his insights into reading:
</p>
<p align="justify">
    <center><em>
        "Every successful person I know reads a lot."
    </center></em>
</p>
<p align="justify">
    <center><em>
        "I don't want to read everything. I just want to read the 100 great books over and over again."    
    </center></em>
</p>
<p align="justify">
    <center><em>
        "Read what you love until you love to read."
    </center></em>
</p>
<p align="justify">
    He opened me to not being afraid of skipping chapters, reading a random passage, or even to skip a book entirely if I'm not excited 
    to continue reading it in a particular moment. There's way more to consume than time to consume it, so make sure 
    you're really enjoying your time spent reading. Even if you drop a book, you can always pick it up later again, 
    if you feel like it. 
    
    I embrace that mindset and apply it to podcasts and videos as well. For this insight, I dropped
    three titles that year: 'The Effective Executive', 'The Compleat Strategyst', and 'Kaufen oder Mieten' 
    (which translates to 'Buying or Renting' from German). I think I might return to all of them
    but they didn't catch my ongoing curiosity after a few chapters.
</p>
<p align="justify">
    Then Naval's insights on wealth creation are also abundant. He goes deep into career strategies, building assets, being
    one's own unique brand, and more. He combines these ideas with thoughts about how 
    to live properly. To see wealth as a means to an end, not the end itself.
</p>
<p align="justify">
    <center><em>
        "Happiness is being satisfied with what you have. Success comes from dissatisfaction.
        Choose."
    </center></em>
</p>
<p align="justify">
    If you, like me, liked one of his interviews, I urge you to read the free book. 
    I certainly took away a lot and it gave me the greatest motivation to continue
    reading in the following months.
</p>

<h4 class="section-heading" id="the-seven-habits-of-highly-effective-people-stephen-covey">The Seven Habits of highly effective people - Stephen Covey (1989)</h4>
<p align="justify">
    The bible of self-improvement. I read it multiple times already and will do so multiple times more. It's just so 
    deeply insightful and generally applicable that I always enjoy reading it and never feel like it's time not well spent.
    
    This year for the first time, I started a bet with my girlfriend that we read a book the other one recommends. 
    This was my (very well received) recommendation to her and I used the opportunity to re-read it in parallel so we 
    could discuss the chapters in detail. That was especially great since Covey covers lots of practical exercises that can 
    be implemented for both individuals and groups so we did some of them together as partners.
</p>
<p align="justify">
    Don't be scared off by the outdated title (as I have). It's not the next hot-shot book on the next best basic habits. 
    The habits discussed should be considered as meta-habits. E.g. the first is called 'Be Proactive'.
    I don't know how to put everything I feel about this book into appropriate words so let me just leave it by saying
    it's a very rare masterpiece on a life well lived and I strongly feel anybody should read it once in their lifetimes
    (the sooner the better). It was already sold over 40 million times so I don't seem to be alone under that impression.
</p>


<h4 class="section-heading" id="the-gene-siddhartha-mukherjee">The Gene - Siddhartha Mukherjee (2016)</h4>
<p align="justify">
    The Gene is a very enjoyable and broad read that my girlfriend recommended to me as part of the bet that I just mentioned in 
    the previous paragraph. 
    The book covers the greatest findings of the field of genetics, starting at around 1850 and leading up to very recent 
    discoveries. 
    Siddhartha approaches these historical discoveries by describing clever anecdotes that are easy to understand even for somebody
    who is an amateur to the topic, like me.
</p>
<p align="justify">
    One of these stories that really stuck with me is the life of Gregor Mendel, an austrian who failed to become a teacher so became a monk instead.
    In the 1850s, his extreme interest in biology made him conduct experiments of unbelievable scale and significance - given the times he lived in. 
    Mendel cross-bred peas for more than 8 years,
    observing changes in heritable traits. Somehow, he did all that without telling anybody about it! 
    When he finally got the courage to publish his findings, the established scholars of his days did not take the monk's work seriously. 
    He died unknown (and assumably dissappointed).
    Yet, his data was groundbreaking and would mark the beginning of the modern age of genetics - alas only 15 years after his death.
    When the first scholars found and recognized the significance of Mendel's work, one of them even tried to publish it under his own name!
</p>
<p align="justify">
    Other anecdotes in the book are equally interesting and I find Siddhartha has a very enjoyable way of writing.
    In later chapters, the biological content is increasingly connected to philosophical questions.
    Siddhartha covers the eugenics of the early 20th century in Europe and the US and topics of modern discourse, such as
    gender identity and gene editing. I personally found the book could have been a bit shorter towards the end
    but it never stopped to excite.
</p>




<h4 class="section-heading" id="amusing-ourselves-to-death-neil-postman">Amusing Ourselves to Death - Neil Postman (1985)</h4>
<p align="justify">
    This classic from 1985 was recommended by Cal Newport, the author of "Deep Work" (and other great pieces).
    It's a critical, alarming call to being more conscious about the kinds of media that
    we consume. Postman explains the historical development of public discourse in the US.
    Before the invention of radio, the written word of newspapers was the main medium 
    where current issues were discussed. Politicians elaborated their arguments in depth across
    pages and pages and the American citizens were informed and interested. So much so that 
    Benjamin Franklin observed they are so busy reading newspapers that they have no 
    time for books. 
</p>

<p align="justify">
    An anecdote from that time that stuck with me were the debates between Abraham Lincoln
    and Stephen Douglas. Before the internet, TV and even radio, they traveled the country, 
    filling halls with discussions that
    had the format of hours spent by one side elaborating on their views on current political
    issues, followed by hours of the other's reply. In one instance, the opening address 
    by Douglas took 3 hours. They had to interrupt the debate so the full audience
    could go home for dinner and return before the 4 hour reply by Lincoln. This image is in such extreme
    contrast to presidential debates we see in the US (and other places) today. 
</p>
<p align="justify">
    With the invention of radio
    and later, television, the media allowed for more arousing, acoustic and visual content.
    Advertisement went from informational to sensational, and so did public discourse.
    Postman argues that looks and entertainment replaced ideology in politics.
    He continues about other implications of this shift in media for marketing, religion,
    and teaching.
</p>
<p align="justify">
    While reading, I reflected about how the internet is an improvement to linear 
    television in that the user can choose, which content to consume more freely and can also
    interact and give a response. Of course, the development to more and more arousing
    content continued, which is best shown by the success of Instagram and TikTok. Yet,
    there are also developments towards productive discourse, knowledge sharing, and learning, 
    such as Wikipedia, reddit, informational YouTube, or blogs - especially mine ;)
</p>
<p align="justify">
    Again, a very thought-provoking book on a topic that affects 
    all our lives. Not the easiest read but I enjoyed it a lot. Thanks for recommending, Cal!
</p>


<h4 class="section-heading" id="the-relationship-handbook-george-pransky">The Relationship Handbook - George Pransky (1991)</h4>
<p align="justify">
    Last year I found Derek Sivers' <a href="https://sive.rs/book" target="_blank">reading list</a> 
    to be a source of great titles, including this one by George Pransky.
    Sivers writes: "Everyone in a romantic relationship should read this" and I very much agree.
    It's written as a kind of marriage counseling but many lessons are valuable for all kinds of relationships.

    Pransky sets a strong emphasis on empathy towards your partner - even if you're upset by their behavior.
    He makes the surprising case that you should not discuss the main conflicts in a relationship -
    and convincingly so. He claims that when the emotional storm passes and partners share empathy again they naturally
    find solutions to their conflicts without the need for bargaining on compromises.
    
    Other themes are personal differences, moods, active listening, focus, forgiving, intimacy and more.
    I often catch myself reflecting on its ideas and reread certain passages when they fit my current situation in my relationship, friendships, or work.
    Thank you Derek!
</p>


<h4 class="section-heading" id="range-david-epstein">Range - David Epstein (2019)</h4>
<p align="justify">
    Another book that I read due to a bet with a friend. I find the main message best described in the 
    opening example of comparing Tiger Woods and Roger Federer. Both were on the top of their sports for decades
    and to get there, both developed extreme training habits, combining their talent with grit.
    The interesting difference between them, Epstein argues, is that golf is a 'kind domain' i.e. relatively static and repeatable
    whereas tennis is more dynamic, creative and chaotic - what he calls a 'wicked domain'. In kind domains the typical advice 
    for top performers apply: start as early in life as possible and put in as many hours as possible. Think 
    of the famous Polgár sisters who were raised to become chess masters and did so with unseen success after spending
    all their childhoods on the board game.
    Now the hook is that in wicked domains, such as Tennis, other principles seem to apply for the best of the best.
    In Federer's youth, for instance, he was playing Football, Badminton, Basketball and Table Tennis besides Tennis.
    'Only' at 14 he 
    went all-in into the sport that he would later dominate. Epstein argues that was crucial for Rogerer's success
    because he learned different lessons from all the different sports and found the one that best fit his talents.
    Compare that to Tiger Woods who started playing golf at the
    age of 2 and was the world champion of his age at 8 already - similarly to the Polgár sisters who became grand
    master as early as the age of 15. They were specializing from the start and never went broad to discover what
    could be learned in other fields.
</p>
<p align="justify">
    Epstein continues to argue that the successes of Woods and the Polgár sisters are cited all the time when 
    it comes to world-leading performance - as in one of my personal favourite books ever: 'Atomic Habits' by James Clear. 
    Yet, most people operate in more wicked domains, such as entrepreneurship, product development, science, or most fields of study.
    There, other principles apply and too early specialization might even be harmful. 
    In every chapter Epstein outlines one such principle how in wicked domains, people have extreme success by
    deliberately going broad instead of deep (think T-shaped skills). 
</p>
<p align="justify">
    One exciting example is InnoCentive, a crowdsourcing company that offers to publish challenges of all kinds
    of domains that the field's experts cannot solve. The founder is a PhD in chemistry who found that often
    the solution to hard chemical problems arise from knowledge in other fields. So he started by publishing
    challenges that the pharmaceutical company he was working for was facing for years and did not progress on. 
    Soon solutions were found from unexpected people, like one lawyer who solved a molecular synthesis challenge. By now, InnoCentive awarded
    more than 20 million dollars to people who solved problems for the likes of NASA, who struggled to predict 
    solar particle storms, or for helping to remove oil spill from Alaska's coast.
</p>
<p align="justify">
    I read much in the field of peak performance and found Epstein gives us a new yet crucial perspective.
    If success comes not only from going deeper and deeper but also from gaining broad experiences,
    this frees us to being more open for career switches and explains the unseen successes of the likes
    of Steve Jobs, Elon Musk, and so many others who are not merely experts in one domain.
</p>

<h4 class="section-heading" id="the-righteous-mind-jonathan-haidt">The Righteous Mind - Jonathan Haidt (2012)</h4>
<p align="justify">
    Another classic of our times that's been on my list for years. I had the pleasure to see Haidt - a NYU professor - presenting about
    the divide in american politics back when I was a visiting scholar at CMU in 2019. The book gives deeper insights into what 
    might cause this ever increasing tension between the political sides in the US and elsewhere - like currently in Germany, where I live.
</p>
<p align="justify">
    Haidt studied the field of moral psychology and did many anthropological studies and observations himself. 
    His central findings show how our liberal western world is a rare exception in that it has a very limited
    set of moral norms, placing the individual's autonomy above all else - as long as nobody else is harmed.
    Other cultures, and conservatives, are also moral about loyalty, authority, or sanctity - all of which seem to have
    a negative connotation in our language. 

    For instance, when discussing the participation in religious services,
    a liberal's opinion will mostly come down to whether it serves the individual in that moment. A conservative
    view could include morals about loyalty to ones tribe (i.e. the religious group), respecting the authority of 
    the religious leader, and praising the sanctity of certain religious beliefs. This might not sound convincing
    to many westerners but in all other cultures such norms are the default. Haidt explains that our 'moral taste buds' 
    - as he calls them - can be explained by evolution and all of us have the capacity to feel them.
</p>
<p align="justify">
    What also stuck with me is the process of how we form moral opinions.
    Despite our experience, the research showed that even in this complex domain of morals we are primarily led by our emotions 
    and only make use of high-effort critical thinking in very rare exceptions (explained in depth in 'Thinking, Fast and Slow' by Daniel Kahnemann).
</p>
<p align="justify">
    The book is Haidt's plea to treat politics and religion not as taboos but discussing them with curiosity - especially when opinions differ.
    Haidt wants us to gain a better understanding of the other side's opinions. Showing empathy and respect in political discourse
    is increasingly rare yet so foundational for constructive discussions.
    <!-- The title really opened me up for some conservative views.
    I think that there are benefits to collectivism that I was too fast to drop when I was constructing my first political opinions. -->
    With all the political chaos around the world these days, I am thankful to have this book to get a better grasp at what's happening.
</p>


<h4 class="section-heading" id="code-charles-petzold">Code - Charles Petzold (1999)</h4>
<p align="justify">
    One of the insights of <a href="#the-almanack-of-naval-ravikant-eric-jorgenson">'The Almanack of Naval Ravikant'</a>,
    is to start by reading the foundational books in your field and derive
    anything high-level and fancy from the basics. The idea really resonates with me so I decided to include this 
    piece on my list. It's another recommendation from the previously mentioned 
    <a href="https://sive.rs/book" target="_blank">reading list</a> of  Derek Sivers, who 
    says it's a 10/10 for anybody who's interested in computers and electronics. It seems that I am!
</p>
<p align="justify">
    I didn't think
    before that I could find the book so exciting and mind-blowing. Petzold really achieves to (theoretically) build a basic CPU 
    by explaining concept by concept. Starting at the very foundation of simple circuits he builds up more and more logical gates to end up at
    a full RAM and CPU that he also simulates on his website for anybody to play around with them.
</p>
<p align="justify">
    The content is complicated at times but very rewarding. I really felt the wisdom in Naval's 
    words come to fruition already since this piece solidified my understanding of many of the most foundational concepts in 
    computers and codes. You don't need to be a professional in computer science or electronics to enjoy the book but it's
    not the easiest read.
</p>
<p align="justify">
    By the way: I also re-read another, more technical book in 2024: Desingning Data-Intensive Application by Martin Kleppman. 
    I wrote about it <a href="https://patrick.ruoff.dev/2025/01/02/DDIA.html" target="_blank">here</a>.
</p>

<h4 class="section-heading" id="the-4-hour-workweek-timothy-ferriss">The 4-Hour Workweek - Timothy Ferriss (2007)</h4>
<p align="justify">
    The most thought-provoking book I ever read. Again, I was very hesitant to read it despite frequent
    recommendations because of the exaggerated title. I just can't imagine that many people work for
    merely 4 hours a week (and I wonder if that's a goal that's worth thriving towards anyways). 
    Yet I finally gave it a try and liked it from the start. Tim Ferriss to me is the ultimate life-hacker.
    He's very practical and questions every convention.
</p>
<p align="justify">
    In the book he describes how he was worked up leading his own company, making millions while being miserable 
    and having no private time. So he radically automated tasks, got rid of ineffective practices and customers
    and after a while realized that he could earn the same while working way less.
    His new won free time he invested in optimized activities, becoming the national champion in Chinese Kickboxing
    or participating in the Tango World Championship.

    That sure sounds like every other Self-Optimization-Guru's story on YouTube, 
    yet I find it rather convincing and I could transfer many of the practices he implemented to my own life.
</p>
<p align="justify">
    One such practice that Ferriss first popularized and that's even more relevant today, is 
    a 'low information diet' in which you aggressively eliminate sources of news and connections to help
    reclaim more time for other pursuits.
    For instance, Ferriss used to be available for his customers and employees 24/7 via calls and mail. 
    Yet, he realized this had a huge toll on him while providing surprisingly little value.
    So he cut his availability down all the way to checking mails only Monday mornings! Providing FAQs and letting people
    find the answer themselves proved to not destroy the business.
    He continued being very radical about declining meetings and calls, choosing email as the most 
    efficient tool (while doing it only on Mondays). He describes how the gained focus and time 
    made him more productive than what was expected of him. So he achieved more with less, finishing
    work early. I realized the same in my career and think it's a huge productivity impediment of our times to be
    connected and interrupted all day. I am certainly not as extreme but I too find 
    checking on every message and email immediately once it arrives leaves me distracted
    from what I am working on. This might not be an issue for one notification an hour but the clutter
    seems to steadily increase, making me uneasy and absent-minded in a job that requires focus.
    The great realization: it's perfectly fine to check your inbox just every other hour or so. In case you really need to be available fast,
    tell your collegues to give you a call in such a case. 
    
    The same principle applies to consumption of media and news. If this sounds interesting, I urge
    you also consider 'Deep Work' by Cal Newport, who is the best on this topic.
</p>
<p align="justify">
    Another lesson he radically applied is the Pareto principle (also known as 80/20 rule). It applies to so many
    dimensions that only about 20% of the inputs generate 80% of the outputs. For Ferriss that means that only about 20%
    of the tasks he invested time into while leading his company (or working a previous job) produced 80% of the gains.
    Now he argues that one should cut the other 80% of activities and double-down on the vastly more effective 20%.
    'Pareto is everywhere' is the quote that sticks with me most and I find that I can apply it in many situations
    in my professional life.
</p>
<p align="justify">
    Ferriss covers many more interesting topics, making you think about your goals for your life (work vs. leisure) and
    challenges if your schedule really reflects these goals (spoiler alert: for most people it doesn't - including me).
    I found his concept of mini-retirements very exciting: instead of working all your life for a nice retirement,
    do a mini version every other year. Take a couple months off and travel to a new place. Focus on using your
    time to learn new cultures, languages, hobbies, etc.
</p>
<p align="justify">
    Even if I don't apply everything from the book to my life, it certainly changed my mindset about many things
    I never actively questioned. That in itself was very valuable to me and I can only recommend the book if
    that sounds exciting to you.
    The parts about personal assistants can be skipped or interestingly be compared to the influence of ChatGPT today
    and I would certainly skip the outdated chapter about dropshipping and concrete business advice.
</p>


<h4 class="section-heading" id="to-have-and-have-not-ernest-hemingway">To Have and Have Not - Ernest Hemingway (1944)</h4>
<p align="justify">
    The only fiction in this list. I typically focus on nonfiction since I think I can take
    away more from that. Yet, I really enjoyed reading this one and found some provocing thoughts
    about inequality and various aspects about it covered up in the stories. 
    A great introduction to fiction - I'll surely enjoy this some more in the future.
</p>


<h4 class="section-heading" id="finite-and-infinite-games-james-carse">Finite and Infinite Games - James Carse (1986)</h4>
<p align="justify">
    Very abstract and apparently too abstract for me at this time. I read it all the way but I
    struggled to constructively apply it to anything I cared about at the time.
</p>



<h4 class="section-heading" id="chaos-kings-scott-patterson">Chaos Kings - Scott Patterson (2024)</h4>
<p align="justify">
    Scott Patterson is a writer on the financial system and some of its main actors. He wrote three
    best-sellers and is a reporter at the Wall Street Journal. I know him from  
    <a href="https://www.youtube.com/watch?v=18ZxCxN2ZMo" target="_blank">this</a> 
    rare interview with one of my favorite authors, the risk expert Nassim Taleb, where they also briefly promote this book. The first chapters
    cover the separate biographies of Nassim Taleb and his hedge fund's co-founder Mark Spitznagel. Before they met,
    both were successful traders and developed doubts and suspicions in common financial practices by banks and financial
    experts. They shared the view and experience that it pays off to bet on outlier events: events deemed so unlikely by
    common financial models that most everybody underestimates their likelihood. Taleb writes a lot(!) about this in his Incerto (which I
    cover in the <a href="#incerto-nassim-nicholas-taleb">next paragraph</a>).
    

    He convincingly makes the case that common financial prediction models are based on simplified assumptions that
    don't hold in general. Yet, all common financial experts and decision makers base their actions on the predictions
    of these faulty models - seemingly without ever quantifying their accuracy. That leads to immensly underestimated risks of 
    unlikely events, called Black Swans, a term coined by Taleb's book with the same title.
    
    <!-- As a consequence every
    decade or so, a crisis hits the markets what common financial models expect only in hundreds or thousands of years.
    Many institutions lose immense amounts of money while Taleb and Spitznagel have unseen gains. -->
</p>
<p align="justify">
    So Taleb and Spitznagel make their doubts about these risky practices very public. Yet nobody seems to listen and 
    stop using them. So when they met in 1999, they founded a hedge fund, Empirica.
    
    <!-- Taleb and Spitznagel met in 1999 when Spitznagel went on a learning sabbatical to study at NYU where Taleb was teaching. 
    At the time, Taleb was looking for somebody who shared his opinions and wanted to start a hedge fund. 
    When they met, Spitznagel's sabbatical ended after only two days. A month later Empirica, their hedge fund was founded. -->
    
    To sum up their strategy very briefly:
    every day they buy cheap options (bets) on events that should only happen every thousand years or so (according to 
    apparently faulty yet common financial models which underestimate fat tail risks) and mostly lose these bets day 
    after day. Yet, there are enough crises every other decade that make the bet pay off thousandfold such that 
    they have immense returns when the market goes down by e.g. 20% in one day. For instance, in the financial crisis of 
    2008 when the S&P went down 39%, their hedge fund had a 115% gain that year. They promote their strategy to be a
    protection against crises. Investors should place only 5% of their assets into their fund to be robust against 
    such unseen crashes.
</p>
<p align="justify">
    I find these stories about the financial system, its crises and the discussions of its faults extremely exciting. While reading,
    I even imagined switching jobs into the financial system - yet it seems there's a little more to it than reading
    a few mainstream books.
</p>
<p align="justify">
    'Chaos Kings' also covers other individuals
    who gain from chaos in the financial - and other - markets. Towards the end of the book the extreme risks connected to
    climate change are discussed and the very interesting concept behind Ryskex.
</p>
<p align="justify">
    In the next section, I'll write more about Taleb's work. 'Chaos Kings' is an easily digestible piece
    and a introduction into the domain of Taleb's world so I would recommend it as a first step, if you're in doubt if these 
    things are of interest to you. Yet, Taleb's ideas range far wider than in the financial sector alone and his unique
    way of writing is not reflected in Chaos Kings. So if you're already convinced after the next section, I'd urge you
    read the Incerto directly.
</p>


<h4 class="section-heading" id="incerto-nassim-nicholas-taleb">Incerto - Nassim Nicholas Taleb</h4>
<p align="justify">
    The Incerto is a five-volume work by Nassim Nicholas Taleb. Its titles are:
    <ul>
        <li>Fooled by Randomness (2001)</li>
        <li>The Black Swan (2007)</li>
        <li>The Bed of Procrustes (2008)</li>
        <li>Antifragile (2012)</li>
        <li>Skin in the Game (2018)</li>
    </ul>
</p>
<p align="justify">
    It spans over many domains while the
    main theme is risks and rationality in the real world. It might be considered philosophy at
    times but surely includes some statistics, many financial anecdotes and also general life lessons.
    The books are filled with exciting experiences from Taleb's days 
    as a trader, hedge-fund manager and writer. I find his thoughts provoking - challenging many
    common practices while giving rational explanations. He mixes that by frequent comments on the 
    works of many great intellectuals,
    such as Michel de Montaigne, Francis Bacon, Friedrich von Hayek, Henri Poincaré, Karl Popper
    and many others whom I didn't read much about before.
</p>
<p align="justify">
    I read the Incerto's first title 'Fooled by Randomness' already a couple years ago. At first, I was 
    unsure what to make of Taleb's aggressive tone. He's not hesitant to call people out
    - even popular professors and nobel price winners (of economics). It was hard for me to judge
    wether he's just a blown-up bully or if his critique is justified.
    So I left it at that. 
    
    But then I kept encountering praise for Taleb from thinkers like Naval and Kahneman, so I gave 
    'The Black Swan' (in which he predicted the crash of 2008) another shot and became a real fanboy,
    reading all the other volumes of the Incerto over the past year. Taleb's way of writing is unique
    and I grew really fond of it. The concepts can become quite complex but his style 
    is so enjoyable that I always looked forward to continue.
</p>
<p align="justify">
    One of the main lessons I took away is a deep scepticism for how much we know about the world.
    It's way too complex for anyone to grasp, yet we act like we do all the time.
    Consider the 'hindsight bias' for stock prices. Every day a different stock is widely discussed in daily news
    and so many people talk about how this and that caused the effect. The twist is that
    people only claim to understand the obvious causality after the fact. They say it's obvious Nvidia
    boomed in recent years since it produces GPUs that are crucial for training AI models.
    Taleb counters with 'talk is cheap', 'don't tell me what you think, show me your portfolio.'
    It's a sharp way of saying: your real beliefs are revealed by what you do with your money
    (or time, or actions), not by what you say. How many really trusted the obvious fact that Nvidia's stock
    will skyrocket and bought some before it did?
    
    From my experience that point is proven by all the people
    who study finance, work in the field for years and still don't end up becoming millionaires.
    It's too complex to understand. This realization freed me from the fear-of-missing-out of not doing 
    day trading or investing in single stocks or cryptocurrencies. Now I'm very happy to just bet on the general market
    and enjoy the bliss of ignorance by not checking my performance in months.
<!-- 
    Related to that insight is another foundational observation that most major discoveries
    originate not from deep scientific thinking and experimentation but from random tinkering. -->
</p>
<p align="justify">
    Another insight worth mentioning is Taleb's description of the Lindy effect: Technology / products / practices
    are likely to be still in existance for as long as they already exist. Applied to books this
    means that books published 10 years ago, which are still being read, are likely to being read for another
    10 years. In contrast, the newest book of my favorite author that is hyped all over the
    place might only last for another few months. It's even more extreme in the sciences where
    lots of papers are hyped after their release but only very few stand the test of time.
    To me that realization came as a surprise, yet it makes so much sense if you think about it.
    Previously I thought: 'The older the less relevant'. Now I believe:
    'The older the more significant'.
    As you see from the publication dates of the books I write about here, most of them already
    survived at least one decade.
</p>
<p align="justify">
    There are so many more inspiring insights that I might dedicate a full post to the Incerto in 
    the future. Let me leave it by saying that Taleb's work is unique, significant and enticing,
    yet it takes some acceptance for his style and its themes might not be for everyone. Also, he sometimes
    repeats himself over the five books but I didn't mind it much.
</p>



<h4 class="section-heading" id="little-bets-peter-sims">Little Bets - Peter Sims (2011)</h4>
<p align="justify">
    In this short publication Peter Sims elaborates on a lesson that I read about repeatedly in the works of Nassim Taleb, David Epstein, and Walter Isaacson.
    They recommend tinkering with small experiments to make new discoveries about what works for you instead of creating huge plans 
    upfront while becoming unable to react to changing circumstances and unforseen consequences. 
    Sims shows why this is important from different points of view that I found telling and interesting.
    I want to keep it short so here's my summary of the book's conclusion:
    As kids, we play and experiment a lot. Yet we lose this curiosity and failing is seen as something bad. Try out more new things and beware your 
    perfectionism - don't discourage yourself - it's great if it's not perfect for the first try.
</p>
<p align="justify">
    These insights gave me the courage for tackling some long-envisioned private and professional projects,
    such as getting a programmable split keyboard and a 3D printer,
    solving the previous <a href="https://adventofcode.com" target="_blank">Advent of Code</a> in Rust,
    setting up my own website, writing this post, and others.
</p>


<h4 class="section-heading">Thanks for reading!</h4>
<p align="justify">
    I'm happy you made it through here! This was my longest post so far and I wrote on it for quite a while.
    I hope you caught some interest in the books, my thoughts on them or reading in general.
    I'm certainly grateful that all these great pieces were recommended to me and I have such wisdom at my hands!
    If you have any thought on this post, or know of books I might like, please don't hesitate to reach out to me!
</p>
<p align="justify">
    Thanks for sticking around and happy reading!
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[Last year started with a tough setback. After I got into skiing in the winter, I fell and got a herniated disc. That was when I was just training to do my first half Iron Man and also got a spot for the Berlin Marathon later in the year. These dreams were eradicated in an instant. It should be fair to say, I had every reason to be upset. Yet, pretty soon, I discovered something unexpectedly positive about it.]]></summary></entry><entry><title type="html">The one book any Data Engineer should read</title><link href="https://patrick.ruoff.dev/2025/01/02/DDIA.html" rel="alternate" type="text/html" title="The one book any Data Engineer should read" /><published>2025-01-02T07:00:00+00:00</published><updated>2025-01-02T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2025/01/02/DDIA</id><content type="html" xml:base="https://patrick.ruoff.dev/2025/01/02/DDIA.html"><![CDATA[<p align="justify">
    Back when I started out my professional career as a Data Engineer at inovex, many respected
    seniors recommended the book 'Designing Data-Intensive Applications' by Martin Kleppmann. It was
    praised as a great read
    to both deepen your understanding of data storage internals and broaden your view for
    the concepts that build up the architectures of modern data systems.
    <br>Apart from all the documentation, I didn't read too many technical books back then
    so I was hesitant at first, questioning if that's a good way to spend my time.
    But I gave it a try and from the beginning I absolutely loved it! 
    I was blown away by the great insights into so many concepts that govern
    the technologies I work with everyday. Many of these I knew from my studies and 
    self-education but this book went deeper into what I felt are the relevant topics for
    understanding data applications. 
    I recently reread the full book so I thought it
    nice to pass on the recommendation to whoever is interested in deepening their
    understanding of services available to the modern data tech-stack.
    I guarantee that you'll learn something new about the internals of PostgreSQL, Kafka, ZooKeeper, and many more.
</p>

<img class="img-fluid" src="/img/posts/DA_book/DDIA_cover.jpeg" alt="The book 'Designing Data-Intensive Applications' by Martin Kleppmann.">
<span class="caption text-muted">The typical O'Reilly-style cover. One can't not love it.</span>

<h4 class="section-heading">What do I think makes it stand out?</h4>
<p align="justify">
    First, it's foundational and practical.
    Kleppmann balances deep theoretical insights with practical advice, making complex topics accessible. 
    Whether you're a software engineer new to distributed systems or a seasoned architect, the 
    book provides value by bridging academic research and real-world applications.
    <br>
    Second, its broad scope.
    The book covers a wide range of topics, including database internals, data modeling, distributed systems, 
    fault tolerance, consistency, and scalability. 
    This breadth makes it a comprehensive guide for anyone working with data processing systems.
    I found myself many times, rereading parts when they became relevant on my current project or study.
    <br>
    Third, its comprehensibility.
    The content is highly technical and hard to grasp at times. I would not recommend to read it after a 
    long day of cooking your brain at the office. Yet, I think that Kleppmann made a great job
    explaining these concepts in a clear and understandable way, building up on previous 
    chapters as the book progresses.  
</p>

<h4 class="section-heading">What's covered?</h4>

Let me mention a few of my personal highlights while the table of contents is considerably longer. I recommend reading all chapters but it might take you a while to finish all 544 pages.

<p align="justify">
<h4 class="sub-heading">1. Storage Engines</h4>
Understanding how databases manage data on disk is helpful for also understanding their high-level properties. Kleppmann introduces 
log-structured merge trees (LSM) and B-trees, explaining how they underpin many popular storage engines. I never read about these 
underlying concepts in such detail before and think differently about databases ever since.

<h4 class="sub-heading">2. Distributed Data Systems</h4>
Distributed systems are the backbone of modern applications, but they come with inherent complexity. Kleppmann dives deep into the related fields of 
replication, partitioning, transactions and consensus algorithms. 
For instance, he introduces common replication strategies and their trade-offs. Leader-based, multi-leader, and leaderless approaches each have pros and cons depending on consistency and availability requirements.
Another chapter covers partitioning in detail. Dividing data across nodes improves scalability but introduces issues like skewed workloads, rebalancing, and concerns with consistency.
I also really enjoyed the chapter on transactions. Kleppmann made me grasp the full scope of the challenges with the various isolation levels and conflicts.

<h4 class="sub-heading">3. Consistency, Availability, and Partition-Tolerance</h4>
Just like in any extensive piece on distributed systems, the CAP theorem is discussed as well. Yet, Kleppmann explains his 
critical view on the theorem that's misunderstood a lot and offers other strategies for making informed trade-offs.
In general, I think the book does a great job explaining doubts with many marketed guarantees.

<!-- <br><br>
<b>4. Stream and Batch Processing</b>
<br>
Kleppmann highlights the importance of data pipelines and processing frameworks. Whether it's Spark for batch processing 
or Kafka for real-time streaming, understanding their strengths and weaknesses is crucial for designing robust pipelines
that meet your business requirements. -->

<!-- 
Why It Matters Today
In a world driven by data, Kleppmann's work serves as a critical resource for building systems that are not only efficient 
but also resilient to failure. The book's vendor-neutral, principle-driven approach is particularly valuable in a rapidly changing technology landscape. -->

<br><br>
<h4 class="section-heading">So who should read it?</h4>
<b>Software Engineers</b> looking to deepen their understanding of databases and distributed systems.
<br><b>System Architects</b> needing to design scalable, fault-tolerant applications.
<br><b>Data Engineers</b> aiming to optimize data pipelines and storage systems.
<br><b>Technical Leaders</b> seeking to guide their teams in making sound design decisions.
<br><br>
If you're serious about building systems that stand the test of time, I'm convinced this book deserves a prominent spot on your shelf.
</p>

<p align="justify">
<i>
    PS: I have no affiliation with Martin Kleppmann or O'Reilly (unfortunately!)
</i>
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[Back when I started out my professional career as a Data Engineer at inovex, many respected seniors recommended the book 'Designing Data-Intensive Applications' by Martin Kleppmann. It was praised as a great read to both deepen your understanding of data storage internals and broaden your view for the concepts that build up the architectures of modern data systems. Apart from all the documentation, I didn't read too many technical books back then so I was hesitant at first, questioning if that's a good way to spend my time. But I gave it a try and from the beginning I absolutely loved it! I was blown away by the great insights into so many concepts that govern the technologies I work with everyday. Many of these I knew from my studies and self-education but this book went deeper into what I felt are the relevant topics for understanding data applications. I recently reread the full book so I thought it nice to pass on the recommendation to whoever is interested in deepening their understanding of services available to the modern data tech-stack. I guarantee that you'll learn something new about the internals of PostgreSQL, Kafka, ZooKeeper, and many more.]]></summary></entry><entry><title type="html">How I used AI for a 7 year hobby project</title><link href="https://patrick.ruoff.dev/2024/07/19/ai-project.html" rel="alternate" type="text/html" title="How I used AI for a 7 year hobby project" /><published>2024-07-19T07:00:00+00:00</published><updated>2024-07-19T07:00:00+00:00</updated><id>https://patrick.ruoff.dev/2024/07/19/ai-project</id><content type="html" xml:base="https://patrick.ruoff.dev/2024/07/19/ai-project.html"><![CDATA[<p align="justify">
    Back in 2017, a close friend and I were fascinated by clips like this one:
</p>

<iframe display="block" width="100%" height="400" src="https://www.youtube.com/embed/wAIZ36GI4p8?si=Rb6NS1eUbbI1iKJy" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<p align="justify">
    Noah (whom I will refer to later) took the same selfie every day for 20 years and animated it so you could watch him
    age and change over two decades in just a few minutes. We were intrigued by the idea of having such a video
    for ourselves. So we agreed to try it out too and started taking a selfie every other day.
</p>

<h2 class="section-heading">The beginning</h2>
<p align="justify">
    I soon realized what many influencers had before me: 'Taking selfies ain't easy.'
    Every photo would be one frame in the final sequence. For us human watchers to grasp the changes in a fast
    GIF, we need the changes to be limited to certain areas and colors. If the lighting, rotation, background, facial 
    expression, facial covers, etc. change too much, the video will be chaotic. 
    Just look at this GIF:
</p>

<img class="img-fluid" src="/img/posts/ai_project/chaos.gif" alt="A chaotic GIF.">
<span class="caption text-muted">A chaotic GIF of selfies with too many changes to grasp the similarities.</span>

<p align="justify">
    I suppose that is why Noah on YouTube looks like he's "on the verge of crying" (one of the top comments).
    A stern expression might make for a better GIF since different
    smiles disturb our perception when the frames change fast.
    So, starting out, I didn't intend to look particularly happy either.
    As you will see, years later I - somewhat - changed that.
</p>

<p align="justify">
    What also caught my eye was the lighting. You normally
    do not think about this but in most places the face is lit from exactly one direction,
    casting a shadow on one part of the face while the other part is bright. 
    In his video, Noah chose one side to be dominantly lit while the other side stayed dark.
    I wanted to 
    take the selfies everywhere and not always in the exact same setting, so I tried to
    look straight into the main light source. Then again, I had to watch out that
    my arms and the phone didn't cast a shadow on my face. Also, the difference between
    warm, natural light and cold, artificial light can be irritating when the changes
    in the GIF are frequent. I had to exclude lots of selfies because they didn't fit
    their neighboring frames.
</p>

<p align="justify">
    In the beginning, the process of daily selfie taking was not very rewarding but 
    neither was it too tedious. To keep ourselves motivated, my buddy and I made a bet:
    whoever missed taking a selfie for two consecutive weeks would need to join on a festival trip
    chosen by the other.
    Some background: back then we were attending four or more festivals a year. 
    Yet, our taste in music differed sometimes, so it was worth a lot to finally being able to force a friend to 
    join a more niche kind of music event that fully fulfilled ones own musical taste.
</p>

<h2 class="section-heading">The challenge</h2>
<p align="justify">
    The months passed, and the selfies amassed in our galleries. Now, we were facing the
    next challenge. How should we create such a video? I was just starting to program 
    more with Python back then but didn't even think about using it as a tool. Instead,
    I manually tried to cut and resize all the images with the basic MacOS Preview app. 
    The thought of this exhausting process still makes my hands twitch.
</p>

<p align="justify">
    Yet, after many hours, the result was not too bad (please keep in mind what 
    I said about the stern expression before judging my seemingly depressive mood):
</p>


<video loop autoplay controls height="auto" width="40%" display="block">
    <source src="/img/posts/ai_project/2018.mp4" type="video/mp4"/>
    Your browser does not support the video tag.
</video>
<span class="caption text-muted">The first GIF after one year (shortened).</span>

<p align="justify">
    The 'tool' I used to create the GIF from the individual photos was the MacOS built-in feature
    to unite a selection of pictures as a GIF (I used a newer version of this feature 
    for the chaotic GIF at the top).
    Not very cutting-edge but back then, it could include up to 50 pictures, which sufficed.
    Yet, as the files were not compressed, the total file size grew to 400 MB later on! That is way too
    much to include in a post like this but I could still show it to friends on my
    laptop. By now, I create mp4 files instead of GIFs, which makes them at least 80 times smaller while
    showing a way more detailed resolution at the same time.
</p>

<p align="justify">
    Apart from alignment, handling the individual files was tiring as well. I even
    messed up the order of the photos. What bothered me even more, is the jumping around of the face.
    The facial markers are not aligned between the pictures (which is even more extreme
    in Noah's video on YouTube). So I did some more manual cutting but I could not really 
    make it smooth in reasonable time.
</p>

<h2 class="section-heading">AI to the rescue</h2>
<p align="justify">
    Fast forward four years to 2022, I still took a selfie every now and then but missed many weeks. I even lost 
    the bet and owe joining one festival (pity me)! One day in my holidays,
    the thought about the project came to me. By then, I had become a Python professional, dealing
    with terabytes of data every day. So I thought: why not try to automate the full 
    process and tinker with the new tools at my hand.
</p>

<p align="justify">
    So I decided to try out OpenCV with its AI models for facial recognition. 
    The simple idea was to let the AI recognize the location of the face in the images.
    Then I could resize, cut and realign all the selfies, such that the face is always in the same location.
</p>

<p align="justify">
    It took only some tinkering with a Jupyter Notebook to make it work. I was immensely
    impressed by how fast I could automate a process that would have taken me hours and 
    days (by then there were more than 200 photos) to do manually. Here's how it works:
</p>

<p align="justify">
    The code is pretty straightforward since all I do is recognize the face location 
    and then set a fixed horizontal and vertical ratio that the photos will be aligned 
    to. 
</p>

<img class="img-fluid" src="/img/posts/ai_project/with_box.jpeg" alt="A selfie with a box printed around the face.">
<span class="caption text-muted">A selfie with the box printed that OpenCV recognized as the face area.</span>

<p align="justify">
    Let's say, I decided the horizontal margin ratio is 0.75 and the 
    face in one photo was recognized to be 100px wide and has a left margin of 40px (= distance from the face to the left side) and a right margin 
    of 50px (i.e. the face is not exactly in the center but a bit to the left of the photo, like in the selfie above). 
    Then, the horizontal margin ratio, for me, means that I want 75px (= ratio * face width) both 
    on the left and right of the face, so the face ends up in the center. Since the left margin
    is only 40px and I need 75px, I create a black left-padding of 35px. On the right,
    I also want 75px but have 50px, so I add 25px here. If the margin was greater than
    what I want, I cut from the side of the image. All this is fairly easy to do with
    OpenCV.
</p>

<img class="img-fluid" src="/img/posts/ai_project/with_box_h_aligned.jpeg" alt="A selfie with a box printed around the face.">
<span class="caption text-muted">The same selfie with left and right padding.</span>

<p align="justify">
    I rather cut than introduce lots of black padding in the photos. So I did a small analysis
    of the ratios between the face and both the left and the right margin.
    The result was this:
</p>

<img class="img-fluid" src="/img/posts/ai_project/scatter.jpeg" alt="A scatter plot of left and right margin ratios.">
<span class="caption text-muted">A scatter plot of left margin ratio to right margin ratio.</span>

<p align="justify">
    The margins roughly range from 0.4 to 1.4. Therefore, I set a horizontal margin ratio 
    of 0.75 so lots of photos are cut and fewer photos get a padding. 
</p>
<p align="justify">
    Interestingly, the ratios seem to align quite well to the center, but judging from the 
    top right corner of the plot, I tend to have a slightly higher margin on the right than left. 
    This is most likely because I always hold my phone with my right hand when taking a selfie.
</p>
<p align="justify">
    I also apply this process of alignment to the vertical dimension (as in the example
    above). Then, OpenCV also offers out-of-the-box mp4 creation, which makes it possible for me to create sequences of
    hundreds of frames with small file sizes and higher resolution than GIF itself.
    The video you see below has 229 frames in 36 seconds and 6.6MB. I removed many photos from this
    post that I do not want to share publicly, but I ended up taking one photo about every 
    ten days on average.
</p>

<h2 class="section-heading">The result</h2>
<p align="justify">
    The final result, which you were hopefully looking forward to by now is here:
</p>

<video loop autoplay controls height="auto" width="70%" display="block">
    <source src="/img/posts/ai_project/full_avc1.mp4" type="video/mp4"/>
    Your browser does not support the video tag.
</video>
<span class="caption text-muted">The current sequence after 7 years.</span>

<p align="justify">
    Looking at it, it's a personal journey through my life. Within these past seven years,
    I changed my environment a lot: I lived abroad four times on four continents and moved 
    within Munich six times. This reminds me that the only constant is change. Exciting!
</p>

<p align="justify">
    I admit that I am not yet 100% satisfied with my setup, since some frames still break
    the visual experience too much and I still struggle to find suitable lighting in many
    settings. Yet, I am happy to have so many photos already and I might apply
    some filters and new models on them in the future.
</p>

<p align="justify">
    Let me know what you think!
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[Back in 2017, a close friend and I were fascinated by clips like this one:]]></summary></entry><entry><title type="html">How to learn Apache Spark in 2024</title><link href="https://patrick.ruoff.dev/2024/05/12/learning-spark-in-2024.html" rel="alternate" type="text/html" title="How to learn Apache Spark in 2024" /><published>2024-05-12T11:00:00+00:00</published><updated>2024-05-12T11:00:00+00:00</updated><id>https://patrick.ruoff.dev/2024/05/12/learning-spark-in-2024</id><content type="html" xml:base="https://patrick.ruoff.dev/2024/05/12/learning-spark-in-2024.html"><![CDATA[<p align="justify">
    <b>Edit on July 26, 2024:</b> 
    <i>
        Databricks recently changed their offerings and the structure of the Academy. Now,
        I struggle to find the resources that focus on Spark. I think the new best place to
        start is the free videos and self-paced material in the 
        <a href="https://customer-academy.databricks.com/learn/learning_plan/view/69/data-engineer-learning-plan-public" target="_blank">Data Engineer Learning Plan (Public)</a>
        or, if you're all new to Spark and Databricks, the
        <a href="https://customer-academy.databricks.com/learn/course/1325/fundamentals-of-the-databricks-lakehouse-platform" target="_blank">Fundamentals of the Databricks Lakehouse Platform</a>.
    </i>
</p>

<p align="justify">
    In the rapidly evolving landscape of big data processing, Apache Spark continues to be a 
    dominant force, empowering organizations to derive insights from massive datasets with 
    remarkable speed and efficiency. Today in 2024, the demand for professionals 
    proficient in Spark is higher than ever, making it a valuable skill to add to your 
    repertoire.
</p>
<p align="justify">
    When it comes to learning Spark effectively, there are more than enough 
    useful resources out there. In this short post, I describe my recommendations
    to juniors in my teams who want to learn Spark.
</p>

<h4 class="section-heading">Why Apache Spark?</h4>
<p align="justify">
    Before delving into the learning journey of Apache Spark, let's briefly revisit why Apache Spark remains indispensable in the realm of big data analytics:
    <ul>
        <li><b>Scalability:</b> Spark is designed to scale horizontally across clusters of machines to ensure it can handle even petabytes of data.</li>
        <li><b>Speed:</b> Spark's in-memory computation capabilities enable processing at speed, significantly outperforming more traditional systems.</li>
        <li><b>Ease of Use:</b> With its user-friendly APIs in Python, Scala, and R, Spark is accessible for a wide range of developers and data scientists.</li>
        <li><b>Versatility:</b> Spark's unified analytics engine supports all kinds of workloads and transformations including UDFs, batch processing, near-real-time streaming, machine learning, and graph processing.</li>
    </ul>
    In sum, I have not yet heard of a computational task that involved too much data or too complex transformations for Spark to handle.
</p>



<h2 class="section-heading">Learning Apache Spark</h2>
<p align="justify">
    When I started learning Spark back in 2019, the most recommended resource was O'Reilly's book
    'Spark: The Definitive Guide' by Bill Chambers and Matei Zaharia. Comprehensive but long, it 
    was quite tedious for me as a beginner to tackle all 600 pages. Fortunately for today's beginners,
    many other resources are now available. In my opinion, the Databricks Academy stands out,
    offering comprehensive training through its free video courses and practices.
</p>

<h2 class="section-heading">Databricks Academy</h2>
<p align="justify">
    The Databricks Academy is a service by Databricks — the company founded by the 
    creators of Apache Spark — that provides top-notch training resources tailored for 
    learning and mastering Spark. Here's why it's the go-to resource for anyone looking to 
    improve on their Spark skills:
    <ul>
        <li><b>Comprehensive Curriculum:</b> Databricks Academy offers a comprehensive curriculum 
            covering all aspects of Apache Spark, from the fundamentals to advanced topics
            like optimization techniques, handling data skew, and machine learning.</li>
        <li><b>Expert-led Video Courses:</b> The heart of Databricks Academy's training lies in 
            its expert-led video courses. These courses are designed and taught by seasoned
            professionals who bring real-world experience to the table and are skilled in 
            communicating with learners. There are free ones to start with and paid ones for more
            advanced topics.</li>
        <li><b>Hands-on Labs:</b> The best way to learn is practice. Most learning modules offer
            the opportunity to apply theoretical knowledge in a practical setting, using the Databricks platform.</li>
        <li><b>Self-paced Learning:</b> Flexibility is key, especially for busy professionals.
            Databricks Academy's self-paced learning model allows learners to progress through 
            the courses at their own speed, fitting learning around their schedule. This is
            crucial for me since it's so much more effort to free up a day for a live, instructor-led course.</li>
        <li><b>Certification Programs:</b> For those seeking formal recognition of their Spark proficiency, 
            Databricks Academy offers certification programs that validate your skills and expertise in Apache Spark.</li>
    </ul>
</p>

<h2 class="section-heading">Embarking on Your Learning Journey</h2>
<p align="justify">

    Here's my suggested roadmap to get you started:
    <ul>
        <li><b>Begin with the Basics:</b> Start with Databricks Academy's foundational 
            courses to grasp the core concepts of Spark, including RDDs (Resilient Distributed Datasets), DataFrame API, and Spark SQL.
            The module to kick-off training should be 'Apache Spark Programming with Databricks'.
        </li>
        <li><b>Dive Deeper:</b> Progress to intermediate and advanced courses to explore topics like Spark Streaming, the Databricks platform, and performance optimization techniques.</li>
        <li><b>Hands-on Practice:</b> Make the most of Databricks Academy's hands-on labs to reinforce your understanding and gain practical experience working with Spark.</li>
        <li><b>Specialize:</b> Depending on your interests and career goals, consider specializing in specific Spark components such as MLflow for machine learning or Spark Structured Streaming for real-time data processing.
        I highly recommend the Databricks Specialist Sessions to gain a deep understanding of these topics.</li>
        <li><b>Certification:</b> Once you feel confident in your Spark skills, consider pursuing certification through Databricks Academy to formalize your expertise and enhance your professional credibility.</li>
    </ul>
</p>

<h2 class="section-heading">Conclusion</h2>
<p align="justify">
    In the era of big data, proficiency in Apache Spark is a valuable asset that can open doors to exciting career opportunities. 
    With Databricks Academy's expert-led video courses, hands-on labs, and certification programs, mastering Spark has never been more accessible. 
    So, seize the opportunity to elevate your skills and stay ahead in the fast-paced world of big data analytics. Happy learning!
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[Edit on July 26, 2024: Databricks recently changed their offerings and the structure of the Academy. Now, I struggle to find the resources that focus on Spark. I think the new best place to start is the free videos and self-paced material in the Data Engineer Learning Plan (Public) or, if you're all new to Spark and Databricks, the Fundamentals of the Databricks Lakehouse Platform.]]></summary></entry><entry><title type="html">How I became a Python Master</title><link href="https://patrick.ruoff.dev/2024/04/01/python-master.html" rel="alternate" type="text/html" title="How I became a Python Master" /><published>2024-04-01T11:00:00+00:00</published><updated>2024-04-01T11:00:00+00:00</updated><id>https://patrick.ruoff.dev/2024/04/01/python-master</id><content type="html" xml:base="https://patrick.ruoff.dev/2024/04/01/python-master.html"><![CDATA[<p align="justify">
    My journey of learning Python began with a desire to dive deep into the world of programming.
    Spending countless hours coding daily, initially as a student and later as a professional, 
    my skills steadily improved. However, I noticed a plateau in my learning curve.
    That's why, a year ago, I made a deliberate choice to embark on the journey to become a master of Python.
    Little did I know that this journey would take me beyond the realms of syntax and algorithms, 
    leading me to unexpected encounters and unforgettable experiences.
</p>

<p align="justify">
    Don't miss out on the ending.
</p>

<p align="justify">
    Before I set out on my journey I resolved to act from first-order principles.
    Persisting in this quest would be the challenge of a lifetime, one that I could only hope to
    achieve by standing on the shoulders of giants.
</p>

<p align="justify">
    I read and absorbed all I could from the greatest thinkers of various domains until these principles
    became a part of me. Here is the wisdom that guided me:
</p>

<p align="justify"><center><em>
    "The only thing between you and your goal is the story you keep telling yourself."<br>Jordan Belfort
</center></em></p>

<p align="justify"><center><em>
    "The only way to do great work is to love what you do."<br>Steve Jobs
</center></em></p>

<p align="justify"><center><em>
    "It's common to want the results. It's rare to want the lifestyle."<br>James Clear
</center></em></p>

<!-- <p align="justify"><center><em>
    "The winds and waves are always on the side of the ablest navigators."<br>Edward Gibbon
</center></em></p> -->

<p align="justify"><center><em>
    "Of those to whom much is given, much is required."<br>John F. Kennedy
</center></em></p>

<p align="justify"><center><em>
    "Success is not final, failure is not fatal: It is the courage to continue that counts."<br>Winston Churchill
</center></em></p>

<p align="justify"><center><em>
    "I've failed over and over and over again in my life and that is why I succeed."<br>Michael Jordan
</center></em></p>

<!-- <p align="justify"><center><em>
    "Those who talk should do and only those who do should talk."<br>Nassim Nicholas Taleb
</center></em></p> -->

<!-- <p align="justify"><center><em>
    "There are no two words in the English language more harmful than 'good job'."<br>Terence Fletcher in Shiplash (Movie)
</center></em></p> -->

<p align="justify"><center><em>
    "The main thing is to keep the main thing the main thing."<br>Stephen R. Covey
</center></em></p>

<p align="justify"><center><em>
    "The only place where success comes before work is in the dictionary."<br>Vidal Sassoon
</center></em></p>

<p align="justify"><center><em>
    "Do. Or do not. There is no try."<br>Master Yoda in Star Wars (Movie)
</center></em></p>

<!-- <p align="justify"><center><em>
    "It's beauty in the struggle, ugliness in the success."<br>J. Cole
</center></em></p> -->

<p align="justify"><center><em>
    "When you come to a fork in the road, take it."<br>Yogi Berra
</center></em></p>

<p align="justify">
With these principles in mind, nothing could stop me from my quest. Yet, after this intense
study, I decided to first take some time off and travel to Sri Lanka for a month.
</p>

<p align="justify">
    There, the unexpected happened:
</p>

<p align="justify">
    The principles of peak-performance, so deeply rooted in my thinking, must have guided
    me subconsciously to a place where I finally and at once achieved the mastery I set
    out to conquer:
</p>

<img class="img-fluid" src="/img/posts/python_sri_lanka_connect.jpeg" alt="Photo showing Patrick holding an actual Python (snake) in his hands.">
<span class="caption text-muted">The moment of me becoming the master of Python. A life-altering experience.</span>


<p align="justify">
    I hope my journey inspires you to start your own. I guarantee you: in the end, all the effort is worth it.
</p>


<p align="justify">
    PS: Totally unrelated, but if you want to improve your Python programming skills, you have to check out the free learning videos at <a href="https://calmcode.io" target="_blank">calmcode.io</a> (not sponsored). It's incredible!
</p>]]></content><author><name>Patrick Ruoff</name></author><summary type="html"><![CDATA[My journey of learning Python began with a desire to dive deep into the world of programming. Spending countless hours coding daily, initially as a student and later as a professional, my skills steadily improved. However, I noticed a plateau in my learning curve. That's why, a year ago, I made a deliberate choice to embark on the journey to become a master of Python. Little did I know that this journey would take me beyond the realms of syntax and algorithms, leading me to unexpected encounters and unforgettable experiences.]]></summary></entry></feed>