• 15 Posts
  • 95 Comments
Joined 8 months ago
cake
Cake day: February 26th, 2024

help-circle



  • Cool, that was an informative read!

    If we were willing to leak memory, then we could write […] Box::leak(Box::new(0))

    In this example, you could have just made a constant with value 0 and returned a reference to that. It would also have a 'static lifetime and there would be no leaking.

    Why does nobody seem to be talking about this?

    My guess is that the overlap in use cases between Rust and C# isn’t very large. Many places where Rust is making inroads (kernel and low-level libraries) are places where C# would be automatically disqualified because of the requirements for a runtime and garbage collection.




  • As a junior with no clue how to write production code, is Clean Code going to provide with a decent framework I can quickly learn to start learning my craft, should I throw it out completely because parts are bad, or should I read both Clean Code and all its criticism before I write a single line?

    I see what you’re getting at it, and I agree we shouldn’t increase the load for juniors upfront. But I think the point is mainly there are better resources for juniors to start with than Clean Code. So yeah, the best option is to throw it out completely and let juniors start elsewhere instead, otherwise they are starting with many bad parts they don’t yet realize are bad. That too would increase cognitive load because they would need to unlearn those lessons again.


  • Also in Europe, but I’ve worked at 3 different startups before becoming a contractor earlier this year.

    • First one I worked for 5,5 years, joined at ~30 people and saw things grow to 180 people at which point the company was sold and I left about a year after that.
    • Second one I worked for 7 years, was one of the first employees and responsible for building their frontend stack as well as various microservices from the ground up. Company grew to about 80 people, but I left after Covid layoffs. I wasn’t one of the layoffs, but culture went to shit quickly after that.
    • Third I was also one of the first people and helped build a pretty exciting architecture from scratch. Stayed for 3,5 years, but unfortunately the company never found market fit during that time and the team never grew beyond ~20 people.

    Overall I can say:

    • If you value autonomy and you have a getting-things-done mentality this is the right gig for you.
    • Culture differs very much per workplace, you may need to be lucky. (I don’t think that’s unique to startups though.)
    • You need to be assertive and pro-active.
    • Don’t do it for the money. Startups usually pay less, but in theory make up for it by offering equity. But most startups fail, so in most cases this will never be more than theory. Even if you do get an exit, chances are the payout is less than you would’ve earned working those years for a bigger corporation.
    • The experience can be extremely rewarding because you can easily reach a position of influence.
    • You will learn a lot.
    • The experience can be frustrating because there is always pressure and a lot to do and you rarely have the means to do it all.
    • You will need to improvise a lot.
    • If you pull it off and your startup becomes successful the thrill is exhilarating.













  • I assume you’re referring to this blog series: https://medium.com/prospa-technology/emerging-vs-intentional-architecture-385071ae5d75 ? I wasn’t aware of it, and it seems to have some insightful observations! There’s definitely some overlap, but by the looks of it, I think I will diverge quite a bit with my next post. I think I’m pretty aligned on the “One-Way Decisions” vs “Two-Way Decisions” part. A One-Way decision in my mind would be, which programming language or framework do we use? Do we use REST or GraphQL?

    But it doesn’t really go into how to deal with Two-Way decisions, apart from saying to trust your developers. And I think it kinda glosses over the part that things that may appear to be Two-Way decisions initially may actually be closer to One-Way decisions if you continue to build on them. So where that blog still focuses quite a bit on the process, I think I want to shift the focus a bit more to the technical side (so far I’ve mostly laid down the values that inform the technical direction), especially when it comes to Two-Way decisions. I wasn’t thinking about covering One-Way decisions much, but rather on how to shape everyday coding to be more in alignment with Post/Emerging architecture so that you can avoid the Two-Way decisions that in retrospect aren’t as much of a Two-Way decision as you’d hope.

    Hope that makes sense :D


  • Thanks! This mirrors quite some experiences I’ve had over the years indeed. And for what it’s worth, I think the way you’re handling that is not bad at all.

    As someone else mentioned in the comments on Mastodon, one of the hardest things about mentoring is articulating the lessons you may not even realize you’ve learned. I don’t think anyone can be blamed for failing to teach or convince someone else, since people are simply too different to be able to teach and convince them all. As you say, you have to pick your battles, and as long as you let your teammates do their work respectfully in their own way, that alone is a great achievement!