Leon Rosenshein's Avatar

Leon Rosenshein

@rosenshein.org.bsky.social

12 Followers  |  39 Following  |  97 Posts  |  Joined: 07.07.2023  |  1.7755

Latest posts by rosenshein.org on Bluesky

Higher privilege leaves you ignorant.
When people defer to you, then you're insulated from reality, since they present what you want to see, confirm your beliefs etc since that smooths their lives.
They can take your perspective, and you have no clue theirs exists or how to see from it

02.09.2025 21:57 โ€” ๐Ÿ‘ 9    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
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...

15.08.2025 20:53 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Testing Is More Than Preventing Breakage If you think about tests as the last thing you do you're missing out on some of the biggest benefits of testing. You can learn a lot about what your code SHOULD do by thinking about your tests first.

Friendgineers: Are you getting all of the value you can from your tests? You can probably get more than you are. Correctness is only the tip of the iceberg.

#friendingeers #tdd #testing

friendgineers.rosenshein.org/posts/2025/0...

13.08.2025 17:15 โ€” ๐Ÿ‘ 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...

30.07.2025 16:42 โ€” ๐Ÿ‘ 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...

23.07.2025 20:51 โ€” ๐Ÿ‘ 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...

21.07.2025 16:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Who Do You Love? When you love the right thing you know what to do and how to move forward. When you focus on the wrong thing then the path forward isn't nearly as clear.

Friendgineers: What do you love? Strange question for a software engineer, but surprisingly relevant. Loving the right thing helps you move forwards, but loving the wrong thing will hold you back.

#friendingeers @whodoyoulove

friendgineers.rosenshein.org/posts/2025/0...

16.07.2025 20:32 โ€” ๐Ÿ‘ 0    ๐Ÿ” 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...

14.07.2025 17:25 โ€” ๐Ÿ‘ 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...

11.07.2025 21:16 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Also, Thank you.

09.07.2025 22:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Damn. This really says something worth thinking about.

09.07.2025 22:14 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Exsqueeze Me? There are lots of good reasons to remove tests. There are even more reasons to keep them. Or, if there's a problem, FIX them.

Friendgineers: The internet is a great place for learning. It's also a place where you can find some REALLY bad ideas. It takes critical thinking to know if any particular idea is good or bad, IN YOUR SITUATION. Somethings though, are just bad ideas.

friendgineers.rosenshein.org/posts/2025/0...

07.07.2025 17:44 โ€” ๐Ÿ‘ 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...

02.07.2025 16:30 โ€” ๐Ÿ‘ 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...

30.06.2025 16:37 โ€” ๐Ÿ‘ 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...

25.06.2025 16:02 โ€” ๐Ÿ‘ 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...

23.06.2025 16:59 โ€” ๐Ÿ‘ 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...

20.06.2025 16:40 โ€” ๐Ÿ‘ 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...

18.06.2025 14:41 โ€” ๐Ÿ‘ 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...

13.06.2025 14:38 โ€” ๐Ÿ‘ 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...

11.06.2025 15:04 โ€” ๐Ÿ‘ 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...

09.06.2025 16:55 โ€” ๐Ÿ‘ 0    ๐Ÿ” 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...

06.06.2025 16:43 โ€” ๐Ÿ‘ 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...

04.06.2025 13:25 โ€” ๐Ÿ‘ 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...

02.06.2025 15:29 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
What Is Performance Anyway? Performance is more than sheer top speed and power. Before you can call something high performance, you have to know what you mean by performance.

Friendgineers: We all want to write performant software. The smallest code in the least memory. Or getting an answer faster? Or getting the right answer? It depends. Make sure you know what performance is before you chase it.

#friengineers #performance

friendgineers.rosenshein.org/posts/2025/0...

30.05.2025 15:21 โ€” ๐Ÿ‘ 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...

28.05.2025 14:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Licensed Engineers It is possible to be a licenses software engineer, but almost noone has bothered. License or not, it's still Engineering

Friendgineers: You can be a professional engineer. Even software people can become PEs (in Texas). But most engineers, software or other fields, don't. That's OK, and that doesn't define if you're an engineer or not.

#friendingeers #engineering #license

friendgineers.rosenshein.org/posts/2025/0...

23.05.2025 14:58 โ€” ๐Ÿ‘ 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...

21.05.2025 15:42 โ€” ๐Ÿ‘ 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...

19.05.2025 17:11 โ€” ๐Ÿ‘ 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...

16.05.2025 14:38 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@rosenshein.org is following 20 prominent accounts