2,010 karma · joined September 16, 2019
All these clean architecture, design patterns are myths, wishful thinking, marketing memes, or someone’s successful experience overgeneralized and cargo culted at best.
There couldn’t be anything less meaningful than “best practice” idea. It encourages dangerous illusion of shared understanding. Ive seen projects bestpracticed to death.
Best from who’s point? Best for what goal? Best in what context, for what kind of team? How the bad-good scale is defined?
All you can do is patiently learn on a case by case basis, slowly building up your own intuition and style of work (ideally raising awareness the limitations of your own experience and preferences at the same time).
So basically yes, throw out all hi level theoretical concepts to trash (they have already served their purpose) and approach new projects from ground principles.
And from the fact that your craft is not the goal but only means to an end, to serve business, users, customers.
2. Elegant typings, native to language syntax. Syntax flexibility.
3. Usually this choice is made for me or before me. And unfortunately it is often neither.
Up to 80% of a typical dev time these days (depending on the company and the project) is idle waiting for a build to fail again, deployment to finish, all teammates showing up to another useless meeting, writing stupid performance reviews, arguing about secondary yet unavoidable issues on slack and pr comments, etc etc.
If you cut network and files for Claude, for example, how is it even going to do the useful work?
If the requirement was never documented or lost, then you can only deduce it like Sherlock Holmes.
Low level answer is always- because this is the best way current developer could come up with given the organizational context and his level of experience.
Nothing new under the moon in the last few centuries. There is no magic pill or secret ingredient.
Each path has its trade offs.
I’ve tried both. Reaching 10k in software engineering salary took longer but easier and more predictable. My first profitable business attempt was a tiny bootcamp school (about software engineering obviously) and it never reached 10k of my own income due to lack of business experience and motivation.
Choose a field where 1. There is enough capacity to reach the number with just a hard work (software engineering, finance, law, real estate etc)
2. You feel comfortable and genuinely longterm interested in (most important criteria).
What else do you expect to hear on a forum like this?
I bet LLM would give you similar answer :)
Often because of lack of better alternatives or out of inertia.
Majority of UX of software products we use every day range from awful (ad platforms for example) to mediocre (WhatsApp). But we don’t know any better.
> I do fine when incentives, authorship, and responsibility are clear, but disengage when those are diffuse.
This suggests that in your case it might be about bad management too, rather than team vs solo work per se.
And let’s face it, good management and good managers is a much much rarer breed than good engineers.
Could you name a few with salaries at least somewhat near FAANG’s?
It’ll get you okayish to allright property (depending on the region), will cover all basic expenses and (if you don’t have anyone with serious illness or financial problems) some non basic ones. For up to 10 years max.
Then what?
If you want to hear people’s passions I suggest using vague “F U money” term instead of a pretty small specific number.
Today - they are mostly designed, sponsored and organized and about hating/suppressing the enemy side, virtue signaling, not achieving good and genuine self expression.
And those rare that are authentic (like current Iran revolution) are carefully and deliberately muted.
Such intentions can’t produce any great art for obvious reasons.
Apple keeps being a hardware company unfortunately.
Their software is not nearly as good as it could and should be if they had real competition.
Windows/linux is not a competition since they dropped bootcamp. Because that implies switching to a subpar hardware.