|
Yeah it's a pretty good hill. I felt bad because I made a new hire this week and had to wait until day 2 because of the amount of setup they needed
|
# ? Aug 3, 2023 12:22 |
|
|
# ? May 23, 2024 18:43 |
One thing about good new hire setup documents is that they also serve as great documents for a bunch of random actions you only need to take like once a year. There's so many random CLI commands I forget and just look at the new hire docs to remember.
|
|
# ? Aug 3, 2023 14:56 |
|
Xarn posted:A hill I am willing to die on is that a new hire in generic software crap factory should be able to make a PR before the first day ends. One time many years ago, I worked on a project that had 50 pages of setup instructions. I was new and trying to figure out how people were getting the build to work - it didn't help that people were breaking the build on a daily basis. Took me at least a month before I got a handle on it. It turns out almost all the other devs literally couldn't figure out how to get the build to work and were testing their components in isolation then checking in code and hoping it worked.
|
# ? Aug 3, 2023 15:19 |
|
At my now former job, we had a goal of getting our interns to make a change that went to production on their first day to first week. We had some luxuries to allow us to deploy like this, but it was a real hit. The new folk responded extremely positively to having something they worked on in prod. Maybe the only thing they liked more was (if college interns) having other kids their age around to socialize and hang out with.
|
# ? Aug 3, 2023 15:23 |
|
Falcon2001 posted:loving what? How do you even review all those? A lot of 1 liners, rubber stamps, and often just not doing it. Our SDM said that it helps with momentum and thus velocity. When I left I felt extremely self conscious that I was only shipping code once a week. E: and yeah, we would be merging to main, and deploying several times a day, so there was a lot of incremental work. Where it hit us in the rear end is that when you put all the pieces together sometimes you don’t end up with a functional product. ZShakespeare fucked around with this message at 15:49 on Aug 3, 2023 |
# ? Aug 3, 2023 15:36 |
|
StumblyWumbly posted:I don't know how this works at a large company, but it sounds like you should talk to your manager, maybe a skip level or something. Maybe there's something weird going on like massive amounts of testing or customer interaction or research, but a PR every 2 weeks per engineer is a good pace. Maybe a few PRs a week if you're fixing small bugs or issues or just like micro-PRs. A PR a month for big, tough stuff. It depends on all sorts of crap, but 2/year is wrong. Well I know exactly what’s going on with me specifically: I’m matrixed to a team that is either behind on planning, overstaffed, or both. A handful of us are just doing investigative work with no long term feature in sight. The manager I report to is pretty supportive, knows what I want to do, and knows what I need to do to accelerate my development. We have discussed at length how moving forward I really want/need to be given the keys to a feature and sit in the driver seat on it, but the group i matrixed into has given me no avenue for that. I’ve gone from shipping two PRs on average to no code changes since the beginning of last month. The rest of the people reporting to my manager? I have no idea what’s going on there. We’re a team of new hires (as in we all hired in fresh together last year), so there is an element of them still learning… but that doesn’t explain six month gaps in coding. Honestly, I think the issue comes from the skip level, not my direct manager. Either there isn’t enough work to go around, or the skip level is having trouble developing a scope of work for our groups to chase down. EDIT: This is also why I have a had time buying any of the “we need to see more at this level” carrot on a stick stuff I mentioned in my first post, despite others in the thread rebuking my concerns. On some level, it feels like a deliberate slow down of work assignments so when promotion time rolls around they can easily point to a slowdown in output as justification to keep me where I am. One of my other team mates who has been pretty outspoken about a lot of the same issues and clamoring for promotion opportunities is in the exact same boat as me right now. Gin_Rummy fucked around with this message at 16:45 on Aug 3, 2023 |
# ? Aug 3, 2023 16:41 |
|
Falcon2001 posted:I think part of this is that we don't do feature branches or anything on the teams I've worked on , changes go to mainline. So the idea of multiple PRs a day sounds utterly insane. My current job (have been there a while) does not do feature branches, everything always goes to main. I have averaged pretty darn close to 1 PR per weekday in that time (not taking into account vacations/holidays, so a bit more than 1. It's fine IMO, good to keep changes relatively small, though an expectation of one or multiple PRs every day, vs averaging, would be a bit much. Xarn posted:A hill I am willing to die on is that a new hire in generic software crap factory should be able to make a PR before the first day ends. Personally I think it is a good rule of thumb, and if it takes a while for someone to be able to make their first PR after starting it's certainly an org smell. However, in practice, I think it's a somewhat insignificant hill not worth dying on because the leverage is so limited: you're just improving the productivity of new hires in the first couple of days. If I were going to spend time on some developer productivity work and I had a choice between something that reduces time to first PR for new hires vs something that generally speeds up development for everyone once they're onboarded, I'm gonna be pretty heavily biased towards the latter unless it's clear there are bigger wins on the onboarding side.
|
# ? Aug 3, 2023 17:53 |
|
Hadlock posted:Our last tech lead (who was learning to code on the job) would ship insane 10,000 LOC PRs every 2 months or so, he would demonstrate that it worked live in his test system and we would rubber stamp them I am not sure that a limit of 100 LOC per PR is really an improvement over regular 10k LOC PRs. Those are both insane.
|
# ? Aug 3, 2023 18:31 |
|
I wouldn't want to read 100 lines of Haskell due to its density, but 100 lines of Go would be very little code. What's the software like?
|
# ? Aug 3, 2023 18:50 |
|
Jabor posted:Often this is the result of disagreement about what the appropriate scale for "a PR" is. Exactly this. I get brain-fried trying to review multi-thousand line PRs so I've been encouraging more frequent incremental PRs. It also feels real bad to have to tell someone everything they did the past 3 weeks was wrong and they need to start over. ZShakespeare posted:This is reassuring to hear. In my burnout job we were expected to ship a PR every day. A PR a day isn't unreasonable. One of my favorite places to work, the goal was 2 tickets completed every day, which might each have several PRs. The trick is that we were also expected to break tasks down into 4-hours or less for most tickets. We'd sometimes have tickets that went longer, but we pretty much always realized we could have broken them up better after we were done. LLSix fucked around with this message at 19:46 on Aug 3, 2023 |
# ? Aug 3, 2023 19:01 |
|
Maybe it was 1500 LOC or something. I dunno. This was for terraform and python
|
# ? Aug 3, 2023 19:27 |
|
Casually applied to two jobs in my industry after not having interviewed anywhere for eight years. I didn't really do any severe amount of prep work in refreshing my knowledge around coding stuff, because at this point I have a lot of experience and experience in specific domain knowledge, and I was curious to see whether at the more senior levels that I'm at and applying to if the interview would be different and there'd be more of a deeper discussion around problem solving and how I could leverage my experience. Boy oh boy was I wrong. It was the same sort of basic computer science quiz gotcha questions that I encountered when I first started interviewing for jr programmer roles and there was almost no interest in my resume or experience at all. lol. So having put in zero time refreshing myself on various dusty corners that weren't relevant at all to my job of the last five years, I do not think I terribly impressed when asked about these random things. Anyway no job offers as a result of all this as expected, but instead a depressing but probably valuable learning experience here, learning that even with 15 years of experience, prepping is still apparently still well needed to cover your bases in case they ask a surprising out of left field question and you want to have a confident answer.
|
# ? Aug 3, 2023 19:48 |
|
That's what I'm gearing up for. What was the question if you don't mind me asking? There's a lot of jobs out there, depending what they asked, do you want to work at a place that looks at 15 years of experience and asks you that? Especially with no questions about that experience?
|
# ? Aug 3, 2023 20:00 |
|
Hadlock posted:Maybe it was 1500 LOC or something. I dunno. This was for terraform and python Ah, that's pretty reasonable as long as it's not accompanied by a ridiculous CI check that complains about you checking in some test data or something. I think the majority of your PRs should be well under 100 lines of changes, but sometimes the smallest atomic change just legitimately is quite a bit larger than that.
|
# ? Aug 3, 2023 20:05 |
|
moctopus posted:That's what I'm gearing up for. Oh there was a variety of things that I don't think I seemed great on. Looking back on my notes of what was asked and what I said, all my answers were correct (or at least largely correct), but in many cases I was a bit bamboozled that they even asked about such a thing, and I feel I had to sort of slowly spool up my brain to mull over the question, and I wouldn't be surprised if the answers I was giving and impression I was giving just didn't really have that strong confidence that one should expect to have. Questions like what is 2^9? what does inline mean? how do you calculate the distance between two vectors? how many bytes are a pointer? These are trivial questions, but just absolutely things I was not expecting to be asked, so in the moment I felt incredibly slow on my feet here in answering them. I'm not sure if this line of questioning is odd to anyone else, but it surprised me! A learning experience here! I actually think I might have got a question around how one stores a negative number wrong, or at least I was sort of confused enough about what they were actually asking that they just moved on. But the point I was getting at in my post was that like in the last five years as I built a UI system for a major AAA game that shipped on four platforms the issue of how negative numbers are stored uh wasn't really strongly relevant to the job, and in general none of these questions asked were of much relevance to work I've done recently. So ultimately it was pretty disheartening to be asked these things and to feel like I failed because I didn't prepare for them. As they weirdly focused on so much bit fiddling type questions I tried to pivot into a discussion of when this stuff matters, in serialization, and discussed how I built some serialization systems in the past. They didn't seem interested and stuck with their script. *sigh* Femtosecond fucked around with this message at 20:29 on Aug 3, 2023 |
# ? Aug 3, 2023 20:22 |
|
Some interviewers know they need to ask some technical questions, they don't really know how to test a candidate, so they come up with some questions they think provide good signal, but in the end it's just a bunch of trivia. Sounds like you ran into one of those, based on the "what is 2^9" question. I used to work with a graphics programmer who'd always ask the candidate to write out the formula for doing a vector cross-product from memory. I argued that it was a pointless test; it's really easy to get wrong and most people use a library for that calculation - it was more useful to test if a graphics-oriented candidate understood what a cross-product was for. But he was adamant that people should know this kind of stuff from memory, with no justification as to why.
|
# ? Aug 3, 2023 20:32 |
|
Femtosecond posted:Casually applied to two jobs in my industry after not having interviewed anywhere for eight years. Our process for a Sr Eng is I do a history, hypotheticals as the HM, we have a take-home, then an "on-site" with a live coding based on the take home, eng culture, and prod/design. No algo gotchas, live coding is pretty application based, the rest of it is straightforward. you've got crappy
|
# ? Aug 3, 2023 20:50 |
|
Femtosecond posted:Questions like what is 2^9? man i got this trivia question in a phone interview from google like over ten years ago and I'm still bitter about it just wtf how does that matter at all
|
# ? Aug 3, 2023 21:06 |
|
I wonder how they'd react if I answered "A good start."
|
# ? Aug 3, 2023 21:11 |
|
are they looking for 512 or 11?
|
# ? Aug 3, 2023 21:12 |
|
Guinness posted:man i got this trivia question in a phone interview from google like over ten years ago and I'm still bitter about it It's the maximum value of a byte + 1 * 2, which would show some familiarity with type sizes, ranges and binary, I suppose. Doesn't seem like an especially useful question to me, but maybe that's why 2^9 specifically?
|
# ? Aug 3, 2023 21:15 |
|
1-800-DOCTORB posted:are they looking for 512 or 11? If it was printed, I'd probably say 11. Then when asked for the value I'd just say 1<<9
|
# ? Aug 3, 2023 21:16 |
|
ha this is like exactly it. I was like "uhhh I guess 512...?" Never even occurred to me that there was anything more to say here vis a vis the limits of a byte. haha. I mean why wouldn't they ask if so? If you wanted to have a discussion about what happens when trying to represent values in a space where those values don't fit why don't we just have that conversation?
|
# ? Aug 3, 2023 21:38 |
|
If you spend a lot of time working with bits it's pretty likely that you'll memorize the first 16 powers of two. Some people mistake that for essential knowledge, and it gets cargo culted.
|
# ? Aug 3, 2023 21:42 |
|
ultrafilter posted:If you spend a lot of time working with bits it's pretty likely that you'll memorize the first 16 powers of two. Some people mistake that for essential knowledge, and it gets cargo culted. Anyone who uses the values is a monster. code:
|
# ? Aug 3, 2023 21:47 |
|
I even said this. I was like yeah um I only kind of know this because I've memorized it through use. But then I talked briefly about the relationship to binary sort of explaining how one would come to the value if you hadn't have memorized it. Yeah I'm just really confused about the entire approach of the questions. The one basic question I got that I did think was reasonable was asking about the difference between a vector and a linked list, because that opens up into discussion about problem solving and tradeoffs and when certain tools are good for certain jobs.
|
# ? Aug 3, 2023 21:50 |
|
There's a handy mnemonic for powers of two: 2^10 = approx. 1,000 2^20 = approx. 1,000,000 2^30 = approx. 1,000,000,000 etc. So if someone asks you what 2^28 is, you think (2^30=1 billion, divide it by two twice to get it down to 2^28) and say "uh...about 250 million?"
|
# ? Aug 3, 2023 21:50 |
|
I could see the vector distance being useful if it was leading to something like how to check which of two points is further away, since while comparing the distances works, you can avoid a couple sqrts by just comparing the squared distances instead.
|
# ? Aug 3, 2023 21:52 |
|
Femtosecond posted:Casually applied to two jobs in my industry after not having interviewed anywhere for eight years. The only time I didn't have to grind leetcode for interviewing was one time I got poached by a former coworker. It is absolutely insane that every workplace still has you solving brainteasers when you have a laundry list of products available publicly to prove that you know how to write some code.
|
# ? Aug 3, 2023 22:24 |
|
there are so, so many times i have seen and dealt with peeps lying through their teeth about their participation and contribution to projects and stuff and not telling the truth about their ability to code it will end if a true durable can-code certification that peeps on both sides of market can trust can be made. but not before
|
# ? Aug 3, 2023 22:27 |
|
Yeah, I get that, but I also think there are probably a lot of better ways to get to the bottom of it than having me solve a puzzle that has nothing to do with my day to day work, and is a skill that I will only ever practice during the period when I am job hunting. Don't get me wrong, I actually kind of like doing them. But it also really sucks when I get an email a week later telling me I just wasted 4 hours of my life interviewing when I missed an edge case because hacker rank uses a more comprehensive set of tests to calculate the final result than they allow you access to when writing your test. E: I also agree with the certification idea. Perhaps if they had something akin to a pilots license showing that you went through the training. Maybe some sort of "degree" from a "university" that says you know the "science" of "computing". (I'm really sorry in advance and I don't mean to be hostile, I just find the whole situation ridiculous. I've done hiring as well, and I know how difficult it can be to weed out the con artists. Once we put a solution to a test up on github and we got more than one (!!!!) copy, paste, and rename variable submissions.) FMguru posted:There's a handy mnemonic for powers of two: I remember having to calculate 2^26 without a calculator on my Operating Systems final. It was not a good time. ZShakespeare fucked around with this message at 22:50 on Aug 3, 2023 |
# ? Aug 3, 2023 22:36 |
|
so uh i understand your frustration, but you're conflating computer science with computer programming and that's a pretty big _oof_
|
# ? Aug 3, 2023 22:52 |
|
That's fair.
|
# ? Aug 3, 2023 22:55 |
|
the trust in degrees, built over a millennium, was unquestionably there in like the 1950s. completely eaten and gone away by the 90s, in some cases the 70s
|
# ? Aug 3, 2023 22:55 |
|
Am thinking I should try to capitalize on the remote-versus-onsite fight by offering to relocate to a higher COL office in exchange for being willing to do hybrid/onsite there. Wonder if that would work, because apparently nobody there wants to be onsite there these days. Coming up with a relevant business justification is my main hurdle.
|
# ? Aug 3, 2023 23:04 |
|
The way my current team does eng interviews is the least worst that I've encountered. They're a mix of live coding, live kubernetes workload debugging (it's a k8s startup), and collaborative boxes-and-arrows architecture design. The architecture design interview gets more candidate-led the more senior they are. The general goal is to avoid algorithm puzzles entirely, and try to make the interviews as practical and reflective of the job as possible given the constraints. We do tolerate one simple coding challenge with a stupid toy problem, just as an early screen to filter out people who definitely won't make it through the full interview loop, and save everyone the time and stress. We don't do take-home challenges out of concern that they would tilt the scales in favor of people with abundant free time to spend on them. And though a recruiter or hiring manager might use Github history as a reason to give someone a look, we don't take it into account when we huddle on a candidate, because we don't want to risk a bias toward people who have the free time or career that allows them to work in public. So far it's been a pretty good balance of being humane, sniffing out frauds, and giving everyone a fair chance to shine.
|
# ? Aug 3, 2023 23:26 |
|
ZShakespeare posted:Yeah, I get that, but I also think there are probably a lot of better ways to get to the bottom of it than having me solve a puzzle that has nothing to do with my day to day work, and is a skill that I will only ever practice during the period when I am job hunting. Don't get me wrong, I actually kind of like doing them. But it also really sucks when I get an email a week later telling me I just wasted 4 hours of my life interviewing when I missed an edge case because hacker rank uses a more comprehensive set of tests to calculate the final result than they allow you access to when writing your test. I feel your frustration. The way hackerrank hides which cases it is testing is annoying. You can bypass their stupid tests by re-assigning the input values in your function and adding print statements to see the output if necessary. It doesn't help guess which edge cases they're going to test, but it does at least let you do your own testing. bob dobbs is dead posted:the trust in degrees, built over a millennium, was unquestionably there in like the 1950s. completely eaten and gone away by the 90s, in some cases the 70s LLSix fucked around with this message at 23:36 on Aug 3, 2023 |
# ? Aug 3, 2023 23:34 |
|
ZShakespeare posted:This is reassuring to hear. In my burnout job we were expected to ship a PR every day. Huh? I did 5 PRs today. And it was a lazy day.
|
# ? Aug 4, 2023 00:22 |
|
Plorkyeran posted:Ah, that's pretty reasonable as long as it's not accompanied by a ridiculous CI check that complains about you checking in some test data or something. I think the majority of your PRs should be well under 100 lines of changes, but sometimes the smallest atomic change just legitimately is quite a bit larger than that. One of the joys of working on a very old, large, and messy codebase is how often I'll make a code change of 10 lines or less and have to update 100+ lines of tests
|
# ? Aug 4, 2023 01:13 |
|
|
# ? May 23, 2024 18:43 |
|
acksplode posted:The way my current team does eng interviews is the least worst that I've encountered. They're a mix of live coding, live kubernetes workload debugging (it's a k8s startup), and collaborative boxes-and-arrows architecture design. The architecture design interview gets more candidate-led the more senior they are. The general goal is to avoid algorithm puzzles entirely, and try to make the interviews as practical and reflective of the job as possible given the constraints. We do tolerate one simple coding challenge with a stupid toy problem, just as an early screen to filter out people who definitely won't make it through the full interview loop, and save everyone the time and stress. We don't do take-home challenges out of concern that they would tilt the scales in favor of people with abundant free time to spend on them. And though a recruiter or hiring manager might use Github history as a reason to give someone a look, we don't take it into account when we huddle on a candidate, because we don't want to risk a bias toward people who have the free time or career that allows them to work in public. So far it's been a pretty good balance of being humane, sniffing out frauds, and giving everyone a fair chance to shine. That's the least worst you've encountered? That is an absolute nightmare of all the poo poo that makes this field loving garbage. And you call it humane lol
|
# ? Aug 4, 2023 01:14 |