Monthly Archives: February 2017

You Can’t Fix Other People

I started working on programming contracts three years ago. I started my first contract all bright eyed and bushy tailed. I was eager to prove myself and get things done and show myself to be a 10x programming ninja.

That didn’t happen. At least not right away. Things were really disorganized. There were broad ideas about things people knew they wanted to fix, but no real strategy about how to fix them. Depending on what day you were talking to the client, you would get different answers about what something should do or look like. It changed constantly. It was impossible to sit down and complete a task because it was likely the client would change their mind and it would need to be changed or scrapped altogether. On another contract I worked on the entire concept of the app changed three times over the course of five months.

I had a more senior developer I was working under that gave me some really valuable advice. I expressed my frustration at not being able to get anything done and my worry about being fired. I asked why someone would hire a contractor to work on a project if they didn’t know what they wanted to get done. He told me that is exactly why people hire contractors. They hire them when they are at a loss as to what they want to get done. They think the contractor will be some magic bullet who will somehow read their minds to figure out all the things that need to get done for the client so they can break through the mental berries they have preventing them from doing things.

I have talked a bit about my mental health issues. All of my mental health issues stem from this phenomenon. Inactivity is corrosive to my mental health. I have had several jobs/contracts/projects I have been brought onto where people didn’t know what they needed to get done. Sometimes I have dealt with the client directly, other times I have had managers “shielding” me from the client. Once I had an abusive manager who would bully the team into not talking to anyone else at the company because he was lying through his teeth about everything we were doing and he didn’t want to be found out.

It all starts the same way. I come onto a project enthused to get to work. Either from the beginning or after the initial rush to get things done disorganization sets in. People get behind. People stop communicating. People start second guessing themselves and changing their minds. I start to panic. I don’t want to be fired. I want to do my job. I can’t do my job. I am being paid to sit around all day doing nothing. No one is going to keep paying me to sit around all day doing nothing. I need to find something I can do to contribute. But I can’t. I don’t know what people want. I start to shut down. I can’t keep motivating myself. I feel trapped. I start crying for no reason. I can’t go into my office anymore because it triggers flashbacks.

Last year I had the worst nervous collapse I have had in years because of this situation. I had a period of months where I couldn’t do any work at all. I had to paint and remodel my office before I could work in there again.

One thing I have learned from these experiences is that it’s important to take care of myself. I need to make sure I don’t melt down.

I now have a queue of work I can give myself. I am working on a book. I have a few side projects I want to accomplish. If the client doesn’t have anything for me to do, instead of sitting in front of my work computer slowly burning myself out, I do something else. I don’t bill the client for that work, but I make sure that I take care of myself. If the client can’t figure out what they want, they’re going to fire me no matter what I do. I can’t force them to do anything. I hope when I have even more experience I will be better at getting the client to listen to my advice, but right now any attempts I make in that direction cause resentment and anger at me, so I avoid it like the plague.

It’s hard to make yourself work on other things or step away from the computer. It’s like being in school. You feel obligated to sit through the boring grammar lecture because you’re supposed to be there. Your mind wanders and you fight with people on Twitter because you don’t feel like you can get up and take a walk or read a book on something else or do anything else that will preserve your sanity.

Some of these situations remind me somewhat of my relationship with my ex. My ex kept thinking that stuff would fix him. He thought if he got married that having a wife would magically make all of his problems disappear. He used to yell at me for not fixing him. He thought if he was earning a lot of money it would solve all his problems, but he was always angry and resentful that other people were earning more. He thought if he could be his own boss, he would be happy, but he realized how hard he had to work for a lot less than he was getting and soured on that as well.

You can’t fix other people.

If you have enough experience in dealing with people plagued by indecision, you can start to help them organize their thoughts, but only if they let you. You can’t by force of will make someone happy if they don’t know what they need and they can’t tell you. All you can do is take care of yourself so that when you eventually move on (which you will because these jobs are always terrible) you’re able to help the next person you work with who will hopefully have a better understanding of what they want than this person does.

My Spring 2017 Conference Appearances

It’s a new year, which means I am in the process of seeing if I can break my conference record this year. Not sure what that record is, but I think it’s around ten conferences in a year. Last year was pretty busy and it will be tough to beat, but it was also something of a furlough year because I was mostly talking about mental health and software architecture. This year I am going full on Metal for the work I am doing on the Metal Programming Guide.

Everything is coming up Milhouse!

GDC: February 27-March 3

This year I am working at/attending GDC(Game Developers Conference). I get to be a Conference Associate, so while I am not speaking at the conference, I still get to help participate in creating a great conference experience for everyone. I am looking forward to meeting some new people in the graphics programming space. I think it’s important to keep meeting new and different sets of people rather than staying in a bubble of people you already know. I’ve wanted to attend this conference for a while and I am super happy I got a chance to do so this year.

iOSCon 2017: March 30-31

I get to attend my first European conference this year, iOSCon 2017. Some old friends, like Saul Mora, are going to be speaking there, as well as some new friends I haven’t had the chance to meet in person yet, like Manuel Chakravarty.

I am incredibly excited about this conference because I am debuting a new Metal talk here. I have noticed over the last few years that a lot of people are interested in Metal, but they are not quite sure about how to approach it. They’re not able to break it down in the minds into manageable tasks and they wind up quitting in frustration. My talk here will focus on foundational structures and concepts that are necessary to work with Metal in a fun and approachable way.

CocoaConf Chicago: April 21-22

If you’re in the States and can’t afford a hop across the Pond, I will also be presenting my new Metal talk at CocoaConf Chicago. This will be my fifth time attending CocoaConf Chicago and my fourth time speaking! Holy smokes! Time flies when you’re frantically trying to meet deadlines.

CocoaConf Chicago was the first purely iOS conference I ever attended. The speakers and the Kleins gave me a community of people without whom I would not be where I am today. It’s always a great joy and pleasure to see all of my friends there that I only get to see once a year.

Please Say Hello

One thing I always look forward to when I go to conferences is meeting new people. It may not always come off this way, but I feel socially awkward. One reason I made friends with so many speakers in the Cocoa community was because it was easy for me to start a conversation with them because I knew something they were speaking about. When I go and sit at a table full of strangers, I don’t know anything to start a conversation with anyone. I am happy for people to come up and start talking to me and I am telling you to please take that first step, because if you don’t I assume that I am probably annoying you and to avoid embarrassment I keep to myself.

I am planning to have my service dog Delia with me at CocoaConf and GDC. She is an emotional support animal and it is okay for people to pet her. It was technically possible for me to bring her with me to London, but with all of the various travel SNAFUs and the unstable political situations, I don’t feel safe or comfortable bringing her with me. I am terrified that I will forget to do something important and she will be taken away from me and I won’t get her back. So might be a little emotionally fragile in London, but I will follow the old British saying of “Keep Calm and Carry On.”

Looking forward to a great Spring 2017 conference season!