IT/Software career thread: Invert binary trees for dollars.

Deathwing

<Bronze Donator>
16,429
7,440
I mentioned a little while back that I'm working in C again. I can see the usefulness of preprocessor macros, but I don't see enough of a use to justify just how much it fucks up your code's readability.

Anyone else wish they could change what their source code will actually look like when the compiler interprets it?
 

Noodleface

A Mod Real Quick
37,961
14,508
I mentioned a little while back that I'm working in C again. I can see the usefulness of preprocessor macros, but I don't see enough of a use to justify just how much it fucks up your code's readability.

Anyone else wish they could change what their source code will actually look like when the compiler interprets it?
Can you give an example?
 

Noodleface

A Mod Real Quick
37,961
14,508
We only use the top instance in a few spots where it makes sense but generally avoid it. I am a major fan of readability in case even if it is repetitive.
 

Tenks

Bronze Knight of the Realm
14,163
606
Alright I'm back. So I don't have a whole lot to say outside of what you can find on Glassdoor. The reviews there of the day are pretty accurate.

I got there in the morning. Photo ID and all that was required to get past the guard station. Made my way over to the lobby where again I had to show ID, I signed something and got a little visitor badge. The receptionist didn't seem very pleased about being at work. I got there a bit early so I waited in the lobby which has the Grommash statue and the museum is adjacent. I tried to keep my geekiness about the whole thing a bit in check since I was there for a job interview not to take photos of statues. After the HR contact came down to get me I was immediately put into a room to take a programming test. Overall I found the test somewhat difficult compounded in difficulty by not having access to the internet and having Eclipse as the IDE -- which I hadn't developed in since I graduated college. Some of the questions I felt were vague and possibly purposefully. We'll get to that later. Overall I felt I did rather poorly on this but like I said some of the questions were so vague I don't see how someone would actually answer them correctly. I requested 15 more minutes which meant my tour was somewhat abbreviated. I only got to see a few places.

After the tour I was set up with two project managers who took me out to lunch at a nearby place. Blizzard's office is under some construction and the cafeteria is out of commission I think they said until later this year. She even said the HOTS/SC2 teams had to be moved to a different building nearby. Anyways the PMs were really, really nice and engaging. They peppered me with questions and I peppered them back. They were really outgoing and engaging and this was by far the best part of the experience. The conversation flow was natural and I felt this part was more trying to gauge a culture fit but they did want to know quite a bit about my background and experience. Unfortunately we were talking and I was somewhat nervous so I really only picked at my food eating maybe half the plate. This will be a bit more important later. On a side note it is somewhat funny blizzard requires you to write a cover letter outlining why you want to work for blizzard, your gaming history, etc etc but its obvious absolutely none of the people I talked to ever (including all my HR contacts) read it.

So immediately upon walking back from lunch I was put into a white board room where the goal of the next hour and a half or so was to defend my test. This part I was fairly nervous about because I knew I didn't do hot on the test. This was with two developers who would most likely be peers. One took more of the lead and I felt this part was a tad more low-level than I was expecting. Some of the answers were what I suspected and asking to modify some of the actual internals of Java to make it a bit performent. So that was actually a bit of a relief because even though I didn't say necessarily how to do it I did write down some thoughts on what I thought they were getting at with the question. How I did explaining and reasoning out the responses is anyone's guess. I will also say they focused on questions where I knew my answer was incorrect -- obviously. But its good they didn't have major beefs with absolutely everything I wrote down. The one programming exercise I ran out of time doing and only wrote some buggy pseudo code probably consumed the lion's share of our meeting time. I think I did alright and I think I made the two like me well enough. After the process during the Q&A the one did say a few times "We'll have to let you know after you come on" or "That'll be more clear on your first day." But that could just as easily be easy responses to questions he couldn't answer. Overall this drained me. So for the timeline I now started at 10, programming test until 1145, lunch until 130 and now defense until 3. Even though the lunch was nice I was on guard and making sure to thoughtfully analyze each question asked and to poll the best response possible in my brain. So even though it was casual my mind was still on high alert.

Immediately after the defense with the developers the lead came in to talk architectural stuff. By this time I was thirsty (I did get water but I was at the state of I needed to sit down and relax for 30 minutes. The actual water didn't help), hungry and my brain was exhausted. But I had to keep going. The overall problem space wasn't quite that difficult and I feel if I was in a better state of mind I could have done better. I will say I don't think I did poorly. But this is a real shame because I find abstract white-board architecture a strong suit and I don't feel I displayed it. After I went over my solution and we iterated it together he did offer me to ask him what he'd do differently. He really only brought up a few things. One was a fundamental change (but not a complete re-do) of one part and my solution was much, much better than mine. The other was simply using a different technology elsewhere. I'm sure there was more he could have done but that was the two he called out. Unfortunately the basis of my knowledge for web services is "Put it in Tomcat, set up your endpoints with Spring, go." They wanted a bit more knowledge than just that about the actual protocol layer and everything. I don't think I completely whiffed on this but I don't think I completely nailed it either. Like I said my brain was fried at this point. At one point I had to add 64 + 8 and I was just staring at the whiteboard going "Uhhhh ... probably some numbers. Probably higher than 64? Maybe?" and at that point I knew I had very little left in me. The architect sensed it as well and would occasionally just have sidebar conversations about Overwatch and things like that but we had a goal to complete and only a short time to do it.

After that I was brought back to reception, a cab was called and I was whisked away to the airport. They told me they'll probably get back to me later next week but with the 4th holiday it may be a bit longer. It sounded like they had quite a number of people possibly interviewing for the position so who knows. I'd be kind of shocked if someone didn't do better than I did but who knows maybe these questions were, as my wife says, "intentionally impossible" to try and generate conversation about thought process.

So TLDR of the schedule:

1000-1145 Test
1145-1200 Tour
1200-130 Lunch / culture interview
130-300 Test defense
300-415 Architectural design
 

Tenks

Bronze Knight of the Realm
14,163
606
Yeah my brain just stopped working about midway through the architectural design process. I was spent. I should have asked for a granola bar or something in hindsight. I'm not super confident I'll be offered the position but you never know.

The travel back was kind of rough too. My flight out of Orange was at I think 7. I arrived at the airport around 5. Then an hour flight to Phoenix and then my flight out of there was at 11. And remember this is all PST and my body is used to EST. I touched down back in Ohio at 7 in the morning EST.
 

Pinch_sl

shitlord
232
0
When I interviewed for my current job, I ended up declining to eat lunch, partially because of nerves and partially because I didn't want to be answering questions while scarfing pizza. Then in the middle of my presentation that afternoon I could feel my brain short circuiting from lack of nutrition.

Now I always encourage candidates to eat, but they still usually decline and you can tell by the end of the day that they are fading a bit.

I don't know how different it is in tech, but in my field the technical questions are only about 25% a knowledge assessment, and 75% a personality test.
 

Noodleface

A Mod Real Quick
37,961
14,508
Depends on the company. I assume Google is huge on technical knowledge but most places I've interviewed it has been a casual knowledge check to make sure you aren't full of shit and then proceed.
 

Noodleface

A Mod Real Quick
37,961
14,508
The last 6 or so I've had have been standard 2 hour interviews. Usually 4x30 minutes with someone from engineering, a manager, a pm, and a lower team member.

Keep in mind I typically work on hardware teams/companies so could be different for software engineers.
 

Vinen

God is dead
2,783
490
The last 6 or so I've had have been standard 2 hour interviews. Usually 4x30 minutes with someone from engineering, a manager, a pm, and a lower team member.

Keep in mind I typically work on hardware teams/companies so could be different for software engineers.
I think ours are normally 4 hours long. 4 different interviewers.
If it's a Senior position then there may be a second interview of fewer people.
 

Deathwing

<Bronze Donator>
16,429
7,440
Yeah, so fuck C++. I love how this statement in C++

is basically this in python(and probably a plethora of other more modern languages):

And as a bonus, I get m_it->first and m_it->second unpacked for me too!

I know why C++ is still around, it takes forever to change anything, even if software, but is there really a case where C++ is the best at something outside of low-level hardware and *maybe* performance? Honest question. The more I work on this little side project, the more I'm reminded of why I hate the language. I'm seriously considering removing it from my resume.

I used to think I was terrible at grasping complex programming concepts. Well, ok, that's probably still the case, but I think I realize now that learning programming with C++ as your first language is a horrible idea. It's really hard to understand things like pointers and templates in 6th grade and I think that held me back for a while.