Earlier quoted context omitted.
To add something further to this excellent comment: Join a start up with a legacy code base, e.g. dodgy old PHP that they’re pulling out into modern domain services. Within a year you’ll be able to analyse performance and scalability issues and refactor them in your sleep.
If you want to build your skills, sure go ahead. But working at a company like this is not a good way to build your wealth. You're far better off working at a big tech company that has awesome benefits or a fresh startup. Startups that have been around long enough to have a legacy code base aren't a place to become wealthy.
Ask HN: What is best way to do hands-on practice for system design?
41–50 of 98 posts
Re: Ask HN: What is best way to do hands-on practice for system design?
#42Hmm. I think you might be getting at two different questions. One: How do you get better at systems design? Build stuff -- lots of stuff. If you're interested in designing particular kinds of systems (say, planet-scale web services...), then get a job at a company that does that kind of thing. Two: How do you get better at systems design interviews ? That's much easier; you can just throw money at the problem. Use on…
Re: Ask HN: What is best way to do hands-on practice for system design?
#43Re: Ask HN: What is best way to do hands-on practice for system design?
#44Earlier quoted context omitted.
If you want to build your skills, sure go ahead. But working at a company like this is not a good way to build your wealth. You're far better off working at a big tech company that has awesome benefits or a fresh startup. Startups that have been around long enough to have a legacy code base aren't a place to become wealthy.
Not everyone aims to be wealthy. Most companies do pay a decent salary (specially in europe) with good work life balance. High paying jobs often correlates with high stakes which means potentially higher level of stress.
There are plenty of valid reasons to not want to work at big tech co’s, but if you’re discounting it for expected stress level alone I’d do a bit more research as I don’t think it’s as true as you think. Obviously read reviews of Glassdoor/Blind to get a sense of the company you’re applying to…
Re: Ask HN: What is best way to do hands-on practice for system design?
#45Questions for stage 3: Do all customers/clients really need to be able to access all other customers/clients state/data in parallel and real time ? What can be cached ?
Re: Ask HN: What is best way to do hands-on practice for system design?
#46You get hands on experience at a place 1. That has a functioning app AND 2. Business is growing rapidly bringing more customers than the system can handle. In other words you learn on the job by getting your hands burnt. I got lucky to have joined such a startup. Learnt a lot, from fixing DB queries, designing asynchronous order processor, using CDN etc. I worked on scaling up the full stack including stuff like conn…
From web & app, frontend, to backend, databases and server management.
Yet I still find it hard to grasp good system design.
At best I prefer things to be as simple and clear as possible, that's about all I'm certain off.
Most systems are already so established if they get going, you are mostly patching. Once you start patching all effeciency goes out the window, especially if those who build v1 are gone. Hard, and most often a bad idea, to overhaul a system to something more stable & efficient.
Now that I think of it, probably my biggest learnings are what not to do, not what to do.
Re: Ask HN: What is best way to do hands-on practice for system design?
#47You get hands on experience at a place 1. That has a functioning app AND 2. Business is growing rapidly bringing more customers than the system can handle. In other words you learn on the job by getting your hands burnt. I got lucky to have joined such a startup. Learnt a lot, from fixing DB queries, designing asynchronous order processor, using CDN etc. I worked on scaling up the full stack including stuff like conn…
That's how it works in new fields where there's no good theorical foundations yet. I think OP is asking if we already know how to avoid getting hands burnt in the first place, as in many other fields of engineering where you don't just learn on the job and get yourself burnt a few times.
Re: Ask HN: What is best way to do hands-on practice for system design?
#48Earlier quoted context omitted.
> But when pressed, very few people were able to describe the contents of those messages in any detail. Can you explain why this matters? It’s an architecture interview right? Not an API/Worker/Queue design exercise. It’s not like I don’t expect someone to be eventually able to figure out the contents of the payload, I’d just not expect it to be at the forefront of their mind.
Emails with attachments vs plain text messages. Binary content. Compressed content. Size matters, especially at scale.
Re: Ask HN: What is best way to do hands-on practice for system design?
#49You get hands on experience at a place 1. That has a functioning app AND 2. Business is growing rapidly bringing more customers than the system can handle. In other words you learn on the job by getting your hands burnt. I got lucky to have joined such a startup. Learnt a lot, from fixing DB queries, designing asynchronous order processor, using CDN etc. I worked on scaling up the full stack including stuff like conn…
> you learn on the job by getting your hands burnt. That's how it works in new fields where there's no good theorical foundations yet. I think OP is asking if we already know how to avoid getting hands burnt in the first place, as in many other fields of engineering where you don't just learn on the job and get yourself burnt a few times.