Friendgineers: Abstractions and Indirections can look like the same thing, but they're actually very different. It's never a good idea to confuse two things that sound similar but aren't
#friendgineers #abstraction #indirection
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: I try to keep things simple for myself. And I try not to make too many assumptions. But sometimes I get in my own way and make things harder for myself.
#friendgineers #naming
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: I learn things all the time and from many different places, not just my dryer. This week I learned about optimization from soap and silverware in hotels.
#friendgineers #optimization
friendgineers.rosenshein.org/posts/2025/0...
HT to @agile-otter.bsky.social . He said this way better than I can. Why, in the name of all that's good, are we still writing legacy code in 2025?
#friendgineers #legacy #tdd
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Does practice make perfect? Maybe. But are you perfecting the right thing? That's a question we should be asking far more often than we actually do.
#friendgineers #practice #strengths
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Power dynamics are real and play a surprisingly large role in what gets done. Even when people with power don't realize the impact they're having.
#friendgineers #power
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Are you working on a product or a platform? Or are you somewhere in the messy middle? It all depends on how wide a view you take.
#friendgineers #messymiddle
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: I've often felt that we in the software business prioritize immediate gain over long term success. Sometimes that's needed, but in the long run, taking a long term view always pays off.
#friendgineers #qualityoverspeed
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: We all agree that good culture is important. We even mostly agree on what good culture is. But how do you identify it, and how can you encourage it?
#friendgineers #culture #trust #honesty
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: You have the power of the pen. Writing down the impact of what you're going to do is constrains your impact, but it can also open up possibilities.
#friendgineers #docs #contraints #powerofthepen
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: You need to be clear about your goals and always work towards them. You also need to accept the reality that your goals may exceed your grasp. Then include that reality in your plans.
#friendgineers #goals
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: There are lots of superpowers you want as a developer. One of the bet ways to get them is to have options. That means doing the hard work up front so you have optionality.
#friendgineers #optionality #superpowers
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Genies can be very helpful. But in almost all cases, their not trying to be helpful, just doing what you say. Which makes your review of their work even more important.
#friendgineers #ai #genie
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: You need to remember who you're really talking to when you write code. It's NOT the compiler and it's not the reviewer, although they need to understand. It's the maintainer. Write for the maintainer.
#friendgineers #maintainer
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: There are those who say AI makes us faster by writing the code. When was the last time typing was the bottleneck? Maybe when you're typing, but it's almost NEVER the limiting factor over a project's lifetime.
#friendgineers #Efficiency
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: When requirements change out from under you it is very disruptive. But did they really changing, or are we just understanding them better? Not understanding the requirements is a shared communications problem.
#friendgineers #requirements
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: We all think we're writing new code, but the reality is, in almost all cases, we're modifying existing code. How do things change if you think of how you're modifying existing code EVERY time you write any code?
#friendgineers #maintainer
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Did you know your data talks to you? It's talking all the time, but we usually don't listen to it. As part of your design process, you should start listening to your data.
#friendgineers #data #listen
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: I've said it before and I'll say it again. Handling time right is hard. Not just in your production code, but in your tests as well. We have met the enemy, and it is Time.Now().
#friendgineers #time #testing
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Continuing on why software engineering is engineering, a discussion of estimates. Yes, they're hard for software. Just like they're hard for all engineers. Just another way Software Engineering is Engineering.
#friendgineers #estimates
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Engineering is all about balancing contraints, both physical and non-physical. The domain doesn't matter. Software engineering is just as much engineering as as designing a building or a bridge.
#friendgineers #engineering #constraints
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Move fast and break things sounds like the opposite of Slow is Smooth, Smooth is Fast, but what it they're opposite sides of the same thing?
#friendgineers #movefast #breakthings #slow #smooth
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: You don't necessarily expect state of the art reccomendations from a government website, but if you try sometimes, you find, you get what you need.
#friendgineers #agile
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: You can hack together a solution. You can overengineer something and never finish. How do you balance the two extremes? What principles help you find the best simple system for now?
#friendgineers #systems #fornow
friendgineers.rosenshein.org/posts/2025/0...
Before you can solve a problem, you need to respect the problem. The problem will help you find the solution. That applies to wetlands AND software.
#friendgineers #Respect
friendgineers.rosenshein.org/posts/2025/0...
Edgser Dijkstra is a giant in the field of software engineering. Over his career he's said a lot about the way developers work, including how they need bugs. I don't necessarily agree, but there's a lot to think about there.
#friendgineers #dijkstra
friendgineers.rosenshein.org/posts/2025/0...
Can you write code with zero bugs? Maybe not. Can you ship code with zero known bugs? Absolutely.
#friendgineers #zero_bugs
friendgineers.rosenshein.org/posts/2025/0...
Deployments should be safe. Always. But what if your system is down? Is it ok to take shortcuts then?
#friendgineers #deploy #shortcuts
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: Most of the time, you want your career to advance. That's fine, and it might look like that to everyone else, but it won't always feel that way to you.
That's OK.
#friendgineers #Careers
friendgineers.rosenshein.org/posts/2025/0...
Friendgineers: It's People. It's Process. It's technical. It's socio-technical, and you can't choose one over the other.
#friendgineers #people #process
friendgineers.rosenshein.org/posts/2025/0...