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
Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Talking while coding is pretty standard for these things. Was there some reason you couldn't switch to speakerphone? edit: oops missed that in your post

I'm not sure I completely understand the problem, but could you have quickly put together a BFS solution to get the ball rolling? An A* solution is more difficult to do correctly on the spot, but should be doable with some practice at this kind of thing.

Adbot
ADBOT LOVES YOU

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender

Hadlock posted:

I keep reading all these amazing stories about how average Google engineers are making "$160K", but that is "total compensation" where their actual salary is usually under $110K

Fwiw, I started at google in september at a relatively entry level position and I'm at like 110 base 160-170 total. I'm certain higher levels make much more than me

edit: total meaning salary+bonus+rsu

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Two years out of school (BS), spent at a silly (but impressive if you describe it right) startup. I got hired as SWE 2 / level 3.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
I'm thinking something like pre-calculating log n sub matrices (divide matrix in half, repeat), and using that when walking the whole thing (compute the sum of the submatrix using addition / subtraction of precomputed parts), but I dunno if it actually makes sense.

Edit: doing the first part in reverse order probably makes sense

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender

Good Will Hrunting posted:

I applied to Google NYC last night on a whim. They got back to me at 9am today. Aren't Google recruiters notoriously bad or something?

Anyway lol I'm definitely not prepared for this process even after a few weeks of review.

I think it depends on the recruiter. I had a great experience. He was always punctual about calling when he said he would, and kept me updated about everything going on

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender

mrmcd posted:

US-NYC-9TH office best office.

I've never been to mountain view and inshallah i never will

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender

hendersa posted:

productive procrastination

this is how I spend most of my week. I've also heard it described as 'snacking'.

I'm great and identifying and knocking out all the low-effort/high-impact work. When I run out of that stuff, I'm like 'uhh, write a design doc? no thanks. I'll refactor some configuration files to fix TODOs I wrote 2 years ago.' I really need to break this habit.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
My team didn't use any startup DI magic for a long time. Eventually we started hitting a few issues:

* main.cc grew larger and less maintainable, to the point where it contained non-trivial logic that wasn't covered by unit tests. This less-tested code resulted in a few near misses and minor outages.

* In our test setup helper library, we had a sort of structural mirror of main.cc's startup logic. It wasn't exactly identical. Most of the time the differences were just ownership / lifetime semantics (stack vs heap), but other differences were more meaningful, leading to confusion.

* If some class is constructed in 10 different unit tests, and you need to add a new parameter to the constructor, then you have to update it everywhere. Annoying. If every test calls MagicBuild<MyClass>(), implicitly using the same startup logic as the real process, then this problem goes away.

You *could* solve these problems without adopting any new DI patterns, but I found the tools helpful in this case.

It helps that almost none of our classes are interfaces, and the "magic" is just writing a BuildMyClassFromCommandLineFlags() function and registering that factory function with the framework.

I also get lost and confused quickly whenever I have to dig into a Guice codebase, but I'm sure some of that is just unfamiliarity on my part.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Documentation wise, I kinda feel like my team is on the other end of that spectrum right now. We have dozens and dozens of markdown-based docs describing our internal architecture and procedures. It's not terrible, but they aren't organized in a consistent fashion and aren't updated frequently enough to keep up with reality. This is the natural result of organically adding new docs over the years.

Part of me wants to plan a structure and reorganize all the docs, delete outdated / duplicated information, and add some automation / policy so it stays up to date.

On the one hand it feels like it would be extremely helpful for the team (especially newer members), but I dunno if it's 'next level impact' so it's hard to make time for. Maybe I can just propose it as a project and see if anyone else is interested.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Yeah, keeping track of decisions is super important for anything with a lifespan of years. My team has not been consistent on this, and now I feel like half my comments on design reviews are like "I see that your design is trying to be consistent with what we've done in the past, but to provide some context, when we decided to do things that way: (we did it for abcd reasons stopped mattering 2 years ago || we overlooked wxyz and regret it || we literally didn't consider any alternatives because we didn't know better)"

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
in these months churning through miscellaneous tasks, have you noticed any opportunities for larger refactoring that would make the code or system more readable or maintainable? Bring up your idea with a teammate casually. If they think it's a good idea, write up the idea a bit more formally. Boom you're 'participating in design' and 'setting direction for others' or whatever the L4/L5 ladder leadership requirements say.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
I'm a newish TL and I'm getting nudges like "you'd be a good manager" because I care about the team and enjoy mentoring people.

But part of me is uncomfortable with the amount of authority I already have. I feel like becoming a manager immediately amplifies that and makes you into "The Man", and gently caress the man.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
I'm a leader and I don't know if I like it.

On the one hand, I'm on a relatively certain path to staff-swe in the next year. Maybe senior staff further down the line. Fat paychecks hell yeah. Also I genuinely like the people I work with.

On the other hand: In this role I have little time to do things myself. I'm the go-to person for answering questions on what feels like ~everything. I have lots of urgent stuff -- I try to delegate, but probably don't do it often enough. I miss having hours and hours of open focus time on my calendar instead of meetings and 1:1s. I'm good at the project management aspect of writing software, but don't enjoy it.

I guess that's the core of it: I'm good at stuff that the team and company highly values, but it's out of my comfort zone and I don't enjoy it.

I'm torn between
* Dialing my effort way the gently caress back to rest+vest for a while. This seems healthier for myself, but part of me will feel guilty about it.

* Continuing the things that make me unhappy until I have money to... idk? buy a nice apartment? honestly haven't thought that far ahead. This seems stupid.

* Find a way to continue in this role that makes me happier. Maybe I just need to get more comfortable delegating to others and better at managing my calendar.


Writing all this is mostly rubber ducking I guess. Has anyone else navigated something like this? Tips? Regrets?

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
my team hasn't written a single mock for a class that we own and I'm proud of this. In my experience, mocking just leads to 'interaction' tests that are brittle to changes and not meaningful. Tests like 'if I call the function under test, Mock.Foo() gets called once and then Mock.Bar() gets called twice' literally make it more difficult to refactor the code.



Rocko Bonaparte posted:

I feel like I could get into the game of stupid software engineering thought leader stuff if I published a book called "Anxiety Oriented Programming" where I make the thesis that the main goal of any development process should be to reduce the anxiety in the project and instill some sense of confidence, and anything in the process that instead increases that anxiety needs to just get thrown the gently caress out.

It's not exactly the same concept, but this kinda reminds me of "risk driven design": https://www.georgefairbanks.com/software-architecture/risk-driven-model/ tldr: the amount of up front time you spend on design should be related to how bad it would be if you screw up.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Leaving one line "do this" comments in code review is bad, and if I had to deal with that in my career I'd be very annoyed.

That said, (and maybe you're already doing this) it's probably better to think of it less as "pushing back" and more as "hey can you help me understand why you made this suggestion?". Maybe they'll reflect and think "why am I making this suggestion? Does it really matter?" Maybe they'll share an insightful story about a time they did something similar to what you're doing and regretted it.

Or maybe they'll just say "because I said so. I don't have time to explain". I've heard it happen before. That's the signal to find a better team.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
Also at google and also burned out and frustrated right now.

My psychological safety ends at like "my manager's manager". In the past, that would have been fine, because I never ever had to interact with people above that. VPs were just names in the re-org emails I'd periodically receive and ignore.

Recently it has gotten more... micromanagery? Like, our VP wants visibility on task-level things, and at the same time there is much less freedom to prioritize the work important to our team. Unless something is part of a top-level mandate, we can't work on it.

And the latest top level mandate is like... straight up a bad idea as far as I can tell. Part of me wants to raise the alarm and call out "hey, we can't deliver this on the mandated timeline without sacrificing quality and reliability. Is that the right call?" But I don't feel safe saying that. It feels like saying that will just make the wrong people learn my name in a bad context. Next layoff? Now my name is top of the list.

Anyway, I'm just frustrated and venting. I'll figure something out.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
What does it mean when you're on a US-based team and you start receiving a bunch of "please welcome X to the team" emails for people in the India office - with zero communication from your upper management about the long term plan?

I'd like to interpret things charitably and find a way to collaborate productively, but part of me is like "just stop working and start practicing interviewing."

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender

leper khan posted:

Any tips on getting a pretty senior engineer to use the "suggest change" button for poo poo like "change the type of this to long" or "this needs to be initialized to default" and other not wrong but slightly pedantic and takes longer to write what you want changed than to actually write up what you want changed

Have you tried asking them? What did they say?

Speaking for myself here, I pretty much always write out suggestions in words instead of just correcting things. It definitely takes longer, but I prefer it for two reasons: It allows me to explain why I'm suggesting the change (if it's not self explanatory or I think it's a learning opportunity for the author), and it feels less like a 'command' to write things out in English. As a senior eng, I try to avoid a vibe of "do it my way because I'm senior". I've been on the other end of that and massively resented it.

Now, if someone asked me to cut it out and just use suggestions on their changes I'd have no objections.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
I can think of two general approaches:

Convince decision makers of the importance. Back up the importance of this tech debt with numbers like "This issue is causing significant development friction. if we invest a month in this, we can increase feature development velocity, saving X months of effort."

Or find reasons to pull tech debt into the projects that are being prioritized and inflate your estimates to match. "It's important to fix this first because..." I call this 'laundering' tech debt. Often you don't even need to bend the truth much.

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
I've recently gone with "I suspect this option won't pan out because xyz -- but I'm not the one doing the work and I'm always happy to be proven wrong"

Adbot
ADBOT LOVES YOU

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
It's probably the beginning of a "great, you're hired! Now you just need to pay the onboarding / training fees" kind of scam.

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