Hacker News new | ask | show | jobs
by notdonspaulding 2108 days ago
My general advice for anyone who has a little spare time at work and is looking for how to improve their company but doesn't know where to start is:

Take out the garbage.

By which I mean, everybody has a part of their job that they just don't like to do. It's a necessary chore, but not fun or interesting or exciting in any way. Look around you for that kind of work that's already being done by your management or your peers. Take that task off of their plate (most folks will gladly give it to you) and do it for a while, and then see if there's a way to eliminate it, automate it, or otherwise improve the experience of doing the job.

Especially as a software person, the amount of power you have to take little parts of the business that are rough and make them smooth is tremendous. Taking out the garbage is just an easy way to get started helping out.

I'll say this also applies to your first few weeks/months in a new codebase. Find the little problems that everyone else is ignoring because they have bigger things to worry about and tackle those for them. Beyond being helpful to the team, it helps you learn the territory of the codebase more quickly than you otherwise would.

3 comments

As a cautionary tale -- make sure that there is fundamental institutional support for the removal of said garbage. If cleaning up the garbage requires help from someone else within the institution, verify that they can and will help you before you begin.

Source: I volunteered to remove some challenging/delicate garbage without sufficient institutional support. The lost productivity has had a marked impact on both my career and our team's success.

I'll second this with a personal anecdote as well.

If you do want to do this, clear it explicitly with your manager/person doing your perf reviews...

I had a non-technical manager who thought I was "avoiding" work by doing this instead of shipping new features and received a negative review because of it, even after explaining the situation.

> who thought I was "avoiding" work by doing this instead of shipping new features

Haha same. Mine thought these were unfinished tasks from my previous work and only have to do it now because i was slacking before.

this is true, I've seen someone here lamenting about how people changed his callback code to async while he was adding new functionality which resulted in him changing jobs.
> Take out the garbage.

I don't agree. You don't get promotions/pay hikes/bonuses for taking garbage out. Those are given to ppl who ship products directly bringing in tthe revenue.

> I'll say this also applies to your first few weeks/months in a new codebase.

I agree with this.

I'm on a project right now that's essentially all "taking out the garbage." I sort of feel like a garden gnome, fixing minor little issues here and there, but, this is all being done with institutional support, from my manager on up, so I have no doubt that I'll be rewarded appropriately for it. One of the bigger components of the project is going to end up saving one of our client teams about 9 man hours a day. In the end, I think that's a good enough result to justify a little garbage hauling.
> this is all being done with institutional support, from my manager on up,

I would be very careful with this. I made many mistakes like this. Unless you know this personally, I wouldn't trust this if its coming only from your manager and one level up.

People who control purse strings just don't care about garbage collection.

Even CEO should understand and value the project you are working on.

I don't think there's a disagreement here: notdonspaulding's advice was for "anyone who has a little spare time at work and is looking for how to improve their company", not for "anyone who mostly cares about promotions/pay hikes/bonuses".
> You don't get promotions/pay hikes/bonuses for taking garbage out. Those are given to ppl who ship products directly bringing in tthe revenue.

I'd disagree. Pay hikes and bonuses, maybe. But promotions are likely to go to someone who is stable and reliable. Why would you promote the fastest coder out of a coding job? Tech leads and managers are often the ones most comfortable in the system and the one who doesn't yell at others when he's interrupted.

The other little thing a lot of people forget is that it's hard to get anything done in a room full of garbage. So this often leads to better things for the team.

I think one of the marks of a good manager is they look at who is doing the quiet background work and make sure they get credit for that organizationally.

I am not saying all managers do that, or even that I am good at doing this, but this seems like a core responsibility of managing a team

There's a difference between taking out a little extra garbage and being taking advantage of. I think the OP is referring to doing something like removing an npm warning message in a build or adding a few sentences to the documentation on a Friday at 4:30pm instead of leaving early.
> You don't get promotions/pay hikes/bonuses for taking garbage out

Cleaning and streamlining processes and procedures can have huge effects on the company and get you noticed.

It starts with little things, Say you decrease compilation time by 30sec which could add up to hours a week. Or clean up documentation, making on boarding new devs easier.

Then one day you clean up something that has a huge impact on the company. Like a 40% reduction on server costs, by dynamic scaling... Then you're likely to get a promotion...

That's a good advice, it's the little things that usually get noticed. I was the one who kept the coffee maker clean, every week I'd wash all the parts and make sure we'd all get nice coffee. After a few weeks it started to catch on and other people also started to do it.