Try the custom AI to help you find products that Reddit loves.
yeeeuuuuuuuuuup. Basically you're going to need to do the research equivalent of DFS.
Whenever you hit a term you don't understand, keep digging at it till it makes sense. Then you have that concept unlocked forever. Also some book like System Design Interview are decent for being exposed to an extremely high level + simplified look of systems
You'll pick it with time for sure though as long as you try to learn
First. Good luck on your interview, hope it goes well.
I've been interviewing for months, and the types of question vary so incredibly wildly that you really can't prepare easily. Unless you know in advance that they use a leetcode type test, or are at least given a topic in advance you will most likely be surprised.
I've seen a mix of both good and bad questions ranging from "Parse a JSON string and aggregate the properties", to "Design a key-value store", to "build a hashtable based tree from scratch".
Don't stress to much, Focus more on the areas you can more easily prepare for. This is a great book:
System design (read: distributed systems design) is a fundamental aspect of most senior software engineering interviews. I just went through it myself.
Your husband should check out this book.
Just a hunch going on the question is maybe if a high level of reads to talk about caching data with redis? Covers the how often does this data need to be invalidated or if a large data size, how do you handle that in memory? Could you break down the db to be read and write connections with multiple slave connections for many reads.
I found this book pretty good as it walks through a number of example designs with the breakdown of scalability in mind https://www.amazon.ca/System-Design-Interview-insiders-Second/dp/B08CMF2CQF
System Design Interview – An Insider's Guide by Alex Xu is a good one.
I think this is a great intro to system design for a much more reasonable price. Plus it comes with an invite to a Discord community where people ask questions and help each other out.
This isn't DDIA, but if DDIA is too intimidating for you then Alex's book is a nice start.
https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF/ref=asc_df_B08CMF2CQF/ is ok for learning the kind of system design stuff you'd need for an interview.
When they said a specific db did they mean relational db Vs nosql, or something about a specific piece of dB software?
I have read sections of this book and it’s a pretty good overview of the kinds of questions you might be asked and the kind of answers you should give: System Design Interview – An insider's guide, Second Edition https://www.amazon.com/dp/B08CMF2CQF/ref=cm_sw_r_cp_api_glt_fabc_FA1Q8NMYREK027DS5S6Z
The particulars of the exact questions aren’t super important imo. Try to demonstrate that you know the sorts of high level things to think about and are comfortable with making thoughtful trade offs.
While we are at it, any resources you recommend as must follow for System Design?
I currently have the following on my learning list:
Resources for System Design
At least checkout Grokking the System Design Interview decent resource for studying for that part of the interview. So you don't freeze up like I did. :(
My favorite is Alex Xu's System Design Interview – An insider's guide: https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF
there's System Design Interview - An Insider's Guide book, but I haven't finished it yet 😓
Okay, you are ready to apply for jobs. Personally, I have 4-5 years experience, and I get ready to apply to jobs by solving leetcode medium problems, so you should be good. My last interview for a job as an infrastructure team was: technical screen (LC easy), whiteboard data structure question with memory constraints, maybe an LC medium question, then a systems design interview. Minus the systems design interview, which you'll learn on the job, or in a book like this.
Make sure you put "C.S. B.S. dropout" or something, that's relevant information and it could help. You'll need to apply to lots of jobs, like 10-20 a day, but that's like 30 minutes a day. When you interview, stress the technical nature of electric work, people will understand that it's not software, and lots of engineers respect the trades as a fellow "craft".
As for the project, there are a lot of directions you can take it, but I'd move it in the direction of industry best practices. Stuff like, setting the app up for CI/CD, using best practices for environmental variables like the https://12factor.net/ (12 factor app), and making sure you test the application (unit, integration, at least), are all things that you'll be doing on the job.
Next, if you're just interested in adding some features, think about adding a chat feature, some forums, or a better, more granulated authorization system and user management. If you can, you could add authentication via auth0, which would be really cool. Also, when your app runs in production, where do the logs go? You could add logging and a metrics server like prometheus to get a good idea of how the service is performing in realtime.
Finally, once all the basic user facing features of the application are decided, and you have the general infrastructure set up, you can start to think about strategies for scaling the service up to handle more users. Stuff like adding a cache layer with Redis, or a worker queue are pretty obvious things, but you could also break up your schema into different databases optimized for the usage patterns of the data you are storing. For instance, RDBMS are really good at transaction management, (many queries targeting same data that must be ordered correctly) but for your chat service, you might want a database that has better write throughput and could sacrifice some transactional safety, as long as it's eventually consistent, or you could use something like RabbitMQ as a worker queue for jobs kicked off by users.
Anyway, good work!
Systems design is a very common topic for interviews so there's lots of material available. Here's some that I think are good:
USA, I'd say do the Designing data intensive applications but that's the long route.... try this book: https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF/ref=sr_1_1_sspa?keywords=system+design&qid=1660526006&sprefix=system+des%2Caps%2C128&sr=8-1-spons&psc=1
Hi there! I'm currently a senior developer at a mid-sized tech company. I have a bachelor's in CS but that was ages ago and I'm not up on my leetcode. I have 3-4 weeks to prepare for a Google interview. I'm interested in a critique of my study plan and also in discussion of how senior interviews may differ from junior ones.
Week 1: Read System Design Interview by Alex Xu and do 2-3 Leetcode a day from Neetcode. Flip through 20 Anki cards a day from these sources.
Week 2: Start Algomonster or Interview Cake for algorithmic pattern study. Do the corresponding problems, shoot for 3 completed with working code a day. Continue Anki and complete readings if incomplete.
Week 3+: Continue week 2 study. Fill out the behavioural question chart from Cracking the Coding Interview. It's a grid with projects as columns and prompts like "Challenges" "Mistakes" and "Leadership" to be filled in with relevant STAR-formatted answers for a few major projects.
Before interview: Give some sample questions to my partner or a friend to run through a mock interview.
Thank you for your time!
These resources on github are amazing:
I also found this book very helpful - System Design Interview - An insiders guide.
System Design Interview
System Design Interview – Volume 2
Designing Data-Intensive Applications
These have been recommended to death. And for good reason.
System design should be tech agnostic. Books can only take you half way. Your own experience is critical to allowing you form proper opinions.
I'm sure it's system design :-) People say it's been standard part of many tech interviews
I hear good things about System Design Interview -- An Insider's Guide, but have zero knowledge of the book.
> That in itself is annoying, you can either make the code work or not, right?
Ehhh depends. Our technical exam proctors care a lot about how well you explain your thought process around a problem, even if you don't solve it. We've passed on candidates that aced every single technical problem but essentially provided zero explanation for how they reached a solution, and favored candidates who didn't provide solutions for parts of the exam but reasoned about every problem exceptionally well.
I ask questions about event driven systems broadly, since it's pertinent knowledge for one of my teams. I do not ask about discrete RabbitMQ, EventBridge, Pulsar, Kafka, NiFi, etc things. I ask how you might work with a message broker, or buffer/stream system, or data pipeline. Yeah I might ask deep questions about what you've done with message brokers, or situations where you've had to deal with particularly gnarly problems involving message brokers, but I'm not asking you to enumerate every RabbitMQ/NATS/ActiveMQ/etc client-side setting that exists or stub out some client code from scratch that must be compatible with a server you know nothing about.
Cache management is something we covered in my 200-level "Computer Organization and Architecture" course. There's books you can read on how caching works broadly, how memory management works in specific versions of languages like Java 8, and how distributed caches like Redis/memcached/Varnish/etc work.
And if message/event brokers was the thing the interviewer asked about, I'd throw a different pile of docs/books at you.
Similarly for relational databases.
Or really any other discrete component of a system.
I found System Design Interview to be very valuable while interviewing for FAANG companies at a relatively senior level https://www.amazon.ca/System-Design-Interview-insiders-Second/dp/B08CMF2CQF
https://www.amazon.com/dp/B08CMF2CQF is pretty good. It goes over a good way to answer system design questions and covers some of the common questions that are asked.
Les salaires des devs vont encore augmenter au cours des 5 prochaines années.
Les boites FR n'arriveront pas à rivaliser avec les boites US qui ont prévu d'investir en Europe et particulièrement en France, mais elles seront quand même obligées de faire de gros effort pour essayer de suivre (cadre de travail, bon manager, Full TT ou à la carte).
Regarder avec le recul de l'international permet d'avoir une meilleure vision.
L'impact des Gafam + Startups US + boites Defi et Cryptos (qui ont littéralement des montagnes de cash) va fortement venir grossir les salaires et c'est tant mieux.
Pour les devs qui auront bossé leur anglais et préparés leurs entretiens (avec ce genre de bouquins) il y aura de sacré opportunités à saisir.
Pour les gens qui s'intéressent au métier de dev : il y a des flopées de formations, certaines ne font que 6 mois et vous permettent déjà d'arriver a beaucoup de choses et à trouver des salaires vraiment correct pour des juniors. Aimer résoudre des problèmes, aimer apprendre et savoir chercher sont de bonnes qualités.
Enfin si vous pensez être sous payé (on pense rarement être surpayé non ?) créez vous le maximum de réseau (et pas juste avec d'autres devs), non seulement cela pourra vous ouvrir les yeux, mais cela pourrait aussi vous ouvrir des portes.
These are the resources I used to prep for my systems design questions. Before reading the solutions to the included systems design challenges, make sure you try it yourself first and then compare your solution to what is in the book/course. I found that this was super useful for figuring out where my designs needed to be improved.
I would also strongly recommend spending some time practicing drawing diagrams with whatever tool you will be using for the interview.
^Item&nbsp;Info | Bot&nbsp;Info | Trigger
System Design Interview – An insider's guide, Second Edition https://www.amazon.com/dp/B08CMF2CQF/ref=cm_sw_r_apan_glt_fabc_VCG27WX8DB2BFMFZWAM6?_encoding=UTF8&psc=1
I would recommend the following book for preparation purposes as well:
Perfect Question. I got this problem while ago.
First read this: https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF
Second take this course: https://www.algoexpert.io/systems/product
Third: try to create a simple system from scratch and deploy it
Fourth: ask a friend about his idea of business, and create a system for him/her.
The Educative reference from u/WindomEarleTP is good. A useful reference in book/Kindle format is here.