Hello Everyone,
I have seen Rubrik, Uber and Confluent asks System Coding questions.
System Coding questions are typically concurrency focused implementation.
For example: Design Scheduler Library, rate-limiter, logger and event bus.
So what strategy do you use? for example I use Java for implementation and read Concurrency in Practice. But still struggle a bit on identifying parts where the meat is😅 I mean thread-safety issues and so on.
TC: 46L INR
Base: 30L INR
Stock: 16L INR
YOE: 4.5 at Amazon and total 5 yoe
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
I’m particularly focusing on Java so answering from this perspective:
0. Understand the source of race condition: check then act and it’s super-set read-modify-write
1. Read book Concurrency in practice - follow standard problems and high level constructs where we need concurrency
2. Learn from existing good design and their APIs:
Google guava for cache APIs and rate limiter and for cache implementation caffeine can be looked into but that is too optimized and note possible to code but ideas can be shared with interviewer , resilience4j documents for API, LeveLDB: focus on immutability for simplifying concurrency,
thread pool internals(worker, work and work-queue): https://salonegupta.wordpress.com/author/salonegupta/
work-queue:- bounded blocking queue is the abstraction that drives most of cool task scheduling and delayed queue(leader and condition): https://deepakvadgama.com/blog/delayed-queue-internals/
internals of future(useful in future mental model and object interactions): https://salonegupta.wordpress.com/2017/08/24/internals-of-java-futuret/
3. practice standard question mentioned in question:
Design Scheduler Library, rate-limiter, logger and event bus
4. Understand notion of time and task scheduler in general
5. File systems and OS supported interface in general
4. Learn about blocking and non-blocking IO and relevant programming model.
<Will update with more details>