Header illustration

Posts about Webdev

Fail Forward With Kindness

If you want to grow, you need to be able to learn, experiment, and stay consistent. That's only possible if you're able to keep yourself motivated, which is impossible if you're not being kind to yourself.

Many people think that being kind means not doing what needs to be done because it's hard. That giving themselves breaks from trying is what they need.

They think it comes easily to those succeeding at what they set out to do and if they themselves struggle, it's obviously not for them. They're special in how hard it is for them. Hence, they deserve time off from trying.

That's one of the biggest misconceptions, and I believe the inherent problem is with how people talk to themselves.

Growth is the result of enough repetitions, many of them ending in some sort of failure. Your drawing doesn't look like anything you expected, your run felt terrible, your code doesn't compile.

If your inner voice gets destructive every time you mess up, you're less likely to try again. Ironically, you are getting in yet another successful repetition of talking badly about yourself.

If you learn to not succumb to negative self-talk, it gets a lot easier to get back to what you set out to do and start another repetition. You'll still fail, you'll still find it hard, but you won't be in a constant fight with yourself anymore.

I strongly believe that everybody can achieve whatever they set out to do, as long as they keep at it. It might take forever, it might require a whole lot of deliberate practice and deep work, but as long as the repetitions don't stop, progress is inevitable.

The key difference between you and those who make it seem easy is probably that they're kinder to themselves.

March 21st, 2024

My Most Toxic Relationship

First things first: Some of you will get triggered by what I'm about to write. I want you to know that this is a safe space. You're loved. I'm not attacking your character, your personality, or any life choices you've made. Please stay calm and collected. This will be tough, but we'll get through it.

Alright! Now that I've dealt with the little feelings of the worst junkies among you, let me tell you about the first and only addiction I've ever had: caffeine.

I don't have an addictive personality and have never had any problems with the usual suspects. What made caffeine different is that our society somehow neglects to talk about it as a drug. Everybody is juiced up 24/7 and at best, we'll get a "don't talk to me before I've had my first coffee" joke instead of an actual warning about what are clear symptoms of withdrawal.

It took me years until I figured out that caffeine could be the reason for the ever-present headaches that plagued me for most of my 20s. I suspected having a brain tumor before even considering caffeine as the culprit.

Society doesn't want you to suspect its favorite lubricant.

The following weeks of withdrawal, going completely cold turkey and not touching anything that contained caffeine, were harder than I expected them to be. A fun fact as an aside: Many painkillers contain caffeine. That's not the information you want to learn while feeling like your head is about to explode.

Long story short: After successfully getting clean, my headaches were gone. I felt like myself for the first time in years. I wasn't tired all the time; I woke up alert and it stayed that way until the evening hours. Exactly like all the people talking about how you should quit caffeine said it would be. They're right.

Caffeine traps you in a vicious cycle of needing it to feel like you don't need it.

Since then, I've been in a constant struggle to keep clean. As soon as I drink something with caffeine for two to three days, the headaches come back. Which is a bummer, because those headaches can be cured through caffeinated beverages and the cycle starts anew.

I had a couple of relapses but always managed to go through another round of withdrawal. It's surprisingly hard to stay "sober". If I'm having a bad day, I crave a caffeine high to make me feel better. On a good day, I want something with caffeine to celebrate and enjoy my day even more.

I found an okay-ish rhythm where I allow myself one caffeinated beverage per week. As a treat. The only problem is that I have to account for the willpower needed the next day because I'll crave another one more than if I hadn't had the first one.

March 19th, 2024

Back in ye olden days everything was tinted in sepia tones and we communicated and made friends in the comment sections of blogs. Social media replaced these little get-togethers around internet bonfires.

I wonder if it would be possible to bring that feeling of community back to a site like mine.

March 19th, 2024

32 More Years

Lately, despite my best efforts, I've noticed more gray hairs at my temples, recurring fashion trends, and a sharp memory of events from two decades ago, all of which frequently remind me that I'm getting older.

The other day, I was wondering what my official year of retirement would be if the German laws don't change and I don't die or get very sick before then. I'm writing this in 2024; I turn 35 in May, and the current retirement age is 67. My last year of officially having to be an active member of the working force will be 2056.

Two thousand fifty-six!

That's 32 years from now!

My entire mentally present life, once again.

At this point, there's a fork in the road of how to feel about this. "Oh shit, I still have to do this for more than 30 years?" or "Oh wow, that's so much time left!".

Fortunately, I landed on the second option.

Your mid-30s are a weird age. You meet people who seem convinced (or have to convince themselves?) that they've arrived. They worked, found success in some kind of career and are now ready to settle down. All of this makes it feel like there's nothing yet to come.

That's completely wrong, though. We're not talking about 32 years until I'm basically dead. They're productive years full of potential building, transformation and growth.

Let's say you studied and started your first real job in your early 20s: You worked for just one quarter of what is considered the norm. What's left is enough time to start three new, completely unrelated careers, if you're so inclined.

32 years!

How cool is that?!

March 10th, 2024

Offering Opinions Online

I've been sharing my opinions online since I was 14. Something that has changed over the years is my relationship with the reactions I receive.

When you share something online, people will react. Most of the time, they try to one-up you, either by pointing out something you apparently missed or by flat-out telling you that you're wrong and they know better.

That's not surprising. It's how people operate.

In my early years of blogging, I viewed this behavior as a challenge. My whole personal brand was about "being combative." "Don't feed the trolls" was still a saying back then, and I completely ignored its inherent truth.

It's not just trolls, though. My recent post about filter icons resulted in quite a few reactions, most of them telling me things I already knew. I struggle with people implying I haven't thought about what they're now kindly offering me as new information. It's likely one of those ego things where I feel undervalued if people consider me uninformed.

My first reaction—and I've started and deleted quite a few responses like this over the last couple of days—is to react with some witty "You think you've accomplished something here, but let me show you that you're actually not that smart" remark. It's an asshole move and exactly the behavior I've trained myself to stop doing over the last few years. It's not easy, but it's worth it. Letting things go always feels better than trying to win something that isn't even a competition.

All of this influences my writing. I knew that these reactions would be the result of my short and not very in-depth argued post about filter icons. I could have written a 5,000-word piece on the ins and outs of why the status quo is the way it is, offered alternative icons, and talked about their pros and cons to anticipate those reactions as well. But that wouldn't have been fun. Everything requires a disclaimer.

I would lose my voice if I tried to optimize my writing around the expected reactions. I'd dumb everything down, argue in every direction, just to be safe. That's just not an option. Just like trying to outwit the people reacting to my writing isn't one.

Am I suggesting that you should ignore your readers? Perhaps!

March 1st, 2024
A funnel icon

This icon represents a funnel. A funnel is used to help move liquid from one container to another.

A hydration highway.

If the funnel is handled by a person with adequate motor skills, no liquid will be lost. The same amount of liquid that was in the initial container will be moved to the second container.

A funnel does not filter liquid. That's what filters are for.

February 26th, 2024

Those of you visiting this site in your browsers—like peasants in the Middle Ages—will notice that one of my favorite blog features is back: short posts without headlines. Rejoice! That's not all, though! I redesigned the main page to show full posts. Back to classic blogging!

February 25th, 2024

The Truth of a Thing Is in the Feel of It, Not in the Think of It

"The Truth of a Thing Is in the Feel of It, Not in the Think of It"

Since I heard this quote from Stanley Kubrick for the first time a few weeks ago, I couldn’t let go of it. It encapsulates a moment in design that makes me feel like a hack every time it happens.

I’m a stern believer that software design is a craft, not an art. There are artsy aspects to it, but for most of the time, rules can and should be followed. They’re flexible and complex, but not inexistent.

Another belief of mine is that designers have to be able to argue for their solutions. A working designer’s inner monologue should be the Socratic method that is being applied to every design decision, no matter how small.

Sometimes, truly not often, there are moments where this isn’t enough. You know what the correct solution would be, the one with the most arguments, the one that fits the rules, but it just doesn’t feel right.

There’s no way to explain this to those who don’t feel it. They just have to trust your instincts. Sometimes, designing something the wrong way creates the right solution.

February 22nd, 2024

iPadOS Hover Effect with Framer Motion

Gavin Nelson recently redesigned his portfolio and it's looking ✨crisp✨. I wondered how to get an iPadOS hover effect like that to work and with quite a bit of help of my friend Nils, a few discussions with ChatGPT and finally understanding LayoutGroups in Framer Motion, I present to you this solution. I'm sure it's far worse than Gavin's, so please don't think I know what I'm doing.

Read More
February 17th, 2024

Becoming a Design Engineer

I've been coding for about two years now and it changed my relationship to my role as a run-of-the-mill product designer spending most of his day in some sort of design software.

It already began many, many years ago: Moving rectangles on a canvas started to feel like a crutch. Most of the time I already know what needs to happen and what lies between me and having done a good job is pushing stuff around in Figma until what I think should be visible is actually visible. It feels like a chore.

Even though my day job isn't a Swift/SwiftUI based project, I've started creating prototypes with SwiftUI just to scratch my itch to do something "real". The code is as throwaway as it can get but it feels better — and somehow more productive — to create an empty data state based on if an array is empty or not than to duplicate a frame, call it "FeatureName / Empty Data State" and consider my job done.

Screenshot of Figma, a design tool

Enter: The Design Engineer

"Design Engineer" is not a new term. I've known about the concept for years but somehow only considered becoming one after reading Jim Nielsen's piece on Design Engineers the other day:

The problem of innumerable artifacts helps show why design engineers are worth their weight in gold. They can bridge the chasm of design to browser engineering, skipping the need for 60+ artifacts. How? They have an understanding of the constraints of the medium, so from sketches to wireframe to high fidelity mocks, they only have to produce one or two artifacts while simultaneously keeping a picture in their head of how the elements of those designs flex and flow and change across different sizes. They can imagine how it works, so they don’t have to articulate it for every iteration. There’s no need to explicitly design and document all possible states for whoever is downstream of the designs because they are the ones downstream of the designs.

That could be me! Most of it is me already, I only lack some of the skills (and currently also the environment) to produce code on a reliable basis.

In Jim's second post he shares an example of what a Design Engineer could bring to the table and I adore everything about this. This is the stuff I love spending hours and hours on to get right. For most of my career I was dependent on a developer who put up with me and my dEsIgN-eXcElLeNcY shenanigans. It's hard to find frontend devs with an appreciation for this kind of work and even if you find them, there's still an obvious translation layer that can be a barrier between vision and result.

Screenshot of VS Code
The design tool of my future?

Transforming Marcelf Transforming myself

So, what's next? Do I want to become a Design Engineer? Imposter Syndrome and fear of failure tell me that it's a safe bet to just stay in my lane, create my little PNG files and be happy with what I've got.

However, I doubt that this will be good enough for me in the medium term. I very much enjoy fiddling with code to get something working in a user-friendly and good looking way. I even believe that the future of computing requires designers to code. So there's really no choice, if I'm honest with Marcelf myself.

I'm on a good trajectory with Swift and SwiftUI. It's the iOS/iPad OS/VisionOS framework of the future and Apple's ecosystem is the playground of my choice.

My HTML and CSS skills aren't embarrassing but especially the latter has quite a few depths I haven't charted yet. I built one or two things in React and played around with Framer Motion. Both are fun.

I feel like this could be a solid foundation for a toolkit that helps me to morph from "just" being a designer who codes to becoming a design engineer. It's time I get the reps in, especially in terms of all things web development. I want to become very good at using Framer Motion.

All of this is of course only relevant if I can't come up with a solid project that catapults me into the indie dev league. At the same time becoming a design engineer is the best way of honing my coding skills to become an indie dev.

That's what I like to call a win-win situation.

February 16th, 2024