Senior Web Engineer at Spotify. Prev, Riot. Next, React, Svelte, C++ when I'm feeling nasty. Beer, whiskey, coffee snob. Book lover. Jr Developer for life.
I know I've been heavy on the Svelte hype lately. Some folks have been asking for specifics, which is pretty reasonable. So while my League Client patches, here's a thread of actual Svelte features that make me happy.
No clue if this replaces software devs in a few years, but the free lunch is gone. The days of graduating an 8 week bootcamp where you learn React, then fall into a $200K job are over.
Be ready to grind & learn deeply. Expertly guiding ai to a good result might be our value-add.
Today we're excited to introduce Devin, the first AI software engineer.
Devin is the new state-of-the-art on the SWE-Bench coding benchmark, has successfully passed practical engineering interviews from leading AI companies, and has even completed real jobs on Upwork.
Devin is…
Company: "We'd like to use SQL Server Enterprise"
MS: "That'll be a quarter million dollars + $20K/month"
Company: "Ok!"
...
Company: "We'd like to use Babel"
Babel: "Ok! npm i babel --save"
Company: "Cool"
Babel: "Would you like to help contribute financially?"
Company: "lol no"
This is so brutal.
Do you nerds understand now why I said it’s safer for newbies to stick with industry standard tools like React, instead of fun tools like Svelte?
This is people’s livelihood, not some stupid game.
Tough news for FAANG engineers:
Startups don’t want you anymore
Every founder I’ve spoken to is tired of them. Instead, they’re hiring ex-founders— engineers who value ownership and grinding to win
This is ... fine and unsurprising? TS / JS frameworks were never meant to improve the productivity of lone-wolf 10X engineers.
They're for teams.
A lone wolf 10X engineer raw dogging vanilla js / html is fine. A team of regular devs doing that will be a terrible mess in a year.
is now almost 14,000 lines of raw PHP mixed with inline HTML, CSS in <style> and raw JS in <script> tags
I did not use TS, flexbox or frameworks except jQuery
A lot of $.ajax() and float:left though
It has 1,872 paying customers making $61,808 per month
As someone who frequently interviews at Spotify, no, please do not feel the need to ever write me a thank you note for interviewing you. It’s literally part of my job. And I promise it will not help (or hurt) your application one bit.
I’ve interviewed more senior engineers than I can remember and this is just absurd.
Why do these insipid takes always come from an account with “founder” or “entrepreneur” in the bio 😅
These layoffs are terrifying. My advice for younger devs, from my time conducting a *lot* of interviews, is this: learn your fundamentals. Well.
Fucking around with some new js framework is fun, but your career will benefit a lot more from tightening your JavaScript / css skills
9 year old daughter: “Daddy, you know how you have stickers on your computer?”
Me: “Yeah”
9yo: “Can I put stickers on *my* computer?”
Me:
* wipes a tear away *
“Of course”
I'm usually the type of engineer who won't die on any hill.
I'll almost always answer "should I use ___" with "it depends."
I can pretty much always find tradeoffs with anything.
But I am absolutely convinced strict adherence to TDD is a complete waste of time.
Remember when he was hiring and said straight up “yo if you wanna work here we’re gonna have to grind so be ready” and everyone lost their minds?
Doing cool shit requires hard work sometimes.
Fucking legend.
⛔️ Error Messages ⛔️
Web Dev:
* renders an object *
"Hey buddy, an object's not a valid React component. Did you goof up an export? Here's an article, and it you're still stuck, here's Dan Abramov's personal cell"
C++:
* passes a pointer by reference *
* program crashes *
Who's interested in a 🧵 about tech interviews?
In the last ~2 years I've interviewed at Riot, AWS, Spotify and Citadel, and got offers from all except AWS. I promise that's not to brag, just to say I'm not pulling this stuff out of my 🍑
I cannot imagine what it feels like to have balls big enough to complain when a hosting provider takes down a project that exists to literally bypass paywalls.
Hell I can’t imagine having balls big enough to even ship such a lawsuit magnet.
Respect 🫡
Look here's the bottom line: DHH is rich. He can say whatever he wants
But are YOU sure you want to announce that TypeScript is too hard for you? If a job interview asked about it, do you really want to say "I tried, but getting rid of the errors was too hard so I gave up" 👀
Seriously what if Microsoft just buys Mozilla? They can abandon their silly Edge experiment, commit to Firefox, and we'll all forget about stuff that happened in the past and give them a clean slate.
This tweet would be mildly disagreeable IF these books were good, and would help level up your career; they’re not and they won’t.
If you want good treatment of higher-level software engineering, start here.
My yearly reminder to no longer recommend or read any tech books from Uncle Bob aka Robert C. Martin (ie: Clean Code or Clean Architecture).
FWIW, folks are making me proud in the responses though 💜
Dan Abramov: "Now remember, hooks is still in Alpha, it's just a propo—"
Entire React Community: "Hey there's still two libraries not converted to hooks. Are these projects dead?"
I have honestly never in my career seen a technology shoot higher, faster, and then crash, harder, than GraphQL.
What happened?
Was it a bad fit for the Serverless world we all found ourselves in?
And don't blame Relay/Apollo - there were always simpler options.
"Someday I'll quit tech and just be a farmer"
Am I the only dev here who still enjoys this? Like, coding is kinda fun and it blows me away I can get paid for it.
You'd have to drag me kicking and screaming from this industry before I ever give it up.
Next.js tip: be careful with the Link component. It'll prefetch by default, but only in production.
I just saw code that had multiple Link tags in each row of a big table. The network tab was getting destroyed by basic scrolling 😭
Heroku had a catastrophic security incident involving GitHub OAuth tokens on April 15. It's not resolved; Heroku customers still cannot use GitHub CI/CD integration.
And hilariously, nobody is talking about it because nobody uses Heroku anymore 😂
Imagine some PHP dev who just woke up from a 10 year coma, asking his friend what he's missed in the industry.
"Dude everyone's into Server Side Rendering now it's insane!"
"What the fuck are you talking about"
Hot take: this is a really dumb reason to dislike a JS framework. It’s fine. If you’re worrying about shit like this, you don’t have enough impactful work to do.
Web developers use the weirdest language to describe static types to disguise their own dislike at having to use something new.
Jesus christ chad we're not hacking MySpace profiles anymore. Static types are good. Use them.
@subdivisionguy
Better except for the constant bots, neo-Nazi’s being brought back, and ads being reduced to literal sugar daddy websites because anyone reputable doesn’t want to be seen here. But go off simping your billionaire bf 😂
It’s honestly hard for me to think of a language I’ve used professionally in the last 5 years (Swift, C++, Java) that doesn’t have syntax similar to this.
If you find this maddening and indecipherable I urge you to level up and just learn it.
Future you will be grateful
I've never been as wrong about anything as I was about GraphQL. Most of the benefits I attributed to it were just the result of me not having a proper application framework like SvelteKit/Next/Remix. And the others are solved more simply with tRPC.
"How do I animate things in Svelte?"
@Rich_Harris
: "It's built in, yo. Here's a link to the docs"
"How do I animate things in React?"
React core team:
I've been using Tailwind for about a minute. I was expecting to like it. I wasn't expecting to love it, certainly not this quickly.
You Tailwind haters: who hurt you?
Before this site shuts down I have to get this off my chest: I'm not even a JavaScript developer. I code in Ruby on Rails for a living. I just pretended to be into JS and React to hang out with the cool people
Seriously, try XState if you haven't. Just fucking try it.
Starting to think we hate hooks & effects so much because we should be using XState more. I'm refactoring spaghetti code into a state machine and watching the complexity just vanish. This is amazing. I love it so much.
Periodic reminder that optional chaining in JavaScript is a thing now.
So instead of this:
this.bindingTeardown && this.bindingTeardown();
you can just do this
this.bindingTeardown?.();
You can have a superb culture of quality, like Spotify does, and still be grownup enough to realize that shit breaks in unexpected ways, so not deploying on a Fri is just basic human empathy
Young devs will never understand how insane tech Twitter was ~7 years ago.
All the modern bits of JavaScript were brand new, and tons of crusty neck beard JS devs were *pissed*
There were protracted, useless debates on whether arrow functions and classes were appropriate.
Well, I've been using my new MacBook Pro for a whole week, so naturally I have strong opinions.
Every negative opinion I ever assumed about MacBooks were utter bullshit–complete trash, and as Carl Orff said, should be burned
I'm angry I spent the last 10 years coding on Windows
AWS billing is wild. I dump shit into S3 with impunity, for pennies per month.
I fired up Elastic Beanstalk to see how good it was at replacing Heroku. I created an empty web app, and quickly gave up. A week later I had $5 in charges 👀
I feel shameful admitting this, but .... I prefer
export function foo(){
over
export const foo = () => {
but I keep writing the latter because I want to fit in 😐😐😐