All I Need to Know About Engineering Leadership I Learned From Leave No Trace
đź”— a linked post to
jacobian.org »
—
originally shared here on
I saw Simon Willison share this article and thought it was too good not to share it myself.
We respect wildlife in the wilderness because we’re in their house. We don’t fully understand the complexity of most ecosystems, so we seek to minimize our impact on those ecosystems since we can’t always predict what outcomes our interactions with nature might have.
In software, many disastrous mistakes stem from not understanding why a system was built the way it was, but changing it anyway. It’s super common for a new leader to come in, see something they see as “useless”, and get rid of it – without understanding the implications. Good leaders make sure they understand before they mess around.
Or, as the footnote succinctly puts it: “find out, then fuck around.”
This article also taught me about Chesterton’s fence, a principle that says “don’t destroy what you don’t understand”.
đź”— a linked post to
rachsmith.com »
—
originally shared here on
I’ve known developers who’ve put up with the struggle with the expectation that one day it will go away: one day they’ll be an expert and never have to struggle again. This day never arrives, and so they bail out of the field.
Unfortunately, I don’t think the struggle ever goes away. I’ve been doing this professionally for 14 years now and I still have to deal with the struggle almost every work day.
If you can be comfortable with the struggle and build up your tolerance for it. If you’re able to sit in that moment and be okay without drama or a total crisis of confidence, I’m fairly sure you’re going to do just great.
The Struggle comes in multiple shapes and sizes too. Here is a short list of my experiences with The Struggle from this week alone:
Impostor syndrome
Anxiety about breaking a physical connector
Frustration with unclear objectives
Being overwhelmed by unfamiliar technologies
Debugging something and being unable to find an answer
After 12 years of professionally dealing with The Struggle, I’m still able to handle many aspects of it, but my tolerance is quickly diminishing.
Dealing with The Struggle is much easier when you feel like there’s a reward for you at the end of it. Right now, I’m trying to restore my old iPod fifth gen with an SD card, and no matter what I do, I cannot get it to work right.
I’ve been all over forums, digging into the sixth and seventh pages of search results, desperately looking for clues as to why I’m not getting it to restore.
But I can picture myself playing that brick breaking game soon, and that first game is gonna be so much fun after all of this work.
Two years ago, the New Mexico Department of Transportation decided to spice up a particularly desolate stretch of Route 66 between Albuquerque and Tijeras by adding grooves in the road that will play music when you drive over them. If you drive the speed limit of 45 mph for the quarter-mile stretch, you can hear "America the Beautiful" play through the vibrations in your car's wheels.
Some delightful engineering here. I wonder what happens if you hit it at faster or slower speeds?
đź”— a linked post to
mcfunley.com »
—
originally shared here on
I saw this article referenced while reading Bill Mill’s recap of relaunching a website, which in and of itself is a delightful read for those of us who nerd out on large-scale system architectures.
I am almost certain I’ve read Dan’s piece on boring code before, but I wanted to share it here because it serves as a great reference for those of us who are sick of making bad tech stack decisions for bad reasons.
In particular, the ending here sums up my experience consulting with many different tech teams:
Polyglot programming is sold with the promise that letting developers choose their own tools with complete freedom will make them more effective at solving problems. This is a naive definition of the problems at best, and motivated reasoning at worst. The weight of day-to-day operational toil this creates crushes you to death.
Mindful choice of technology gives engineering minds real freedom: the freedom to contemplate bigger questions. Technology for its own sake is snake oil.
The teams which move the fastest are the ones who are aligned on a vision for what is being built.
Often, these teams hold a “strong opinions, loosely held” mentality where they decide what tools they’ll use, and they’ll use them until they no longer solve the problem at hand.
Put another way: in a business context, experimenting with your tooling is a huge organizational expense that rarely yields a worthwhile return on investment.
Your focus should be on what you are building rather than how you’re building it.
I’ve been dreaming of building my own electronics since I was a kid. I spent so many afternoons at Radio Shack, and even tried my hand at the occasional kit, with limited success. Every few years in adulthood, I’ve given it another try, observing a steady downward trend in difficulty.
I’m telling you: we’re at a special moment here. The labor savings of open source, the composability, the fun: all of it has come to hardware. You can build things that solve real problems for yourself. I first imagined my heat pump devices over a year ago, and I have been frustrated they didn’t exist every day since.
Now my dreams are real, and the largest energy consumer in the house can be automated and remotely controlled.
That’s amazing.
As soon as I gain employment again, the very first thing I’m buying is a 3D printer, and I’m gonna start building stuff.
npm install everything, and the complete and utter chaos that follows
đź”— a linked post to
boehs.org »
—
originally shared here on
We tried to hang a pretty picture on a wall, but accidentally opened a small hole. This hole caused the entire building to collapse. While we did not intend to create a hole, and feel terrible for all the people impacted by the collapse, we believe it’s also worth investigating what failures of compliance testing & building design could allow such a small hole to cause such big damage.
Multiple parties involved, myself included, are still students and/or do not code professionally. How could we have been allowed to do this by accident?
It’s certainly no laughing matter, neither to the people who rely on npm nor the kids who did this.
But man, it is comical to see the Law of Unintended Consequences when it decides to rear its ugly head.
I applaud the students who had the original idea and decided to see what would happen if you installed every single npm package at once. It’s a good question, to which the answer is: uncover a fairly significant issue with how npm maintains integrity across all of its packages.
But I guess the main reason I’m sharing this article is as a case study on how hard it is to moderate a system.
I’m still a recovering perfectionist, and the older I get, the more I come across examples (both online like this and also in my real life) where you can do everything right and still end up losing big.
The best thing you can do when you see something like this is to pat your fellow human on the back and say, “man, that really sucks, I’m sorry.”
The worst thing you can do, as evidenced in this story, is to cuss out some teenagers.
Seabound: Charting a Course to Decarbonize Shipping
đź”— a linked post to
collabfund.com »
—
originally shared here on
Seabound’s carbon capture technology diverts a ship’s exhaust gas into a container full of small pebbles of calcium oxide, which chemically react with CO2 in the exhaust gas to form calcium carbonate. In other words, we make limestone onboard ships, effectively locking the CO2 into small pebbles. When the ship returns to port, we offload the limestone and either: 1) sell it for use as a building material, or 2) recycle the pebbles to separate the CO2 from the calcium oxide so that we can reuse the calcium oxide to capture more CO2 on another ship, and then sell the pure CO2 for clean fuel production or geological sequestration.
Our process is unique because we only capture the CO2 onboard and leave it locked in limestone, rather than trying to separate and liquefy the pure CO2 from the limestone onboard as well. These steps of separation and liquefaction are typically the most complicated, expensive, and energy-intensive for carbon capture technologies, which is why we’ve shifted them to shore where we can leverage economies of scale and land-based energy infrastructure.
This is the sort of solution I want to be a part of. How cool of a concept is this?!
Why The First Computers Were Made Out Of Light Bulbs
đź”— a linked post to
youtu.be »
—
originally shared here on
If somebody would’ve shown me this video when I was 12 or 13, I think computer programming would’ve been way easier for me to understand, and I think I would’ve been more motivated to stick with engineering school.
That being said, I’m glad I’m at a point in my life where it all now kinda makes sense why binary is a thing.
This whole video was a pleasant way to appreciate the ingenuity of people. It also fixed a core analogy of mine: it’s not that we tricked rocks into thinking, rather it’s that we tricked atoms into moving whichever direction we want.
đź”— a linked post to
lesswrong.com »
—
originally shared here on
If you're trying to pass the class, then pass it with minimum effort. Anything else is wasted motion.
If you're trying to ace the class, then ace it with minimum effort. Anything else is wasted motion.
If you're trying to learn the material to the fullest, then mine the assignment for all its knowledge, and don't fret about your grade. Anything else is wasted motion.
If you're trying to do achieve some combination of good grades (for signalling purposes), respect (for social reasons), and knowledge (for various effects), then pinpoint the minimum quality target that gets a good grade, impresses the teacher, and allows you to learn the material, and hit that as efficiently as you can. Anything more is wasted motion.
Ah, an engineer’s approach to optimizing life.
There is a good section in here as well about how to deal with the associated guilt when you take this approach.
đź”— a linked post to
noemamag.com »
—
originally shared here on
Whatever comes next must take responsibility for that legacy, while also articulating something new and perhaps even bolder than what came before. There is a useful lesson drably concealed in the MTA’s maintenance facility in Queens: What we inherit comes with responsibility. Vintage machines are owed our best efforts, and our ingenuity in keeping them running should at least be equal to our ingenuity in forging them.Â
The work of maintenance is ultimately a way of parsing and knowing a thing and deciding, over and over, what it’s worth. “Maintenance should be seen as a noble craft,” said Rossmann, the boot-strapping repair man who learned the secrets of the iPhone’s circuits. “It should be seen as something that teaches people not just how to repair, but how to think.”
This article reinforced one of my core tenets of software engineering: the simpler, the better.
It also supplies an important distinction between repair and maintenance. Repair is when you fix something that’s broken. Maintenance is about making something last.
The article calls for finding a way to better incentivize acts of maintenance in our economic system, and the more I reflect on that, the more I find it reasonable.
Building new stuff is cool and often necessary, but finding a way to make our old stuff last longer is equally cool.
Not just with our bridges and train cars and iPhones, but with our elderly too.