Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
awesomeolion
Nov 5, 2007

"Hi, I'm awesomeolion."

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!

Adbot
ADBOT LOVES YOU

Hadlock
Nov 9, 2004

PM sent

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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.

Star War Sex Parrot
Oct 2, 2003

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

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

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine

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.
https://twitter.com/garybernhardt/status/600783770925420546

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine
it is pretty funny how many developers have conned their management into thinking they need to be playing with nosql though

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

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.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Resume-oriented programming.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

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!

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

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!

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

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.

asur
Dec 28, 2012
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.

spiritual bypass
Feb 19, 2008

Grimey Drawer
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

asur
Dec 28, 2012

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?

Am I missing something basic? It sounds ridiculous for any nontrivial business application

Document stores are a subset of KV and commonly support querying by secondary index along with other features.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

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?

Am I missing something basic? It sounds ridiculous for any nontrivial business application

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.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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".

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.

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.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

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.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

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.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

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.

oliveoil
Apr 22, 2016
E: wrong thread

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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?

Guildenstern Mother
Mar 31, 2010

Why walk when you can ride?
Many hiring managers are gamers and if there's one thing gamers love its bars going up.

Xarn
Jun 26, 2015

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 :v:

Armauk
Jun 23, 2021


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."

csammis
Aug 26, 2003

Mental Institution

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.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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.)

awesomeolion
Nov 5, 2007

"Hi, I'm awesomeolion."

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.

oliveoil
Apr 22, 2016

awesomeolion posted:

Designing Data Intensive Applications

Is that really something you need to memorize for system design interviews

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


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.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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.

barkbell
Apr 14, 2006

woof
solid strategy

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
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.

awesomeolion
Nov 5, 2007

"Hi, I'm awesomeolion."

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

foutre
Sep 4, 2011

:toot: RIP ZEEZ :toot:
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.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

awesomeolion posted:

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

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.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


"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.

Hughmoris
Apr 21, 2007
Let's go to the abyss!
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.

jabro
Mar 25, 2003

July Mock Draft 2014

1st PLACE
RUNNER-UP
got the knowshon


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?

csammis
Aug 26, 2003

Mental Institution
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.

Adbot
ADBOT LOVES YOU

jabro
Mar 25, 2003

July Mock Draft 2014

1st PLACE
RUNNER-UP
got the knowshon


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


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.

Shut the front door. Seriously?

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply