I just stumbed on an old email I wrote a while ago to a prospective employer. I’m posting it because I’m curious how much it matches other people’s preferences.
> We didn’t get a chance to talk much about culture, but there’s just a few questions that I’d love to hear more from you on:
> -What kind of environment do you want to work in? What kind of environment do you work best in?
I’m happiest when I understand the big picture and can participate in the conversation about what to build. I know some programmers hate vague requests, but I thrive on talking with clients, especially when they don’t know a damn thing about how computers work.
I start with some rough sketches and then iteratively, we design the product together.
> -How do you like to be managed? How do you manage others?
The best managers I’ve had made it seem effortless. I knew my work mattered, I got a chance to learn things and work on cool projects, and when we had meetings they felt more like kids designing secret hideouts rather than a trip to the principal’s office.
How did they do that? I don’t really know, but I think it was a function of what we were working on, who we worked with, and how we did it.
When I lead teams, before each day starts, I spend a good amount of time by myself, planning what I want each person to do.
Then I’ll tell each person what I expect them to get done. That’s a starting point though — I’m happy to have a conversation and then reassign and reorganize tasks.
After that, I try to handle as much of the tedious stuff as possible, so that my team can think deeply about big problems. That means I’m happy to handle the tasks for stuff like changing labels on buttons,or debugging some non-core system, or replying to clueless customers.
I don’t think of management as a reward for paying dues. I think of running a team of developers as sort of like programming, but at a much higher, more abstract level.
The other thing I aim to do is make myself redundant. There’s nothing worse than feeling like you can never take a vacation because everything will fall apart. I encourage everyone else to share knowledge and cross-train each other, even if it means it costs us throughput in the short run.
> -Can you tell me a bit more about remote working in your experience? What’s worked well / not well?
Emailed screenshots can save a lot of time when there’s some layout bug that needs to be fixed. And I like IM for discrete questions, like “what is the URL to the testing box”.
But really, I’m a big fan of talking on the phone. I find that a 15-minute phone conversation where both people are totally focused on that conversation is often way more efficient than two people just barely paying attention.
Generally, I think regularly talking through stuff is key to keeping everyone invested and focused on the real goal.