1) At no point did I ever make it personal, I only talked about the code. This was not my first rodeo and it was clear that anything personal would have gotten me in trouble

2) He was completely unreceptive to any attempts to engage him, he thought he knew it all and didn't listen to a word I said. He was deliberate and aggressive in his mediocrity.

3) I asked many times for him to speak more softly as the others all did and he didn't care.

4) You are reading this as though for the first time.

5) L didn't do a good job on anything. All his work was like his pronunciation, the very least he could get away with

6) there was no gap in time between the branch discussion and his question. He had spoken the name seconds before and suddenly asked as if the previous ten minutes had never happened. There was no excuse. There was no excuse. It was bizarre.

And it happened a lot.

7) the crypto had to be in the front end because we wanted to send nothing unencrypted over the wire.

8) doing the least I can get away with is not who I am

9) there was no design, which was a red flag that I usually walk away from. They had a bug list. I said “this is not a design.”

10) there were no code reviews, no testing except what we did. I strenuously objected to all of this. I don’t like TDD for reasons I have enumerated in other documents and will not repeat here. I regard it as a fad.

11) I wanted to write one, they didn't have time

12) We will have to disagree on the status codes. This is how I wrote as a back end developer at many companies and everyone agreed with my use of codes. The reason L returned 200 in all cases and 400 for exception was because he copied and pasted, not because he had a different philosophy. He pasted and did not review. He did this a lot. He never discussed any of this with me. I would have been open to the points you mentioned. He wasn't interested. I'm not competitive.

13) Do no tell me to pair program. End of discussion. Design discussion yes. Pair programming is unacceptable. I resigned my position at Microsoft after a single session. I later had to go into counseling as a result of that one session.

14) I did not call him an idiot. That is in the document. I never communicated with him in any impolite way. Not once.

15) The 400 was returned FROM AN EXCEPTION BLOCK.

16) there was no development manager

17) I had tried discussing details with him many times and he had always blown me off. I wrote pages to him about the branches and he responded with a copy paste from the Git docs that had nothing to do with the branch structure. HE WAS UNRECEPTIVE. He was not interested in refining the design. I was. I had tried many times before and he had blown me off every time.

18) I don’t know anything about “waterfall,” and all agile means to me is meetings, which I regard as euphemistic for “interruptions” and 95% of which are complete wastes of time.

I don’t hate you, I am not offended, I appreciate your perspective on the status codes but even if I agreed it was incumbent on L to communicate with me why he had changed them. He did not. And I knew that he had just copy-pasted and not reviewed.

Written by

American Software Developer living in Vietnam. Classical musician (guitar, woodwinds), weightlifter, multilingual, misanthrope • XY

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store