This document attempts to give the reader a quick-and-dirty view into what I'm like as an engineer and as a manager. It's meant to help quickly understand some of my quirks, expectations, behavior, and personal philosophy. It's partially inspired by this article.
That means sometimes I can't separate my ideas or opinions from my identity. I've gotten much better about it, but once in a while I'm stubborn about something just because I didn't think of it. Point this out to me and I'll get over it.
I can usually find something fun, interesting, or otherwise compelling about it. But if I can't, it's going to be really hard for me to be good at it. If an organization is morally or ethically challenged, it's going to be really hard for me to function well within it.
I like to joke around. I use obscenity. Get over it, we're adults. If I offend you please tell me - I do not want to offend you or hurt your feelings. I want to make you laugh.
I'm rather casual when it comes to dress (this does not mean being casual about personal hygiene). If you conflate casual dress (shorts, tshirts, etc.) with professionalism and seriousness about work, we are not on the same page.
I value directness and forthrightness over obliqueness and vagueness. I consider clear communication critically important to success. I may ask you to disambiguate your communication, and this may seem aggressive. It's not meant that way, and it doesn't mean I don't care about your feelings. When asked, I will happily disambiguate my own communication. I probably won't actually use the phrase 'disambiguate your communication'.
I like to be part of a team. My work is more satisfying to me when I'm part of a team, whether it's local or distributed. I've been an army of one and I don't much care for it.
If you like to cut corners, I will want to discuss that with you. The corner you cut today will cut you tomorrow.
It makes me feel good when I help. That might mean mentoring, pairing in code or design, helping to troubleshoot, helping to triage bad situations, creative collaboration or brainstorming, or any number of other things. If I think I can't or shouldn't, I will tell you why.
I am, however, open to having my mind changed.
I may have authority issues.
In addition to the joy of coding, conceiving and planning systems (groups of components that work together to accomplish a goal) is lots of fun.
I consider *nix and *nix-like systems to be preferable in many situations. At its most basic, human-computer interaction is about manipulating text. *nix-like systems and tools are built on that idea, and I (mostly) find them to be "better". I understand that this opinion is not shared by all people, and I try not to proselytize.
I dislike most messaging systems other than email and IRC. I'll use them, but not on my phone. If you need to reach me right now, call me. That's why you have my phone number. If you need to reach me soon but it's not an emergency, email me or if you must, text me. I'm pretty responsive with email and text. Why do I "hate" Slack? I don't actually hate it. It engenders an expectation of always on, instant responsiveness; the subtext is that if you're not highly responsive in Slack, you're not a "team player". That's horseshit.
If someone is a bully or a jerk in their default communication style, there's a decent chance I won't get along with them. If I see a teammate or peer getting bullied, I may say something about it.
It's no fun to work with people who are phoning it in.
I don't think I know all the things. Part of the fun of working together is learning from each other.
Sometimes, even if I'm not the smartest person in the room, I have something good to share.
I can probably get better at whatever it is, but you have to tell me about it. I will listen to you.
If you can't or won't, it sucks to work with you. Seriously. Piss off.
Garbage in, garbage out. Tell me what you know; don't obfuscate or compartmentalize unless you're legally obligated to.
Politics and infighting are unfortunate truths of being human. Your job is to protect me from as much of it as you can.
I want to know how you (and the larger organization) thinks I'm doing.
You want to know how I think you're doing, don't you?
I hope you have context that I lack, and that this guides you in guiding me.
Sometimes I have a better take on a specific topic than you do. It's in your best interest to have an open mind.
See above where I expect my manager to protect me from politics. Crap rolls down hill, but it should stop at me.
If you're on my team, you're part of my crew. I'm fiercely protective of my crew.
It's your time, and it doesn't have to be about tech or your job. It's not a status update. You might have questions for me, or I might have questions for you. It might be about keeping up on what's happening around the company, it might be about professional development/learning/etc. I expect that you'll have things you want to talk about, because I might not always have things I want to talk about.
I'll try my best to make it happen.
We often have to make decisions without all the info we need. If you think a project, task, work unit, etc. is too vague, tell me. I'll probably agree. We'll talk about it.
If I'm not doing that well, please tell me. If something isn't clear, ask me. It's ok if we disagree, but if it's my ass ultimately on the line, I may choose my way instead of your way. If your way is superior, I'll probably go with your way. I might not though, and the reason might not be technical, but I will tell you what it is. The best technology doesn't always win.
One of the things my boss wants to know is what everyone on my crew is doing. Please make it easy for me to tell them.