The reason why my personal site has just one font size, monchrome colors, and looks “boring” is simply because I don’t consider myself a great designer.
By using as little variation as possible, I limit the amount of design mistakes I can make, and instead, I try to make the content itself (hopefully) interesting.
I know a few tricks to not make my work look like shit, but it’s far from the skills of a designer working at Linear for example.
To expand on that, from what I’ve seen, most “design engineers” excel at either design or code, not both. I never believed I can be exceptional at both, and I haven’t seen many people that are really, really great at both.
To me, trying to be great at both is like 2-in-1 shampoo conditioner, it never really works as well as two separate products designed specifically to do one thing well.
That’s why I made open source projects like Sonner and Vaul, that require some design sense, but these are far from sharing design kits for example.
And again, there are exceptions, but you shouldn’t expect all design engineers to design and build absolutely amazing things on their own.
I think most design engineers (including me) are just engineers that care about design, but that doesn’t necessarily mean they are good at designing (and vice versa).
To me, the title design engineer is misleading in that it’s more of a description of where one’s interests overlap instead of actually indicating high skill in both disciplines.
🏆CAEDREL MSI GIVEAWAY 2026🏆
13 PRIZES FROM SIGNED JERSEYS, TO SECRETLAB CHAIRS TO A $3000 PC
🌐Worldwide🌐
CLICK THE LINK BELOW TO ENTER SUPER EASY JUST FOLLOW THE STEPSSSSSSSS
https://t.co/YWYrV2gOVb
A quick visual guide on the only two valid settings for module/moduleResolution in TypeScript.
When you're transpiling with tsc, use NodeNext.
EVERY OTHER TIME, use ESNext/Bundler.
"Bitlayer Labs, the developer of a Bitcoin Layer 2 network, has raised $9 million in a Series A extension funding round, just three months after its $11 million Series A."
"The new round was led by Polychain Capital and co-led by Franklin Templeton."
https://t.co/qecakOcDRS
TypeScript 5.6 brings a new VSCode option for disallowing auto imports via regex.
This is AWESOME for preventing importing from a package's barrel file, like lodash.
The launch of Vercel's skew protection enables sticky blue-green deployments across our global infrastructure for extra-safe rollouts of your apps. It's literally like making a perfect copy of our entire global network and shifting your users between them https://t.co/y6bPI0b6xX
But another solution is a distributive conditional type.
By creating our own generic type called DistributiveOmit, we can tell TypeScript to perform the Omit on each member of the union.
Server Actions are now in React Canary, ready for frameworks and libraries to adopt! Server Actions are functions created alongside your components that run on the server for tasks like data mutations
A quirk of keyof is that it doesn't work on unions of objects.
It only finds the keys in common between the two objects. If it can't find any, it resolves to never.
The way around this is to force it to run keyof on each member of the union via a conditional type.
Conditional types are distributive, so they run on each member of a union. Using T extends any means that it's never going to hit the never in the else clause of the conditional.
I've seen this pattern used a TON in the wild, but I'm not sure what I'd call it?
"Forcing Distribution"
"Distributive Conditional Type"
"Forced Distributive Conditional Type"