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$3,400 per month for bandwidth bills alone, and since we don't believe in shoving popup ads to our registered users, we try to make the money back through forum registrations.
«5 »
 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. Thread: help me evaluate a job offer. Boston, 92k base, some sort of bonus (historically ~10%), ESOP 17%, 5k signing/relo. Is this terribly low for mid-level? I have a somewhat job history; current resume skips around every ~10-15 months going back to graduation in 2011. I'm not used to room mates, and I know housing there can be a shitshow. What would a 700-900 sq ft apartment/condo look like on the monthly somewhere close to where I would want to be? Where would I want to be? # ¿ Mar 2, 2016 00:03

MeruFM posted:

that's a pretty high ESOP.

If it's a decently old public company with relatively stable stock (not groupon/zynga), then the offer sounds okay. If there's any chance they're worth nothing, then don't bother unless the work really interests you.

edit: also make sure the contract allows you to sell soon so it's not all concentrated

Offloading the company equity would be somewhat difficult. Privately held/employee owned; fully vests after 5 years, they buy it out if I leave.

They also reimburse one course/semester which I could leverage toward a masters.

Forgot to include my present situation.. Right now I'm making a fair bit less (similar cost of living to Boston) making bad candy crush clones for a small games company. I anticipate enjoying the work more than my current job.

Seems like the consensus is that it's a little below market, but not grossly so. This is (sadly) a step up for me anyway, so I'm leaning towards taking it.

Thanks thread; if you want to follow the e/n I'm sure I'll eventually drop by the coding horrors thread.

Munkeymon posted:

I currently work for an ESOP and I'm not sure how I'd put a percentage on its contribution to my comp, but it's a recent transition for the company so maybe that's due to my inexperience?

The org I have an offer from gets appraised yearly and drops a flat % value of your base into an account for you.

Not sure how others work, but it should be pretty easy to derive either by them stating explicitly they give you X% of your salary or by multiplying the amount of stock by the stock price.

e: I have no idea what happens when the stock pool runs dry.

leper khan fucked around with this message at Mar 2, 2016 around 16:44

Good Will Hrunting posted:

I still don't believe people fail anything that easy in job interviews. I just can't wrap my head around ever asking something that absurdly simple.

I don't understand it because didn't they need to pass some sort of screening before that point? How do you pass the written/phone tech screen and then completely dump core when asked a simpler question in person?
Or do some organizations not screen prior to the on-site?

ultrafilter posted:

One of my former coworkers interviewed a candidate who, when asked about the complexity of a fairly simple algorithm, told him that it was complex because it had a lot of loops.

I once interviewed for a position and answered that an algorithm I wrote ran in amortized constant time with a worst case linear time. I then had to spend 20 minutes explaining amortization to the interviewer because they were arguing about it not being constant time. I didn't receive a follow-on interview.

I had another interview where the CTO of a startup asked me what the difference between a class and a struct was in C++. I answered his trick question correctly (essentially none; default private vs default public), but I think he was under the misconception that all structs were POD types. I didn't get an offer.

Related to the complaints of unqualified applicants, how do these people get into the position of hiring candidates? Who would work for them?

necrobobsledder posted:

Had that done for my current job at a Fortune 10 and for a prior job where most of the clients were Wall Street or other financial institutions.

I also had it done (twice!) for my clearances in defense as well contractor and as a govie. Fuckin' OPM lost my fingerprints and so I'll probably have my Touch ID compromised on my phone someday given that all 10 of my fingers are on file. I stopped doing government work as policy to keep myself from stabbing myself with a butter knife but it'll follow me to the grave in this respect.

Pretty sure you can change your fingerprints by stabbing yourself with a butter knife. Sounds like government work could solve some of your problems.

RICHUNCLEPENNYBAGS posted:

I'm in kind of a weird position I think.

I've been doing software development for three years now. No prior background but I've led a few successful projects from zero to production now. I've officially been a software architect for a couple months (I was ready to leave but was offered a promotion and a big raise to stay). I'm making low six figures now (from what I can see not great for a software architect, but being a software architect after 3 years experience isn't really typical and it's high for a regular software engineering position).

Anyway, my organization has some issues outside technology that are starting to make my work stressful, so I'm thinking about getting into the job market again.

What I'm wavering about is, I have a pretty short work history for my position and my company is rather small (at our peak we'll have 3 developers working on something at a time). It seems like it's pretty unlikely that I'd be able to be "software architect" at a much bigger company. Does it look like I'm going backwards, career-wise, if I end up taking a "software engineer" or similar title? I feel like maybe I could reasonably try to be a "senior" or "principal" engineer or something like that, given my current status, but I have a hard time finding people with similar situations to me so I don't know how this looks to people on the outside.

My experience is mostly C# with MVC, WebApi, and angularjs if it matters.

Optimize your career for what you want, be that titles, money, or interesting projects. It's relatively easy to improve one of those at the expense of the other two. It sounds like up to this point you've been optimizing for titles.

 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. My favorite part of those questions is that in 90% of cases an array is faster than whatever twee data structure due to less overhead on the memory bus. Second favorite part is that in 99.99% of the remaining cases you'll be using an abstraction library for it anyway. # ¿ Mar 15, 2016 00:04

I found a really interesting position I want to pursue but the only option might be to do it as a contractor with no benefits. Are there any good resources online for estimating how much and how much of a hassle it is to do insurance and all that yourself? Adding up the typical costs of health insurance, vacation, and 401k matching it seems like you'd need to be making a solid $25,000 more as a contractor than salaried. However I don't know if that vastly underestimates it or not, or if your taxes become a nightmare too. I'm at the stage where I'm entertaining salaried positions between 115-135k, but this position is contractor at 60-80k ($124,800-$166,400). Is this comparable at all? How does 60k == 124k? Based on the rates, the contractor position would be like making 45-60k salaried. Also don't forget the tax disadvantage to contracting vs salary. mrmcd posted: Also Google has a whole process beyond just 5 hours of difficult whiteboard code problems. There's a structured way to give interview reports, you meet with people from many different teams and product areas, the hire decisions are made by committee consensus, and hiring managers for headcount don't get to approve/deny hiring decisions, don't screen for "culture fit". They explain all this to candidates too, and are very open with what to expect and the skills they are evaluating, and even offer pre-interview coaching sessions. If you're paying attention motivated you can do a lot of effective pre-interview preparation to make sure you preform at your best (which arguably is a really good job skill). I met with more than a few companies in retrospect that were just going "Google tortures people with whiteboards for 5 hours, let's do that!" and then deciding to hire based on whether$important_manager liked you or not. I even had one company that made it very clear first thing in the morning that candidates would only be invited to lunch and the afternoon sessions if they sufficiently impressed people in the morning. I'm so grateful I was good enough to be fed before another 3 hours of being locked in a room...

Google is also the only company that offered to run through their feedback and tell me where I punted the interview.

Volguus posted:

Hmm, I was told that, since the hiring decision is done by a committee , they don't release the details of their decision, the why's. Could it differ for some people? Maybe different countries (they have offices everywhere) have different rules?

The feedback wasn't exceptionally detailed. It was basically: "you really punted on that one problem, huh? You were still really close; you had on definite yes, two positive, one indifferent, and one no. If you had another definite yes, I would probably be giving you an offer right now. Try again next year
Also, study up on graph structures maybe, and try not to punt next time."

e: this was a few months ago

vonnegutt posted:

Just to be clear, when I said I set up a test framework, I meant I added a preexisting test library and a config file and wrote some example tests. I'm not crazy enough to try to roll my own!

I took a look at one of Michael Feather's talks about working with legacy code last night, and it makes sense. Don't start changing existing code immediately, add any new features properly (follow language and framework conventions, test thoroughly) and isolate them from the legacy code base, and start writing tests to make sense of what's going on.

The codebases I've worked on have been fine up to this point, but I have never seen anything like this. Almost all the code is in one file (in a framework that highly recommends against this) there's dead code all over the place, both commented out and not, and the version control consisted of one massive commit done about once a month.

I would recommend purging all commented dead code. No telling how long that's been there or what's changed in the interim. I'd then remove other provably dead code.

Good luck with it.

Plorkyeran posted:

I've never had a boss be a dick to me or chastise me over a fuckup, and it's not because I've never hosed up.

There are two people on my list of individuals I'll never work with again.
One is an incompetent that stole code and claimed trivial problems weren't solvable.
The other is an old boss who at one point called me at 3AM Saturday (drunk) because a coworker broke the build after I went home on Friday (and proceeded to threaten me after pointing out the commit that caused the issue because he liked said coworker). I wasn't on-call. Among other transgressions.

So I'm glad you've been lucky I guess.

There are plenty of other industries that pay people for what's in their head rather than how they move their muscle. Software is the only one I've ever seen that coddles its employees to such a degree. Don't get me wrong, I enjoy the perks, but I've noticed that there's a soft of a cult of the man-boy that's pervasive that I really detest.

I would absolutely agree that over-sharing, over-sensitive, emotionally stunted man-boys and their whining gives programmers a bad social reputation.

I was under the impression that the un-sharing, insensitive, emotionally stunted assholes and their abrasiveness gave programmers a bad social reputation.

God forbid people care about each other or trust people who they spend 8+/24 around with their problems. I'm sorry you've ever had to listen to someone share their feelings. Have you talked to your therapist about why this bothers you?

Pollyanna posted:

Come to think of it - how common is it to give a junior developer with ~2mo experience unsupervised access to your server farm's build scripts and tell them to complete an action on their own? I'm wondering if that's not actually kind of a bad idea. Not even I would be comfortable with that.

What's the problem here exactly? Even freshers should be able to poke around builds and get some things done.

 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. That time someone walks into your office for advice on a project that sounds way cooler than everything you're working on. I guess that's my morning. # ¿ Jul 25, 2016 13:25

Hughlander posted:

I think I've moved up far enough to completely hate these. Every time I have to deal with other people's salary I get a bit depressed over how little they're making and a bit guilty over how much I am. Like a guy making just a hair over 1/3rd of me going through a divorce and wondering how to fit two kids into a one bedroom apartment near day care, while my biggest concern is remodeling a second house for rent.

Isn't the answer to his problem "ask for a raise (and get a 2br near day care)"? Not that you'd be able to tell him that if he's working under you..
Failing that, until you get pretty far up the ladder, there are generally jobs you're qualified for that will pay more.

There's no good reason a competent software developer should be struggling with money. If anyone here is, look for another job. Don't tell the recruiter what you make when they ask. "That's privileged information I'm not able to disclose." Is a good line that works. If you know you're making above market, maybe do tell them, but you should have empirical evidence that you're currently above market.

There are reasons to not always take the highest paying option; we have the good fortune of being in a position to do so and still be paid a good salary.

MeruFM posted:

I also prefer it much more to the "we like you so you get the job" method

lol if you think other methods aren't thin veneers over that anyway

TooMuchAbstraction posted:

Er, no, the classic problem is "I have an array of numbers that may be positive or negative, and I want you to find the subarray of contiguous elements of the array, that sums to the largest possible number." E.g. [4, -5, 3, 0, -2, 8, -6] would require you to return [3, 0, -2, 8]. Or alternately, you're required to return the sum, which is 9 in this case.

This is reasonably straightforward for 1D arrays once you know the trick, but I'm not really sure how I'd go about extending that to 2D or larger dimensionalities.

It's pretty easy to brute force by walking the space for every window of total dimensionality D in sequence from 1 to dim_x + dim_y + ..

It's not immediately clear to me if there's a trick to cut down on the checks of the larger spaces by knowing the values in the smaller spaces, but there could easily be such a method. It feels like there should be, but

apseudonym posted:

This looks like a pretty trivial dynamic programming problem...

JawnV6 posted:

That feeling is when you say "dynamic programming"

I've been given sample problems with a 16 bit and 32 bit timer available and had to justify why I was using the 32. I also got burned on volatile because a vendor IDE hid all those away and I got complacent, forgot to mark HW resources with it. const-correctness is another senior question, you've probably had something that it would've caught and can at least articulate the benefit.

You sound more than ready TMA. Good answers, clear reasoning, admitting when you don't know something . And finally, even if you blow this one, there's more lined up soon.

Well yes, but I meant pruning chunks of the future search space, not quickening lookups for the old space. Dynamic programming doesn't stop you from needing to walk the whole tree.

apseudonym posted:

It feels like the same dynamic programming approach from 1d scales to N dimensional pretty easily. No?

There's a trick in the 1D one where you can grow/shrink the window without looking through the whole search space, unrelated to marking old solutions. In fact you only ever need to hold onto the current window and the best known window. It runs in linear time, examining each node only once. The subproblems never repeat, so I don't see how dynamic programming is applicable.

Always keep track of the highest window and its value. Depending on constraints, either start with the empty set or the first value. Expand by one to the right. If at any point you go negative, start over at the next index. This works because if you don't go negative, the total contribution of the prior is positive and then by definition helps grow the total larger. If you do go negative, the prior does not, and you have found the largest consecutive subset within the prior (your currently held value). You then only need to see if the prior or the pending holds a greater value. Totals of zero will either continue or be cut depending if you want to maximize or minimize the length of the elements in the subset sum.

It's not obvious (to me) how to expand that to N dimensions and prove its validity, though I do not doubt it could be done. Sadly greedy algorithms are fairly useless if you can't prove their validity (at least for the proposed context).

Dynamic programming would shorten the time it takes to brute force the full search space, but doesn't help in pruning that space. The best algorithm I can think of and prove easily still requires looking at all potential sub-matrices.

It's entirely possible I'm missing some trick, and I haven't given it too much thought..

e:
I guess you could call holding onto the value of the working set dynamic programming, but that feels disingenuous to me for some reason.

leper khan fucked around with this message at Aug 2, 2016 around 02:42

 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. I would expect everyone programming in 2016 anno Domini to be able to work with more than one core of a processor at a time. # ¿ Aug 11, 2016 11:29
 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. How do I tell someone (that is in charge of projects I'm on) that they are disgusting and that maybe they should wash their hands before using shared mobile devices? Or at least the same day. Wasn't sure if to post this here or in the coding horrors thread. # ¿ Aug 11, 2016 14:27

sarehu posted:

I know somebody that went to work in finance in Chicago straight out of college, he bought a Bosendorfer as a graduation present for himself. That was in 2009. He seems to have friends.

I don't know what a Bosendorfer is but it sounds expensive.

Most of the people I know working 80+ hour weeks don't have (or at least don't interact with) friends. They're also in games and not pulling 350k.

My friends that jumped into finance straight out of undergrad got ~125k in NYC if I remember. 350 seems like a crazy number for someone at the junior or mid level.

A MIRACLE posted:

I mean don't you need a PH.D. in math for a quant job?

You can get a job writing code for quants out of undergrad. You're basically one of their research assistants or w/e.

Not everyone at hedge funds is a phd. Also lol autocorrect tried to turn phd into old.

Good Will Hrunting posted:

I'm not ever supposed to feel like I'm prepared for the more daunting interviews right? Cause even after prep I feel the most intense imposter syndrome ever.

You're not just going to kill it, you're going to drop a bomb on your interviewers and end the war.

the talent deficit posted:

residents and associates are paid little enough that they are almost always worth having around if you have busy work for them to do. once they get past that stage they are all essentially contractors who only get paid if they produce

doctors and lawyers arent really comparable to programmers, except for maybe contractors

So the top 25% are busy swimming in their scrooge mcduck pools and the bottom 25% are better off working at walmart?

RICHUNCLEPENNYBAGS posted:

I have no CS degree and have been programming for two or three years and a few months ago pursued one of these senior positions and got it. So I guess what I'm saying is maybe give it a shot.

I legitimately do not understand how you could be capable of mentoring junior and mid level engineers, but congrats I guess. Or maybe your org is relatively small and doesn't to the I-II-III-IV-Senior I-Senior II-... thing?

I wish I understood title inflation so I could use it to my advantage.

If you have a hated developer and you're a senior or lead then you're failing at your job. You should be improving the quality of code that your juniors produce and developing them.

Also, I never learned Big-O but can still understand algorithmic performance implications. It's just the notation that never made it in.

There's really nothing to it if you can classify the asymptotic runtime of a subsection of code. Just add everything up at the root level where the sum operator is the max function.

Big-Omega is similar, but provides a lower bound instead of an upper bound; eg, best case running time.

If something is Big-O and Big-Omega of the same function, it is Big-Theta of that function.

Remember that shortcuts like "loops multiply the current counter by N" aren't necessarily correct (or at least don't provide tight bounds). It's entirely possible to nest a loop within another loop and still have O(N) runtime.

RICHUNCLEPENNYBAGS posted:

It's probably worth noting that people use Big-O (technically incorrectly) when they really mean big-theta all the time.

Those people are bad people. Though I only rarely see proofs, so it's hard to judge the veracity or your claim.

ultrafilter posted:

f(n) \in \Theta(g(n)) implies f(n) \in O(g(n)), so it's not strictly speaking incorrect. It's just not the strongest claim they could be making.

I took the statement to mean people think O() is a bound above and below, not that they make only claims on the upper bound.

Theta requires a proof of the lower bound, and if you don't care about the lower bound then you don't care about it..

It is absolutely not technically incorrect to say something is O(f(x)) if it is Theta(f(x)), especially if Omega(f(x)) has not been shown.

Rocko Bonaparte posted:

You think these people that want to do all this architecture stuff will give us something new? Some of them have been pushing the same poo poo for over a decade too.

I can sort of understand not wanting to let a junior dev declare whatever publicly visible methods on an interface, but the concept seems pretty crazy and not typical in my experience.

Do they also scream bloody murder if you declare non-public methods or classes? Because if so I'd just go find a job that lets you do your work..

The March Hare posted:

drat, I gotta level up. I'm pulling like 85 total w/ my annual bonus without considering my worthless stock at some startup also in NYC. This is technically my 2nd developer job on my resume, but for the purposes of actually doing/learning things it is my first with no formal education or anything. Would be nice to be pulling 250~

Pretty sure it's extremely rare to pull 250 early in your career.

But I have a pretty garbage salary track record myself, so what do I know. I also wouldn't mind pulling 250, but I can't complain too much about where I'm at (low six figgie club, but maybe my options will be significant [lolnope] when they start vesting early next year).

Monkey Fury posted:

I signed and sent off my offer letter -- am genuinely happy with the offered base salary, the vesting schedule, annual bonuses, etc. I'm not a complete mark for not trying to negotiate anything better -- like a signing bonus -- right?

If nothing else, always ask for 15% more than the offer and you'll probably get like 5-10. Always haggle, they expect it.

Never fail to do this. The worst thing that happens is they say no and then you maybe say yes anyway.

mrmcd posted:

From what I hear they already have to shoo away the MTV campers in SFO on Fridays like so many persistent homeless, because nobody wants to deal with bay area traffic on a Friday and everyone wants to start their weekend in the city. Basically unless you can find a team that's already there with open headcount to take you, don't assume you're the first person to think "Man it'd be way nicer to work out of SF instead of dealing with the traffic disaster that is the bay area, I'll just get a desk here."

I am in the Cambridge/Boston office this week it's very nice. They are so proud of their toy subway system here it's adorable. Every area is styled like the train system or Boston history trivia.

Did they do the whole "FIRST subway in the United States of America! " thing?

Seems more interesting than my building's decor with abstract canvas that looks expensive but probably wasn't.

Rocko Bonaparte posted:

He also did say two loops will always be n^2. I mean, always. I think that is absolutely false. If you try to iteratively implement many of the log n stuff that would normally be recursive, you'd wind up with loops like that, but the logic inside them is not revisiting everything across a square domain.

I usually use two for loops when implementing an expanding/collapsing window in O(N) which comes up in these toy problems pretty regularly.

code:


}
}


kloa posted:

Does it hurt to interview for a position if you don't feel qualified? I don't want to apply, get laughed out the door, and it hurt any future prospects with them. Them being Amazon, even though I hear occasional horror stories, I'd like to keep my chances open if possible.

I can't tell if I received one of those generic recruiter emails they blast out, but a recruiter at Amazon reached out to me today. So now I'm debating on actually applying for it, or waiting until I feel qualified for such a position.

Then again, it could just be imposter syndrome popping up

Just go for it. You have to screw up incredibly badly in non-technical ways to be put on an orgs list of people to never consider for candidacy in the future.

The literal worst thing that happens is they turn you down and don't send you another email in 10 months.

Doctor w-rw-rw- posted:

I don't think I've heard that question before. Can you expand on that?

Path planning is a classical problem in robotics, and if she's applying for positions in that field, it's definitely fair game at junior level along with IK and basic computer vision stuff.

What does she hope to work on? Some areas have a couple problems in addition to the normal data structure/algorithm nonsense. If she's applying somewhere in such a domain and indicates taking an elective or completing a related project it's feasible someone will try to figure out how deep her knowledge is.

 leper khan Dec 28, 2010 Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter. Whenever I've been waiting on a decision, I just follow up every Tuesday until I have an offer or am rejected. The people that usually don't send a rejection usually confirm after 2-3 weeks fwiw. # ¿ Sep 12, 2016 04:00