I work as a software engineer. However, I've never worked with databases or web technologies or distributed systems. Dont know if I should be ashamed of myself. Normally, I dont give a f.ck about that because I'm still a software developer.
However, in every interview, I get system design questions and fail badly in those. My only option without changing a job is read through all of system design solutions on the web (grok, hiredintech, interviewbit etc). I did all of them but I still suck at system design. I think that I lack some foundation to grasp the catch of system design.
What can you suggest for a person like me? Are there anyone in the same boat? Is there any material that can take me from zero to hero?
Want to see the real deal?
More inside scoop? View in App
More inside scoop? View in App
blind
SUPPORT
FOLLOW US
DOWNLOAD THE APP:
FOLLOWING
Industries
Job Groups
- Software Engineering
- Product Management
- Information Technology
- Data Science & Analytics
- Management Consulting
- Hardware Engineering
- Design
- Sales
- Security
- Investment Banking & Sell Side
- Marketing
- Private Equity & Buy Side
- Corporate Finance
- Supply Chain
- Business Development
- Human Resources
- Operations
- Legal
- Admin
- Customer Service
- Communications
Return to Office
Work From Home
COVID-19
Layoffs
Investments & Money
Work Visa
Housing
Referrals
Job Openings
Startups
Office Life
Mental Health
HR Issues
Blockchain & Crypto
Fitness & Nutrition
Travel
Health Care & Insurance
Tax
Hobbies & Entertainment
Working Parents
Food & Dining
IPO
Side Jobs
Show more
SUPPORT
FOLLOW US
DOWNLOAD THE APP:
comments
Unfortunately that’s good enough because that’s all that most companies need
1) Do a side project with *all* the stuff you’d need to talk about in a system design interview. Spin up a real-time streaming app on AWS with that does something simple but uses Kafka/Spark/Cassandra etc etc.
2) Work at a company that operates at scale. Even if you’re doing front end stuff, it’s hard to escape systems at scale at companies like these. I was at Microsoft briefly and had 0 exposure to distributed systems. The harsh reality is that you’ll be dinged severely for this experience gap the more senior you get.
It’s good you realize the skills gap early. Reading blogs and watching tech talks is good - but that’s all still an outsider’s perspective
Working at a company that deals with such systems is maybe the best choice. But, without a reasonable performance on system design interviews, this is out of reach for me at this point.
For me side projects are where I'm best able to fill in my gaps. When you do something from absolutely scratch you really internalize all the small details and the consequences of your design decisions.
Try to come up with simple achievable side projects, design them, deliver them, then show off your design/delivery to a trusted more senior engineer. Then iterate. Your definition of simple will grow. Feedback on your designs will help you figure out better questions to ask and answer about future designs.
As a personal example. I designed a "simple" multiplayer matchmaking service. Sure I delivered it but in hindsight my initial design really sucked I didn't even need an external review to figure that out. I learned a lot just by playing around.