754 karma · joined January 4, 2019
I learned this for myself when I tried coding an IRC server for fun. Quickly found that I made more progress, faster by just using Wireshark to see what an established server was doing and copying that.
Dapper and ^ that works very well IME.
Agreed about replication.
2) The missing piece is how you can achieve this "collapsing" back of functionality into single SSR deployable(s) while still preserving the ability to scale out a large web application across many teams. Microfrontends + microservices could be collapsed into SSR "microapplications" that are embedded into their hosting app using iframes?
The constraint helps to ruthlessly focus on the most impactful work. The maximalists want to get cute and try to bin pack but it just doesn't work, unfortunately.
I suspect the reason is because management is trying to use numbers to justify bin packing more work to an already oversubscribed team. What never shows up in those project management spreadsheets is the very real and predictable cost of context switching and the increase in mistakes from dealing with a larger amount of in-flight work.
https://aws.amazon.com/blogs/database/manage-long-running-re...
Can you elaborate on the challenges you've faced with them?
The implications of being tightly coupled to the (transactional) database are less onerous in a microservices environment where databases are "private" to a single application/service.
I sense that we have different experiences and so can't relate to each other's points without getting more specific so I will make this my last reply.
I will just say that a common trope I've seen in online discourse on this subject is basically that you aren't a real <verySeniorIC> unless you are effectively doing the job of (or heavily carrying) your peers in the org chart who explicitly hold management roles. I broke my own back, metaphorically, trying to live up to that ideal with nothing to show for it and at the expense of the output that was expected of me and so I reject that notion. The <verySeniorIC>s Ive seen who hold those titles with longevity aggressively delegate politics to management and focus on the tech.
You might be able to help with those politics but it's probably also not your job to do that. That's partly why actual engineering and product managers are on-staff to focus on things like that.
At least for me, in hindsight, a lot of that was just in my head. It's fine once you earn the level to not always operate at it. Just as long as when that's needed again you are able to step up.
Note that I am referring to product engineers. Platform/infra engineers necessarily have to work cross-team. And of course some "product" projects should be cross-team ... but if most or all of your product engineering projects are cross-team that is a huge red flag.
OLAP has certainly become overcomplicated but collapsing everything into big monolith dbs again is an over correction IMO.
I also think a lot of system design material is oddly positioned in that it caters towards synthetic interview scenarios where you are designing mega scale systems but somehow are also the single person responsible for all of load balancing, CDNs, message queuing, databases etc ...
In the real world it doesn't really work for that way for product engineers.
It's good to know about that stuff but there's lots of other topics that would have higher ROI like learning how to plan and sequence work properly, how to reduce different kinds of risk during build and deploy, how to migrate complex, existing systems towards better architectures without disrupting the business, how to actually become someone who gets to design systems ...
Seems like it's doing it's job quite nicely.
This title inflation provides some flexibility to create a level below the new grad level, to hire people from non-traditional backgrounds who would otherwise fail a typical entry level screening but are willing to (temporarily) work for low $ to get themselves on the "engineering ladder".
It also makes new grad offers cosmetically/psychologically more competitive. All else being equal, if company A offers you "junior software engineer" and company B offers you "software engineer" you might favor the latter.
Really smart people can be some combination of idealistic, lazy or simply in a context that diminishes their willpower. Therefore their smarts don't really "manifest" in that particular context. I've worked with lots of people who I thought were bozos because they sucked at their programming job but they were clearly smart about other things.
Big companies tend to hire "specialists" to do all those tasks you mentioned, which I think is a mistake. If the purpose of those tasks is to improve the function of product development, which can be rephrased as "make the coders more effective" then each of those people require a high bandwidth communication channel to the coders. You can only have so many people that you communicate a lot with, and so the effectiveness of those people in improving the effectiveness of product development is limited. Their job is to make sure the devs arent working in silos but they all just end up forming their own silos because its simply not practical to have high bandwidth communication with all these different groups of specialists.
Im talking about designers, product managers, project managers, user researchers, data analysts etc ...
My broader point is that I agree with your vision of what a manager should do but IME it's not how larger companies tend to be structured.