Salesloft's Frontend Architecture: Defining an Architecture
I’ve written before about what it means to be an architect: determining direction and defining incremental steps to get there. But what if you don’t know…
I’ve written before about what it means to be an architect: determining direction and defining incremental steps to get there. But what if you don’t know…
Spin up a background thread in your brain and think about it. This quote from Grant Slatton’s recent article has been living in my head rent free for days.…
It’s been just over two years since I was promoted to Staff Software Architect at Salesloft. My then-manager, Daniel, and I had numerous conversations before…
I see a clickbait-y tweet just about every day regarding how difficult and complex it is to build web applications today, particularly on the frontend. While I…
Few things accelerated my understanding of code, and what I could do with it, faster than Abstract Syntax Trees (ASTs). ASTs are data representations of…
Yes, you read that title correctly. A while ago, one of the employee resource groups at Salesloft hosted a learning series for those who wanted to improve…
My primary focus the last 6 years at Salesloft has been architecting our main frontend application. The project began solely as a plan to transition us from…
Ever been in this situation? You make an innocuous change to your authentication logic only to realize upon deploy that it invalidated all your users’…
I’m a self-taught software engineer, so while I have relied on many community resources throughout my career, I’ve never had any formal education or…
We had a problem: our test runs in CI were too slow. This was in our primary frontend application at Salesloft, a codebase nearing one million lines of code.…
If you haven’t heard of it, Rspack is a Rust-based drop-in replacement for Webpack. It hasn’t hit its v1 release yet, but it’s already a favorite tool in my…
At Salesloft, our primary frontend application has nearly 3,000 test suites containing over 20,000 tests. That’s a lot of time spent running tests in CI and…
I’ve been thinking about the phrase “penny smart, pound foolish” a lot lately. If you’ve never heard it before, it’s an older British phrase that refers to…
A recurring question I get at the office is “what does it mean to be an architect?” This is an excellent question and touches upon a principle that applies…
A few weeks ago, @chantastic tweeted asking how people are managing their Node.js versions these days. My response was simple.Even for my personal projects,…
Howdy again! We’re in the final mile now. We got the individual blog post pages working last time. In this final installment, we’ll add a few more pages,…
Welcome back! Last time we walked through generating a new site, getting the blog post index page working, and adding the talks page. This time we’ll look at…
My website hasn’t gotten much attention the past few years. In 2020, I slowly migrated from Gatsby to Next.js. I even had a partially-written blog post about…
Well, it was bound to happen sooner or later. Over the summer, I took down production. I didn’t want to. I didn’t mean to. But it happened anyway. As the…
A few weeks ago, I was working on a project where I needed to get all the flattened keys from a deeply nested object as a string union. I looked around the…
After the events in Ukraine this week, writing about tech seems so unimportant. My heart is broken hearing the stories coming out of Ukraine, of a people…
Ahh, I love a good stroll. When you’re walking, you’re going somewhere. But when you’re strolling, you’re already there.This quote is from a character from one…
There are times I need to write scripts, save some JSON files, or do other things in a repo that create files that shouldn’t be git-controlled. I’ll often…
I am admittedly a big fan of Tailwind, but for one primary reason: it makes me more productive. It may do the same for you. It may not. Perhaps you love the…
The best way to write more consistently is to just do it.I have always been inconsistent writing on this blog. I had the best of intentions, of course. I would…
Our second child is only a few weeks old and so much is different this time around. Granted, no child is the same and she is not the same as her big brother.…
At my job, we’re supposed to keep our computers locked if we ever walk away from them, a good practice wherever you are. But I constantly found myself…
Sophie Alpert and Dan Abramov showcased hooks, React’s newest upcoming feature, at ReactConf this year. At first glance, I thought they seemed strange and…
A few weeks ago, Todd Sharp wrote an article called “Simulating Texas Hold’em in Groovy” where, no surprise, he simulated a Texas Hold’em hand in Groovy. At…
Spoiler alert: I’m a big fan of Gatsby. I’ve worked with it multiple times and I’m continually impressed with its power and flexibility. For those who aren’t…
Confession: I’m really bad about writing blog posts.I want to get better at it though. My tongue-in-cheek goal this year is to get to a point where I…
At the end of March, I had the opportunity to speak at JazzCon in New Orleans. It was an incredible conference. I’m fairly new to conference speaking (this was…
Last week, 3blades - the company I work for - launched our new website using Next.js/Now. In the process, we moved our company blog from our main website to…