Ask HN: Am I excessive in wanting to fire a dev?

10 points by SFjulie1 ↗ HN
The other day in a base code for a web app in python we had exactly this problem: http://effbot.org/zone/default-values.htm

I am the interim of the boss and in the code of one of my mate developer we had:

   def compute_since_how_long(self, queue = None, start=time.time(), end=time.time() + 86400):
       """all horrors left as is"""
and my fellow (python senior) developer did not understand the problem of scopes in python and the use of sentinel.

He made me tcpdump the mongo connection, check the sessions, the OS/hardware before checking the input/output of the function he coded and that was clearly the problem.

So even though I knew the fix, since I thought he needed to understand the problem, I asked him to fix the code (it is a part of the application he coded recently). And gave him the URL as a pattern.

He has a PhD, he know how to read, he is 35 married, and seems to be able to read a newspaper, he has no known cognitive deficiencies.

He left me with a test on value and not address

    if start == sentinel:
AND he added a test on end and swapped it with start. (sabotage or lack of professional ethic // testing was screaming my brain).

I was pissed and he answered publicly, if it so easy for you why don't you fix it? (ofc I am not a victim and did not let it slip.)

And I was telling him like, well, how can you claim to be better than a PHP dev (I have been a PHP dev, but it still one of my favorite bashing at any dev) when you don't care about scopes, immutability, allocation of variables when you pretend to code into a language?

He answered what I was saying is unnice! And used the coworkers as witnesses of me being an asshole for this.

I want to kill him and it does not seems socially acceptable.

Do you have any alternative better plan than the murder I am planning?

29 comments

[ 2.0 ms ] story [ 70.8 ms ] thread
PS I have been raised in Europa, expressed murder intents are not first degree murder intent. It is just a figure of style for saying how much angry I am in my own self.
You sound like an asshole. I would have quit a long time ago.
And if we accept that me being an asshole is not the problem here, but rather that my company has an application that customers use and may want to function without bugs, that we make money out of it, and that it pays my earnings as much as his?
It is the problem. Your attitude has probably negatively effected the people that work for you.
because companies are about attitude now and not any more about earning money?

Sometimes it is all about technical details, costing, pricing efficiency and getting things done.

Because at the end, it is all about the money. And defects are expensive.

And you may prefer an efficient worker with bad attitude than a cool bro that introduces bugs in code like a priest in a brothel.

Because bugs cost more money than assholish workers.

(comment deleted)
And in your original post you said you knew how to solve the problem but wanting the dev to learn a lesson. SO you must regard training time more valuable than customers bugs.

AND now you start arguments with anyone that disagrees with you??

Take a chill pill, fix the bug, move on, laugh a little, and look the poor bloke in the eye and say you are sorry. People will respect you more, and maybe next time things won't get so blown out of proportion. Above all, relax, you got this bro :-)

Let's imagine that lots of people don't like working with assholes. Let's also imagine that good developers can more reliably pick where they work. If that's so, being an asshole skews your hiring pool away from good workers. That might very well cost you money.
You caused extra downtime for the customer so you could make an example of someone and relish in your victory.

You're winning an argument while you lose the war.

Well, bugs will come back later if he does not updates his knowledge.

But, yes I was thinking the same myself. Whatever, I lost the war.

In fact, I prefer a boring life with less bugs on the long term and a bad reputation. But, it does not seems like a wise choice given the reactions.

I fully acknowledge my inadaptation to the actual era.

I think, I prefer to focus on the agenda of tomorrow and the tasks that must be done. You are right, customers come first.

There are battles that are not worth to be fought after all.

Well, tomorrow is another day. Thanks you all.

This is what makes startups so special, and powerful.

Everybody now knows (or should know) that the more modern type of developer environment - wear what you want, arrive when you want, stay home when you want, have all the free coffee you want - makes them MORE productive.

Pissing them off or giving them a shitty environment to work in makes them less productive.

And productivity = money.

Of course defects cost money. One defect means you lose money once.

Less productivity means you lose money every single day.

If you cannot politely and professionally give criticism to a developer (even better, mentor them), and instead choose to belittle them, then the problem is with your leadership style, not the developer.
Me asking politely the bug fix, and the altercation are separated by a 36 hours scope, with supports' phone ringing like hell because customers wanted to use their application.

And kind of me shielding the devs from the operations wanting feedback and a quick resolution.

Production is noisy.

It's ok to say no.

Just as it's important to be agreeable under uncertainty, it's important to say no under certainty.

"No, sorry, it doesn't make sense to start sniffing the wire protocol and checking the OS/hardware before testing the application logic first."

If paying customers were waiting for the bug to be fixed and you knew how to fix it, why would you wait 36 hours? I'm glad I'm not your customer.
(comment deleted)
It sounds like you already hated him, and your confirmation bias is blindsiding you.
I suspect there's more to this than this one incidence. Has there been friction between you and the developers in the past?
Without speaking to your specific situation, because I know neither you nor your coworker nor the full details of what happened...

I think every Python dev I've met (myself included) has a funny/embarrassing story about default initialization in Python. It's a behavior which exists the way it does for a good reason, but nonetheless goes against most people's intuitions. So, we tend to get bitten by it at least once, and then we remember our embarrassment and avoid it going forward.

> And I was telling him like, well, how can you claim to be better than a PHP dev (I have been a PHP dev, but it still one of my favorite bashing at any dev) when you don't care about scopes, immutability, allocation of variables when you pretend to code into a language?

This is where you went wrong. What you said was very `unnice`. Rather than plotting to kill him, start plotting your apology. Then figure out whether you are a "Boss" or a "Leader". It makes all the difference in the world. If you find that you are a boss, quickly relinquish your position. If you are a leader then you will find a way to apologize and turn it into a teachable moment for yourself and for your co-workers.

Do a quick google search on "Boss vs Leader" to understand what I am getting at.

Don't ignore your feelings. You should get pissed, and also understand the forces at play.

Not everyone you work with will have an equal or greater work ethic as yours. The harder you work, and the better you become at your work, the more apparent it will become development in many companies is less than ideal.

And that's ok. You'll be happier if you understand that.

You went on to dig deeper as a result of getting annoyed, which people who blindly succumb may not have done, and may lead to changes.

But please, stay focused on the bug, not the person. Address the process, not the person. The process is a stronger force.

One of the most effective ways to handle cases like this is to face the problem directly. In your case it may have been to send an email, containing only one sentence and nothing else (so there are no distractions) that says "I believe the problem is with scopes in compute_since_how_long -- can you please test this function?"

>He answered what I was saying is unnice! And used the coworkers as witnesses of me being an asshole for this.

If I read that correctly, other coworkers also think you're an asshole, correct? If that's correct, that is pretty important. If you are seen by not only him as unkind, but also by others as unkind, you'll be fired once the opportunity presents itself. There are even tech companies with the motto "Fire the assholes" because it is often more productive to work with someone less technically competent, but less of an asshole, than it is to work with someone who is more competent, but more of an asshole.

In addition, I had to read your post a couple of times before it made sense. The next time you're bothered by an employee, you may want to consider that for each of your emails, texts, etc, that the other person may have to do twice the work to read it.

Either everyone will get sick of you to the point where you're fired, or the guy will probably quit anyway.

I've noticed in situations like these it will end in one of those situations so you don't really have to do anything.

Being angry is fine but lashing out and saying "..you claim to be better than PHP dev when you don't care about.." serves no purpose other than reacting to your emotions...ESPECIALLY as a leader. If you said that publicly in front of others, that's even worst and you should seriously think about getting mentored by someone you trust. (regardless of how ridiculously clueless he is)

Being assertive is important but being an asshole just adds distance between you and your team. You gain respect on the former and loose respect on the latter. I agree with partisan: 1. Take a deep breath and run it by your "boss" to gain perspective 2. Apologize to your developer for the poor choice of words and tone and tell him that you regret, and it would never happen again. 3. Once that's done, ask: "But do help me understand what you did here and why."

If he repeats his mistakes, take the "I don't think we are a fit" or "this arrangement is probably not a match for us" or whatever. After that's done, you can go to your boss and vent some more. :)

Hope it helps.

He has a PhD...

A woman I once knew told me this story. Her friend was a single mom while in grad school, when her water broke she took herself to the hospital on the bus... After she finished her PHD she was unable to cross the street without help.

Getting a PHD on a topic does not grant you some immense skill with said topic (it can...)

However you should have done the following:

1. Production comes first, if you CAN fix it, do it. Production problems are the only time when you can and should be the HERO!

2. Once production is fixed, THEN you give the person shit... and the way you do that is by making them CYA --- your PHD should have been writing the same test for EVERY public function in your system to catch the mistake for as long as it took.

3. Its a job, you don't have to be NICE... however being an asshole isn't going to get you anywhere.

4. If you have to put someone down, at least be funny about it, or try to be. I used to work in an office that had "tokens of shame" (beanie babies). Someone would mess something up, and the token would sit on their desk, till someone else saw fit to "pass it on" to the next person who dropped the ball. The other favorite is "I'll bet you a dollar this is your fault" of course no one ever thinks it is, and they take the bet (you have to get dollars out on the table) --- then when you show them make a big show of taking the buck.

To me the root issues are a team culture where:

1. Code ownership is not collective.

2. People's jobs are at risk over individual mistakes.

3. Team members are inclined toward bickering rather than just solving the problem.

4. Outrageous behavior toward other team members is deemed acceptable.

Good luck.

So, he attempted to fix the problem, didn't do that correctly, you were an asshole about it, and he called you out on that.

It seems to me this problem (and the related ignorance) could've been fixed in 10 minutes of working together instead of 36 hours of fighting about it.

I'd never ever work with a person [I don't want to use bad words] like you !