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
Roadie
Jun 30, 2013
Anybody with insights into what things are like at Amazon for SDEs? I've been dealing with an (internal) recruiter, and things so far are going well, but I've heard enough horror stories that I'm more than a little wary of actually going for it.

Adbot
ADBOT LOVES YOU

Roadie
Jun 30, 2013
So, here's a warning for anybody else interested in SDE stuff at Amazon: regardless of your experience or references, they will make you take a programming test with someone watching you through your webcam the entire time. Not an interview or anything interactive, just a "proctor" from a third-party company operating on the basic assumption that you are a cheating liar and you and your computer need to be monitored the entire time.

I told the Amazon internal recruiter that I found this skeevy and discouraging, and in the span of one day they went from "well, I'm not supposed to tell you, but we really think you'd be a good fit" buddy-buddy phone calls to a two-sentence "we have decided not to move forward with your application" email.

Roadie
Jun 30, 2013

FamDav posted:

Could you give dates for when this happened to you? My understanding is that we stopped doing that (and said we stopped) once the broader SDE community found out and pitched a tent.

This week.

Roadie
Jun 30, 2013

prisoner of waffles posted:

Anyone have advice on working with (non-internal) recruiters? I'm in the DC area and it seems like the fraction of recruiters, internal and otherwise, contacting me who actually read my Linkedin profile is... low.

If "Linkedin is a blasted hellscape, not worth your time" is already your opinion, I'm listening for that, too.

The vast majority of all external recruiters are completely useless.

Roadie
Jun 30, 2013
For talk of time tracking, I've worked for a company that did internal time tracking of everything for billing purposes to outside clients. The emphasis was "for billing purposes", though, so the bossman didn't need or want anything more specific than hour blocks at a time and for things to roughly correspond to estimates given to clients, which all worked out pretty well.

Roadie
Jun 30, 2013

Keetron posted:

After agreeing to see me and asking for possible time slots to meet, they ghosted for week. I called them and asked if there was a problem and the response was: "You need to drop 10% in price else we cannot hire you." So I wished them the best in selecting from the remaining candidates. Today they came back, apparently there are no other candidates and they want to meet.

If they're all out of candidates and you're the only option, it sounds like you should raise your price by at least 10% and probably more than that.

Roadie
Jun 30, 2013

toadoftoadhall posted:

  1. I am not a good SE

If you can handle fizzbuzz, you're a better SE than 90% of the "software engineers" out there. Double so if somebody says "fizzbuzz without loops" and you can come up with a different approach immediately.

With the rest, it sounds like you might be better off at a small company (like, real small, 10-15 people) where you can actively see the effects of stuff you work on with a project that deploys to end users regularly.

Roadie
Jun 30, 2013

The Fool posted:

Does foreach not count as a loop?

For purposes of my example? Nah. The point was having the awareness of different language constructs that do basically the same thing but have different optimal circumstances for use. But even if it did there's other simple similar ways:

JavaScript code:
console.log(
  [...Array(100).keys()]
    .map(val => val + 1)
    .map(val => val % 15
              ? 'FizzBuzz'
              : val % 5
              ? 'Buzz'
              : val % 3
              ? 'Fizz'
              : val)
    .join('\n')
)

Star War Sex Parrot posted:

Please not Fizzbuzz again, please.

ALL HAIL FIZZBUZZ

Roadie fucked around with this message at 00:11 on Apr 7, 2018

Roadie
Jun 30, 2013

Good Will Hrunting posted:

Hiring managers, post some of your questions for junior/mid-level engineers. Nobody knows where you work, unless you're at Google really.

A big one from my current position is "What do you see as the strengths and weaknesses of (primary language used on project)".

Roadie
Jun 30, 2013

Jose Valasquez posted:

All languages and operating systems are garbage. Computers were a mistake

Time for an IoT framework built entirely on getting people on Mechanical Turk to do operations on abacuses.

Roadie
Jun 30, 2013
So my new job tried to spring a mandatory arbitration agreement on me a month after being hired, and I told them management I wouldn't sign it because mandatory arbitration is fundamentally awful and a blight on society (yes, literally those words). So, I guess we'll see how that percolates out.

Roadie
Jun 30, 2013
Re: tries, the furthest I've ever gone in interviews with data structuring stuff and optimization thereof was multilayered filtering and search operations on arrays, and the stuff they were actually interested in was in the tradeoff between performance and code clarity and seeing that I got the gist of O(1) / O(n) / O(n^2) differences, rather than the specifics of how [].find() works.

Roadie
Jun 30, 2013

Good Will Hrunting posted:

I did though! In terms of performance and space constraints I did! Just not the best variable names and "structure" I guess!

you didn't have enough FunctionalProblemSolverFactoryFactories

edit: FunctionalProblemSolverFactoryFactory extends AbstractFunctionalProblemSolverFactoryFactory implements ProblemSolverFactoryFactoryInterface

Roadie
Jun 30, 2013

Pollyanna posted:

Staying late for no overtime is a hard pass. Expectations of a >40 hour work week is, too.

:yeah:

Roadie
Jun 30, 2013
Earnings "potential" makes me think they're going to hand you a bunch of currently-worthless stock with a ridiculously low base pay, or have some bizarro bonus structure involving a bunch of sales crap instead of dev work.

Roadie
Jun 30, 2013
For me putting the dog as the primary reason would be a warning sign in a way that 'sick relative' or 'personal health reasons' wouldn't, because presented entirely by itself it seems like some bizarre lack of planning ability (why not just use some vacation time on that?) and/or an indicator that the person applying would suddenly quit at a random time for abstruse reasons.

Roadie
Jun 30, 2013
Job listings are bullshit. If you're already doing the job, you have enough experience to do the job. You also have enough experience to look for other jobs at a similar pay scale, so you should make that clear in as blunt a manner as possible.

Loutre posted:

Another problem is that I'm pretty critical in my current role as the only one capable of supporting half of our production systems, so it's going to be hard to argue that I drop those responsibilities.

That's their problem, not your problem.

Roadie
Jun 30, 2013

redleader posted:

I don't know anything about this org except that I hate their business model.

Now we just need a Black Mirror episode where somebody has a job interview on the same day all their clothes get repossessed.

Roadie
Jun 30, 2013
My company has whiteboards in interviews, but it's less "make code", more "give us an idea of how you would do X, and you can use this whiteboard if you want". It's mainly just to filter out coders who can't fizzbuzz or (as has happened recently) to filter out UI/UX people who can't manage to actually come up with anything of substance when presented with "what workflow would you make for these six requirements".

Roadie
Jun 30, 2013

Che Delilas posted:

I should also note that these people never seem to have anything to show as an alternative to whiteboard coding, and they can never talk in specifics about what they did at their old jobs and why they made some of the decisions they did. It's all bullshitting on every level. I hate coding questions, for all the reasons mentioned, but it certainly feels like there are a lot of frauds who don't want to lose their seat on the gravy train in this industry. How the hell do we weed them out if we don't ask at least one question about one of the core job duties they're going to have?

It's not just coders. My company had one UI guy interview who couldn't manage to give us anything at all on his working process beyond "I would make an initial mockup and then iterate with feedback" even when presented with fairly specific "we're not really sure what to do here???" UI problems we currently have.

DONT THREAD ON ME posted:

But maybe they couldn't get through FizzBuzz because white boarding sucks?

I'm one of the people who really struggles with white boarding in an interview (but I have no problem doing it with real coworkers). I could see myself failing FizzBuzz in an interview setting, even though it's a trivial problem that I can solve in minutes in a comfortable setting. I am perhaps an extreme case, but I've no doubt many others struggle a lot with this.

Fizzbuzz doesn't need a whiteboard. "Oh, you loop through, if clause modulo 3 equals zero and 5 equals zero fizzbuzz, if clause modulo 3 equals zero fizz, if clause modulo 5 equals zero buzz, else print number." At least personally, that's literally all I'd be looking for an interview with one of the real shallow fizzbuzz-type problems.

Roadie fucked around with this message at 21:52 on Feb 3, 2019

Roadie
Jun 30, 2013

Pie Colony posted:

No, I'm saying it's fine that people fail FizzBuzz. But it was an exercise literally designed for testing the very bare minimum of competence in coding. If someone passes it, okay, you just spent time establishing they are at least the very bare minimum competent at coding. Why would you not want to ask a problem that is at least closer to the minimum of competence you are looking for in the position?

AbstractSingletonFizzBuzzProxyFactorySimpleBeanFactoryAwareAspectInstanceFactory

Roadie
Jun 30, 2013

The Dark Wind posted:

Question for you oldies: How important is your current experience vs previous experience for a job? Not exactly sure how to phrase this, but here's an example I'm thinking of:

Say that a few years ago you worked at a place that was really focused on React and other front end work. After that you started working at a place mainly doing back end work, maybe in Java or Python or something like that. Now, you're looking at positions again because you want to go back to working in react. Would employers count the the few years outside of the react world against you, or would the simple fact that you can list jobs/projects in the past that used that technology be enough to have employers be interested in you?

Even in a mostly front-end shop, you gotta have somebody who can comfortably work on the REST endpoints or GraphQL server or whatever.

Roadie
Jun 30, 2013
I just got my first rejection from Amazon for an FEE role, based on a 1-hour interview with somebody who had a crackly mic the whole time and knew nothing about the team I was theoretically applying for. Feels like a milestone in my career by itself, really.

Roadie
Jun 30, 2013
Most of Angular 1, like the entire dependency injection system, exists almost entirely to work around the limitations of the 'use Gulp to concatenate JS files together' pre-Webpack/pre-module approach. The rest is a watcher-based render engine that has incredibly terrible performance as soon as you have an even moderately complex page.

Roadie
Jun 30, 2013

Hughlander posted:

Well now they just need a visa category that lets me keep my US job and get out of this hellhole.

Like I said I'm pretty sure they'd need a literal "Working remote for a US company" class Visa.

It's something that I find weird doesn't exist as a visa category already anywhere I've looked, given the obvious benefits to the country of somebody getting a foreign salary but spending all the cash locally and paying local taxes.

Roadie
Jun 30, 2013
So, I interviewed with Signal (the messaging app guys) for a senior dev position, working on their desktop app. Got past the code screen "homework" (simple JS stuff, slightly more complicated responsive page design), got through a code interview that was obviously meant to get at some of the wacky idiosyncrasies of JS to show that I knew what I was talking about, was told that the first guy was so eager about me that they were skipping me straight to an interview with the CTO...

...who, instead of getting at anything actually relevant to the job, gave me a binary tree question.

As you can imagine, and like basically 99% of anyone who's ever worked in the real world of software dev, I haven't touched binary trees since my second or third year of college, and so I had to muddle my way through it for most of an hour. I apparently didn't muddle well enough, since I got a rejection. Really, though, I'd have been seriously dubious about it even if I was offered the job, given the kind of bizarro internal culture they must have to have the CTO asking low-level algorithm questions instead of literally anything else.

Roadie
Jun 30, 2013

Hadlock posted:

Sounds like the CTO was telling the front end manager to not skip the vetting process and you got stuck in the crossfire/were made an example of

That said, signal is dealing with pretty heavy duty encryption designed to ward off national intelligence agencies etc. Edward snowden level stuff. If there was one place that the front end team should know how to parse a binary tree, it's probably this outfit.

If somebody working on almost anything is hand-crafting binary trees for any purpose, they're doing it wrong. Probably incredibly wrong, given the potential for bugs and slow access compared to data storage methods worked on by entire teams of people specialized in that (which is, you know, the single case where people should actually be doing that).

Roadie
Jun 30, 2013

ultrafilter posted:

There are good BST questions and bad ones. Do you remember what they actually asked you?

Adhemar posted:

I agree, but op said “touching” binary trees, which is not the same as handcrafting one.

The interview problem in this case was, indeed, making code to hand-craft binary trees with certain criteria, in a coderpad (no REPL or anything else to actually run any code). By later the same day I'd figured out much simpler ways than what I muddled through, in what was in retrospect one of those "if you know the trick it's obvious" things that just filters for people who have run into that particular Leetcode problem before.

Roadie
Jun 30, 2013

Plorkyeran posted:

If you're at the stage of talking about money and they have any issue at all with telling you how much runway they have that's a pretty big red flag.

In my experience, startup companies that are confident about this will often just straight up tell you, once you get past the first screening interview, "we have 24 months of runway and we're planning X and Y to extend that" (in high level terms) as a selling point for the job. Even if they don't specifically tell you, it should be easy to get the PR-speak version from whoever your contact is at the company. If anybody on the hiring side is hesitant about giving you that much, I'd take it as a huge red flag.

For COVID specifically, I'd personally be wary of companies that were only created after this all started. See, for example, the many tele-education startups that are going to mostly evaporate the moment it's safe to put kids in school again.

Roadie fucked around with this message at 07:32 on Aug 26, 2020

Roadie
Jun 30, 2013
That degree of failure makes me :eyepop:. Literally all you need to get efficient multi-million-row handling for most realistic use cases is just knowing when to use which kind of join or subquery, when and how to efficiently paginate your lookups, how to set up good foreign keys and indexes, and how not to footgun yourself by trying to outsmart the query optimizer.

The pagination stuff goes double on the frontend. If you're trying to load 50,000 records in the first place something has already gone wrong in the design phase. The human eye can't even make out that much data, so why aren't you either paginating tables or using some kind of interpolated averages for graphs?

Roadie
Jun 30, 2013
As somebody working in the web world, I find somebody particularly useless about interviews for web-related stuff doing random algo questions and never things that actually relate to the web app work they're hiring for. I've done all sorts of wacky stuff for web apps all the way down to reimplementing some aspects of TCP connection handling in JS for a truly weird Chrome OS app, but I've literally never had to do anything similar to interview algo questions in actual work. It just makes it obvious that the companies asking them for those kinds of positions don't actually have any idea of how to actually test for the sort of work they're doing.

† bigcorp API specifications are completely hosed up sometimes

Roadie
Jun 30, 2013

downout posted:

I've found quite a few full stack job postings that clearly are targeting more front end focused experience. It's also a need I've seen regularly in teams I've been on (full stack but very FE qualified). I don't know about the pay, but I've seen them!

For a lot of basic CRUD-type stuff there are many, many more subtle pitfalls in the frontend work than in the backend, plus all the obvious management bikeshedding is going to be about the frontend workflows.

Roadie fucked around with this message at 04:09 on May 28, 2021

Roadie
Jun 30, 2013

Hadlock posted:

Your manager is mad because they were underpaying your peers? That sounds like a management problem. There's a real easy way to prevent this, and it's to pay all your employees fair wages. The correct response to them being mad at you was to kick them in the shins, this isn't your fault

:yeah:

Roadie
Jun 30, 2013

Doom Mathematic posted:

The major lesson I took away from DDIA is "For the love of God, don't make a distributed system."

Many companies assume they must build stuff like Facebook or Google do and so wildly overcomplicate systems that could be done much more simply with one big Postgres database and a couple of load-balanced VMs.

Roadie
Jun 30, 2013

New Yorp New Yorp posted:

If they're well designed and use versioned APIs, it's so you can easily roll out changes to a single service without disrupting other services and reduces the cognitive load to work on because each service is a small, self-contained entity with a clearly defined scope and a relatively simple input/output model.

If you do it poorly it's far worse than a monolith because you have all the problems of a monolith combined with all of the problems of microservices. I call it a distributed monolith.

Everyone does it poorly.

Roadie
Jun 30, 2013
ORM-based systems inherently suck in a lot of ways, so they're kind of a bad comparison point to use in the first place. A monolith with Rails or Django or what have you is going to be far, far less performant than a monolith with reasonably competent hand-written SQL, even with an otherwise identical architecture. As long as you're being smart with your queries, you can work with hundreds of thousands to millions of rows before you even need to put serious attention into sharding and read replicas, let alone anything more complicated than that.

Steve French posted:

there's enough variety in the systems we are running that at the very least _some_ of them must be deployed separately to have any semblance of efficiency due to differing resource requirements.

I'm not convinced that this gets you anything all that useful compared to, say, just having a monolith with multiple instances with different resource allotments and being smart about what workloads you route to which instances.

Roadie
Jun 30, 2013

Rebus posted:

My company is happy to pay to get new hires but it's incredibly difficult to get them to even the playing field for the guys who have been here for years.

This has already been the case in the US for a long time. It's a joke but also extremely true that the easiest way for most software dev folks to get a raise here is to switch jobs every two years.

Roadie
Jun 30, 2013

Hadlock posted:

I keep my phone on silent 99% of the time unless I'm expecting a call back, or some kind of scheduled call

That said,

1) people do keep their ringer on (like my wife, her dad has chronic/terminal health issues) and if you're going to make the conscious effort to send an alert to their phone, doing it during regular business hours and not in the middle of the night in their local time zone is, at the least, a reasonable ask. This guy isn't recruiting for McDonald's fry cooks, unsolicited SMS reeks of desperation and amateur hour

2) my phone number has been on the federal Do Not Call List since, I'm pretty sure, the literal day of it's inception

I don't mind the emails, that's an asynchronous form of communication, and nobody is going to email you to let you know your family member is in the hospital

:yeah:

Roadie
Jun 30, 2013
Nest.js is generally good. It's one of those libraries where it's obvious it got started from somebody trying to W, X, Y, and Z simultaneously, getting ticked off that it's frustrating and time-consuming to actually try to do all of those things at once in JS/TS (unit testing with dependency injection, GraphQL, OpenAPI, Typescript, RabbitMQ or websocket listening without needing a separate process for it, clean controllers for in-server event subscriptions, etc), and deciding to make a library to better enable it.

They've got a handful of obvious dumb decisions—for example, naming non-http messaging "microservices" and baking a specific JSON format into them by default. With that said, most of those dumb decisions can be easily worked around, and if you want Typescript plus OpenAPI or GraphQL without duplicating with your type definitions it's one of the few libraries out there that lets you easily do that without it being a big pain in the rear end that needs extra build steps.

Roadie fucked around with this message at 23:50 on Jul 20, 2021

Adbot
ADBOT LOVES YOU

Roadie
Jun 30, 2013

Pollyanna posted:

The obvious answer is "no", and that means that these questions are really just gatekeeping shibboleths testing to see if you've seen a specific problem before. They don't test anything else.

:yeah:

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