I wrote something dashing for Smashing
My first article walks readers through creating a multi-author blog with Next.js. In this post, I share the story and process behind the experience.
Read full articleI write about all things tech and business. My articles cover design, development, building my own company, and more. You can also find a collection of snippets you can use in your code on the Snippets page.
My first article walks readers through creating a multi-author blog with Next.js. In this post, I share the story and process behind the experience.
Read full articleHow do you know when to call it quits on an experiment? I’m dialing back on some of mine to get back some time for other projects.
Read full articleSVGs are math that looks unnecessarily complicated. Let me walk you through how to build a complex icon from a few circles and lines.
Read full articleSprint retrospectives are a waste of time only if we use them as Weekly Complaining Corner. We can me them more fun AND meaningful at the same time.
Read full articleWhen you’re trying a new technology, you can use one of these APIs for the basis of your experiments. They let you build something fun at the same time.
Read full articleWe still need to show a cookie notice for YouTube’s nocookie embed script, because it sets a cookie as soon as a visitor starts playing a video.
Read full articleYou definitely have at least a few products in you. The collection of tips and tricks you keep for yourself could be valuable to others as well.
Read full articleShortly before finishing it, I had to change direction on my last side project. Had I proceeded with the original idea, I would have entered a legal gray area.
Read full articleWhen we need to gather statistics or other logs from our projects, we don’t always need to use full, privacy-invading analytics solutions.
Read full articleWhen changing from one domain name to another, we can use redirects to keep all existing links in place and avoid a dip in search engine rankings.
Read full articleSites like Twitter and LinkedIn cache the preview image that appear when sharing links. We can clear that cache to have them pick up new versions faster.
Read full articleOnce you speak the language experts in your field use every day, it becomes harder to remember what it was like to not know what you know now.
Read full articleBuilding for everybody is as bad as building for nobody. By defining an audience, we can focus on activities that support those we want to help.
Read full articleInstead of navigating many layers of directories when importing files, we can use aliases that cover that error-prone part for us.
Read full articleWithout a specified target audience in mind, the content we create ends up being for nobody instead of being for everyone.
Read full articleThis nonsense test string reveals some of the main differences when comparing typefaces, like their weight and related characteristics.
Read full articleIf good artists copy and great artists steal, why shouldn’t new artists destroy? Break some designs to learn the details that make them work.
Read full articleAs I am drawing many more icons for my upcoming set, I follow a few constraints to ensure they all look like they belong together.
Read full articleNow that I am working on a product that I will sell, the decision between what I can reasonably build myself takes on a new shape.
Read full articleI am working on a set of 200+ icons that will be free for personal use. The paid version will include benefits that I have not defined yet.
Read full articleBuilding a work schedule helps us minimize distractions and focus on what is important. Follow these instructions to build one for yourself.
Read full articleSplitting a day that would otherwise be “eight hours of work, some of them productive” into dedicated blocks helps maximize the value of these hours.
Read full articleWriting many small functions instead of a few large ones is common wisdom. It took a book from the 90s for me to understand why that’s better.
Read full articleWhen I looked at my site’s analytics for the first time in forever, I found that someone ran a script against it to find known vulnerabilities.
Read full articleBy setting canonical links on posts shared on services like dev.to, Hashnode, and Medium, you can start building a SEO reputation for your own domain.
Read full articleMedia queries are essential for doing Responsive Design. They can test for many features beyond browser width. We can use one of them to build a dark mode.
Read full articleAfter writing on my blog and newsletter, I’m adding a new medium to my rotation. I’m taking some of my content and recording videos for it.
Read full articleWe can customize the look of our git log to get more value out of fewer lines. In this issue, I walk you through how we can build a prettier log step by step.
Read full articleA flat todo list helps us get projects done, but it doesn’t help us decide what project to work on next.
Read full articleI have not done any marketing for this newsletter at all, and it shows. It’s about time I change something about that.
Read full articleA few emoji included in a font are responsible for Firefox not showing syntax highlighting in my code snippets.
Read full articleThere was never a technical reason for us to call the source of truth “master” in Git. We can rename it to “main” or any other term in a few minutes.
Read full articleDistractions and the internet have conditioned us to do shallow work. To engage in Deep Work, we need to learn how to concentrate again.
Read full articleRefactoring old code shows you how much you have grown since you wrote it. Sometimes, that’s just the boost you need to unlock creativity.
Read full articleRunning Google Analytics is the most obvious reason for showing a consent form to visitors. There are many less obvious ones you also need consent for.
Read full articleEvery October, DigitalOcean celebrates the open source community by running Hacktoberfest. Let’s code a few things together this month.
Read full articleInstead of ignoring the same files specific to your machine in every project, exclude them globally once for all your projects.
Read full articleMoment.js is now a legacy project. While you can keep using it, these other projects might be better fits for you.
Read full article“Being busy” is not a good measure of progress. By focusing on what creates real value, we can make good use of our limited time.
Read full articleWhat looks good in a design tool doesn’t necessarily look good in a browser. Working in both at the same time helps you catch those mistakes early.
Read full articleTutorials often default to todo-apps. These twists on that idea help you dig into how the framework you’re learning really works.
Read full articleThe format of “two hosts talking about what is going on in their businesses” is fascinating. Know any others like the ones in this list?
Read full articleA coherent and high quality icon set can level up a design. FontAwesome is good, but there are alternatives.
Read full articleDesign is not only about visuals. Start here to take your first steps into becoming a better designer.
Read full articleConsolidate many tools into few tools and automate what you can. These three help me stay productive.
Read full articleI have not found the best format for this newsletter yet. I’ll try a few different ones to see what works best for my readers.
Read full articleBy default, an array of numbers will not be sorted numerically. To avoid unexpected results, we can tell it how to sort an array.
Read full articleApple is adding mouse support to iPadOS. The thinking that went into the UX of the iPad’s new pointer is a fascinating evening watch.
Read full articleBefore we spend too much time on the details, we need to figure out the overall structure of a design.
Read full articleThe bite-sized tips I started sharing on Twitter show how code can be improved gradually. You can read them all on this site now.
Read full articleOne of the harder parts of product development is knowing what to focus on. Your latest cool idea might not need immediate attention.
Read full articleA good job is not defined by salary alone. There are other things you can look for in a potential position.
Read full articleQuarantine has showed us what work could look like going forward. Let’s reconsider how we work instead of urgently wanting to go “back to normal”.
Read full articleDouble-check you’re working on the right things by asking if the solution helps you solve important problems.
Read full articleA backlog full of tasks you don’t ever intend to do only weighs you down. Saying no to tasks allows us to focus on what is important.
Read full articleAnnoyed with how browsers log variables to the console? We can access and do more useful things with them.
Read full articleOptions are good but distracting. By starting with an end in mind, we can find out what the best next thing to learn is.
Read full articleClever code isn’t always the most readable. Especially when working in teams, readability has to come first.
Read full articleThe latest version of my website is an improvement over the previous one, not a completely different thing.
Read full articleWeb servers can send different files to browsers based on headers in a request. Knowing this, we can send WebP-files only to browsers that support them.
Read full articleYou’re probably working longer hours than normal during quarantine. Even when working from home, it is okay and important to take breaks.
Read full articleTreat existing codebases as a blackbox. Take small pieces and write tests for them to understand a project’s inner workings step by step.
Read full articleNo code starts out as unmaintainable legacy we don’t dare to change. All codebases end up there because of a lot of small decisions like these examples.
Read full articleSeparate “work” and “home” when working from home to not go crazy during quarantine. Take breaks and talk to other people, as you would in an office.
Read full articleJob interviews are tests for both sides. Use them to figure out if the company you are applying to is a place you really want to work at.
Read full articleWith @supports, we can start using features that will come to CSS soon in supporting browsers today.
Read full articleRetrospectives that end after letting everybody complain are a waste of time. Turn that frown upside down for a better result.
Read full articleIf you have been working somewhere for a while, others are likely looking to you for guidance and leadership.
Read full articleThe US keyboard layout puts many of the symbols we need a lot when coding on their own dedicated keys.
Read full articleStreaks limit us to short-term thinking, yet we can only see long-term effects in retrospect. It’s okay to break a streak along that way.
Read full articleiOS 13 now has a built-in swipe keyboard called “QuickPath” that is much faster than typing individual letters.
Read full articleBy looking at what others have done before us, we can find combinations of their ideas that work for us.
Read full articleConvertKit recently introduced a new free tier that makes it easier than ever to get started building an audience.
Read full articleNo matter what you are passionate about, there is a vibrant community out there where you can exchange ideas with likeminded people.
Read full articleJavaScript does not provide a function to split arrays into several smaller arrays. Let’s build one ourselves.
Read full articleGetting rid of projects and plans that we will not get back to frees up mental space for things that excite us.
Read full articleA good goal is one that makes it easy to follow through. The SMART criteria help us in setting better goals.
Read full article2019 is almost over, and I am looking forward to a few weeks of vacation. There are always more things to learn or to work on. All of that can wait.
Read full articleBig goals take a long time to achieve. By taking many small steps in the right direction, we can get closer and closer to them without losing motivation.
Read full articleI had my expectations of how software is used challenged last week when talking to the CTO of a med-tech startup.
Read full articleIn utility-first CSS, we do not limit ourselves to single classes. Instead, we use many small classes that each add small pieces of styling.
Read full articleWhile Scrum works well for many teams, it’s not for everybody. Basecamp’s Shape Up is an alternative that might work better for you.
Read full articleIn utility-first CSS, many classes are very similar. We can auto-generate many of them using maps and loops in Sass.
Read full articleTalking about mobile-, tablet- and desktop-layouts worked well when the lines between those classes were well-defined.
Read full articleWe can design better pages and screens if we use real data when creating our mockups. I released a Sketch-plugin that replaces texts with dad jokes.
Read full articleMany mockups break when we replace their lorem ipsum with real data. By using imperfect images and texts in them, we can design more robust layouts.
Read full articleVariable fonts are about to fix some of the performance issues caused by adding many custom fonts to our sites.
Read full articleI have not met anyone that never said “I don’t have time for that”. So many of us are “too busy” to do the things we really care about.
Read full articleThere are disagreements in all teams about what we build and how we build it. Given several options, we need to understand each of their effects.
Read full articleWriting is best when it is easily understood by readers. Everything I write goes through an extensive editing phase to improve its readability.
Read full articleAdding a single sentence to our tickets helps us focus on what is important. Let’s explore what goes into a good user story.
Read full articleDon’t let perfectionism keep you from shipping things. Release (too) early, then clean it up after you got some real feedback on it.
Read full articleMy wife and I were supposed to relax on Mallorca right now. Our trip was cancelled less than 24 hours before our flight was supposed to take off.
Read full articleTo opt out of tracking scripts on websites, you can set the “Do Not Track”-setting in your browser. Unfortunately, websites are not required to honor it.
Read full articleI am often creating custom icons for my projects. Because many share a similar style, I will assemble them into a free icon pack.
Read full articleIn software development, seniority has nothing to do with age. When can someone be considered “senior”?
Read full articleThe array functions are great for all kinds of problems. But what happens when you forget to specify reduce’s second parameter?
Read full articleYou know a lot of things others don’t. Help them by sharing what you know, no matter how easy or obvious you might think it is.
Read full articleHow do we decide between hundreds of libraries? When does it make sense to build your own version instead?
Read full articleCamouflaged as a pleasantry, we can show appreciation much more effectively than through using “that’s not bad”.
Read full articleGrouping unit tests and the code they test makes maintenance easier than it is when we keep them in separate directories.
Read full articleTrends make defining a product’s visual appearance easier, but they also make it harder for you to stand out.
Read full articleWhen working in technology, we can do a great many things. Some of them are absolutely not worth doing.
Read full articleThe word “should” is often completely unnecessary. Avoiding it makes your language more direct and assertive.
Read full articleJust as gender is not “true” or “false”, Boolean values are not appropriate for situations in which we assume only two options exist.
Read full articleColor variables defined with CSS preprocessors are easier to manage if we map them to semantic names first.
Read full articleThe &-operator in Sass can greatly reduce the typing work required when using BEM in your stylesheets.
Read full articleThe current versions of Node.js and grunt-contrib-sass don’t work together. Downgrade Node.js to an earlier version to avoid the issue.
Read full articleI recently published my first screencasts on programming. In the process, I learned a few first things about creating info products.
Read full articleLooking at the official statistics of a recent exam, the numbers aren’t as positive as they are made out to be.
Read full articleA well-intentioned but ultimately unfair move by a lecture’s organizers inspired me to record a number of screencasts on functional programming.
Read full articleThe common approach to teaching development is rarely tailored to newcomers, which results in high failure and dropout rates.
Read full articleAside from the established best practices for reducing load times, a few things that can be done to stylesheets to make browsers render pages faster.
Read full articleUnderstanding the concept behind how browsers match CSS-selectors and HTML helps us write better stylesheets.
Read full articleAfter installing SML/NJ on OS X with Homebrew, you still need to make a few manual changes to make them play together nicely.
Read full articleInstalling SML/NJ on OS X manually is difficult and annoying. Homebrew enables a much easier hassle- and clutter-free installation.
Read full article