|
I'm looking for people to do systems design questions with. Either teamworking it or mock interview style or whatever. Let me know if this interests you!
|
# ? Jul 10, 2021 01:33 |
|
|
# ? May 31, 2024 21:57 |
|
PM sent
|
# ? Jul 10, 2021 01:54 |
|
I watched a few videos showing off system design interviews, and I was surprised how they all went with PostgreSQL. I can really appreciate having something more typical, but I'm more surprised about not trying to abandon some of ACID in order to get other scaling capabilities in the NoSQL offerings. It's a real contrast to what I see between Grokking the System Design Interview and Designing Data-Intensive Applications.
|
# ? Jul 12, 2021 08:06 |
|
Rocko Bonaparte posted:I watched a few videos showing off system design interviews, and I was surprised how they all went with PostgreSQL. I can really appreciate having something more typical, but I'm more surprised about not trying to abandon some of ACID in order to get other scaling capabilities in the NoSQL offerings. It's a real contrast to what I see between Grokking the System Design Interview and Designing Data-Intensive Applications. Edit: also see NoSQL offerings (Mongo immediately comes to mind) bolting on janky transaction support much later because enough customers realized their mistake in abandoning traditional RDBMS semantics. Star War Sex Parrot fucked around with this message at 13:53 on Jul 12, 2021 |
# ? Jul 12, 2021 13:49 |
|
Star War Sex Parrot posted:If down the road you’ve got the customer base to necessitate that type of scaling, you’ll have the money to solve that problem then. Start simple, scale later. See: Uber starting on Postgres.
|
# ? Jul 12, 2021 14:23 |
|
it is pretty funny how many developers have conned their management into thinking they need to be playing with nosql though
|
# ? Jul 12, 2021 14:28 |
|
my homie dhall posted:it is pretty funny how many developers have conned their management into thinking they need to be playing with nosql though It's crazy too because those technologies are so much more complex and have so many edge cases comparatively. It's like engineers enjoy making more work for themselves.
|
# ? Jul 12, 2021 17:41 |
|
Resume-oriented programming.
|
# ? Jul 12, 2021 17:46 |
|
Blinkz0rz posted:It's like engineers enjoy making more work for themselves. I think we'd all be very wealthy individuals if we had a dollar for every time we saw an overcomplicated and unnecessary solution to a simple problem made in the name of "future proofing" or "solving the problem for every case (even solving for a single case is sufficient)". Solving the immediate problem is boring and easy. Solving the problem in perpetuity across the universe is fun and interesting!
|
# ? Jul 12, 2021 18:11 |
|
Blinkz0rz posted:It's crazy too because those technologies are so much more complex and have so many edge cases comparatively. It's like engineers enjoy making more work for themselves. yeah but on the flip side, if the feature you're implementing requires sql development, your company might have experts in it and opinions on how that should be designed / implemented, to say nothing about the complexity of any potential ORM on top of this SQL. whereas for nosql solutions, many companies don't have nosql experts because they don't use nosql, so if you propose the solution, you... become the expert! the client side is also very easy, you save json and get json back. one of these is going to look a lot more attractive than the other if you need to implement a feature in a two week window, and it increases the list of resume keywords you can use. everybody wins!
|
# ? Jul 12, 2021 18:30 |
|
Rocko Bonaparte posted:I watched a few videos showing off system design interviews, and I was surprised how they all went with PostgreSQL. I can really appreciate having something more typical, but I'm more surprised about not trying to abandon some of ACID in order to get other scaling capabilities in the NoSQL offerings. It's a real contrast to what I see between Grokking the System Design Interview and Designing Data-Intensive Applications. A lot of people have learned the hard way that it’s easier to go from Postgres to NoSQL as you need to than the way around. You might be seeing a reflection of that.
|
# ? Jul 12, 2021 19:07 |
|
There's nothing wrong with SQL, but for a design question you're almost certainly going to have to justify it over a KV store unless the question has some obvious reason to use it. This should apply for any store but KV seems to be the default choice in my experience.
|
# ? Jul 13, 2021 01:01 |
|
Modeling your data in a KV store sounds like a lot more work than designing a relational database. What if you need to look something up by an attribute instead of its primary key? Are you happy to scan through your KV database or will you program your own index for it? Am I missing something basic? It sounds ridiculous for any nontrivial business application
|
# ? Jul 13, 2021 01:12 |
|
rt4 posted:Modeling your data in a KV store sounds like a lot more work than designing a relational database. What if you need to look something up by an attribute instead of its primary key? Are you happy to scan through your KV database or will you program your own index for it? Document stores are a subset of KV and commonly support querying by secondary index along with other features.
|
# ? Jul 13, 2021 03:19 |
|
rt4 posted:Modeling your data in a KV store sounds like a lot more work than designing a relational database. What if you need to look something up by an attribute instead of its primary key? Are you happy to scan through your KV database or will you program your own index for it? lol "modelling". you can just slam json into, say, mongo and it'll store it as a document. it's effectively the same as storing your files as flat json files... but it's in a nosql database. that becomes your model. this can be done in roughly 5 minutes assuming your starting with a json file your front end developer decided should be your model. you can then write queries whatever against this model with similar ease. once you have the data in there, qa may discover that it's slow to look stuff up. this can be addressed by writing a single line of code that puts an index on the attribute that you use to look up.
|
# ? Jul 13, 2021 03:30 |
|
I think I will do something like default to a sql database (probably just say, "postgresql") and possibly on the side consider an alternate technology as a "what-if" and give the interviewer the choice on further exploration. If the question is somehow so anti-SQL that it's obvious not to use that, then I'll endorse that primarily. I've apparently been at least "passable" with my system design interviews, which is funny since I've never worked on a distributed system. This makes me really obsess over the topic but I should take the leaked feedback I got and slow down. Actually, I really should just stop here before I burn out since I interview Thursday and I've been prepping for two months. The overanalysis hasn't been all bad. There's something we're using at work I discovered is using postgresql. Based on system design interview stuff I looked up, that was an example where a rational database was the only one I shouldn't choose, so I have gotten some conversation fodder out of all of this. The one thing I've taken out of it is that I should review general SQL query syntax because I just don't play with that normally. Bruegels Fuckbooks posted:lol "modelling". I took some data out of the aforementioned postgresql database and shoved into into mongo. It was something like 500MB of data and I could do aggregations on it in a second or two on a laptop that would take minutes programmatically and 20+ seconds through the web interface (and I couldn't get down to the level of detail I would have needed using it). I was pretty impressed. I can't act like I really know what the hell I'm doing with any of it but I certainly won't scorn using it.
|
# ? Jul 13, 2021 07:44 |
|
Rocko Bonaparte posted:I took some data out of the aforementioned postgresql database and shoved into into mongo. It was something like 500MB of data and I could do aggregations on it in a second or two on a laptop that would take minutes programmatically and 20+ seconds through the web interface (and I couldn't get down to the level of detail I would have needed using it). I was pretty impressed. I can't act like I really know what the hell I'm doing with any of it but I certainly won't scorn using it. picking nosql to store stuff generally causes "future you" problems. ACID is not a thing, there is no schema so any data validation would have to be hand-coded, migrations and versioning would have to be handled manually, and who do you call for data-recovery? also, while there is a common query language for SQL, every "nosql" variant has its own bespoke query language, so vendor lock-in is a real thing. there are definitely use cases for nosql type storage (e.g. document storage, metainformation caching), and you can do impressive things with it, but being too lazy to deal with db experts or model your data is not a great reason for going with a nosql solution.
|
# ? Jul 13, 2021 13:26 |
|
Bruegels Fuckbooks posted:also, while there is a common query language for SQL, every "nosql" variant has its own bespoke query language, so vendor lock-in is a real thing. I'm not defending nosql, but every SQL platform I've worked with has its own syntactic extensions and oddities. So you end up writing platform-locked stored procedures pretty quickly regardless.
|
# ? Jul 13, 2021 13:34 |
|
Bruegels Fuckbooks posted:picking nosql to store stuff generally causes "future you" problems. ACID is not a thing, there is no schema so any data validation would have to be hand-coded, migrations and versioning would have to be handled manually, and who do you call for data-recovery? also, while there is a common query language for SQL, every "nosql" variant has its own bespoke query language, so vendor lock-in is a real thing. All of the nosql platforms that have been around for a while have schema validation these days. Turns out that pretending your data doesn't have a schema doesn't actually work past the prototyping phase. New Yorp New Yorp posted:I'm not defending nosql, but every SQL platform I've worked with has its own syntactic extensions and oddities. So you end up writing platform-locked stored procedures pretty quickly regardless. And if you do limit yourself to the portable common subset that inevitably leads to N+1 queries and such.
|
# ? Jul 13, 2021 16:41 |
|
E: wrong thread
|
# ? Jul 13, 2021 20:34 |
|
I just did a general Google Image Search for software engineer resumes and saw a lot of 2-column examples with one side being a bunch of percentage bars around skill sets with maybe some subcategories to them. Is this what the cool kids do now?
|
# ? Jul 15, 2021 06:51 |
|
Many hiring managers are gamers and if there's one thing gamers love its bars going up.
|
# ? Jul 15, 2021 07:23 |
|
Rocko Bonaparte posted:I just did a general Google Image Search for software engineer resumes and saw a lot of 2-column examples with one side being a bunch of percentage bars around skill sets with maybe some subcategories to them. Is this what the cool kids do now? Please no. Also I am a dick and when I get one of those, I make sure that the in-person is painful and full of questions about the percentages
|
# ? Jul 15, 2021 09:35 |
|
Rocko Bonaparte posted:Is this what the cool kids do now? No. It opens yourself up to more questions about your skills than not having them. It's also weird to quantify your level like that. There's nothing wrong with categorizing your skills under something like: "fluent," "proficient," and "learning."
|
# ? Jul 15, 2021 14:24 |
|
Rocko Bonaparte posted:I just did a general Google Image Search for software engineer resumes and saw a lot of 2-column examples with one side being a bunch of percentage bars around skill sets with maybe some subcategories to them. Is this what the cool kids do now? I’ve been seeing those a lot on the hiring side too in the past year or so. I have to assume someone is advising new graduates to make those, maybe like some sort of “data visualization” interest. Like everyone else has said it’s awful and it’s an immediate indicator to ask “What does it mean that you’re 75% of Python?” and probe like hell.
|
# ? Jul 15, 2021 15:25 |
|
Now I kind of want to do that if it would get them to ask about that instead of, like today, give me two 2d array dynamic programming puzzles in a row. (I did solve them and I'm not going to understand my life if I don't pass that Google interview.)
|
# ? Jul 16, 2021 05:20 |
|
For the curious, there's also a chapter in Cracking the Coding Interview about system design and scalability. The chapter is about 100 times shorter than Designing Data Intensive Applications so I think it's a good place to start.
|
# ? Jul 19, 2021 07:10 |
|
awesomeolion posted:Designing Data Intensive Applications Is that really something you need to memorize for system design interviews
|
# ? Jul 19, 2021 08:36 |
|
You don't need to memorize it, and it's probably overkill for a newbie programming job interview, but as you get more senior it becomes more important to understand what's in it.
|
# ? Jul 19, 2021 13:06 |
|
Based on this thread and how my most recent system design interview went, it seems to suffice to say that you're going to try to use postgresql first, explain whether or not you really need ACID, and maybe dunk on it a little for an alternative, but still stick with it regardless. But we'll see how that goes.
|
# ? Jul 19, 2021 17:27 |
|
solid strategy
|
# ? Jul 19, 2021 17:44 |
|
I got rejected by Amazon, and rather quickly at that. This time, it was completely zero feedback. That is in contrast to last time where the feedback was completely wrong to apparently what was noted. I have to admit I am pretty surprised because I solved all the problems, so I think it comes down to the behavioral stuff again.
|
# ? Jul 23, 2021 23:38 |
|
interview prep update: sliding windows good Edit: for some reason i'm salty that somebody took recursion + caching which is like ya okay sure and decided it should be named DYNAMIC PROGRAMMING which makes it sound scary and impossible awesomeolion fucked around with this message at 12:06 on Jul 24, 2021 |
# ? Jul 24, 2021 11:46 |
|
E: ^^ 100% agreed On the "scary and impossible" note, does anyone have tips for interviewing for 'High Performance Computing' positions, or honestly just resources explaining what that actually means? I've gone through two screeners prior to the actual interview, but they work on a wide range of projects and so far the interviewers have been general recruiters who haven't actually known what specific project I'm being considered for. It sounds like it's a group that's a mix of working on supercomputer/quantum computing architectures (I guess?) and creating deep learning models to run on them. My background in the latter, so I've gotta imagine those projects are the ones I'm being considered for, but I figure it couldn't hurt to have a better idea of what the rest of it even means. Honestly I'm still kind of confused re why I'm being considered at all, but I figure I should give it my best shot. At the very least it's more experience interviewing and definitely validates just applying for jobs even if you don't really meet the requirements.
|
# ? Jul 24, 2021 23:05 |
|
awesomeolion posted:interview prep update: sliding windows good It was a technique devised by somebody working in DARPA if I remember correctly that had nothing to do with programming. It was a mathematical method he had was working on to figure out how to calculate hard problems. In particular, they were dealing with optimizing schedules. I only got a small look at it since I had to worry about the actual algorithm lottery but I was interested in what it actually tries to do. It is something like constructing a single-state machine that works across identified state variables until you get what you want. It got the term "dynamic programming" as a jargon to let him keep working on it, and eventually did get picked up for computational science to go along with stuff like linear programming. That stuff was much more important when the act of writing and working with code was so finite.
|
# ? Jul 24, 2021 23:43 |
|
"dynamic programming" was the name that Richard Bellman gave to multistage optimization. He was working on military applications, and the officer managing his program hated math and felt that it had no role in warfare. If Bellman had described his project as a type of mathematical optimization, he would've lost funding. Dynamic programming sounds very powerful but doesn't really say much, so it managed to fly under the radar. While the name may be silly, the technique isn't. It's used all over the place in engineering and science. How computer scientists adapted that as a term for bottom-up evaluation of a recurrence relation is not entirely clear to me.
|
# ? Jul 24, 2021 23:50 |
|
Applied for a report writer position. They forwarded me an online SQL skills test where you write, test, and submit queries. 10 scenarios and questions, time crunched for each one, bombed it with a 64%. I'm not sure how to prepare for these types of exams where you're given a tables with 3 rows of sample data and 5 minutes to write a complex query before it kicks you to the next question. *I'm mostly just venting. I know my SQL skills are weak but I think someone with even moderate chops would be pressured with the limited time for each question.
|
# ? Jul 28, 2021 04:13 |
|
With all these tech companies starting to require being vaccinated, how long do you think it’ll be before we start seeing “vaccinated” on resumes?
|
# ? Jul 29, 2021 00:26 |
|
Some people put “H1B” and related work authorization language on resumes and applications so if this turns out to be a long-running thing it could happen Of course people will just write the dumbest poo poo on their resume regardless of logic. I’ve seen “PROUD WHITE US CITIZEN” on a resume. Compared to that a list of vaccinations wouldn’t faze me even a little.
|
# ? Jul 29, 2021 02:39 |
|
|
# ? May 31, 2024 21:57 |
|
csammis posted:Some people put “H1B” and related work authorization language on resumes and applications so if this turns out to be a long-running thing it could happen Shut the front door. Seriously?
|
# ? Jul 29, 2021 02:41 |