27 ms·
> How much do they pay an average software developer? Let's say that you pay a lot. Like you expend $20.000 USD doing this. But we forget the cost power of so
by mamcx 3y ago
> How much do they pay an average software developer?
Let's say that you pay a lot. Like you expend $20.000 USD doing this.
But we forget the cost power of software.
Your monthly savings extend to the infinity.
Your dev is now freer to do other things that are precluded in a more complex scenario ("you save pennies here, but expend pounds elsewhere"), because complexity DEMANDS MORE ATTENTION.
This is something I have observed all my life. I have never regretted to optime]ize for operational costs even if this means I "waste" a lot of time for this. I work in a more cutthroat environment than most startups (ERPs), where my time to deploy to production something is measured in hours, and is an environment that is filled by the graveyard of my competitors that have drink all the kool-aids.
Complex operational environments ALWAYS have turned worse/more complex than do the simplest things.
P.D: I think is similar to spending time in refactoring, cleanups, testing, security audits, training, and even resting.
All of that sounds like "costs". But you are doing this stuff alongside, just need to budget a few hours a week on this and the profits come and come.
Never regret using time on this stuff.
NEED to be smart on this? Sure. But is pure muscle and after a while is great.
- nerdponx 3y agoCarefully designing your application around an underpowered database is almost surely more complicated than just paying for a more powerful database. We're not talking about K8s or sharding. We're talking about adding more cores and RAM to the single database node that they're already using. Imagine how much easier the backend dev's life would be if they could just write SELECT FROM JOIN WHERE like everyone else, and not have to pore over query plans and design/implement/test a bunch of custom joining routines. This path sounds like a high-effort artisanal approach to something where it doesn't seem warranted. It's penny-wise and pound-foolish in exactly the way you (very nicely) described.
- hobs 3y agoIt's true, but its great experience for future things when the costs actually matter - I cut my teeth at a biz that refused to pay more for database hardware and now my performance skills pay the bills at much nicer companies.
- smallnamespace 3y agoSurely it's great for you as the developer to get paid extra to learn transferable skills. That's not necessarily true of the business.
- hobs 3y agoAbsolutely, I did not feel it as a positive at the time and recommended not that much more money for significantly better utilization of human time, but you take what you can get with intractable CEOs.
- sgarland 3y agoImagine how much easier the frontend dev's life would be if they could just demand whatever horrifying schema they want, and it would be delivered to them. Oh wait, that's GraphQL, and it worked as well as it sounds. I am begging people to learn SQL; it is not a hard language, and it hasn't changed in decades.
- agumonkey 3y agoany good book ?
- nerdponx 3y agoFor beginner learning? https://sqlbolt.com/ https://sqlbolt.com/ is a decent place to start.
- agumonkey 3y agoIntermediate and advanced too, if you can, that would be lovely.
- ndriscoll 3y agohttps://modern-sql.com/ https://modern-sql.com/ has some info about more recent additions to SQL to make life easier/write higher level or more composable queries. Once you have the basics of SQL down (like how to write a query), you want to understand what the database actually does with your queries, so you can predict what the query plan "ought to be"/what you want, and you can read the query plans to try to understand why you did or didn't get the plan you expect. https://use-the-index-luke.com/ https://use-the-index-luke.com/ And then once you understand the fundamentals, your database's manual is the place to go. Especially different index types (including their internals!) and what kinds of queries they support. The above link goes into depth about b-trees, but there are other types, and you can use b-trees as a reference point to contrast with others. https://www.postgresql.org/docs/current/index.html https://www.postgresql.org/docs/current/index.html