> Designing scalable systems when you don't need to makes you a bad engineer. > In general, RDBMS > NoSql These two bullet points resonate with me so much right now. I'm a consultant and a lot of my client absolutely insist on using DynamoDB for everything . I'm building an internal facing app that will have users numbering in the hundreds, maybe. The hoops we are jumping through to break this app up into "microservi…
As an engineer-turned-manager, I spend a lot of time asking engineers how we can simplify their ambitious plans. Often it’s as simple as asking “What would we give up by using a monolith here instead of microservices?” Forcing people to justify, out loud, why they want to use a specific technology or trendy design pattern is usually sufficient to scuttle complex plans. Frankly, many engineers want to use the latest t…
Software engineering topics I changed my mind on
51–60 of 704 posts
Re: Software engineering topics I changed my mind on
#52Earlier quoted context omitted.
Are there other constraints that might make DynamoDB a good fit? For example I made an app at a client. We could use RDS or we could use Dynamo. I went with Dynamo because it could fit our simple model. What’s more, it doesn’t get shut off nightly when the RDS systems do to save money. This means we can work work on it when people have to time shift due to events in the life like having to pick up the kids.
The problem with NoSQL is that your simple model inevitably becomes more complex over time and then it doesn't work anymore. Over the past decade I've realised using a RDBMS is the right call basically 100% of the time. Now pgsql has jsonb column types that work great, I cannot see why you would ever use a NoSQL DB, unless you are working at such crazy scale postgres wouldn't work. In 99.999% of cases people are not.
Re: Software engineering topics I changed my mind on
#53Re: Software engineering topics I changed my mind on
#54> YAGNI, SOLID, DRY. In that order. What? > Java isn't that terrible of a language. Doesn’t mean it’s a good language though. > Despite being called "engineers," most decision are pure cargo-cult with no backing analysis, data, or numbers And when people ask for numbers, it is usually because they don’t like your idea > People who stress over code style, linting rules, or other minutia are insane weirdos That’s why y…
A set of useful principles in software architecture. I mostly agree with his order too.
Re: Software engineering topics I changed my mind on
#55it’s unfortunate you haven’t had the opportunity to work with a strong product team. i agree when they are not helpful it’s a negative impact on the team. but a great PM can elevate everyone who develops that product
Re: Software engineering topics I changed my mind on
#56Earlier quoted context omitted.
I used to be an "insane weirdo", but at some point I gave up. Now, I just focus on code correctness, merge and fix the code style myself, avoiding a lot of useless back and forth. My hope is that people like to see their name when they "git blame" (what's the PC version of "blame" again?) So they will over time learn to follow the code style in order to keep their name there.
> My hope is that people like to see their name when they "git blame" Sadly, my impression is that a lot of people don't want to see their own names on git blame, because they fundamentally operate on "you break it, you buy it" mode. As long as their name isn't associated with a particular piece of code, it's not their fault that it's broken. (It doesn't matter that the code is fundamentally broken and has been broke…
Open source: in open source, I hope people want their contributions to be visible, so that they can brag about it, or put it in their resume.
Business: in business, maybe some people wants to hide some contributions they made in order to avoid being blamed for broken code.
But at the same time, if you have code stats and you see that an engineer owns less than x% of the codebase, it could be seen as a bad sign.
Re: Software engineering topics I changed my mind on
#57wise to avoid an opinion on ORMs, otherwise this would devolve rapidly. my opinion is they are potentially useful but i have never worked a job where id rather have an orm
Any more abstraction/generalization and it starts to suck. ORM for java SQL databases (as a whole) are still fine as long as it allows for specialized operations on your sql db choice (say postgres specific functionality not available on mysql), but as ORMs start to get more ambitious by hiding away the actual SQL queries, things go south (looking at you hibernate). Programmers SHOULD know SQL and if they don't, they NEED to learn it. It isn't the ORMs job to abstract it away. That's a recipe for disaster
Re: Software engineering topics I changed my mind on
#58> 90% – maybe 93% – of project managers, could probably disappear tomorrow to either no effect or a net gain in efficiency. it’s unfortunate you haven’t had the opportunity to work with a strong product team. i agree when they are not helpful it’s a negative impact on the team. but a great PM can elevate everyone who develops that product
Re: Software engineering topics I changed my mind on
#59>Java isn't that terrible of a language. That is going to evolve in the next six years to "languages don't usually matter much except in specific domains in a few cases"
That seems like a rather silly prediction. There is enough code written in java that even if people stopped writing new java this instance, it would still matter across a broad field of domains for more than the next 6 years. There is a world outside of what languages are trendy on hn right now.
Re: Software engineering topics I changed my mind on
#60Earlier quoted context omitted.
As an engineer-turned-manager, I spend a lot of time asking engineers how we can simplify their ambitious plans. Often it’s as simple as asking “What would we give up by using a monolith here instead of microservices?” Forcing people to justify, out loud, why they want to use a specific technology or trendy design pattern is usually sufficient to scuttle complex plans. Frankly, many engineers want to use the latest t…
I like to half jokingly assert that microservices are a pysop to sell cloud hosting