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
Mniot
May 22, 2003
Not the one you know
Could be anything from a fancier title to signify that you get paid more to being a full manager with a lovely title.

I was a "team lead" at a start-up that was having some trouble figuring out management. I spent ~30% of my time writing code, 50% in meetings negotiating features and 20% on managing my team. The meeting/coding ratio should have been better, but the point was that I'd go to most of the meetings and be aware of all of them so that my team could go to as few as possible. The management tasks included HR crap (approve their PTO requests), schmoozing to keep other groups happy with us, lobbying for another hiring req, trying to get them raises, talking with them about carear growth, and making sure everyone had a balanced workload.

I've interviewed at a company where "team lead" just means "probably the best developer on the team" and another where it appeared to mean "VP of software".

Adbot
ADBOT LOVES YOU

Mniot
May 22, 2003
Not the one you know

Good Will Hrunting posted:

give me some semblance of guidance about how to do things better if need be or a "good job tackling this, I like this design decision" type feedback as opposed to like, the most trivial nitpicky bullshit.

The rest of the stuff you're posting makes it clear that your office has bad processes and it's not just a problem with you, but looking at this one request in isolation I would not expect you to get what you want.

When I've done and had code reviews as part of a smooth-running dev team, it is all trivial nitpicky bullshit. I've got a recent PR that was quite large here, so let's see what the reviewers wrote:

  • remove spaces here
  • use a module attribute for this number
  • spelling fix for a comment
  • spelling fix for a comment
  • a slightly different function call so things look more consistent
  • use a module attribute for this number
  • use a module attribute for this number
  • there's already a function over here that can do this work
  • add some parentheses here
  • pass all the arguments to the initializer instead of initializing in multiple calls

You shouldn't be reviewing design decisions at code review, because those need to be made before you start coding. If you are reviewing them it's not "good job" it's "holy gently caress why didn't you stop and talk to the group instead of making this terrible design decision by yourself?" A very junior dev will need some hand-holding through some basic mistakes like "ok see where you've got if-statements nested 8 levels deep? That's really hard to read, so let's see if we can rewrite that together so that it's not so bad."

Other than that, your code should try to look just like all the other code in the project. Most devs I've worked with are great at making that happen at the level of functions and modules, so the review is mostly to help enforce consistency between developers at the granularity of individual lines.

Mniot
May 22, 2003
Not the one you know

Ghost of Reagan Past posted:

How widely used is Elasticsearch? Is it popular? I'm working with it a bunch (along with some other tech) and I like working with it quite a bit, so I'm thinking of digging more deeply into it. But since I have a bunch of options at work, I'd like whatever database technologies I dig into to look good on a resume down the road.

I think it's a good pick. A quick metric is that AWS sells managed ES clusters. They wouldn't bother if they didn't have a lot of customers deploying them. We added it to our stack somewhat recently at my office, and while I don't have much contact with it I know that it was viewed as the obvious choice and that the people who do work with it have been generally pleased.

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

It really does seem like getting into embedded, systems, generally non-webdev software engineering will get you farther in life than otherwise. I'd like to transition over to that.

What makes you say this? There's success and cash to be found in all areas. There's certainly fewer people doing embedded systems, but I don't know that that helps you at all. I think you need a better grip on what's making you unhappy. From your posts, it's sounded like it's the culture at all the places you've worked. That's not particularly tied to area of expertise.

Mniot
May 22, 2003
Not the one you know
This reminds me of the highly-enjoyable Steve Yegge post about Amazon vs Google from years ago: https://plus.google.com/+RipRowan/posts/eVeouesvaVX

I wonder how much has changed since then.

Mniot
May 22, 2003
Not the one you know

There's a lot to love in that little email, but I'm especially charmed that one of the things he won't tolerate is "lack of belief". I think you can expect one of your coworkers to be choked to death, so get ready for a promotion!

Mniot
May 22, 2003
Not the one you know
Needs a man with a red right hand

Mniot
May 22, 2003
Not the one you know
Some places do well despite their best efforts in recruiting. Amazon has the same poo poo-pool of 3rd party recruiters. I used to write back and say "no I don't want to move to Seattle" but that just made more of them call to ask me to move to Seattle. Google's in-house recruiters do a great job of being personable although I get whiplash from the way the charm switches off when I say I might be interested. Does Apple even do recruitment or do they rely entirely on star power to get applicants?

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

:confused: I always expect interview questions to bar me from using core library functions like String manipulation and what not, and that they'd make me do it old-style to prove I know how to index into an array and make a linked list or whatever. Sometimes it's hard to tell which interview questions are testing your domain knowledge and which ones are just CtCI cargo culting.

I would actually never expect core libraries to be forbidden.

There are some interview problems that are crafted such that library functions can't help, like the classic "given a space-delimited string of $n$ words, reverse the order of the words to produce $w_n$, $w_n-1$, ... $w_1$. Also you must not use more than one character of additional memory."

But if you can solve the problem with a couple easy calls that's absolutely the first answer you should offer. They might ask you to solve again without the core library, but if they're not garbage they'll be happy that you're familiar with the core library.

I did have a front-end candidate once who, when asked to do some fizzbuzz-y thing was like "can I use Angular? OK: $ngFizzbuzz.generate(nums).print()". And that would have been great except he had no idea what to do when we asked for plain JS.

Mniot
May 22, 2003
Not the one you know

Iverron posted:

On that note: if I'm interested in moving my career towards FP and away from OO, is there less of a stigma around years of professional experience in a given Functional language considering that the majority of shops aren't using FP and most devs therefore can't necessarily use FP in their day to day work?

I think a lot of HR departments and recruiters have trouble with this. We were trying to hire devs and I'd tell the recruiters "we want someone with a bunch of general server experience who thinks functional programming sounds fun" and they'd be like "here's someone who knows Java and wants to learn C#".

I'd expect most dev teams to feel like I did, though. I like FP because I think it's easier to write good code. It takes some different thinking so you want someone who at least remembers doing CS 101 in Scheme so they know that they like it. Other than that, most of what makes a good developer is the same.

Mniot
May 22, 2003
Not the one you know

hendersa posted:

They are clearly pretty upset with me over the pushback on not cancelling my PTO . Now, I have to spend the weekend putting together a training course for a two-day crunch on secure microkernel design, as they are now pushing the training up to next week

Or else what?

Why would you burn a weekend on a place you're quitting? I mean, if you love running training courses and making teaching materials is your idea of a day off then cool. Or if they're paying you some bonus to do extra work, that seems fair. I can't think of any other reason to work the weekend, though.

Mniot
May 22, 2003
Not the one you know

Jose Valasquez posted:

I'm going to bet that none of you are actually writing completely self documenting code, at least not if you are doing anything with a nontrivial complexity. Your code looks obvious and clear to you because you are writing it and understand it.

I worked with a team that had a "one line of code, one line of comment" rule that was fanatically enforced. I thought it was kind of tedious, but it worked well for them and they liked it.

I also worked with a team that often wrote comments that were very helpful looking but false. Like, the comment would say "returns a dictionary where foo is a float between 0.0 and 10.0 inclusive" but foo would actually be a list of floats, or it would actually return an exclusive range. Or the comment would say that the passed parameter was not modified, but then it was. The function bodies were a nightmare (because the comments tell you what's going on so it's OK!).

My own team mostly followed the "no comments" rule. Things that could conceptually be grouped as a library got some documentation explaining its purpose, and a couple really difficult functions got comments. Everything else, we kept the functions under 30 lines long and looked hard at function and variable names in code review. The goal was the you could jump into some function that you didn't remember, see who calls it and who it calls, and understand within a few minutes and without help. I thought it was successful.

I don't think "no comments" is the best strategy, but it beats everything except "always correct comments" which takes a lot more effort to enforce.

Mniot
May 22, 2003
Not the one you know

Munkeymon posted:

It didn't occur to me that it might influence the decision via sympathy, actually :v: just trying to think of some way to spin it other than NaGFFMA, which I just find unsatisfying to say or hear for some reason.

"Bad fit" gets pushed a bunch here because a better answer depends heavily on your specific situation, who you're talking to, and how the conversation is going.

Here's some alternative answers I've given (and received job offers after): "they don't give me any work to do and it makes me mad to participate in scamming the government", "my current company is having trouble making payroll", "I want to have more control over the direction of development", "I really liked the manager who was hired me, and then he quit on my first day", "they want me to spend a week on the other side of the country every month. I have little kids. I'm not going to do that.", "things have not improved since you quit", "the CEO is pivoting the company in a direction that I don't want to go".

But when I give those kind of answers it's because I think that I know how the person I'm talking to will take it and how my answer will fit with the company that I'm interviewing with. For example "they can't make payroll" worked well to get hired at a near-IPO company when I was talking to an exec -- he was very proud that they were cashflow-positive and we talked about good and bad business decisions. Saying that I wanted to stick near my kids would have been bad to say to the recently-out-of-college CEO but worked well with the dad-bro VP (who would relate it to the CEO but now it's coming from someone who can pitch it it a way that's more favorable).

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

I got a recruiter email from a company I previously left. :downs:

Try for an interview and see if they remember you or if it's like https://www.youtube.com/watch?v=yI8KbTDlvmM

Mniot
May 22, 2003
Not the one you know

rsjr posted:

Should I actively job hunt while working? Can I afford a house and stuff as a software developer? Is software development a good career? Is it mobile? Are you completely oblivious to basic, easily Googled facts and common sense you mildly retarded child?

The thread title says "Career Advice, Questions, Change of Directions" so... seems like these are all completely on-topic.

And it's a forum thread, not loving Stack Overflow. The whole point is to get the LiveJournal poo poo. I want people whining about their stupid coworkers or bragging about their giant new paycheck or reminiscing about stealing Internets from their job. Or asking silly questions, because it either leads to a good story behind the questions or everyone who's not a twit ignores it.

Mniot
May 22, 2003
Not the one you know

Jose Valasquez posted:

Oh, that's not going to happen.
Optimistically you'll get a promise of a 5%-20% raise at some point in the future which is worth exactly $0 compared to the 47% offer.

Even if you tell them and they counter by matching the 47% raise (unlikely), you're still left with less room to grow.

I think it's a good opportunity to work on some negotiating skills. Ask for a 50% raise, with the confidence that you know you're worth it.

Mniot
May 22, 2003
Not the one you know

Achmed Jones posted:

My brief experience with Amazon's recruiting was a recruiter asked me to send my resume in for some job fair thing, I did, and then they rejected it because I don't have work experience with their stack.

Amazon uses (or is used by) a ton of 3rd-party recruiters, so I'd expect the recruitment experience to be wildly inconsistent. Which also means that if you get rejected early you can probably just keep spamming your resume at them and find someone who will promote you to a technical screen.

Mniot
May 22, 2003
Not the one you know

Urit posted:

Working from home for a company across the country really screws with your perception of what "job time" is, I will say that. I kind of wish I was in an office 2-3 days out of the week.

Is there a coworking space near you (basically, rent an office room or a desk in an open office)? You ought to be able to get your job to pay for it (or some of it) and it's not an insane expense for you even if they won't.

Mniot
May 22, 2003
Not the one you know
Can you post some of your code here? I feel like anything interview quiz is so short that it's hard to make it "too complicated" and it's going to be kind of lovely code anyway.

Mniot
May 22, 2003
Not the one you know

Honest Thief posted:

Well.. sure, I changed the names around a bit, cause I'm paranoid about this sort of stuff but.. This one quiz was to provide the two named exports: one to simply throw the die, the other to return a function that did the same but also could deliver the set notation.
I wasn't happy with how I ended up with one being nothing more than a getter, but due to a lack of time I opted to leave it as it was.

OK, so all the review comments on better code are good, but trying to think of what would trigger a rejection based on this code... I don't see it. I guess I could imagine a couple of the problems being annoying enough that they'd sum them up and reject. Or if you took a week on this, then that's disappointing but I'm assuming you did it in about an hour. It seems to run correctly and I can follow the code without shaking my head the whole time so I'd call it good.

Did you include any documentation with this? Or was there a clear spec? I'm wondering if this was one of those quizzes where you fail unless you go back and ask questions. Or if there was only a vague description and you didn't include docs, maybe they couldn't figure out the dice format of 2d6+2 (I think your regex is bad and harder to read than needed)?

I don't think I'd reject someone at the screening-level for it, but you have some missing semicolons and some funny spacing. That's not a big deal, but IMO you should be developing it an editor that's linting on the fly for you, and this makes me think you're coding in Notepad or bare-bones Vi. If you feel like you just throw poo poo together until it runs, forcing yourself to follow some style rules may help slow you down and make your code more palatable.

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

Solution: $X = baseline + $10,000~$20,000

No. If you know the price that you want (you know you can get it and you know that you won't get more) ask for that exact number. If you don't, don't try to play games with the recruiter because they have more information than you do.

First off, you can give the deflection line as many times as you want. I've never had anyone stop talking to me because I said "let's wait until after the interview to dig in on salary" 3 times. Second, if you are sick of deflecting, just ask the recruiter how much money you can get.

Mniot
May 22, 2003
Not the one you know
Walking behind corn rows.

Mniot
May 22, 2003
Not the one you know

return0 posted:

The lunch attendees do not come to the hiring decision meeting, unless the candidate makes such an enormous faux pas it torpedos the standard process.

I think that was the missing detail. If they come to the decision meeting then of course what happens at lunch matters.

That said, this seems pretty strange. Why does the lunch attendee not come to the meeting? You've got so little information to work with when making a hiring decision that I can't see why you'd throw some of it away.

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

I'm in Boston, and healthcare is a huge component of our market, yet I haven't really seen much compelling crossover between dev and healthcare. Maybe I'm just missing it.

AthenaHealth handles billing between practices and insurance companies. This is apparently a nightmare since you have to do (practice billing software)x(insurance plan)x(state laws).

Imprivata makes single-sign-on for hospitals, so your doctor's Windows session follows them around the hospital and they can log in without touching the computer (reduces nosocomial infections).

Vecna makes a system for signing in (instead of a clipboard) and also an app so you can send your doctor infected-dick pics from home.

Those are just ones I've interviewed with, but I feel like all of those are compelling?

Mniot
May 22, 2003
Not the one you know
For board-like problems, I like representing each square. So:

code:
struct square {
  struct square *n;
  struct square *ne;
  struct square *e;
  struct square *se;
  struct square *s;
  struct square *sw;
  struct square *w;
  struct square *nw;
  bool state;
  bool next_state;
};
or better:

code:
struct square {
  struct square[8] neighbors;
  bool state;
  bool next_state;
};
The annoying part for me when whiteboarding is navigating around a 2d board. By constructing it this way, I can defer most of the boring code to the board setup function and hopefully convince the interviewer that I'm good before I have to slog through that part.

I think a 2d array is not a great representation, because that's the view of the board but these problems are typically having you write the model and control code and ignore the view. Using a 2d array gives you a harder problem to code, but unfortunately these types of problems secretly rely on some domain-knowledge to solve well.

For example, you may enjoy looking at Norvig's Sudoku solver and how he represents the board. It's a lovely solution, but I feel like "being an expert in AI programming" was the main ingredient.

Mniot
May 22, 2003
Not the one you know
Interesting! I've been called as a reference 5 times in the last 5 years, and I don't feel like I have a particularly large network of coworkers.

Most of them, it just felt like the reference was adding a bit of color -- potentially useful for getting a slightly higher salary? Maybe? One of them was for a coworker who'd been fired and I presume it was helpful to have me say that I'd worked with him and disagreed with the firing (he got the job).

Mniot
May 22, 2003
Not the one you know

Munkeymon posted:

Didn't they make fun of rest and vest early in the first season of Silicon Valley or am I misremembering?

Yes, when Big Head gets all his responsibilities taken away for being a moron, but isn't fired. There's a crowd of shamed employees sunbathing on the building roof. The joke was the CEO trying to make them so ashamed/miserable that they'd either quit or improve, but their souls had already been crushed so they were happy being paid to be useless.

Mniot
May 22, 2003
Not the one you know

fantastic in plastic posted:

What's being an SRE like compared to being a web engineer? I've seen a few companies advertising SRE roles in my city and I'm a little tempted, but I don't know what to expect.

Based on mrmcd's avatar, I assume SRE work is like
https://www.youtube.com/watch?v=1lElf7D-An8

Mniot
May 22, 2003
Not the one you know
They said "always Java" not "all Java". If you have to pick one programing language, and your only concern is that you need to be as employable as possible: Java for back-end, JavaScript for front-end.

Picking just one language is silly, of course, but any time someone's thinking "fuuuuck why can't I get hired" they're going to start asking what's the best language/framework/specialization so they can get it on their resume. And it's not like the real answer of "have a good network and 5+ years of industry experience" is useful either.

Mniot
May 22, 2003
Not the one you know
The problem with scheme as a helper-script is how to run it. I like Lisp but haven't done any in years, so if you said "just run cleanup.scm" I'd first have to figure out that it was Scheme, then try to guess what I need to install on my Mac to run it ("mit-scheme"? "scheme48"? "chezscheme"?) and then how to actually execute it (do I compile first? "scheme cleanup.scm"? just get the interpreter in my PATH?)

But if you've been doing all your code in Scheme then I assume that your work has scheme installed everywhere, so none of that should be a problem, right?

Mniot
May 22, 2003
Not the one you know
MacOS and RHEL-family both come with Python 2.7 as their `python` still, right? :rolleyes:

Mniot
May 22, 2003
Not the one you know

CPColin posted:

Meeting up for coffee is just the worst, anyway. Sure, I'll come hang out on the 80-degree patio of some coffee shop, drinking a hot beverage! No, I don't mind dumping a bunch of caffeine in my veins in the late afternoon! (I don't drink coffee, either, so I always have to get hot chocolate, like a big nerd. How about we go grab a few beers and drink them in the vacant lot behind the 7-Eleven, instead?)

If you're getting calls to meet up from recruiters you can absolutely suggest getting a beer together. I'd expect most of them to be happy to buy you drinks. However, "let's drink in a vacant lot" sounds like you're a serial killer, so I recommend not doing that.

Mniot
May 22, 2003
Not the one you know

Munkeymon posted:

I'm not sure if I'm using this right, but I put in the skills I regularly use and it said I'm underpaid by about 10k. Then I just heaped in everything I could think of that I've ever used/done professionally, even for smaller projects or maintenance and it's saying I'm 20k under :\

I added "PostgreSQL" to mine and it dropped my expected salary by $1k :(

On the other hand, it was nice to get to see the "years experience + location" bell curve. That was the way they decided salaries at my last office and the CFO treated those numbers like the world's biggest secret.

Mniot
May 22, 2003
Not the one you know

Blinkz0rz posted:

I'm absolutely certain that the sysadmin is restricting what you use solely because he wants to mess with you. It can't possibly be for any other reason. There's no way he has a boss or anything. Or had a security audit. Or had some other issues with insecure software being used on the network. Or literally anything else.

Organizations are bigger than 1 person. Get over yourself.

I thought the idea was that the developers work inside a VM sandbox where they can install things? But that wouldn't solve any of the problems you list here (especially "has a boss").

Mniot
May 22, 2003
Not the one you know
If I install rear end-loads of malware on my VM it's still going to flunk all your security audits (I mean, if they're worth anything). If you have a boss who makes random demands they can demand that the VM be equally locked-down. If I install an editor on my VM that copies all opened files to the cloud, you've still lost control of company IP.

So if we don't gain any advantage from locking down developer machines, what's the point?

Mniot
May 22, 2003
Not the one you know

Jaded Burnout posted:

I kinda missed the beginning of this argument discussion but is "locked down" the objective with these VMs? The only times I've seen them used is to provide a) closer dev/prod parity, b) a consistent environment for all developers and c) faster onboarding/rollout as the VM contents can be imaged or managed with the same puppet as prod.

It's also always come with the caveat of "it's OK if you don't want to use the VM but you're on your own for support".

Vagrant is great (though Docker containers can also work as a replacement). But that's a method of controlling the execution environment so that you don't have to deal with stupid stuff like "I forgot that I put ~/bin in my PATH, that's why nothing works for you". You do all of your work on the host machine and you just go to the guest to compile and run, so it's headless.

Volguus is talking about locked-down development machines where you can't install Sublime because it's not on the approved list. The presented solution is to give developers a VM to live in, presumably with a GUI and window manager and everything, and let them make a mess of things in there so that the host system can comply with IT rules.

I feel like a company that want you to jump through pointless hoops because they're unable to write a policy like "some groups of users get root privileges and limited IT support" is probably not a company you want to be working at.

Mniot
May 22, 2003
Not the one you know

Blinkz0rz posted:

I mean, you're not wrong. It's just that I can think of a whole bunch of cases where you need to have stringent security controls applied to everyone who works at the company.

This is usually the case in companies that deal with sensitive data and/or where software is not the primary product rather than companies that produce the next great fart app.

I worked in a secure environment where there was no internet access, and there was another machine (that I did not have access to) that was not allowed to have any external storage attached. The developers who did work there had to write sensitive code directly on the machine, and when they had non-sensitive code they had to print out the source, take it into the secure room (no more than 50 pages at a time), and type it in.

That was a huge pain in the rear end, but everyone knew what they signed up for and the place was honest about doing security in a paranoid way. What you're describing is like if you weren't allowed USB key-drives, but you did have an internet connection and then other devs were like "yeah, just go to the command line and do 'curl koolkode.ru | bash' why're you acting so angry? This is how we do security compliance :shrug:"

Mniot
May 22, 2003
Not the one you know

Skandranon posted:

Worst case scenario is you tell some people you've known for a few weeks/months that you are leaving.

People worry about "burning bridges" but getting hired and then immediately quitting is just not a big enough deal for anyone to remember you. When I think of people I would never want to work with again, it's all people I worked with for enough time to really build up some resentment.

Mniot
May 22, 2003
Not the one you know

Pollyanna posted:

The reason it's seen as a bad thing is because certain people, i.e. recruiters and hiring managers, see the short amount of time on your resume and see it as a reason to reject you without really bothering to dig further. As a pattern, it can be a little concerning (outside of cases like contractors and bad luck), but it's really not that big a deal in general.

I've had recruiters tell me I'm unhireable because I had a 1-year and 2-year stint at my last two jobs, so I might be biased.

Ehh... that's the opinion of a few recruiters, and the more junior you are the easier it is to dismiss your for any little thing out of place. I've interviewed people with 3 years of not staying for more than a year and didn't feel concerned.

But what I'm talking about is the case where wilderthanmild accepts a job at some local place while continuing to go through the hiring process at Microsoft. A month later, they get a great offer from Microsoft and quit. I'm saying that nobody from LittleCo will even remember them to hold a grudge. You wouldn't list them at all on your resume -- you can either just list job dates by year or trust that nobody cares if you have an empty month.

Adbot
ADBOT LOVES YOU

Mniot
May 22, 2003
Not the one you know

Good Will Hrunting posted:

I've gotten this side and I've gotten the "try to fix things" side. This isn't just a team problem, it's a company problem when something to this magnitude is allowed to even exist. Obviously not unique to my situation, but the first time I've encountered this much toxicity.

I think the "try to fix things" reactions you've gotten is that it doesn't sound like that much toxicity. My impression is that your manager is garbage, but if you could get rid of him you'd be happy with the job. If that's the case, then the question is "how possible is it that one manager quits/transfers/is fired if you complain a bit?" You then described an HR person fishing for negative stories about your manager after multiple good people transferred out of the group. So that sounds like "quite possible!"

On the other hand, if it turns out that $manager owns 51% of the company stock and will never be fired, there's no point. Or if most of the people in your group are awful, then you'd hate work even without your manager. Or if you're so burned out from anger that even if he was fired you'd still be a wreck.

Also, I'm cheering for some confrontation because engineers are so frequently passive and hosed over for it. And because if Susan Fowler can (eventually) get her CEO fired anything seems possible.

You gotta judge for yourself what's a reasonable risk and a worthwhile reward, though.

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