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
Guinness
Sep 15, 2004

Once you stop approaching whiteboard coding as a standardized test and start approaching it as an opportunity to do interactive problem solving then it becomes a lot less scary. It's about giving someone the opportunity to ask questions to solidify or narrow a problem's scope, validate assumptions, identify edge cases, discuss trade offs, etc. Often you don't even need to write actual runnable code, but some combination of pseudocode and diagrams along with a good conversation.

I've interviewed too many people who can bullshit with you all day long about technology and programming in the abstract, but when you ask them to do even the most simple tangible things they completely fall apart. I've begrudgingly come to accept that some of the CTCI-style questions are a necessary evil. I hate that it be that way but it do.

I even only ask the really easy ones for most people, and it's still a shocking filter.

Adbot
ADBOT LOVES YOU

Guinness
Sep 15, 2004

asur posted:

You can use any language you want and if you forget some random function that's not an issue, but if you can't write something approaching real code with correct logic then I'm going to fail you.

This, the whiteboard isn't an IDE and I'm not a compiler. As long as your intent is clear and your approach/concepts/understanding is sound, then you're golden. If you're unsure if you can handwave away something you've forgotten the specifics of, just ask. The fact that you ask indicates you're aware of it, and 9 times out of 10 I'll happily let you abstract it as long as it isn't the central point of the problem.

You're unfortunately bound to run into some asshats out there that will nitpick your bracket and semicolon syntax, but gently caress those guys. That shouldn't be the intent, and that's not how I conduct interviews.

Guinness
Sep 15, 2004

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?

A few reasons:

- Start with stupid-easy questions to get a conversation going and warm up. Something that should be a gimme helps boost confidence.
- If someone completely chokes on the gimme questions, I can pivot the interview to be less painfully awkward and embarrassing.
- Often, the whiteboard coding is not the goal of the interview. I'd like to focus on system design, architecture, patterns, etc. The basic coding questions are a sanity check that you can demonstrate the simplest of fundamental concepts in a concrete way. There a lot of "high level" bullshit artists out there that can't actually implement anything to save their life.

Also this

Doom Mathematic posted:

People will stop asking FizzBuzz when people stop failing FizzBuzz. It should be a waste of everybody's time, but here we are.

Conducting interviews for senior positions is a real quick way to cure your imposter syndrome

Guinness
Sep 15, 2004

bob dobbs is dead posted:

I find you get as many non fizzbuzzers in senior positions as junior ones, it's just that you don't expect that

Yeah, it's pretty jarring when someone walks through the door claiming 10+ years of experience and then can't write an if statement or for loop in their language of choice, let alone anything more complicated.

We're not talking some graph traversal algorithm or dynamic programming questions, not anything even nearly like it, as much as I would like to ask questions like that. Literally problems as simple as fizzbuzz that require a single for loop or a couple of if/else statements.

But it happens so often.

Guinness
Sep 15, 2004

New Yorp New Yorp posted:

I think that they worked on teams that were responsible for those accomplishments. There is an entire subset of programmers who do so primarily by copy/pasting snippets from Stack Overflow and massaging it until it works. This was observed when candidates were given internet-connected laptops, an array of development environments, and told "implement <FizzBuzz-equivalent>. Feel free to search the internet, we don't write code in a bubble".

It's this, nearly 100%.

You can often tell when they often refer to "we did this" and "we did that", and if you try to pin them down to what they individually contributed or some significant problem that they solved they start to falter (or lie).

There's a lot of people that barely scrape by getting carried by their team.

I just interviewed a guy last week that came out of the gate talking about all the cool ML projects he worked on and slick user interfaces he created for training them. When I dug in deeper asking about how those components actually worked or were designed, it came out that "well, I didn't actually work on that part..." I struggled to get him to tell me what he actually did work on.

They have enough casual familiarity of the products the team built from being adjacent to them, so they can high-level bullshit you all day long.

Guinness
Sep 15, 2004

What's the deal with third party recruiters being so goddamn cagey about who it is they are recruiting for? If you don't tell me up front who it is then I'm not interested. Are they afraid that I'm going to cut them out of the loop? Or do they just know that they are recruiting for garbo companies and want to get a hook in first?

I'm casually on the hunt, and I'm only dealing with companies I initiate with or internal first-party recruiters. I've got a couple of things lined up already.

It doesn't feel like I am, but am I shooting myself in the foot by ignoring pretty much all third party recruiters?

Guinness fucked around with this message at 01:41 on Feb 15, 2019

Guinness
Sep 15, 2004

Alright thread, I had a great interview last week and I've been scheduled to receive an offer later this week (yay) for a Senior Software Engineer position in my current city of Seattle. I don't have the details yet, but I am trying to prepare myself ahead of time with some market research.

I've been checking out information on Glassdoor, Payscale, etc and they seem to spit out different information with quite a big range and standard deviation around the median. Median base salary seems to be around 140-145k on both, but plus or minus like 50k. Also they don't seem to handle and compare additional comp like bonuses, RSUs, or various matching/reimbursement schemes very well. This is at a medium size public company, and while I have a casual understanding of RSUs and stock options, I've never worked at a public company before so that will be a new consideration. Early on I told them I'm targeting 170 base, but that any decision really depends on the total comp package. We'll see what they come out the gate with.

Any suggestions for some good sources, especially for the Seattle area in particular. Due to being a tech hub and HCOL, national averages or even regional averages outside the urban area are laughable.

I'm already currently employed in a pretty decent situation, so this isn't a make-or-break deal but I am very interested in this as a lifestyle improvement. Looking to aim high, within reason. Worst case I might be able to leverage an offer with my current employer, but TBH I'm ready for a change for more reasons than just money.

Guinness fucked around with this message at 23:12 on Mar 5, 2019

Guinness
Sep 15, 2004

Welp, offer came through and it's real good. Might go back and forth a little bit, but I think this is happening.

Going to be lollers going to my current boss and when he inevitably asks how much it'd take to keep me and I say 75k to even begin entertaining the possibility (not gonna happen).

The market for senior devs right now is bananas.

Guinness
Sep 15, 2004

Keetron posted:

You mean 75 raise?

Yeah, sorry, raise

Guinness
Sep 15, 2004


Heh, for a second there I thought you might have been talking about my company. The one I'm probably leaving here real soon.

I'm an engineering lead at a consulting company very similar to yours, and my report list has been slowly growing from something manageable to now over 10 by the end of April, with no plan that I'm aware of to hire/promote another lead to spread the load. This is just one thing that is indicative of a new, money-hungry, growth-first culture shift that I'm just plain not on board with. I keep getting given new responsibilities and more reports with little guidance, but still expected to bill near full-time on my own senior engineering work.

I was willing to put up with slightly under-market salaries when my workload and responsibilities were chill and the company was growing organically, but they pushed me a bit too far and now I'm one foot out the door.

Guinness
Sep 15, 2004

Good Will Hrunting posted:

I guess your open offices don't have a Sonos that blasts music all day if you consider them "fine".

A VP in my office started doing this to be "trendy" and it got shut down real quick, thank god.

Guinness
Sep 15, 2004

Officially accepted that offer. Have to/get to drop the bomb at my current employer tomorrow. Both looking forward to and dreading it. There's really nothing realistic they could counter with, so I guess at least it'll be easy to be firm about it. Money aside (and it's a big aside), the numerous lifestyle upgrades and relinquishing of people management to focus on technical leadership is so very appealing.

Guinness
Sep 15, 2004

Yesterday was my last day, and this morning has been the first day of "unemployment" for a couple weeks until I start at my new gig on the 22nd. Feels great, man.

The way timing works out, my last two paychecks will reflect a 6% raise from my annual performance review that I didn't really have to do since I gave notice. But that's paltry compared to the ~45-50% total comp increase I'm looking at (almost 220 with RSUs+bonus). Plus I'm just way more excited about the work, and the office is within walking distance so no more car commuting! So fuckin stoked ahhhhhh.

Guinness fucked around with this message at 20:30 on Apr 5, 2019

Guinness
Sep 15, 2004

dantheman650 posted:

When a company can’t or won’t budge on base comp, what else do you all negotiate for? Already has unlimited vacation and flexible hours/flexible WFH. Signing bonus? Something else?

Signing bonus and stock/equity (RSUs, preferably, if public) would be the big ones.

If its a startup, though, the equity may as well be toilet paper. Heavily, heavily discount the "value" of startup equity, or really most any private company unless there is a clear path to an IPO.

Companies are usually pretty willing to offer a fairly substantial signing bonus in negotiations, since it's a fixed one-time cost (excepting clawback situations). My last job offer got sweetened with an extra $10k signing bonus without any hesitation, and that's pretty tame compared to some in the industry.

Guinness
Sep 15, 2004

Assuming you’ve already got a new gig lined up and have got other connections and references in your network, gently caress that guy you don’t owe him anything. If he doesn’t want to play nice, you don’t have to either. Just be aware of what you are doing, but sounds like a guy you never want to work for/with again.

Guinness
Sep 15, 2004

Xarn posted:

Meanwhile, the standard contractual notice in my country is 3 months. :v:

The trade off being, I assume, that your employer can’t just let you go for any/no reason at any time?

Guinness
Sep 15, 2004

I think the whole idea of retaliation from your employer after a counter-offer is overblown, especially in high skilled professions.

But if you’re already one foot out the door, don’t stick around because they finally have you that raise. The job market is too good to settle like that. You’ll probably still want to leave sooner rather than later.

Guinness
Sep 15, 2004

Yeah, most tech company onsites tend to be about 5-6 hours plus lunch. Nothing out of the ordinary there. It can be kind of grueling, but try to stay upbeat and make the most of it. Even if you had what you feel was a bad session with one person, it might not be as bad as you thought and it also doesn't mean that you're sunk, either.

Also at Amazon they often fully intend to throw a really tough "bar raiser" interview at you which is meant to make you sweat and feel like poo poo after.

Guinness
Sep 15, 2004

Maybe I’m weird because I preferred the homework style interview problem for my current job (smaller public tech company) in lieu of a technical phone screen. They said it was a 2-3 hour problem and that was totally accurate. Plus it was all practical skills demonstration, nothing too contrived or esoteric.

The on-site was pretty typically what you’d expect from a big tech interview, but overall pretty well executed.

However I was also pretty targeted in my applications for companies I was really interested in, not juggling a million interviews. I had a decent job and was fishing for a better one.

Guinness
Sep 15, 2004

I was a team lead for a bit over a year, but recently switched companies and went back to a senior dev IC. I don’t really miss it for the time being. I admit I probably was not the best at it, being new and all, but several of my people seemed to like me and I got on great with other management folks. :shrug:

It also really really depends on the company, because “team lead” or “engineering manager” can mean so many different things. It’s also often not in and of itself a “promotion” as much as a first step in the management ladder. It’s not unusual for senior ICs get paid more than first level managers, but upper level managers will definitely make more.

I could potentially see doing it again in the future under the right circumstances. My new company has already dropped hints about it, knowing that I had dabbled before. For now I am keeping it on the back burner and enjoying the relative simplicity of regular dev work.

Guinness
Sep 15, 2004

CPColin posted:

Old company was like, "You can't be a team lead unless you start toeing the company line." and I was all, "I'm not toeing the company line until you take a line worth toeing." and we reached an impasse that lasted until I got laid off.

If you’re in that sort of antagonistic relationship with a company, you definitely don’t want to be management there.

Or there at all. Sounds like you resolved that part at least.

Guinness
Sep 15, 2004

What market are you in? The super hot markets are really quite concentrated in half a dozen or so metro areas.

I don’t personally see any hints of oversaturation where I am. We are still literally importing thousands of people a year to fill tens of thousands of open job postings across countless companies.

Also I do think that there is a higher bar for a more senior person in an interview. It does make it tougher, but on the other hand you are looking at 200k+ in total comp in a lot of these senior roles and companies and engineering teams don’t want to risk a bad hire. Most interview processes I’ve participated in have outright said they anything but a “strong hire” decision should be considered a “no hire”, lest they hire a false positive. Yes it is a poo poo process, but it’s a poo poo process for everyone involved.

There are also legit a shitload of imposters out there. Years of experience are not all equal. A person can have ten years of experience, but it could have just been the same crappy year over and over again.

I am now at about the ten year mark in my tech career and feel more employable than ever, but that could largely come down to being in a major tech hub with way more jobs than people.

Until it all comes crashing down again? :smithicide:

Guinness fucked around with this message at 07:32 on Aug 6, 2019

Guinness
Sep 15, 2004

I’m not going to quote the night club example because it is cringey af, but all the experienced devs I know turn down multiple recruiter contacts per week. Obviously those are not all great jobs, nor would they all lead to an actual job offer, but the market is thirsty.

Experienced folks absolutely get to be picky about which companies they want to even talk to.

Interviewing is a dumb game we all have to sometimes play, and a bad attitude about it will sink you right away.

If we want to fix it, I think an accrediting body of some kind has to exist (think Professional Engineers, Doctors, Lawyers, etc). I don’t know what that has to look like to be successful though, and I could also easily see it being a big old mess of red tape and wasted time. And even my friends in other accredited professions still have intense interviews for a lot of the same reasons we’ve all discussed here.

Guinness
Sep 15, 2004

It's almost like technical competence is just one aspect of many that are weighed when considering hiring a senior developer to work as part of an engineering team and be a leader of projects and mentor to others.

Guinness
Sep 15, 2004

kayakyakr posted:

To change the subject slightly, it would be fascinating to see how something like this could work. There are definitely levels of skill for developers, but how difficult would that be to quantify? There's not exactly an objective, multiple choice test you could study for for programming.

Is there a business in there build around subjectively and anonymously assessing developers and assigning them grades as a way to speed through the first 3 stages of an interview process?

There are a bunch of startups trying to do stuff like this, TripleByte being perhaps the most well-known.

They do upfront tech screening, and then present you as a “TripleByte qualified candidate” at some level of proficiency to companies that they partner with.

I know a couple people who used them with mixed results, but sounds overall like a promising idea.

Guinness
Sep 15, 2004

Shirec posted:

Isn’t a large part of the interview for devs also to see that they will work well with the team, not be a raving rear end in a top hat, and can be relied upon? Even more so once you get more senior and can have more impact?

My company's internal career ladder description of a Senior Engineer is only like 25% programming excellence. Technical competency is just a bare minimum expectation, but is far from the only qualification.

The rest of the qualifications are in the realm of:
- writing effective technical specs and design docs
- being an effective reviewer and constructive critic of other people's specs and design docs
- understand the business goals, needs, and metrics and how engineering fits into solving problems and driving success
- understand how your team and functional areas relate to, impact, and are impacted by other teams and functional areas
- working collaboratively with your team AND across teams/disciplines (i.e., product, design, operations, etc.) to scope, disambiguate, unblock, and complete projects
- being an advocate and motivator of continual improvement in technology and process
- being a mentor and coach to junior devs
- not being a horse's rear end of a person to work with and sit next to on a daily basis

If all you want to do in "beep boop give me perfect spec I poop out code" then you are FAR from being a senior engineer.

School of How posted:

Personally, I'd rather work with an "rear end in a top hat" who can get amazing stuff done, rather than a nice guy who is completely incompetent. This is because I'm not a snowflake who is offended by "meanies".

That you think this is an either-or situation is very revealing.

Guinness fucked around with this message at 22:55 on Aug 6, 2019

Guinness
Sep 15, 2004

Sab669 posted:

The last one I was given was basically, "Go build a slightly feature-lacking imgur". Maybe it wouldn't have taken 20 hours, I suck at estimating project lengths. But it definitely would've taken me way more than 5 hours.

Yeah this is such an unreasonable take home assignment. The scope is way way too big.

The take home our company gives is basically write a small program that:
- fetches some data from a public API
- does some sorting and filtering of the data
- displays the results in an organized way
- handles errors and some edge cases gracefully
- a brief write up about what you did and what assumptions you made
- do it in the language of your choice, but something common that people actually use is preferred

The end product is then used as a jumping off point for a code review and “what if we made this more real” design session at the onsite.

For a senior dev this task should be pretty dang easy and take no more than 2-3 hours, but it should show clarity in approach and code structure.

You’d still be surprised how many folks get wound around the axle on this.

Guinness
Sep 15, 2004

quote:

I think everyone who believes the market is not oversaturated did not come to this belief by their own observations.

My own observation of my own experience well as a half dozen of my dev friends who've all gotten new jobs in the past 6 months is that we've all had nearly 100% interview:offer ratios for senior positions at successful, established companies with generous comp packages.

Based on your own comments and faulty logic, that means the market is not saturated.

But surely it's everyone else that is wrong, not you.

I'm convinced you're just trolling at this point and not interested in improving your approach or attitude.

Guinness
Sep 15, 2004

School of How posted:

In non-oversaturated labor markets, there is very little competition. The interview is only to check that you have the basic qualifications. An example of this is a fulfillment center. I worked at one of those places as a summer job about 15 years ago. Pretty much everyone that applied was offered a job. The interview consisted of asking the candidate if they can speak and understand english and if they can lift 50 pounds. Anyone who answered "yes" to both questions was offered a job. There was no competition between candidates, because everyone that applied was given a job. There was enough jobs to go around for everyone.

:lol:

That's nothing to do about saturation, that's called replaceable low-skill labor. You are not paid to think or be creative or be a collaborative colleague, you are paid to lift and move things because we haven't built advanced enough robots yet.

How you can even possibly relate this to a high-skill, abstract, specialized field like a 10 year software veteran is boggling.

Guinness
Sep 15, 2004

The more he posts the more obvious it is why he can’t get hired anywhere.

Guinness
Sep 15, 2004

I'm really glad I don't work at places that view all programmers and developer jobs as completely generic and fungible. But I'm even gladder that I don't work with other programmers that hold those opinions. Ultimately everyone is replaceable, yes, but not without pain and transition costs.

But we do work and projects that involve more than 15 minutes of work at a time to complete. I guess I can see how if that's what one thinks a desirable programming job is that they'd be frustrated trying to break into a not-poo poo company.

Guinness
Sep 15, 2004

Keetron posted:

I got complimented last month for being a developer that reads a lot of code and then types only a tiny bit before making a PR. I did not dare to say I do all that reading to understand what I am changing as it is knowledge I still don't have after being there for about 8 months. :shrug:

Please please keep doing this. The worst thing is people just jumping right in to something they don't understand and making an overconfident mess of it. In an existing codebase you're likely reading 10x-100x more code than you are writing. It never really goes away, you just get a bit quicker at it as you gain familiarity.

The best PRs are ones that are well-researched, well-executed small code changes with big impact. LOC written/changed is a largely useless metric.

Guinness fucked around with this message at 20:08 on Aug 10, 2019

Guinness
Sep 15, 2004

School of How posted:

In general to figure out how working code works, I suggest putting print statements before and after a function call to see what data is going into the function, and then comes out. From there you can sort of backwards engineer what's going on inside the function.

:perfect:

The junior-est of techniques with limited use cases in complex real world systems

Guinness
Sep 15, 2004

quote:

I guess another way to word my question is: if you had infinite work to do, and no other personal obligations, how much would you spend working?

Assuming a typical salaried position in corporate America, the generally agreed-upon ~40 hours/week, sometimes a little more, sometimes a little less. Even that is pretty padded by overhead and "wasted" office time. Far fewer than 40 actual dev-hours a week. My personal obligations, or lack of, is irrelevant.

There is always more work to do. The reward for finishing work is almost always more work. You've got to self-impose limits or else you'll burn yourself out. That means that yes, deadlines get missed and features get descoped. Managing and negotiating that is part of the normal product-engineering relationship.

I know that I personally hit a productivity wall where just "working" more hours isn't actually generating any value, and in some cases is subtracting value with sloppy code, bad tests, missed cases, spinning in circles trying to debug something stupid, etc. Mental fatigue is very real. So, so, so many times I've just walked away from something I'm struggling with at 5-6pm and come back in the morning and had an "ah ha" moment with fresh eyes and a clear mind.

If your team is consistently working long hours and weekends, that is a staffing and/or prioritization issue for management. That is not sustainable. The more you play in to it and given in to pressure, the more you set the expectation that you will do it again in the future.

A healthy and mature engineering team pushes back on product and management to manage expectations and set realistic deadlines. Management has to feel the expense of changing directions, requirements, and priorities. Management has to feel the limitations of an understaffed or underfunded team. Management has to feel the costs of shortcuts and technical debt. If the engineering org just burns the candle at both ends to deliver on unrealistic expectations and doesn't bubble up the problems to product and management, you're just setting yourself up to do it again.

Not to say there is never crunch time, but that's the exception not the rule.

Guinness fucked around with this message at 22:29 on Sep 5, 2019

Guinness
Sep 15, 2004

Faith For Two posted:

Speaking of being understaffed, how common is it to lose out on talent because they asked for too much money?

Were they asking for too much, or were you offering too little? Was it for sure about compensation, or maybe the candidate got bad vibes about the work culture (speaking of long hours and such) but it was easier to stall on comp?

That's a bit of a rhetorical question, but regardless, you're not going to hire everyone you extend an offer to for any number of reasons. Maybe their expectations are unrealistic, maybe they just didn't love the place after interviewing, maybe they aren't excited by the product, who knows.

Losing one candidate after the offer stage is normal. If you consistently get your offers turned down, it may be time to introspect a little.

Guinness fucked around with this message at 22:34 on Sep 5, 2019

Guinness
Sep 15, 2004

kayakyakr posted:

I would counter, saying, "I like the opportunity, but the salary you offered isn't quite what I was expecting and is giving me pause in accepting your offer. Is there any leeway in salary"?

I'd word it more in "If you are willing to go up to $XX, I am prepared to accept" rather than asking it as a question. If you want $85k, ask for it explicitly. You're in the counter-offer stage, it's best to be direct with hard numbers.

quote:

Also, need to ask about bonuses, cause if it's a big company, up to 50% of your income can come from non-salary income. Indeed, for example, does a 10-20% quarterly bonus along with a longevity bonus that vests yearly after 3 years. In the least, you can ask for a signing bonus to get you to switch.

Also this, but any sort of bonus, stock, or non-salary compensation should be clearly defined and written in your offer letter & benefits package. If it isn't written down, consider it non-existent.

Same thing with any sort of 6-month review/promotion type of situation. If it isn't written down in a contract, it's not going to happen. It already borders on not passing the sniff test, but if they aren't willing to commit to it in writing then it DEFINITELY does not pass the sniff test.

Guinness fucked around with this message at 22:04 on Nov 8, 2019

Guinness
Sep 15, 2004

My computer toucher friends and I joke about how we all will never work at a company that isn’t foremost a software/technology company ever again.

But it’s not really a joke.

Guinness
Sep 15, 2004

RICHUNCLEPENNYBAGS posted:

Are the numbers on that site real? They seem to be way hirer than is listed on other pay sites so I don't know what to make of them.

Absolutely real

Big tech hubs are a hell of a drug

Guinness
Sep 15, 2004

If you’re not desperate don’t take a big pay cut IMO.

It’d be one thing if their leveling was just different but pay met expectations. Something like that can happen especially going from a small to a large company.

But a title reduction and a pay cut sounds like a downgrade, unless you really really want to work there for other reasons.

Sounds like you’re willing to walk away. I’d probably tell them (nicely) that the offered position and opportunities at that level doesn’t meet your bar for moving. Maybe they’ll adjust, maybe they won’t. Either way worst case you keep your current job.

Adbot
ADBOT LOVES YOU

Guinness
Sep 15, 2004

ultrafilter posted:

Junior/mid/senior are the only standardized levels. Everything above that is highly idiosyncratic.

This is true. I've worked places where above senior was any mix of staff, advisory, principal, lead, fellow, and probably some others, and they tend to not necessarily translate to whatever ladder some other company uses.

That said, typically principal is top of the IC ladder and has at least one level between senior and principal, often several.

Title inflation is also rampant at smaller companies... because fancy titles are free.

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