Profile picture

System Design Q&A and Videos

About System Design

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

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

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 =>

  1. 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 .
  2. 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.
Show more
Posted 2 years ago
107 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
Posted 2 years ago
92 Views
1 Comment