Advertisement · 728 × 90
#
Hashtag
#Friendgineers
Advertisement · 728 × 90
Preview
Indirection Vs. Abstraction Abstractions may be indirections, but indirections are NOT abstractions. Confuse them at your own peril.

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...

1 0 0 0
Preview
Stuttering Sometimes we are our own worst enemy. Here's a story of my spending WAY too much time trying to figure out why one of the core functions of one of my core tools was broken. Even though it wasn't. It c...

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...

1 0 0 0
Preview
Optimization You can find lessons in the strangest things if you let yourself. There are even lessons to be learned from the holes in a bar of soap.

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...

0 0 0 0
Preview
Writing Legacy Code One of the hardest things for a person to admit, to themselves or others, is that some painm they're feeling is self-inflicted. But it's also one of the things that has the highest return on investmen...

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...

1 0 0 0
Preview
Practice Makes Perfect? Practice, practice, practice. Do that enough and you'll become an expert. That's all you need to do and all you need to know, right? Not quite. It's important, even critical, but it's NOT enough

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...

0 0 0 0
Preview
Power Dynamics You always need to be careful what you say, because you can't be sure how people will here it. Add in a power differential and things can easily go off the rails.

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...

0 0 0 0
Preview
The Messy Middle It's hard to be stuck in the middle. But if you pay attention and know that important things can happen in the middle you can turn the messy middle into an advantage.

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...

0 0 0 0
Preview
Speed Vs. Quality Move fast and break things might work for a disruptive business, but as a long term coding strategy it leaves a lot to be desired. In fact, it's a self-defeating strategy.

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...

0 0 0 0
Preview
Culture: Not Just For Yogurt What you do when things are going well doesn't define your culture, it just illuminates it. So changing what you do when things are going well won't change your culture. So what can you do?

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...

0 0 0 0
Preview
Docs First And The Definition Of Done I'm often surprised by how clearly and fully defining your goal actually liberates you when you need to define the solution to your problem. It's almost like having too big a goal space constrains the...

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...

0 0 0 0
Preview
System Goals Debugability is only important if something goes wrong. Of course, something can ALWAYS go wrong. So debugability is always important.

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...

0 0 0 0
Preview
Superpowers And Optionality One of the biggest superpowers you can give your code is optionality. You can do that by making sure you have clean boundaries between components. And that the components themselves stay that way.

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...

0 0 0 0
Preview
Coding Genies and Code Review Reviewing your own code is critical when working with others. It's even more important when you aren't the one who actually writes your code.

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...

0 0 0 0
Preview
Who Are You Writing To Anyway? An author should always keep his audience in mind. The trick is to know your audience. Even when there are 2 or more different audiences.

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...

0 0 0 0
Preview
AI Isn’t The Answer There are lots of things that can slow down software development. Typing speed is almost never the biggest slowdown. So something that eliminated the typing speed bottleneck isn't going to make things...

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...

1 0 0 0
Preview
But The Requirements Just Changed Often it looks like the requirements have changed, but when you look closer, that's rarely the case. Instead, what really happened is that you learned more about what the requirements always were.

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...

0 0 0 0
Preview
New Code Vs. More Code Just like the code we write is going to be read far more often than we write it, the amount of code we change or extent is MUCH higher than the amount of code we write from scratch. So don't forget, w...

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...

0 0 0 0
Preview
Listen to Your Data Your data can speak volumes to you. If you know how to listent to it. And are willing.

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...

0 0 0 0
Preview
Time Passes Unit tests should be idempotent. No matter how many times you run them, or when you run them, they should always give the same answer. If they don't, something is wrong.

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...

0 0 0 0
Preview
Engineers Estimate Engineers all make estimates. Some are good, and some aren't. That's hardly unique to software engineering. Just another way software engineering IS engineering.

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...

0 0 0 0
Preview
Constraints The primary job of an engineer is to balance competing constraints to provide value. This is done via a deep understanding of the problem space, the available tools, materials, technologies, and proce...

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...

0 0 0 0
Preview
Slow is Smooth, Smooth is Fast Sometimes you have to accept two contradictory things as true. But what if they're not as contradictory as you think? What if it's just your perspective that?

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...

0 0 0 0
Preview
Government Digital Services 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: 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...

0 0 0 0
Preview
Best Simple System For Now 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: 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...

0 0 0 0
Preview
Respect The Problem You need to know the problem you're trying to solve before you try to solve it. Whether you're doing wetland management or software development.

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...

0 0 0 0
Preview
Dijkstra On Bugs Edgser Dijkstra is a giant in the field of software engineering. Over his career he's said a lot about the way developers go about their business, including how developers need bugs. I don't necessari...

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...

0 0 0 0
Preview
Zero Bugs Can you write code with zero bugs? Maybe not. Can you ship code with zero known bugs? Absolutely.

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...

0 0 0 0
Preview
Emergency Procedures Deployments should be safe. Always. But what if your system is down? Is it ok to take shortcuts then?

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...

0 0 0 0
Preview
Careers are Non-Linear Most of the time, most people want their 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.

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...

0 0 0 0
Preview
People Over Process It's People. It's Process. It's technical. It's socio-technical, and you can't choose one over the other.

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...

0 0 0 0