Taro Logo
Profile picture

System Design Q&A and Videos

About System Design

System design is the process of determining the optimal high-level technical approach to a problem. It's a staple in both the interview process and actually doing your job as a software engineer. We have created a video series to act as a system design primer for software engineers.

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

Mid-Level Software Engineer at Mastercard profile pic
Mid-Level Software Engineer at Mastercard

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:

  1. Any tips on tackling system design questions, especially the coding part? Most online resources seem to focus more on design rather than coding specifics.
  2. How should I balance DSA, system design, frontend prep? What topics and how much time should I commit to each of them?
  3. Also, am I on the right track leaning towards applying for just frontend roles?

Appreciate any & all feedback!!

Show more
118 Views
2 Comments

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

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

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.

Show more
76 Views
1 Comment