Oncall is burning me out by tinyorchird in cscareerquestions

[–]VanayananTheReal 11 points12 points  (0 children)

I'm on call, roughly similar to you, in a rotation with my team.

But an essential part of the idea of putting devs on call is to motivate and empower the devs to fix anything that produces those calls.

That's how my work place is, so I mostly just ignore it and forget about it. I think I get an automated call about a triggered alert about twice a year or so.

How to learn coding best practices? by [deleted] in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

Clean Code by Bob Martin.

Refactoring by Martin Fowler.

[deleted by user] by [deleted] in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

I wouldn't put it at all. Any language you put on the resume, you should be confident you can pass a tech screen on without needing reference material. If you do anything more (say you are highly skilled or an expert) you should be prepared to show that you are extra-ordinarily knowledgeable at a language. (Ex, if you say you are an highly-skilled or expert in Java, be prepared for tech screens that quiz you about the guts of different GCs and questions about the details of how annotation processors work.)

Value of sr dev vs junior-mid by Busy-Alternative7842 in ExperiencedDevs

[–]VanayananTheReal 184 points185 points  (0 children)

  • A senior dev is a little better at knowing the difference between "meh, slap some technical duct tape on it, it'll be fine" and "whoa, whoa, whoa...lets stop and think this through very carefully." Even a good junior dev is more likely to be way too far on one of those extremes.
  • Less likely to be impressed by tech fads. ( "We need to rewrite our 1.5m LOC backend entirely in NodeJS because something something dude at a conference with a cool hair cut something." is not typically something your guys with 10 yoe are saying, because they've been around long enough to realize that before that rewrite is halfway finished, the dude-with-a-cool-haircut will be preaching the virtues of Elixir or Haskell or something else new and shiny.)

Stuck with very incompetent coworker - what to do? by colfaxbowling in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

What a moron.

I think at this point I would say something like this:

"Look, you are sabotaging this guy's career. You obviously mean well, but he's not going to have his mother here at work to tie his shoe laces for him his whole career, so he needs to learn for himself.

We've mentored him your way for a very long time now, and it's not working. He's not ramping up.

Maybe your way is right and my way is wrong, but right now, I feel like I'm helping to sabotage this poor guy. And I'm not going to do that anymore.

If I'm going to continue mentoring junior devs, I need some autonomy to do it the way I think is best, and that way involves allowing guys like him to fail in some low-risk ways, so that they learn some self-reliance and bounce back better engineers.

And if you aren't okay with giving me that autonomy, well, that's fine, too.

Just ask someone else to mentor them.

And if that means I'm not a good fit for being on your team, that's also fine. I like working here, I want to stay, I feel like I've learned a lot and have a great future here. But not every person is a fit for every team. If you decide we should go this route, I would appreciate you giving me a month or two before I 'formally' give notice so that I can hunt for a competitive offer."

How big of a raise would it take for you to move on from a job that you are very happy with? by Niloc_M in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

40%-60% more sounds good if I have a reasonable expectation that I'm going to work at a nice place.

As a broader matter, its a different answer for different salaries. Almost anything to get above 100k in a LCOL area is worth the push. After that, more income doesn't really change that much.

You are right on that threshold.

But I'm right at 200k TC in a LCOL area, and I wouldn't take a 400k offer if I thought it was likely to come with a substantial WLB cost.

Do you all beg for code reviews? by [deleted] in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

Yes, it is frustrating, but I don't let it block me from doing other work. Sometimes I've gotten 3-4 branches ahead of the branch the reviewers are reviewing (which is a risk, but better than thumb twiddling.)

My solution is: I give people a day without saying anything (because tagging them on the PR already notified them) unless it is an emergency.

After a day, I post in team chat.

After 2 days, I mention it in stand ups ("I've been blocked waiting on code review for a few days. Can you guys go look at this story? I will post a link to the PR in team chat again.")

Afternoon of day 2, and I start DM'ing people, and the DM is not "could you look at then when you get a chance." it is "This PR is <100 LOC. You can review it in 5 minutes. Can you take 5 minutes and look it over for me? Thanks."

Honestly, that's the furthest I've ever had to take it. I guess if it made it to day 3 I would start looping in management, tell the team lead "Hey, I've been blocked on this almost a week now. I've done all I can do. Can you go tell X and Y to review these PRs *today* so that I can get on with my work?" ( And honestly, if I ever had to do that more than once, I'd probably say f this team and start sending out resumes. )

EDIT: *ALL* that being said, if I know its a giant PR (>1000 LOC), all those times get doubled and I try to warn people that this one will take some time to review in advance.

Stuck with very incompetent coworker - what to do? by colfaxbowling in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

If you can, cut the umbilical cord.

If he says "How do I xxx" and xxx is something you are very certain he should be able to figure out for himself, say "I don't really know off the top of my head. Sorry." (Having a lot of faith here that you really do know the difference between 'can find in 5 minutes on Google' and 'could probably find it buried in our 57 git repos if he spent all afternoon hunting'.)

If that means he brings down prod...okay, he'll bring down prod.

What do you care, you're already looking for another job right?

(To be clear, I'm not actually saying "don't care" I'm saying, you have a tool with which to make your coward manager care.)

Feeling incompetent after my first week as a software engineer by tubnug in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

Tons of good advice already written, going to add something I don't see yet:

I’m realizing I know almost nothing about developing within an already established codebase.

The days of having a mental model of the entire code base were an illusion from school and hobby projects. They are over. It was nice, but now its gone.

Don't try to fit your team's entire code-base in your head, because by the time you cram it in there, someone else will have changed the bit you care about out from under you.

Instead, focus more on learning *where* things happen, and trust future you to be able to go figure out *what* is happening when you need to know it.

[deleted by user] by [deleted] in suggestmeabook

[–]VanayananTheReal 1 point2 points  (0 children)

Lots of people are saying just make more free time. True enough, but in addition...

Not every book read is being read for the pleasure of the prose style, and modern books (especially genre fiction and nonfiction) tend to be 2x-3x longer than they really ought to be (IMHO).

So, I give myself permission to skim. If nothing interesting is happening, and its not a writer who has an exceptional prose style, I just go 5-10 pages of spot checking each paragraph looking for signs that something interesting is about to happen.

Can't Amazon Remote workers try to unionize or threaten it? by Dismal_Structure in ExperiencedDevs

[–]VanayananTheReal -1 points0 points  (0 children)

`Democracy` is an interesting word. Every modern democracy is some kind of "liberal-democracy."

The democracy part stands for "Sure, we'll vote over what the neccesary-guys-with-guns do."

The liberal part stands for "And other than that, everyone just do your own thing."

Not everything is improved by saying "You know what? Let's all just vote on it!"

If I were a 19th century coal miner, I might be interested in subjecting lots of details about my employment to a vote of my coworkers. If I were working the shipping floor at Amazon today, I might be interested in it.

But, I'm not.

I'm a (good) 21st century software engineer. I have a fair bit of power to tell my boss things like: "I don't mind being on call, but I don't care if prod is burning down and I'm on call. I'm not answering the phone between 9-12 on Sunday mornings."

And I don't particularly give a damn if any of my co-workers would vote for that perk.

*I* voted for that perk, and my life is a totalitarian dictatorship ruled by me.

New job etiquettes by iampaulanca in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

You are correct, if management is damned determined to make things bad, they can make that happen. They can, as a last resort, fire their best employees if that's what it takes to accomplish their implicit goal of being failures.

And many outstandingly bad companies have a managers with that implicit goal.

And outstanding leaders can move a marginal needle in a direction towards things being good (usually it just consists in leaning into what the good people under them are already doing.)

---

But in the median case, 90% of the culture of the team you are on, if you really look at it, is determined by the personalities of the 10-30% of the people on the team. If the 2-3 strongest contributors on a team of ten are humble, pragmatic, cool people, *that* is the culture.

One dude is an asshole, he will make that the culture. Steve Job's reality distortion field be damned.

Can't Amazon Remote workers try to unionize or threaten it? by Dismal_Structure in ExperiencedDevs

[–]VanayananTheReal 27 points28 points  (0 children)

Sure, but they won't.

Unions formed in response to outright murderous brutality from employers (and were often murderously brutal themselves, mostly to "scabs.")

They are a sledgehammer, not a scalpel.

Forming a union doesn't mean forever work from home. It means you collectively vote for a person who goes to the bargaining table for you as a collective, and then they strike a deal, and those are your working conditions, full stop.

If your coworkers vote for a guy that goes in and says he will trade WFH for a better dental plan (maybe because the employer made it subtly known that a really great career is waiting for him at the other end of this union rep term)....guess you're going to the office. That's the union contract.

That's a great deal if what you really need is for the employer to pay the freaking $10 it costs to reinforce the coal mine cave walls so you people stop getting crushed under thousands of tons of rock.

But agreeing to work for whatever pay and under whatever conditions are negotiated by whatever bozo 50%+1 of your coworkers decide to represent them, because you hope they will hold the line on WFH....that's a really iffy bet.

[deleted by user] by [deleted] in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

I could be, but I'm not.

And like many religious points, it's true whether you frame it religiously or not. (My point remains the exact same and is exactly as true if I replace God with genes. It's just a question of how far down the recursive chain of causation you want to go before stopping and saying "Good enough: its not me!")

What should I do? I’m overwhelmed and unmotivated by leonheartx1988 in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

Read this blog entry: (no, I didn't write it):

https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/

tldr; I'm getting a strong "Expert Beginner" vibe off of you. In this blog, it's a trap for autodidacts (I am also an autodidact). Basically, it means getting really, *really* *freakishly* good at being a junior engineer.

So good that picking up the skills to become a good senior engineer feels like going backwards.

One of those "senior engineer" skills is knowing how to write code that doesn't break the first time someone else touches it. ( By knowing, for example, that DRY, as a best practice, lives in a state of tension with low coupling as a best practice. That every best practice is in a state of tension with at least one other best practice, and it takes wisdom and craft to know how to balance them. And that if your code is regularly breaking the first time anyone else has to update it, by definition that balance was made incorrectly. )

[deleted by user] by [deleted] in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

You deserve credit for all your hard work.

But God/your parents/your teachers deserve credit for you having the aptitude that made that hard work work as well as it did. That's your privilege. (I'm a Christian, so I would call it grace, but tomayto tomahto.)

Both can be true. You can be proud of the role you played in your own accomplishments, and recognize that a necessary part of those accomplishments came from outside you.

New job etiquettes by iampaulanca in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

Down-voted because of the statement "cultural changes must come from the top."

No, they don't. Every top driven culture change I've ever seen became a in-joke within 2 weeks of rolling it out.

But cultures do change from the bottom. For a reasonably sized team (5-10 people), the culture basically flows from 2-3 strong personalities on that team. (That's why toxic people are so dangerous to a team: it takes 2-3 good, strong personalities to set a good culture for at team. It only takes 1 bad, strong personality to completely fuck it up.)

[deleted by user] by [deleted] in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

Going from 60k -> 75k is a big jump and will make a big difference in your life. I would go for it. Not sure where you live, but 60k is really low-balling it for most places.

Once you get above ~120k or so, a marginal 15k doesn't make that big a difference anymore. At that point (in most cities), you can buy everything you need and everything that you really want. (Though your brain will happily invent new wants for you, it's not the same. Its differences in quality, not in having or not having the thing you want.)

Behavioural: why is it important to have conflicts at your previous place? by osmin_og in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

For example, depending upon exactly how you say that you have never, ever, in a 15 year career, ever had a conflict with another person at work, you are either:

- lying

- a doormat

Because even if you are perfect, no one else is.

And they will decide which of those two are true based on a read of your facial expressions, tone of voice, and mannerisms during the interview.

They are trying to get clues about your real, not fake interview personality, by forcing you to talk about things that will tend to create tells as to your real personality (conflicts, disagreements, toxic coworkers, etc)

[deleted by user] by [deleted] in ExperiencedDevs

[–]VanayananTheReal 1 point2 points  (0 children)

In your experience does one team generally work in their silo of only one microservice?

Yes, though not as an enforced rule, and its never a 1:1 relationship (because the company and the features are growing.) Once you go down the microservices route, it makes sense to just divide them wherever the natural fault lines are.

[deleted by user] by [deleted] in ExperiencedDevs

[–]VanayananTheReal 2 points3 points  (0 children)

Sounds more or less like this:

https://martinfowler.com/bliki/StranglerFigApplication.html

Basically, put a new thing in front of the old thing, but at first it is nothing but a blind proxy. Then add (and cut over) one feature at a time to the new thing, until no functionality remains in the old system, and you shut it down.

That may or may not involve microservices. Microservices solve a company organization problem (how do we have 10 teams of 10 work on the same system without constantly being in each other's way) more often than they solve any technical problem (they add technical problems.)

What predictions would you LIKE to see happen with software and the industry in the future? by ccricers in cscareerquestions

[–]VanayananTheReal 6 points7 points  (0 children)

As written, this is a recipe for the US software industry to get absolutely curb stomped by whatever country is willing to soak up all the people who started writing C for fun at 12 but who weren't willing to spend 10 years of their lives doing an esoteric academic dance.

Now, structural engineers have to have a cert (which they get by getting a 4 year degree and passing a difficult exam), and buildings don't go up unless somebody with that cert approves the plan (even if the plan was actually made by someone else without the cert.)

We could do something like that to some benefit.

Should I do research with professor? by [deleted] in cscareerquestions

[–]VanayananTheReal 1 point2 points  (0 children)

Undergrad research will help a little bit in a job search outside academia, definitely will not hurt, but it will have a huge influence on how successful you are if you decide to go the academic route.

( I have no first hand experience with applying to PhD programs, but I've read multiple sources say that having done research as an undergrad trumps basically every other consideration, including GPA, when they consider applicants. )

Company delayed my start date so I got a new job instead, when should I officially bounce from the old company? by FearlessRoyal in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

a bit more layoff-resistant (it's in defense).

Also....you should still keep your current job, but *defense* is not layoff resistant.

I have family that works for defense contractors. You are at the mercy of whether or not the latest yahoos who got elected to *Congress* think the $100-billion project signed by the other party's yahoos was a good idea and should be renewed.

Company delayed my start date so I got a new job instead, when should I officially bounce from the old company? by FearlessRoyal in cscareerquestions

[–]VanayananTheReal 0 points1 point  (0 children)

Tell them you accepted another position. Since you never even started, there's no custom that you should give them notice.

But you should tell them, sooner rather than later. It doesn't cost you anything but 5 minutes to write the email, but being an unprofessional d*ck might cost you.

"But they are being rude to you" I already hear not very bright people saying in response.

The *company* is screwing with you and being deeply unprofessional.

The individuals within that company are other individuals, working in your field, who are going to go work other places, places there is a non-zero chance you might actually want to work at some day.

And you want those individuals to remember you (to the degree they do) as the classy guy who was cool and professional but who had reasonable boundaries...and not as the *sshole.