Life update: I’m taking on a new challenge and starting a dev agency called Agathist.
I’ll write an official post about it soon, but want to start spreading the word. If you’ve ever wanted to work with me (and some of my talented friends), this is your chance!
We really deserve 3 day weekends.
You need day 1 to do nothing. Recharge after the work week.
You need day 2 for chores. You got shit you gotta get done. We all do.
And you need day 3 for fun & joy. Spend it in a way that makes you happy.
cw: suicide
This is not a programming tattoo. It’s a tattoo for survivors of suicide. Look it up. That so few replies point this out is worrisome.
I wish more devs would do the work to expand their worldview beyond code. Touch grass, talk to people, you’ll be better for it.
Why is AI never working towards the “3-hour work week and all my needs are met” future Keynes predicted, and instead always seems to be working towards the “get in the f*cking soup line, Oliver Twist!” future we’re heading towards?
We could be trying to cure cancers or make tax
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
People, a bit of advice. When you send someone a DM, especially out of the blue, do them a favor and just ask your question. Right away. Do not _ask_ if you can ask a question. You're not actually being kind or polite and I'll explain why.
Ok… so Twitter recommends tweets from “Web development” to me all time (I don’t follow the category).
EVERY. SINGLE. ONE. is just the most uninteresting, engagement bait drivel.
Like, “as a dev, do you use your left or right thumb to hit the space bar while coding?” 🙄
My take re: Wordle sale:
Get that bag. 💰
I need ~$4M to retire. If I could get most, if not all, of that from selling a fun side project that wasn’t harmful to anyone or anything, you bet your ass I would. That’s the kind of thing dreams are made of.
I taught myself to code as a hobby. I like creative work & building whatever’s in my mind.
But this career, very little of it is creative in the way I imagined.
Everything’s decided, passed down from on high. We’re not here to explore. We’re digital construction workers.
Still to this day, these are some of the best bash aliases I've ever added to my .bash_profile
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."
Saves so much time when going up directories.
It’s taken me 34 years to realize this, but the Golden Rule is wrong.
It should be, “Treat others how _they_ want to be treated.”
That requires empathy. Everything else just assumes people want the same things you want.
Think I may just have to accept that some companies are going to be off limits to me because I never seem to do well on these HackerRank style interviews.
I can absolutely solve your problem, but probably not in 30 pressure packed minutes.
Simple tip I discovered today,
@code
has built in file-diffing, if you know where to look. I made a very quick video to demonstrate how it works. Check it out.
I'm beginning to think every dev and software engineer deserves an agent, like athletes. Someone who handles all the details of finding you amazing opportunities, organizing interviews, and negotiates benefits, so you can stay focused on making cool shit. Who's with me! 👍
Friends, it's here! 🎉 My very first
@eggheadio
course is available as of today. 🙌 For all of you who wanted an intro or refresher to data structures and algorithms, this course is for you:
At my previous job, I built a design system from the ground up that supported React & React Native. I was very proud of it. Still am.
It was rock solid, typesafe in a way you couldn't screw it up. But I made it so solid that many devs struggled to adapt to it.
Why? Because the
Friends, I've got good news to share. My search has come to an end! 🎉 I'll be joining the awesome team at
@webflow
! I'm really excited about their mission to democratize software and to be a part of that effort. Thank you to everyone who helped me in this! Much love 💜
A client asked to make a "curved bottom tabs bar" for their React Native app nav. This is where you cutout a half circle for a call to action in the middle of the bar. Like Venmo does.
I found some libs that did the job, but they all left me wanting. So I wrote the SVG by hand,
If you want to be a senior dev someday, or a better one now, I think you should practice doing this:
When someone comes to you with a problem, before you start to fix it, ask “What are you trying to achieve?”
Often, the answer reveals an easier path yet to be considered.
So I’m finally getting around to reading this diligently (it’s been on the shelf for a while).
I’m ~100 pages in & as someone who’s done essentially no real backend work in my career, I cannot fathom how any one person keeps all this in their head. It all feels esoteric AF. 😅
This would be my ideal job.
I don’t like sprints. I don’t care for roadmaps. I don’t want to put it on the backlog for later. I want to improve whatever I see needs improving and I want to do it now.
This would literally be the maximal use of my particular brand of ADHD.
I’m starting to think that every product org should have at least one senior+ engineer who isn’t beholden to a roadmap and who just goes around making little quality of life improvements everywhere
Frontend dev work can vary so wildly.
Somedays, it's all UI work. Style this. Display that.
Other days are like today, where I'm researching & implementing a Longest Common Substring algorithm with Levenshtein distance matrices to diff strings. 🙃
Friends don't let friends keep rewriting the same boolean React.useState() over and over.
Please, write yourself a useToggle hook and reuse it. Having pre-made handlers will save you tons time, trust me.
Gist:
Is it inappropriate in an open source project's README, under "How to use this project", to write: "Fork around and find out"?
Asking for a friend, of course. 😅
No one:
Absolutely no one:
My brain, as I’m falling asleep: What if they made an HTML element that was `display: inline-block` by default? Would it be a <spiv>? Or a <dan>?
Was working on a side project this morning, ran my `make checkpoint` command and realized, I've never shared that tip!
We can use a `Makefile` to create a simple "checkpoint" command to generate commits when we're jamming on something new and being lazy. Link in next tweet.
Friends, this might be impolite (I hope not), but I want to share a pic of my
@eggheadio
earnings so far this month. I haven't had a paycheck for a few months and you helped make this month AMAZING for my family just by watching the course. Thank you. 🎉
I just can’t do it. I can’t _not_ become this intense person in these coding interviews. I’m sorry. My future is on the line. The very course of my life can hinge on whether I know the secret to your problem in the next 30 minutes.
I need like an hour to recoup after each one.
Designers at work: *design the design system*
Me: *builds the system*
Other devs: How do I do this? *shares new design*
Me: *realizes designers didn’t use their own system and now has to be the bad guy yet again*
-
Does this happen to others or just me?
A skill worth developing as a software developer is the maturity to handle deleting/undoing your work without letting it affect you personally. Requirements change often, and you will throwaway work just as often to meet those changes. That's not a judgment of you or your work.
This might be bold, but I think every front-end JavaScript dev should have this trick up their sleeve. Assuming your data set is a reasonable size, converting an array to an object can really speed up how fast you find items. See it in action here:
Hey friends 👋🏻 I'm starting the search for my next engineering role in earnest and hoping for your help.
I'm a Sr. SWE (~10 yrs exp.) w/ expertise in frontend web dev. Love React, JavaScript & TypeScript, GraphQL and more.
Let me know what's remotely (get it?) out there! 👍🏻
I wish technical interviews had a mulligan. A do over.
I was disappointed with 1 of my answers last week. Took a short walk after the interview & had a far better solution by the time I finished. Wrote it up this morning & am kicking myself that I didn't get it the first time 🤦♂️
Hi, the question is rhetorical. I know what capitalists do. I know how capitalism works. I understand exactly why this is happening. Everyone’s just hoping to be holding the bag when everyone else ends up in the soup line.
Knowing all that doesn’t mean I should stop asking
I did not invent this concept of "computational kindness", just a big fan. You can learn more about it in the latter parts of the book Algorithms To Live By. I recommend the book, it's a good read.
Asking someone to explain prototypal inheritance seems to be a standard JavaScript interview question. Why?
In 5+ years of writing JS full time, I've basically never needed to know it deeply.
You can go a long way knowing 60-80% of something, learn the rest as needed.
Friends, if someone you admire and interact with on Twitter is visiting your town, take a shot on meeting up with them. You’ll be surprised how often it works out.
When you ask if you can ask a question, you're trying to bind that person to an unknown promise. You are burdening them with an unknown computation that could potentially take a lot of resources. There's no way to know the time or computational cost if they say yes.
Opinion: Every single electrician or mechanic worth their salt would be an excellent programmer if they had the opportunity & desire to be one.
They are amazing logicians.
Programmers aren’t special snowflakes of unique ability. We just work with different materials.
I've been using this pattern a lot lately. Use `React.useMemo` instead of multiple `React.useCallback`s to create an object of handler functions in a custom hook. Check it out!
Maybe this is a neurodivergent thing, but I think recruiters would be 💯x more effective if they wrote plain, simple emails that were honest about how they "chose" to reach out to someone.
PM: We need to add a select with these options. How long will that take?
Dev: A few minutes.
Designer: And it has to look like this… *shares design* How long now?
Dev: Weeks? Months, maybe?
Unpopular opinion: Personal blogs shouldn't have comment sections.
They add no significant positive value and gives trolls and naysayers a vector for vandalizing your personal space with their bullshit.
Get rid of 'em.
I kind of wish there was pair programming as a service that I could buy when I want someone who knows more about the thing I'm doing than I do to look over my shoulder for an hour and guide me a bit. 🤔
@editingemily
Reorganize society so we don’t use work as a proxy for community & friendship.
That’s the real problem. It’s not office vs remote. It’s that we’ve designed our world in a way that isolates us so thoroughly that we don’t have a community without a job.
My greatest joy, with regards to coding, comes from having full autonomy to explore and solve a problem. What result do I want? UX? Implementation? I get jazzed.
But this really only happens with side projects.
Very rarely, almost never, does this happen at work.
It's mind-boggling to me that in order to rollover a 401k, they need to write and _snail mail_ a physical check to you.
Then, once you receive the check, you have to snail mail the same check to the next institution.
wtf? 🤷♂️
Layoffs to save a business are one thing.
Layoffs because everyone else is doing layoffs and it won’t look as worrisome to investors so we can make a quick buck for shareholders by lowering costs are another.
My sympathies to every employee affected.
I feel like a little explanation on why this image is so exciting for senior devs could be useful for less experienced ones, so let me offer one.
You might not realize it yet, but the code you write is a _liability_
Friends, I'm putting the word out that I'm looking for new opportunities. Y'all know me, love
#JavaScript
, especially
#React
, want to do more
#GraphQL
&
#ReasonML
. Good teacher, speaker, got a ❤ for junior devs, and a great beard 😉. My DMs are open. Let's talk. 👋
Friends! I want to get the word out again that I'm looking for work. 👋 I want 2019 to be a great year with a great job. 📈 To make it easier, let me layout what I'm looking for, what value I can bring, and some other details in a thread.
Here's another short & simple post.
I've seen lots of people struggle with the "minimum full height" layout over the years (a subset of the "holy grail" layout).
Let me show you how I accomplish that with Tailwind. Link to the post in the next tweet.
It’s honestly impressive how recruiters always seem to find that one technology in your resume that you never want to work with again and come at you full force for it.
I don't often weigh in on this sorta thing, but hear me out.
Random white male follows me. I check, has barely 4K followers. Verified.
Meanwhile,
@sarah_edo
, an absolutely badass and wonderful person, has 136K followers. Unverified.
Dammit Twitter, fix your sexist bullshit.
Ahh yes, my favorite part of being a front end developer is being asked to make something that is semantically a button look like a link and vice versa over and over. 🙃
I've debated sharing the following news, especially at this time. However, I wanted to let those who have been following my tech interview travails know: I accepted a new job. 👍🏻
Replies are closed, a few more details to follow.
I really thought this job would be a lot of fun, but instead it’s all sucked out by process, hierarchies and more.
Maybe if I had ever landed one of the more creative roles I pursued, I’d be in a different headspace, with a different life. Right now, I feel beaten.
Recently, I came across this pattern for conditionally adding key-value pairs to objects in JavaScript, and it's become one of my favorite little tricks.
So… the misogynist techbro’s tweet just came across my feed. Not gonna screenshot it and share that hate further, but I wanna say this:
Women, you absolutely don’t deserve that. You belong in tech, and frankly, anywhere else you damn well please.
This morning, I rebuilt my resume site in ~1 hour with Parcel v2, React, a resume written in MDX, and library to automatically convert my MDX resume into a PDF for downloading.
Wonder if anyone would be interested in a post/lesson on that? 🤔
There's this concept known as "computational kindness". There is a cost to every decision we have to make, some decisions are less costly than others. You want to try and give people decisions that require the least computation to make.
Might be uncool to share this, but it’s something I’m really proud of. Recently achieved saving our first $100k in retirement funds, all while paying student loans and saving for a house (thank you tech salaries).
Now, I just gotta do this ~39 more times and I can retire. 😆
It’s my last day at Webflow. I want to share the best lesson I learned there.
Sometimes you have to propose changes knowing they’ll be rejected. The impact of your proposal might be a critical step in creating change. Change often requires taking some Ls along the way.
Want to see a cool benefit of using state machines with UI development? If I want to see a particular state, I can just update the `initial` value in a machine and go directly to that state. No clicking or typing stuff on the UI at all.
Today is my first day at
@webflow
! 🎉🙌👍 Traffic this morning into the office was just awful! I had to pass by my wife and kiss her and my two kitties demanded some pets. It was a rough 10 feet of travel. 🤣
Plainly, the reason I care that devs “touch grass” is because of the outsized impact we can have. Our worldviews are reflected in what we create. It’s why AIs come with the inherent biases of its models.
We have to actively avoid viewing the world only thru code-centric eyes.
@MinaMarkham
@cherthedev
Had someone tell me today “Things _have_ to go back to normal at some point, don’t they?”
I was like, “They sure as fuck don’t! We have ourselves a new normal, and yes, it might be this way til we die.”
Alright, who of you is excited to learn "just enough" functional programming this weekend? I teach you an almost jargon-less introduction to FP to whet your appetite. Enjoy on
@eggheadio
!
Hey friends 👋🏻 it’s my birthday 🥳
35 was a rough year, and I’d like to get 36 started off right. If you want to give me a gift, some genuine words of affirmation are my jam. Thanks.
I've been writing React for 7 years now. TIL that you can add "Capture" to an event name to have it handled in the Capture Phase, not the Bubbling Phase of event delegation.
Ex: `onClickCapture`.
SEVEN. YEARS. 🤯
Does anyone else feel like the work day should be 6 hours, not 8? I think that would be perfect.
I often struggle to keep up my energy/focus for that long. Even when I'm productive in those other 2 hours, I'm generally not happy about it. 😐
Down right mad some days. 😠
It’s unpopular because it’s bad.
Enjoying something is one thing, but making a living another.
Do we care if lawyers _enjoy_ practicing law? If plumbers _enjoy_ plumbing? If cashiers _enjoy_ cashiering?
Get off your high horse and stop worrying about the motivations of others.
On the other hand, if you get to your point and ask the question, you change the decision from one of evaluating an infinite number of possibilities to a simple verification: can I help with this question or not? You've reduced the burden of your question almost infinitely.
@zellwk
BEM is safety through discipline. CSS-in-JS is safety through API design. The former works, but can be easily broken. The latter will always work.
That being said, keep using the tool that works. No reason you can’t love both.
I respect people who have the drive, energy, privilege & more to side hustle, but I've really grown to resent living in a world where it's practically necessary to side hustle to have a chance at things generations past took for granted, e.g retirement, home ownership, etc.