Profile picture

System Design Q&A and Videos

About System Design

Mid-Level Software Engineer at Mastercard profile pic
Mid-Level Software Engineer at MastercardPosted December 12, 2023

How do I prep for Frontend job interviews? Do I apply for Fullstack?

Hello! So, my job's getting outsourced this summer, and I'm deep into figuring out my game plan for interviews. I'm mostly a frontend engineer, working with Angular, SCSS, and ngRX for our app. I've dabbled in backend too, even went full-stack in my team, but my backend skills aren't great. My manager supports me marketing myself as a full stack person, but I'm wondering if going all-in on full stack jobs is worth the effort during the interview prep, especially since I'm not a big fan of backend work. Then I wonder if the downside of applying for frontend jobs is that there are not that many and the barrier for frontend is lower (maybe because of coding bootcamps and it can be self-learned) so competition will be higher. Now, I'm drowning in prep work - data structures, algorithms, frontend know-how, and system design. Recently got hit with a surprise system design coding round in an interview (an internal position I arrogantly thought I had in the bag) I thought was all about frontend and DSA. Did okay, but not stellar, and now I'm feeling unprepared for every interview. I feel crippled to even apply to positions. It's a bit of a mess. So questions: Any tips on tackling system design questions, especially the coding part? Most online resources seem to focus more on design rather than coding specifics. How should I balance DSA, system design, frontend prep? What topics and how much time should I commit to each of them? Also, am I on the right track leaning towards applying for just frontend roles? Appreciate any & all feedback!!

146 Views
2 Comments
Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted November 25, 2022

What are the things I should look out for when designing a file storage system?

I am working on a side project. I may use GCP or AWS for it. tldr of the system : Create a web ui to process input files and generate a tabular output giving the link to the dashboard . I have a bunch of files generated , about 2GB in size in total , Account ID is the high level directory and inside each account there 50 log files each having specific content . I want to create a UI using Angular framework . Using the UI I will upload the files to GCS /AWS S3 . Then the backend should trigger complex backend scripts, written will be written in Python or Java and then output file is generated. Using the output file a dashboard with few images embedded is generated. In the end the UI should have a table which should indicate status of processing to COMPLETE and in another column show point to url of the dashboard. I want to deal with least amount of security work as I want to avoid studying Oauth 2.0 authentication . Few additional questions , non-system design questions => What are the things I should learn in Angular to cover most bases in this project, I am a backend engineer and going over youtube videos . I want to stick with Angular as I have few work projects going to come in coming months so it will help me to learn it . I am unfamiliar with typescript . How much effort will it need to learn in order to code for this project. I am most familiar with Python only.

107 Views
2 Comments
Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted July 6, 2023

How do I validate a design for a large scale system before making the decision to invest further?

I am hitting the point in my career where I am responsible for designing newer systems to handle more novel problems. I will use my last project as an example. I had to redesign our game engine to handle more complex scenarios. I decided to "eat the frog" and come up with a few very complex game interactions to test if any of our designs would satisfy those test cases. After about 1 month of development, we landed on a design. This design also passed all the test cases for our old engine.

I think back and wonder if I could've done it more incrementally. We didn't really ship anything during that time, just tested out different ideas in our feature branches. There are still some outstanding questions for that project that are as low level as "should we use an abstract base class or an interface for this abstraction" to "here's an even more complex interaction we don't know how to handle, but could feasibly happen".

Now I am designing a new animation pipeline and don't want to get stuck in the same 1 month long marathon with only a design doc to show for it. As a newer senior engineer and lead, a solid design doc seems like a win, but it was a tough month.

In one way, this is different than having all the work known and chunking it out. We aren't sure what we'd come up with. Maybe that's the nature of R&D. On the other hand, work is work, and I'm sure there are methodologies for making more consistent progress even in R&D.

Interested in how other people approach this dilemma. I think the crux of the issue is I wasn't sure our design would work until we built and tested it against the test cases, and I have a nagging feeling we got a little lucky.

92 Views
1 Comment