mstdn.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A general-purpose Mastodon server with a 500 character limit. All languages are welcome.

Administered by:

Server stats:

8K
active users

#friendgineers

2 posts2 participants0 posts today
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/practice" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>practice</span></a> <a href="https://hachyderm.io/tags/strengths" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>strengths</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/07/14/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/07/14/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/power" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>power</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/07/11/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/07/11/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/badideas" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>badideas</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/07/07/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/07/07/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/qualityoverspeed" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>qualityoverspeed</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/30/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/30/</span></a></p>
Leon Rosenshein<p>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?</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/culture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>culture</span></a> <a href="https://hachyderm.io/tags/trust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>trust</span></a> <a href="https://hachyderm.io/tags/honesty" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>honesty</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/25/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/25/</span></a></p>
Leon Rosenshein<p>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. </p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/docs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>docs</span></a> <a href="https://hachyderm.io/tags/contraints" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>contraints</span></a> <a href="https://hachyderm.io/tags/powerofthepen" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>powerofthepen</span></a><br> <br><a href="https://friendgineers.rosenshein.org/posts/2025/06/23/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/23/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/goals" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>goals</span></a> </p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/20/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/20/</span></a></p>
Leon Rosenshein<p>Friendgineers: There are lots of superpowers you want as a developer. One of the best ways to get them is to have options. That means doing the hard work up front so you have optionality.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/optionality" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>optionality</span></a> <a href="https://hachyderm.io/tags/superpowers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>superpowers</span></a> </p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/18/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/18/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/ai" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ai</span></a> <a href="https://hachyderm.io/tags/genie" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>genie</span></a> </p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/13/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/13/</span></a></p>
Leon Rosenshein<p>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. You'll thank yourself later</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/maintainer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>maintainer</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/11/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/11/</span></a></p>
Leon Rosenshein<p>Friendgineers: How can we work faster? There are those who say AI makes us faster by writing the code for us. But really, when was the last time typing was actually the bottleneck? Maybe when you're actually typing, but it's almost NEVER the limiting factor over the lifetime of a project.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/Efficiency" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Efficiency</span></a> </p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/09/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/09/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/requirements" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>requirements</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/06/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/06/</span></a></p>
Leon Rosenshein<p>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?</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/maintainer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>maintainer</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/04/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/04/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/data" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>data</span></a> <a href="https://hachyderm.io/tags/listen" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>listen</span></a> </p><p><a href="https://friendgineers.rosenshein.org/posts/2025/06/02/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/06/02/</span></a></p>
Leon Rosenshein<p>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().</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/time" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>time</span></a> <a href="https://hachyderm.io/tags/testing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>testing</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/28/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/28/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/estimates" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>estimates</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/21/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/21/</span></a></p>
Leon Rosenshein<p>Friendgineers: Engineering is all about balancing constraints, 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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/engineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>engineering</span></a> <a href="https://hachyderm.io/tags/constraints" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>constraints</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/19/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/19/</span></a></p>
Leon Rosenshein<p>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?</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/movefast" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>movefast</span></a> <a href="https://hachyderm.io/tags/breakthings" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>breakthings</span></a> <a href="https://hachyderm.io/tags/slow" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>slow</span></a> <a href="https://hachyderm.io/tags/smooth" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>smooth</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/16/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/16/</span></a></p>
Leon Rosenshein<p>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.</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/agile" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>agile</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/14/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/14/</span></a></p>
Leon Rosenshein<p>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?</p><p><a href="https://hachyderm.io/tags/friendgineers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>friendgineers</span></a> <a href="https://hachyderm.io/tags/systems" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>systems</span></a> <a href="https://hachyderm.io/tags/fornow" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fornow</span></a></p><p><a href="https://friendgineers.rosenshein.org/posts/2025/05/12/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">friendgineers.rosenshein.org/p</span><span class="invisible">osts/2025/05/12/</span></a></p>