RSSAmplifier

Blog

Tim Severien - posts

Blog of another senior web engineer

tsev.devRSS feed ↗32 posts

Latest posts

Techniques for sampling colour in creative coding

Looping over indexOf() matches

The other day, I was writing an RFC 4180 -compliant CSV parser for fun. This file format uses delimiters to separate fields and records (i.e. columns and rows respectively). A field (i.e. cell) may contain one of these delimiters, so parsing is slightly more involved than a string.split() . In my first and naive implementation, I read over every character as I wrote it to the buffer. This allowed…

Thoughts on artificial intelligence

Artificial intelligence (AI) sparks a lot of discussion and strong feelings in my circles, creating two vocal camps. You’re either for or against. Unlike the people in these camps, my sentiment about AI has been going back-and-forth, and it took me a while to figure out why. One day I’d be excited about possibilities, and the next day I didn’t want anything to do with AI. It turns out, different…

Safe environment variables in JavaScript

Who hasn’t accidentally deployed code that depended on a secret or environment variable that wasn’t configured for that environment? I know I have. Environment variables are often critical for software to work. Sometimes in obvious ways, like making sure the browser is sent to the correct authentication URL, or that the right URLs are set in the Content Security Policy header. Sometimes, they’re…

My cats are family

Content warning: dead pet, grief. For all my life, I’ve lived with pets, mainly dogs and cats. I’ve fed them, washed them, walked them, played with them, cuddled with them, loved them. That love becomes painfully obvious when you lose them. Recently, we unexpectedly lost one of our two cats. One minute he was fine and playing. The next minute he wasn’t. As we shared what happened, we’ve had two…

Glassmorph responsibly: test the worst case scenarios

The Bear Blog question challenge, mapped

The state of the front-end and full-stack job market

2024 in review

This year felt like one where time stood still. Career Early in 2024, I landed a new job, got to work with a lovely team, became familiar with a new tech stack, got new responsibilities, played a significant part in aligning, shaping culture, and leveling up the engineering team, dabbled with data engineering, and worked on some soft skills. Nothing too fancy, but I’m still proud of what I’ve…

Mighty robust software with the MACH pattern

JavaScript didn’t cause The Great Divide

The Great Divide is one of the most iconic web development blog posts. It was well-received as it resonated with many web developers and it has a well-deserved spot on the list of fundamental web dev blog posts on esif.dev . While I recognise many of the symptoms it described, something always felt off about the essay. The article describes an identity crisis in front-end web development and…

Procrastination to progress: keeping up the job search

A couple of months ago, I was laid off. My performance review was positive, and I was set up for promotion, but then a couple of events outside our control happened, leading to necessary cuts. For the first time in my career, I found myself unemployed. Unplanned unemployment sucks. Who would’ve thought that losing income, a vital resource for most of us, isn’t fun?! The future is uncertain, your…

Should AVIF be the dominant image format on the web?

Please add categories to blog feeds

I parsed RSS and Atom feeds in various recent projects, and I keep running into the same issue: the absence of categories. In one project, I compiled a list of people that communicate about web technologies. The project is not live, but I have mentioned some stats in a two-toot thread on Mastodon ( throot , anyone?). I want to aggregate these feeds per topic, like a list of Accessibility posts by…

Books books books

Just before I started working again during my burnout , I thought stoicism could help me process my thoughts and feelings better, so I asked How to Be Free for my birthday. It’s a tiny book that lists the teachings of Epictetus, a well-known stoic philosopher from ancient Greece. Despite enjoying it, it took me a while to finish. Fast forward a year. I came across a copy of Ik weet je wachtwoord…

Guiding developers through a codebase with inline guides

Sometimes, adding something to a codebase is routine. One that is so well-defined, that someone can point you to the exact files and lines in a codebase where changes are necessary. Instead of telling people what to do where, at Dado , we wanted people to be able to discover and follow these steps autonomously. Tracking lines of code externally When I say documentation, a lot of people will think…

Setting up a modern JavaScript monorepo

Do you smell that? Ahh, it’s the scent of a greenfield project’s potential. The aroma of not making old mistakes again. The opportunity to do it better this time. It’s time to set up a monorepo! Recently, I’ve been experimenting with various ways of setting up monorepos for side projects. Whereas I’d previously shy away from the additional complexity of stringing packages together, modern tools…

The 2023 rebuild

Getting better at newsletters, maybe

Yesterday, Chris Coyier shared his system to consume newsletters in his blog post: How To Newsletters . This reminded me that my inbox is littered with them. All of which I want to read, but can’t find the mode for. Similarly to what Chris describes, it feels a little too much like a work-related chore to me. Unlike Chris, I don’t use Feedbin, and want to try an idea I’ve been toying with for…

That one framework use-case

A tweet from Next.js author Guillermo Rauch sparked uproar on social media, filling my Mastodon timeline quickly with subtweets subtoots. Often with a bitter and cynic tone, people criticize just about anything remotely related to frameworks. Between the sarcastic and toxic comments, there’s valid critique — critique people have repeated for the last 5+ years. Andy Bell’s Speed for who? is a great…

Is TypeScript worth it?

I just read Chris Coyier’s You Like It Because You Know It , in which he shares some thoughts about TypeScript and wonders whether it’s worth it. I’m in a similar position: I’ve been writing TypeScript professionally for over six months, and used it in hobby projects on and off for a year or two. Unlike Chris, I’m definitely on team TypeScript now (but I won’t be obnoxious about it, I promise).…

2022 in review

2022 is almost over and that’s a great time to reflect! I could dilly-dally about how I’m finally using React and how awesome Astro is, but the truth is that this year was largely defined by my burnout. Fortunately, out of that dark place came newly gained knowledge, skills, and motivation. Mental health The year started with stress-related symptoms. It took me a while to realize I was burned out…

Bye bye, Twitter

After over 12 years being more or less active on Twitter, I logged out everywhere and deleted the app. How Twitter changed During the pandemic, the toxicity of people on the platform accelerated significantly, and so did bot activity and dumbassery. Many people that I follow are harassed, people and bots continuously try to dispute facts, and they try to sow doubt with lies and cherry-picked…

When principles degrade performance — the memory problem of immutability

Design patterns: Singleton

What makes JavaScript so popular

3 methods to run code conditionally without if-statements

Lessons learned from burnout

Last ~2.5 years were wild. They sure were for me, anyway. During our collective trauma from practising social distancing because of a pandemic, I also had burnout. Not the kind most people talk about — where you’re mildly exhausted and need a holiday — but the severe kind. Before this, I didn’t know what burnout was or what it’s like, because few people talk about it. Let’s break taboos! I want to…

The perfect project management framework doesn’t exist

If you work with them, you undoubtedly heard a software engineer complain about project management methodology. “This isn’t Scrum; it’s water-scrum-fall,” they’ll say. Although I agree that we should improve the process continuously, and there’s always room for improvement, I’m afraid many of us are wrong about what it ought to be and how we’re getting there. We’ve all been in that situation. That…

Face Detection on the Web with Face-api.js

Improving online tech discussions

Last weekend I found myself lying in bed scrolling my highly filtered Twitter timeline. Just before shutting my eyes, I read a tweet in which someone showed support to Sara Soueidan against some internet hate. Being an imperfect human, I decided sleep could wait and spent an hour reading blog posts and tweets to reconstruct the events of that day. What happened? A short recap: Brian Boyko…

What is Vitejs? An Overview of the New Front-end Build Tool