Moon Shot

December 2013

Just about six years ago today I got my first programming job ever. Madison has never really had a thriving iOS work environment and I felt fortunate to find an iOS job immediately.

I was working for a start up that came out of UW-Madison where our CEO was so young that he had trouble paying for our holiday party because some of us (mainly me) had alcohol and he wasn’t old enough to drink. I was the oldest person there by a decade.

When I was a student I kept longing for a programming job so that I could work with people who had more experience than I did and I could learn from them. I wanted to be able to master designing software architecture and be a 10x engineer. That did not happen at this job.

In spite of not having any professional experience, my programming teacher did an excellent job of giving me a good programming foundation. He taught me about code smell. He prepared me for the fact that things change rapidly. None of my coworkers had this foundation. The code was deeply inconsistent. It took a month to implement a feature that should have taken a day because of how poorly the app was architected. They wouldn’t let me fix anything because they had a mythical rewrite of the code that would happen at some point in the future so why bother fixing things now when we have VC deadlines.

After a few months I knew this was not going to work out. I became deeply depressed. I had these dreams about what software development would be like and this was not it. I was afraid if I got another job it would be exactly like this one. I had an existential crisis.

I knew people through conferences that didn’t work at places like this. I knew they were out there. No job is perfect but some are better than others. I knew I wanted to get to one of these place but I didn’t know how.

I developed a five year plan for myself. I had a list of five companies that I would consider to be “making it” if I got to work there. I had goals of doing more conference speaking, hopefully internationally, and to write books. I decided I would not take any job that did not put me closer to doing something on my list.

Of those five companies on the original list, I got to work at three of them. One was a disaster, one was simply not for me, and the last ended because I decided I would rather date my boss than work for him. We got married last year and I don’t regret anything. But I do miss having a deeply collaborative work place where I could learn from someone who knows way more than I do and was patient in answering all my stupid questions.

I got to do a lot of conferences for a few years. I got to go to the UK twice. I had two years where I spoke at 10+ conferences in a year. It was fun for a while to get on a plane and jet off to some interesting location and meet a bunch of cool people who gave me a community I never felt I had. But a lot of these conferences don’t exist anymore. People don’t seem to be going to the ones that already exist and the energy is different there.

I finally got to publish my first solo book back in 2018. I spent most of 2017 locked in my house to get it done. I would have liked to have had more time to make it better, but given the amount of time I was given I am proud of what I was able to accomplish.

I accomplished basically all of my five year goals in four years. It would be three if I didn’t count the Metal book. Any time I feel depressed about what I am doing, I try to look back at where I was in 2014 and remember how far I have come and how impossible all of this looked.

2018

Last year I realized I had accomplished my five year goals. So at that point, I began to wonder what comes next. Up until I completed my Metal book, I always had a next thing I wanted to do. I had a company I wanted to work for. I had a book I wanted to write. I had an app I wanted to publish. After the Metal book, I kind of fell off a cliff. I had no real motivation to do anything. I had no end goal in mind.

I had thought when I started with Metal that I would build a consulting practice around it, but I ran into road blocks. First, most people don’t need a Metal programmer. Second, I couldn’t get people to agree to my rates. The rates I was asking were for what I would get for just regular iOS development and people were outraged that I would dare to ask for more than $60 an hour. Some wanted me to do their work for free as a test of my skills. This is no news to people who do consulting for a living, but I don’t want to deal with this crap.

I thought maybe I could write books. I know people who are prolific and can write a lot of books very quickly. I thought if I could churn out a book every year and maintain them that I could make that a sustainable job.

I made an agreement earlier this year to work on an ARKit book. I had hoped to get it done by the end of this year. It’s not even halfway done. I got sick earlier in the year and we had some stuff going on, but I was never really able to get and maintain any kind of momentum with the book and my heart wasn’t in it.

Also, I began to feel like the world was passing me by. My husband left his long term job this year to go work for Google. He comes home and tells me about all these amazing (public) breakthroughs they’re having in machine learning and all I can do is tell him I spent the day responding to editorial feedback and drawing a node tree diagram.

I don’t think I have the stamina to work for a place like Google, but I hate feeling like I took myself out of the game.

I had a really pissy conversation with someone on Twitter about whether or not I had to rewrite my ARKit book to use SwiftUI or not. He talked down to me about how no one would buy my book if I used UIKit and quoted that Jobs/Gretzky thing about going where the puck is going to be and not where it is. First off, I’m a tech person. I know the quote. Second, SwiftUI isn’t where the puck is going to be. It’s where the puck already is.

I began to feel actively resentful of the book because I feel like I have a decent idea about where the puck is going to be in five years but I couldn’t do anything about it because I had to finish the book.

For at least a year, I have felt stuck. I know that the things that worked for me a few years ago are no longer working for me. I can’t speak well at conferences anymore because I had a nervous breakdown and I get overwhelmed too easily. I don’t want to keep writing books because the stuff I am interest in is different from what the rest of the community wants to learn. I don’t want to be a consultant. I don’t want to work for anyone. Where do I go now?

Moon Shot 2025-30

On May 25, 1961, JFK announced to Congress that he was setting a goal for our country to put a man on the moon before the end of the decade. It was an audacious goal. It required a tremendous amount of money, man power, and cutting edge research. But we did it. We haven’t done it since because we’ve lacked the political will to dedicate ourselves to an expensive goal that would happen during someone else’s term.

I have a moon shot project. I found out about something that made me excited earlier this year and opened up possibilities in my head. The technology is new enough that it really won’t be ready for production for another few years. It could also disappear in the wind between now and then.

I want to do my moon shot project.

I don’t want to say what it is because I haven’t done it yet and I don’t want to come on here and say I am going to do something and then have to look at this post in six months and be irritated with myself for saying something stupid.

I am not afraid of someone stealing my idea because I know no one is going to. I am not afraid of someone telling me my idea is stupid because I already know that most people would and what their exact arguments are for why my idea is stupid, which is informing my design of the project so that I can eventually win these people over by resolving said issues.

Over the last few years, Jaimee Newberry has been doing a lot of great conference talks on motivating yourself to accomplish your dreams. She’s an awesome person who started a company where you can draw anything you want to and have it printed on a piece of clothing. She gave an awesome talk earlier this year about all the work they put into making this happen. She’s an inspiration.

While she’s better known for using this video, she has another one that she used just once that was only like five seconds long that I am unable to find. The gist of the video was a guy saying, “The only thing standing between you and everything that you ever wanted is you doing it.”

This has really stuck with me, even more so now. Since the beginning of this year, I can do anything I want. I don’t have to take a job for a paycheck. I can build and do anything I want. The only standing in the way of me doing my moon shot project is me. I am afraid it’s a fantasy I have for myself of a thing that would be cool to tell people I did and less of a tangible problem I want to solve for myself. I worry I can’t come up with the right stepping stones between where I am now getting to where I want to be. I am afraid I don’t have the motivation to make myself get up every single day, go sit at my computer, and just knock it out. It’s a marathon. If you’re doing a big project you have to make small goals for yourself or else you will go insane. I am afraid I am going to get frustrated and quit.

I do know I am tired. I am tired of feeling like I am not working towards something important and significant. I am tired of feeling like I am not improving. I am tired of feeling like I am irrelevant because I don’t want to be the first person with a blog post on the new shiny thing. I am tired of telling myself that I don’t care that no one else is interested in the things I am interested in and that if no one reads my book or plays my game that I don’t care. I want to care. I want to believe in something and advocate for it for some reason other than I happen to find it personally interesting.

I believe in this.

Establishing a Routine

When I began learning programming in 2012, I knew I needed to focus. I gave up a lot of stuff to learn programming, but I was able to motivate myself to get working every day. The same thing happened with the Metal book. I woke up every day knowing exactly what I would do. I had short term things I wanted to do each week with a longer term goal in mind. I have found my routine comforting when I am able to get into it. With that in mind, here are some guidelines I am going to follow for at least a year to see if I can establish my routine:

  • No books. I keep being tempted into writing books because I find it comfortable and familiar. They are a distraction from the things I actually need to be doing.
  • No conferences. I have a few hand picked conferences I may attend as part of my project, but I am not going to impulsively apply for a conference next year because I think it would be fun to hang out with my friends. The most recent conference I went to was so overwhelming I basically hid in my room when I wasn’t speaking. They’re hard on me and I need to focus on other things.
  • No unrelated technology. When I am getting burned out on a project I tend to have escapist fantasies about learning new stuff. Learning beginning new stuff is easy and comfortable because you don’t have to maintain it or get it to do things that are hard. It’s a distraction. I have to focus on just want I need to do.
  • Learn to say no. I have taking jobs/projects from people because I was afraid to say no. I want people to like me. I also remember the time before programming when I couldn’t find a job. For a long time, saying no to something was just unthinkable. But you have too. At some point, you have to make a decision about what is important because you have a limited amount of time and energy and care to give to something. I’m going to be greedy and hoard all of my care and energy for something that’s mine.

I would like to get back to blogging. Short form writing is okay. I can just vomit a bunch of words out of my brain and dump them online and go about my business. It’s different from doing a book where you have to carefully plan out everything you write and carefully go over it with a fine tooth comb for editing purposes. I find writing cathartic and I like to be able to just use my blog as a Pensieve where I remove things I don’t want to think about anymore so I can focus on other stuff.

I know this project will be harder than I think it will and take longer than I anticipate. I know tech changes. I know someone else might do what I want to do before I can. But I believe in this. I am going to do whatever I have to to keep myself from standing in the way of me doing what I must. No excuses. I choose to go to the moon.

Bullying

I have a bully.

Not a sexual harasser or a rapist or a men’s rights activist. A good old fashioned playground bully.

I have mostly kept this story to myself for over a year, but I don’t feel I can continue to do so. It is destroying my peace of mind and making me feel terrible. I tried to ignore my feelings about this, hoping they would go away, but they have not. I need to share my story in order to move on from this.

I’m not posting this because I want anyone to do anything about this specific incident. I just want people to listen and to understand.

The Beginning

My first interaction with my bully was back in 2015. 2015 was the first year I really got into conference speaking. I had finished up school the year before and conference speaking was the only way I had to network and get my name out there in order to find a job.

I was invited to speak at a conference in 2015 by a friend of mine. As many of you know, I used to be in an abusive marriage. My previous husband would not allow me to have money to buy textbooks while I was going to school for computer programming. My friend sent me books, watched my first shitty conference talk while it was being live streamed, and used his connections to try to help me find a job.

My friend did this when I was nobody. I wasn’t an author yet. I didn’t have a blog. No one knew who I was. He helped me because it was a kind thing to do and he had no expectation that I would ever become anything. To me, the way someone treats you when they don’t get any benefit from it means a lot. I see way too many people who only network with people who are more visible than they are and tell anyone just starting out to fuck off. I don’t like those people.

I was invited to speak at a conference my friend was organizing, but I could not make it because I found out my ex-husband had put us significantly in debt. I felt very sad about not being able to go.

My friend also invited my bully to the conference. My bully could not go for different reasons than I had. They were very vocal about how unhappy they were with my friend regarding his handling of his conference. They started a Twitter mob against my friend and started a whisper network around him.

I felt some loyalty to my friend after his working to help me before I had a career. I kept hearing people at conferences say how terrible it was that he was being attacked, but no one said anything. I was probably dumb, but I put my neck out to defend my friend because no one else would. I understood that my bully would be unhappy about my defense and I really did the best I could to say this whole thing was probably a misunderstanding, as is wont to happen when people communicate online.

After I posted that post, the talk stopped. I thought I made a difference and got people to leave him alone. I now realize it’s probable that people were still talking about him, but that I had shown myself to be untrustworthy and thus no one included me in these conversations.

I knew there would probably be repercussions for my actions, but I figured I did the right thing and I would feel morally okay with whatever the blowback was.

2018

Four years passed and I didn’t feel the blowback. I noticed I was never invited to a conference my bully was speaking at, but that was fine. I didn’t really care to interact with them.

My luck ran out in 2018.

A talk of mine was accepted at a conference. I had to spend nine months working on it. It was incredibly labor intensive, but I was happy to have the opportunity to speak.

Three weeks before the conference, I saw that the conference organizers announced my bully would be a keynote speaker at the conference.

I wrestled with what to do. I hadn’t had any contact with my bully in four years. I half hoped my bully had forgotten the whole incident and found someone else to be mad at about something. I thought about approaching the conference organizers about the situation, but I thought that would be petty. My bully hadn’t done anything so what would I complain about? What could they even do about it?

I found out.

Six days before the conference I was contacted on the conference Slack by the organizers telling me that they had to talk to me and had set a meeting for 10:00 the following morning. I kind of joked that I hoped I hadn’t done something wrong. They repeated that I was required to speak to them tomorrow morning at 10:00. They would not elaborate what had happened or what we would be speaking about. I had a sinking feeling this was about my bully. I was right.

The organizers, looking like police interrogators, told me there had been a complaint about me. They said they did not want to hear my side of the story because they didn’t care and would not believe me. They told me they had stringent conditions I was required to follow if I was to be allowed to keep my slot at their conference:

  • I was not to be within 500 feet of my bully
  • I was not to be in the same room as my bully
  • I was not to speak to my bully
  • I was not to speak about my bully to anyone at the conference
  • I was not to attend a networking event my bully wanted to attend
  • I was not to tell anyone that this conversation happened

I was dumbstruck. I was not surprised my bully had complained about me. I was surprised at how I was being treated by the organizers. I considered them to be friends. I had had them to my house and they had slept under my roof. They met my parents and I had fed them food I made myself. I considered this to be a deep transgression of my hospitality and relationship with them.

My initial inclination was to tell them to fuck off and that I would not attend their conference. I felt that this would have looked bad professionally. I spent nine months working on my talk and it could not be replaced easily. I was also bringing my now-husband with me. He had bought a conference and a plane ticket. I didn’t feel I could tell him that he wasted that money because I was being petty.

So I swallowed my pride and faked my way through the conference. I spent most of the conference hiding in my room with my husband. I came out for my talks and for meals. I briefly saw my bully as I was taking my dog outside to walk her and I was terrified that they would complain about me violating the terms of my parole and have me kicked out before I could give my talk.

The biggest thing that bothers me about this situation is that I had reported harassment two years earlier, the first time I attended their conference. Someone at the conference touched me inappropriately and tried to get me to take them back to my hotel room to have sex. I reported the incident and they didn’t believe me. They told me it was a misunderstanding, the perpetrator was European, and that I had misunderstood his intentions. I had to physically demonstrate on one of the organizers how I had been touched for them to take it seriously.

So like sexual assault is just fine, but just make sure you don’t defend someone on Twitter? I wasn’t allowed to tell anyone about that incident either. My bad.

Aftermath

I tried to tell myself that none of this is important and that I didn’t care. I felt deeply foolish for thinking these people were my friends when they clearly didn’t feel that way about me. I felt like I had been conned and was too stupid to realize it until it was too late. I was angry about the number of hours I wasted working on their projects and I wanted that time back.

I broke my agreement to not talk about this incident a few times with a few trusted friends in the community. Any time I tried to obscure the name of my bully, they always immediately knew who it was. No one I told was surprised any of this happened. They were always deeply sympathetic and told me that everyone knows how this person is.

Imagine my shock to see my confidants going out of their way to socialize and interact with my bully. I would see them having long involved conversations on Twitter or being asked to collaborate on their side projects.

I called one of them out about this. I reminded him about how I had been treated. His response was, “Yeah, but that has nothing to do with me. I can be friend with both of you and be Jonny in the Middle because I’m basically Switzerland.”

At first I tried not to let this bother me. I didn’t want to tell my friends they had to choose between me and a bully because that seemed shrewish. Also mostly because I know that my side would not be chosen. But the longer this goes on, the more this bothers me.

All of these people know this person is a bully. They know this person’s behavior is terrible. Conference organizers know that this person will ruin them on Twitter if they don’t do everything the bully says. So why do they keep giving my bully a platform? Why do they keep inviting the bully to speak and give them power and visibility? Why do they knowingly stick their neck in a noose and then punish anyone who threatens a situation where it might cut off their air?

I kept thinking that one day someone would catch wise to this situation and they would stop inviting my bully to speak, but it hasn’t happened. I realized that it’s not because people don’t know this person is a bully. It’s because people don’t care. They don’t care that this person treats people badly because they get something out of interacting with them.

That’s the piece that clicked into place that really made me feel I needed to talk about this. I knew my bully had mental health issues. Not that it’s an excuse for behavior. I don’t blame them for complaining about me to the conference organizers. I expected them to. I would not be surprised if my bully used their clout to keep me away from any conference they were at for so many years.

The people I do blame are the ones who know this is happening and do nothing.

I don’t know how I can continue to be friends with people who knowingly associate themselves with an abusive bully. I don’t know how they can feel that it’s okay for someone to ruin people’s lives as long as it’s not theirs.

I also keep thinking about how this was how I was treated when I WAS A SPEAKER!! I keep thinking of all the people this bully might have damaged who didn’t have the clout/visibility I do. What if I had been an attendee? A student? How many people have had their careers damaged or left the community because they ran afoul of this person? We’ll never know.

What Do I Want Out of This?

Here is what I DON’T want out of this:

  • I don’t want anyone who figured out who these people are to harass them on Twitter in any capacity. That’s their MO, not mine.
  • I don’t want to start a feud. This is about me talking about my feelings, not trying to start some kind of retribution against anyone. I’m not trying to damage anyone’s business/living because I feel slighted. I just want to be able to speak openly about how this made me feel.
  • I don’t want an apology. The organizers made a calculated risk that they could treat me like shit and have nothing bad happen to them because I have no power to make their lives miserable and they were right. That burns me up a little, but it’s reality. I don’t want a fake apology from anyone trying to make themselves look better. The bridge is burned and it’s not coming back.

I do want two things out of this. The first thing is I just want to talk about how this made me feel. I feel deeply angry and hurt by this situation. I have bottled this up for over a year and I am tired of it. I kept telling myself I had no right to feel upset about this because there are kids locked in concentration camps along the border and the world is slowly microwaving to death. Being slighted at a conference is the most First World Problem there is. Also, I may be in the wrong here. What if I did something terrible and I was told not to tell because it would look bad for me? I know I should get over this and if I just keep trying to be a good person and ship projects that in the long run this doesn’t matter. But I feel I have the right to my anger and my pain regarding this.

I want to be clear that I didn’t expect the organizers to tell my bully to fuck off. I was pretty sure my bully would complain about me, but I wish the organizers had handled their interaction with me differently. Instead of treating me like a pedophile caught next to a playground, I wish they had privately reached out and been like, “Hey, look. Someone complained about you. We know you’re cool. Do you mind just like avoiding them so that they don’t cause an incident?” I would have been like, sure, no problem. See you next week. They chose instead to completely burn our entire personal and professional relationship. It wasn’t necessary. They chose to do it. That kind of stings.

I want to get over this. This is a festering wound that never heals and constantly reopens over nothing. I don’t trust people who were my friends. I don’t feel comfortable or trust anyone anymore. I am consumed with a desire to become so powerful that no one can ever fuck me over like this again. I hate feeling this way. I want to build things that make me happy. I want this to not bother me anymore.

The second thing I want out of this is for people to realize there is no neutral position in a situation where someone is being bullied or harassed. If someone is being bullied because they disagreed with another person’s behavior towards someone else and they are being harassed, you don’t get to sit there and think, “Sucks to be them! Should have keep their mouth shut!” and still be a good person.

There is a somewhat large subset of people on Twitter who feel that any kind of disagreement with them constitutes harassment. It does not. Hating someone isn’t justification for complaining about their presence at a professional event.

How to Handle Bullying

Here’s a handy guide to dealing with bullying.

If you see someone being harassed, you gently insert yourself into the conversation and you tell the harasser that their behavior is inappropriate. The harasser must back off and apologize and the incident is over. There is no retaliation or blame from either party. It’s just over.

If you see someone try to step between a harasser and someone else who is also being harassed, you don’t sit back smugly and think they should have kept to themselves. You step in and also assert that this behavior isn’t acceptable.

This works even in the situations where people are afraid of being called out as creepy or socially awkward. If you are bothering someone and you don’t mean to, the person just wants the behavior to stop. Someone lets you know that you are bothering another person, you apologize, and you leave them alone. Kindergartners understand this. Had I been asked to apologize to my bully but be allowed free range of the conference, I would have been happy to do so. But the point was retribution not fear.

Bullies are allowed to act the way they do because most people sit back and let it happen because they figure it’s nothing to do with them. It is to do with you. If you sit back and let people behave this way, you’re contributing to a hostile environment. Your friends see when you sit back and let them be treated like crap. They remember. They pretend it doesn’t hurt them when you tell them later that what happened sucked but you didn’t want to get involved, but it does. You are hurting your friends when you let them be harassed.

We can’t do anything about the concentration camps along the border or the inevitable heat death of the Universe, but god damn it, we can make our community a little bit more welcoming and friendly place for everyone.

Post Book Stress Disorder

In sports there is a concept known as The Yips. It’s a condition that affects experienced athletes where they develop spasms in fine motor movements that impact their game in a profound way. It’s generally in culture ascribed to the athlete letting their head get in the way. They begin to overthink things too much. It interferes with their movements, causing them to do poorly. This creates a negative feedback loop where they are doing badly because they’re thinking too much, which causes them to think even more and do even more badly. It can completely destroy an athlete’s career.

Back when I started with tech, I didn’t have a lot of experience with programming, but I did have a lot of experience with writing and speaking. I delivered radio news for three years. I had a journalism degree. I knew that I could present and deliver information in a clear concise way. The big problem I had was that I was limited in what information I understood that I could present.

I had the opportunity to write several books early in my career that I felt very proud of. These were generally introductory books, which contain information that tends to be easier and more fun to present.

That changed two years ago when I was given the opportunity to write a book on Metal. I felt very strongly that I could learn and explain Metal in a way that was understandable because I was coming at this as a beginner. Everyone I spoke to who knew Metal was someone who was very familiar with OpenGL and didn’t really understand what a beginner would not know about. There was a lot of unfamiliar terminology that you need to have a good grasp of in order for Metal to be useful. I had a lot of confidence that I could present this information in a presentable way to people with no graphics background.

During the process of writing the book, I didn’t really have time to think about what I was actually trying to do. I was laser focused on accomplishing one task at a time until the book was done. It was an intense but satisfying experience to watch as my small steps added up to a full book.

I needed a break from writing, so I didn’t blog much or work on a book in 2018. During that year, I had some time to think. And the thoughts I had weren’t very pleasant.

When I completed the book I was proud of what I was able to accomplish in the time I had available. I felt that it would take two years to write a good book on Metal. I had about ten months. I didn’t have time/resources for the number of graphics I wanted for the book or the amount of sample code I originally planned for. When I finished I felt that I had had the minimal amount of time to write a book that I would not be embarrassed by. But not being embarrassed by something is vastly different from being proud of it.

There are several chapters of the book that my tech reviewers were deeply disappointed in. One of them has blocked me on Twitter. The other one will not speak to me. I don’t know if this is a reflection on them or on me. I don’t really understand socially what happened and it upsets me to know my peers do not like or respect me.

I have begun second guessing myself on the book. I don’t know if I presented the information well. I keep worrying that people who read the book are judging me and deciding the book was bad and that I exposed myself as a fraud who doesn’t know what I’m talking about.

I finally began reading through the book the Wenderlich’s published on Metal after having to get over my fears of it being far better book than my book was. I think it’s a better book than mine and they cover a lot of the material in a much more comprehensive manner than I cover my material, but I also feel the book is incredibly dense. I only understand the material presented because I took off nearly a year to fully understand Metal to the point of writing my own book. I don’t want that to come off as bitchy or dismissive of their book because it’s full of a lot of great information. It’s a great book for me and I am grateful that it exists, but I do wonder how much help it is to people without the same background I have.

I have begun to worry that this material is completely unpresentable. That there is no way to simply explain things to new users. This is causing me to second guess my ability to present any information about anything. I don’t know if I actually was ever good at presenting information or if it was just hubris on my part.

I am considering writing another book on a far less complex topic than Metal, but I am wondering if I have anything to contribute to that topic. I am wondering if I should bother writing anything because I don’t know if I can present information clearly in a way that people find useful. I also don’t know if anyone gives a crap about the things I want to talk about because it’s not about algorithms or cross platform JavaScript frameworks or network protocols. This is causing me a lot of depression and anxiety.

I don’t know if I should take this as a sign to give up on writing technical books or if I need to jump back in so that I can get over this. I keep going back and forth. Some days I am super enthused about the idea of writing a book from my own perspective. Other times I feel like I am just copying work other people have done but in a much less compelling way.

I feel the urge to hide. I don’t want to talk to or deal with anyone. I want to be left alone. I want to just work on crappy little projects that will never earn money that I do for myself because I have given up on the idea that I have anything of value to contribute to the tech community.

I keep trying to tell myself that completing the Metal book was an accomplishment. I wrote that book in less than a year. I wrote it by myself. I got up every day and stuck to a plan and shipped something. It’s not perfect. But for better or worse it’s presented in the way I felt it should be presented. This was a challenge and I don’t know if there is a right or wrong way to present difficult materials.

My hope is that anyone who reads the book and is disappointed by the content that they at least understand that I worked hard and did what I thought was right. I did the best I could under the circumstances that I was given. I don’t know if I would have done things any differently had I to go back and do it over again. But now I have to deal with wondering where I stand and what I have to contribute to the community.

2018 Changes in Latitudes, Changes in Attitudes

Happy 2019 readers! This blog has been on something of a hiatus for the last two years and I would like to rectify that in the coming year.

2018 was a time of some rather big changes for me. At the end of 2017, I moved in with my boyfriend. We fell into a rather comfortable routine. My job allowed me enough down time to work on side projects, such as my game development blog and a new third-party framework.

As 2018 progressed, I left that job and began a consulting contract. I had a year to complete the contract and I was slightly burned out, so I worked that part time. This allowed me to continue to work on the third party framework, which I had hoped to complete the port of by the end of the year.

But, life gets in the way.

In March my loving boyfriend asked me to marry him. I joyfully accepted and we set a wedding date for September. I had already planned out what we were going to do. The wedding would be quite small. I figured that it wouldn’t disturb our routine that much and I could continue work on my side projects.

Let’s just say this did not go to plan…

Beyond the actual wedding, there were a lot of things that needed to be taken care of. There was paperwork and deadlines. I had to go through various processes to get my name changed. There were dress fittings and meetings with the minister. All of my mental energy that I had been using for my side projects went into the wedding/marriage.

The whole family at the wedding. Mazel tov!

I think I have written on here before about the depression I suffered after my first marriage officially fell apart. I thought when I got my ex-husband out of my house that all of my mental energy would be free to work on projects and do things I care about.

I didn’t realize that the huge change in going from being married to being single would be a tremendous shock to my system. I had never paid taxes before. I hadn’t paid the water bill before. I had no idea what any of my expenses were because I never saw them before. I now had to handle those things and budget for them and figure out how to feed myself. This threw me into a shock and it took a few years to shake off.

Even though the wedding was a nice disruption to my routine, it was still a disruption. I had a lot of trouble getting motivated or focused on my side projects because I kept worrying about something I needed to do for the wedding. I knew it would be over soon and when it was that we could get back to our routine and I could continue with my projects.

Again, that turned out not to be the case.

When I moved in with my husband, I wasn’t really comfortable with the house. It was his house and even though I gradually made it feel like our home, there were some issues with it. I didn’t have a room that worked well as a home office. I converted a bedroom to my office, but it was still a bedroom. It had closets and was in an upstairs corner of the house. We couldn’t open our window shades because the houses next door were within touching distance and we didn’t want people to look in. We had basically no yard, so that was hard on the dogs.

Instead of weekends spent lovingly working on game and graphics projects, we attended open houses and got our hopes up on homes that didn’t pan out. It was mentally and emotionally exhausting.

My new dedicated office space!!

We found a lovely new place that suited most of our needs perfectly. The ones it didn’t were improvements we could implement as opposed to ones that could not be changed, like the size of the lot and the nearness of the neighbors.

So instead of spending nights and weekends working on projects, we spent that time cleaning our house to put up for sale. After the sale, we spent that time cleaning and packing for our move.

For about two months it was close to impossible to work on anything I didn’t absolutely have to because of the sheer mental exhaustion of just planning out everything that needed to be done before we could move. I couldn’t even get involved in my usual cooking projects because I knew that I should be packing up the kitchen for the move and it made no sense to buy a bunch of food that would need to be moved from one place to another.

Around the time we started putting the house up for sale, my consulting gig got a bit more serious. I discovered there were a bunch of required features I had been unaware of and the client wanted the project completed by the end of the year. I started working on that full time and had literally no time for anything else I wanted to work on. The third party framework has languished for months and people are beginning to ask if it will ever be completed.

Three days after Christmas we moved out of our old house and into the new one. It was an exhausting day, but we made it work. We’re still surrounded by boxes and I still have trouble finding clean underwear in the mornings, but we’ve weathered the worst of it and we’re beginning to take stock of where to go from here.

I have a few goals I would like to accomplish in the first half of 2019:

  • Make GPUImage 3 have feature parity with GPUImage 1. I feel badly about not updating the framework for so long and I want people to feel comfortable knowing the framework isn’t abandoned before integrating it into their projects.
  • Blogging. I have let all of my blogs languish because I have been too overwhelmed to think about what to write. I would like to go back to blogging about graphics and getting more comfortable with Metal in general.

It’s not a first half of 2019 goal, but I have the same goal for 2019 that I have every year: Ship an app. I have shipped books and held interesting jobs, but I have not shipped an app of my own. Technically the consulting project I am doing is an app that will ship that I essentially wrote on my own, but it’s not mine. I learned a lot from the experience of building that app and now I want to make one of my own and be my own client. I have not decided if it will be an iOS native app or a project created in Unity.

I have a few possible projects on the horizon that have not been committed to yet, so I won’t mention them here.

I know that there is something of a backlash against New Year’s resolutions. Most revolve around losing weight and going to the gym, which is hard to sustain. I think it’s nice to have a delineating beginning to a span of time where you can take stock of things and say “I don’t like how things are right now and I want to change them.”

I love my husband and I love our new home. I would not change that for the world. But right now I need a mental change. I am tired of my side projects being packing my life to move from one place to another. I miss having a thing I am making for myself that I will feel proud of. I keep worrying I will never get back to that again. I want my own life. I want my own projects. I want to look at things I have produced and feel pride that I did something this year that I couldn’t do last year.

Professionally I feel like 2018 was a wash. I didn’t accomplish anything I wanted to. I don’t feel I progressed in a meaningful way. I guess I have mostly completed an app by myself that should ship, but that doesn’t feel like progress to me. I want to learn from these experiences so that I can use my time better this year on things I care about.

I don’t think we’re going to have a wedding or a move this time around.

What Will Your Verse Be?

Yesterday was the conclusion of WWDC 2017, and what a WWDC it was. It felt like everyone got what they wanted. Most developers got better stability in tooling and not too many changes to the core frameworks. We also got some breathtaking graphics and games APIs, like ARKit, along with easier integration for machine learning models, such as MLKit.

I watched the keynote in awe, my brain exploding with everything that was now possible in iOS. I had augmented reality on my wish list, so that thrilled me. But seeing how much love Apple gave Metal really touched me deeply. I have spent the last eight months working on a Metal book and I had feared that it would land with an unceremonious thump and no one would care about a three year old technology framework. The keynote gave me hope that Metal would be a continuing important part of Apple’s future for the time being and that my efforts were not wasted.

I downloaded the Xcode 9 beta with the intention of diving into ARKit. The beta still has not been extracted from its .zip file. I got home and immediately became overwhelmed by everything. There are so many new things. I tried to look at the docs but my head swam and I couldn’t deal with it.

The next day I started to see people posting their own AR efforts and a few days after that I started seeing ML efforts. I got very depressed. I left the keynote feeling like I was ahead of the curve and now I was already behind it again.

I feel we in the Apple Developer Community have been trained to jump on every new shiny thing Apple announces immediately. We all remember missing out on the Gold Rush when you could put out an app that you made over a weekend with some new piece of technology that Apple created and earn $10,000 in a week. The new Photos stuff allows us to do a vast but limited number of things and if you want your Photos app to be the top dog you have to get it out before anyone else does because you all have access to the same tools and the barrier to entry is low.

I want to be emphatic about this point: That is not the same situation with ARKit or Core ML.

My background is in the creative field. I wanted to be a film director and do sound design. My dream since I was a child was to have the Back to the Future experience of getting a box of books on my doorstep that had my name on them and to know I wrote a book. I have had that experience several times now and I feel quite blessed that I got to have that experience.

Anyone can write a book. We all have access to the same tools. There are fancy authoring tools like Ulysses and Scribner that cost $50, which is basically nothing compared to the cost of being an iOS developer. There are self publishing sites everywhere that will allow you to publish your book if no one else is interested, or if you don’t want to give up 50% of your royalties.

Just because anyone can write a book doesn’t mean everyone will write a book. Also, it doesn’t mean that someone else is going to write your book.

We still read stories that were written hundreds of years ago because they speak to something foundational about how we see ourselves as human beings. I read Tarot cards and the cards haven’t changed for a hundred years in spite of all of our changing circumstances because even though we all have iPhones and can connect at any given moment, what makes us human has not changed. We all worry about money. We all strive to advance in our careers. We all crave love. We all desire to have some kind of family, even if that family consists of friends and a grumble of pugs. Those aspects of ourselves don’t change.

A story by Jane Austin still resonates with us because we know how difficult it is to find another person you are willing to spend the rest of your life with. Romeo and Juliet still appeals to hormonal teenagers to whom every little bump in the road is the end of the world and for whom every relationship is forever. Unfortunately, the same applies to Twilight.

One reason so many people are appalled at the behavior of the Republicans right now in trying to strip tens of millions of Americans of their health insurance is because it goes against our script of what we think people should be like. Atrocities like the Holocaust speak to us on a deep level because it goes against our human nature of the way that we think people should behave. And it keeps happening. This is one reason The Lord of the Rings and Harry Potter have such staying power. They speak of ordinary people being placed in extraordinary circumstances, facing incredible odds, to attempt to defeat evil. The evil of Lord of the Rings was a different evil than we have now, but evil is never truly defeated. If you wanted The Legend of Korra, you know that light and dark are in an eternal battle where one can never truly vanquish the other.

Yin and Yang. Darkness and Light. Good and Evil.


Augmented Reality has me excited because it opens up another medium to tell stories. You could create an AR app that takes you around the Tower of London while you investigate the disappearances of the Princes in the Tower. You can stand on the site that Anne Boleyn lost her head and see the crowds of people observing the event. It makes these old sites and dusty facts come alive in a way that they can’t if you’re just reading about them in a book.

Technology in and of itself doesn’t make something compelling. Every Jurassic Park movie has dinosaurs, but only the first one truly feels special. When I think about Jurassic Park, I don’t think about the dinosaurs. I think about the characters and their story arcs. The overarching story arc is a tale of human hubris where a con man with a bunch of money is able to cobble together extinct animals by buying enough technology other people developed in order to create an amusement park to make money. He doesn’t think through the consequences of what he’s doing and is brought low by his own hubris.

The secondary arc of the film has to do with Alan Grant. The first thing you learn about him is that he hates computers and technology. Nothing in this movie is going to change that opinion. The second thing you learn about Alan Grant is that he doesn’t like children. So of course he is the one that is stuck watching the children after the park goes to hell. He goes through a fundamental change by having to interact with actual children and at the end of the film they snuggle with him as Dr. Sadler starts ovulating. It keeps Dr. Grant from just being the crabby guy who loses all of the good one-liners to Jeff Goldblum.

We’ve seen many other films in the last 25 years that have dinosaurs, including the most recent Jurassic Park last year. But none of these films have the satisfying feeling that the first one does. It has an encapsulated story and a grand theme of human scientific hubris. Everything goes to hell the way it’s foreshadowed. The park is destroyed by the unnatural force that was brought into it, and all of the people we actually care about survive. It’s a satisfying story that is enhanced by the use of special effects that are actually used quite sparingly.

One reason Pokemon GO was so successful was because it was building off of an experience that people have been emulating for 25 years, which was to pretend to live in a world where little pocket monsters live in the tall grass and can be captured and made into your friend. There is a sense of wonder about Pokemon GO in that you can take it into the normal world that you inhabit and you can lift the veil on the normal world and expose a fantastical world you never knew was there. Most people agree that Pokemon GO was rather repetitive and the game play wasn’t great, but it created an experience that was wanted by a large number of people. The same thing happens when people visit the Wizarding World of Harry Potter theme park.

One thing these have in common is that they are pre-existing properties that have large and established fan bases. Most developers aren’t going to be able to go out and create their own Doctor Who augmented reality application because of licensing issues. So that means that there really isn’t a hurry to go out and do whatever the first few AR apps are going to be. If a company like Warner Bros wants to release their own Harry Potter AR app, you can’t stop them. But you can think about what story you want to tell.

AR is a tool that is made or broken by the story that the creator wants to tell. You can create an interactive murder mystery or a tour of a museum. There are so many unexplored avenues of AR that the limit is what you can imagine and how much work you’re willing to put into creating that experience.

We have such tools to create and express ideas, yet few people seem to. I am guilty of that as well. I do hope that the barrier to entry gets low enough that I can spare some time to create some experiences for the joy of creation. But please do think about creating something for the joy of creating it and not because you assume that there are a wealth of new AR related jobs or a limited number of AR apps to be created and you must pursue the money train on this. That train goes over a cliff. We have so many media for self expression and no time to do it and no stories to tell. Life is filled with possibilities if you lift the veil on the real world and reveal the hidden one.

We don’t read and write poetry because it’s cute. We read and write poetry, because we are members of the human race. And the human race is filled with passion. And medicine, law, business, engineering — these are noble pursuits and necessary to sustain life. But poetry, beauty, romance, love — these are what we stay alive for.

To quote from Whitman: ‘O me, O life of the questions of these recurring. Of the endless trains of the faithless. Of cities filled with the foolish. What good amid these, O me, O life? Answer: That you are here. That life exists and identity. That the powerful play goes on, and you may contribute a verse. That the powerful play goes on, and you may contribute a verse.’

What will your verse be?

Goals for 2017

We’re about halfway through 2017. WWDC starts on Monday. I have been working on a book on Metal since about October. My life has been on hold since then as I knew I couldn’t really work a full time job and write a book on Metal at the same time. Metal is incredibly mentally comprehensive. It’s a multidisciplinary skill as you don’t just have to understand the framework, you have to have a large base of knowledge around linear algebra applications in order to have it do anything useful. Half of my book is about graphics and half is about machine vision/learning and GPGPU programming. So trying to learn all of these things and distill them into something that’s actually coherent to other people has been incredibly mentally exhausting. It’s been rewarding as well. I honestly don’t think I could do this while also working full time concurrently.

I am getting to the end of my time on the rough draft of the book and I need to figure out what I am going to do when it’s over. My plan was to try and knock this book out as quickly as possible and then hope I could use it as a portfolio piece to find a decent full time job that would hopefully allow me to work remotely. As I nearing the end of this process, I don’t really want to do that yet. Don’t get me wrong, if someone offered me a decent full time job that let me work from my house right now, I would accept it immediately. But right now that’s not what my main career goal is for the near future.

One of the wonderful things I got to do this year was attend GDC. I got to meet a lot of awesome game developers. As an iOS developer, I meet a lot of people who think game development would be cool, but it doesn’t pay anything, so they stick to learning Core Data and doing boring things that will keep them employed and pay the bills.

I don’t have an app out on the store. I have published multiple books (and yes, I do know how to code!) and have worked on many long term projects with a team of other people. But it bothers me that I have never published an app. Specifically, I want to publish a game.

I have been toying with game development for a few years. I have tried working through a few books on game development assuming that game programming would be exactly like iOS programming. It’s not. There are a lot of design patterns that are fundamentally different between iOS and game programming. Also within game programming, there are a lot of foundational differences between a platformer game and an RPG. Just knowing some foundational SpriteKit information is helpful, but it’s just the tip of the iceberg for creating something interesting.

I see game development as being similar to Metal in that just learning the framework isn’t enough. You have to have an idea about what you want to do with it in order for it to be truly useful. A lot of Apple’s frameworks are very Lego-block like in that you have a bunch of built-in methods to do whatever it is you want it to do. That can be satisfying to throw together, but it doesn’t give the same feeling of creation you get from doing something outside the box.

As of right now, I have two goals I would like to accomplish in 2017:

  1. Publish my Metal Book
  2. Publish a Game Made With SpriteKit

I know that my first goal will be accomplished. I don’t know about the second one. The second one depends upon me being able to line up enough part time contract work to pay my bills while also leaving enough time for me to dedicate to game development.

I am talking to several people who have created successful consulting companies about trying to figure out how to do this successfully. I have been consulting for the last year or so, but it’s been rather haphazard. I have been fortunate enough to know someone who needed a contractor at exactly the right time I needed to begin something else. I don’t want to continue to rely on getting lucky in order to sustain myself. I know if I want to do this long term I need to put time and energy into it.

So why am I writing this blog post?

I believe in manifest visualization. I have noticed that many people have amorphous goals that don’t really line up with what they actually want to accomplish. I went to school for audio engineering and a lot of people wanted to be rap stars. They didn’t want to be rap stars because they enjoyed making music, they wanted to be rich and famous. Being a rap star seemed like the easiest way to get rich and famous and they assumed that being rich and famous would make them happy. This lead to a lot of people being put into exploitive situations that did not make them rich, famous, or happy.

I believe having concrete goals you want to accomplish with no extraneous strings attached to them is the best way to approach accomplishing anything. My goal with the book was that I wanted to learn Metal and I wanted to have a book on Metal with my name on it out in the world. I have no illusions that it’s going to get me hired by Apple or propel me into a job where I make fuck you money. I don’t have any illusions about it out-earning my advance. If I never see another penny from it and it doesn’t change my career, I am still happy I did it because it’s something I wanted to do.

Right now my hope is that I can line up part time contract work (~ 20 hours a week) through the end of the year so that I can publish my game. I am hoping that by focusing on what I want to accomplish and having concrete ideas about how to do it that I will be able to reach my goal. I don’t think my game is going to earn any money and it will probably look very amateurish and get lots of one-star reviews, but I want to create it because it’s something I want to know I can do. I am praying that I can find a way to add value to someone’s company as a contractor that also allows me enough free time to pursue my own passions and interests.

I don’t know if I will be able to pull off what I want, but I at least have an idea about what that is. It does no good to get everything you ever wanted only to find out you wanted the wrong things.

Moneyball: The Art of Scouting Programming Talent

Back when I was in London I suffered from a nasty bout of food poisoning. I wound up spending a lot of time in bed hiding in my hotel room. I got bored and looked for something to watch on TV. A channel was playing the movie Moneyball.

I am not a huge baseball fan, but I am interested in data and statistics, so I started watching it not really knowing if I was going to like it or not. It wound up captivating me in a way I didn’t think it would.

It was less about the statistic and more about the story of the central protagonist, team manager Billy Beane. Billy was scouted for the major leagues as a high school student and signed to join the Mets at age 17. His career was lackluster and he never really lived up to his potential.

The movie only briefly covered this backstory, but it fascinated me. Why had he not lived up to his potential? Did he just peak too early? What happened?

I finally bit the bullet and bought the book the movie was based on and I got a better overall explanation of what happened. Billy Beane was one of the most intelligent kinesthetic learners of the century. He was capable of doing things no one else thought possible and making them look easy. His physical talent and capabilities were beyond question.

The issue was his mind.

He never learned to cope with failure. As a high school student, he was always so much better than everyone else that failure was never something he thought much about. When he started playing against people older and more experienced than he was, he would strike out and his batting average dropped. He was unable to cope with this failure, so it manifested in explosive rage and he developed an inability to perform. If his first at-bat went poorly he was done for the rest of the game. He was afraid of embarrassment. He modified his batting to try and not strike out as often, but it worked against his natural athletic gifts. The only person keeping Billy from being a super star was Billy himself.

This story really strikes a chord with me. I speak somewhat openly about having mental health issues. I have had multiple jobs over the last few years where the work environment destroyed my ability to function. I would sob because I knew the programming knowledge to do a task was locked away in a safe somewhere in my mind and I could not access it because my mental health was in shambles. It’s so hard to tell someone that this isn’t you. You know you can do better, but you just can’t right now because your mind is interfering with your ability to function.

Over the years I have learned some coping skills. I know how I work best and I try as best I can to tell people I work for how I work so that they don’t break me. Some of them respect that. A lot of them don’t. I honestly don’t understand why a company would spend so much money on programmers and then make dick moves that destroy their effectiveness. The only explanation I have is that they don’t think of programmers as people. We’re a disposable resource. We’re like race horses. They are all excited about us until we break a leg, then they take us out back and shoot us and go out and buy a new one.

There was another aspect of the book that resonated with me. I have had very bad experiences with jobs where I feel like the people who hired me are waiting for me to fail. They look for any indication that I misrepresented myself or that there is some reason I can’t do what they want and they cut their losses and let me go. I see other people who are completely incompetent who linger forever and continue to get another chance in spite of their past record of failures.

One of the points of the book was talking about how baseball scouting has always been done. A bunch of guys will travel around watching high school baseball games looking for talent. They have a preconceived notion of what a star baseball player looks like. He has to be tall and muscular and have the right look. He has to have the right tools. He has to have a presence.

There was a whole chapter about the scouts sitting down with the economist who did the statistics going over who the scouts wanted and who the economist wanted. Most of the players the economist wanted horrified the scouts. They were all too fat, or not tall enough, or they would throw funny. It didn’t matter what their past statistics said about their ability, they didn’t have the right look. The scouts couldn’t imagine them being the next big thing.

Billy Beane was allowed to languish in baseball for ten years in spite of a poor track record of success because he had the right look. Everyone was waiting for him to shake off whatever was wrong with him so that he could be the player everyone imagined he could be. Baseball scouting is less about what someone has done and more about what you can imaging them becoming.

This applies so much to technology as well. We have the myth of the 20-year-old programmer in a hoodie who writes code that changes the world. We have ingrained in ourselves what we think a programmer is and how they’re supposed to look and act. If you’re a venture capitalist, you’re not looking at a track record of past success, you’re looking for someone that feels right. You look at what you imaging that person can be rather than who they are.

Having several failed start ups is seen as a bonus, but only if you’re the right kind of person. People are willing to keep giving you chances because they have a gut feeling that you are going to become something even though you have no past track record to back it up.

If you’re black, or female, or trans, or some other underrepresented minority group, it’s harder for venture capitalists to imagine what you could become. It doesn’t matter as much if you have a solid business plan or if you’re doing something no one else is doing. If it’s something that is outside of their scope of understanding, you’re not going to sell them of the fantasy of being Peter Theil investing in Facebook.

This is a larger problem even beyond the scope of who gets funding and who doesn’t. We are sold on the idea that a programmer looks and acts a certain way. Everyone has to be a 10x programmer. Everyone has to work 80 hours a week. Everyone has to be passionate. Everyone has to keep learning the next hot thing because if you don’t you’ll be left behind. Everyone has to be under the age of 30 because young people are smarter.

No one can ever be wrong. No one can ever admit to not knowing something.

I think one reason we have so many toxic hostile arguments about code is for many of the same reasons Billy Beane did not pan out as a baseball player. People can’t ever be wrong. People can’t fail. Our self worth is wrapped up in being the smartest guy in the room. We can’t tolerate ideas that are different from our own because if we’re wrong, then who are we? Are we those losers who refused to learn object-oriented programming in the 90’s who can’t find jobs now? Are we those people we make fun of who write JavaScript and copy and paste code from Stack Overflow?

I think we make the mistake of thinking that a lot of the toxic behaviors we see come from a place of strength. It’s quite the opposite. It comes from a place of fear. We fear being displaced. We fear being wrong. We lash out at minorities because we benefit from looking like what a programmer should look like and the fewer people we have to compete with, the easier it is to be at the top of the heap (or the stack).

I have had people who are less talented than I am sabotage me at work because they see their job as a zero sum game. You are either the smartest person at the office or you are not. It’s a competition. If someone knows more than you do, then it diminishes your sense of self and you must get rid of the person who is challenging your identity.

We are limiting what people are capable of by forcing them to put on a facade that they are never wrong. We are creating a more toxic environment by conforming to these ideas of what a programmer is supposed to look like. We think we’re special unique snowflakes, but we’re not. This is a problem everywhere.

We need to stop breaking people by trying to force them to conform to a mold that was set fifteen years ago. We need to be open to people who look different and have different ideas. We need to stop making people feel inadequate if they are not the smartest person in the room. We need to stop being hostile to people who are different and waiting for them to fail while giving a pass to the people who look like us because we imaging what they could be. That’s a fantasy, not reality. They’ll never become what they’re capable of if we don’t challenge them to think differently.

Thoughts on Being Single for the Second Time

About two years ago I went through a divorce. I had known my marriage was over years before I was able to finally pull the trigger on it. I had actually tried leaving once a year earlier, but I was forced to go back to my husband because I wasn’t able to sustain myself quite yet and he promised to change. He didn’t and we followed through on the second attempt.

My ex-husband had an OKCupid account set up months before we filed for divorce the second time. He had his first date less than a week after he moved out of our house. A year after he moved out he had already replaced me with another woman with long red hair, two small dogs, and mental health issues.

During the year or two after our divorce I was a complete wreck. I was in much worse shape than I thought I would be. I had wanted the divorce. Our marriage was over. I thought I would feel free to finally do all the things I wanted to do. Instead, I felt like a death had happened. I had never been responsible for balancing my own budget and I had no idea how much money I earned or how much my bills were.

I had multiple rooms in my house that I simply never went into. My house felt incomprehensibly large even though it’s actually quite small. I used to have dreams that I was walking through my house and it was a giant labyrinth of gardens and piano rooms that I never knew were there because I only stayed in one small corner of my house.

The idea of trying to date anyone during this time seemed absolutely incomprehensible. I consistently see men who have recently gotten out of relationships try to get back on the horse and date again immediately. I don’t understand how they can do that.

I haven’t been on a date since I was 16 years old. I was diagnosed with bipolar disorder and was put on medication that made me gain sixty pounds in less than two years. My medication triggered panic attacks and caused a lot of mental health issues alongside the ones they were supposed to actually treat. I was a chubby, socially awkward woman with no social skills trying to navigate a social environment run on alcohol, which I couldn’t drink because of my medications.

I felt like having a boyfriend would give me some kind of validation that I was actually a person worthy of being liked. I used to develop crushes on other socially awkward guys who were less attractive than I was because I thought that they were low enough that I could get them. Most of them were either too socially awkward to return my advances or were appalled that a chubby socially awkward girl thought she was good enough for them while they drooled over anorexic teenagers with daddy issues.

Boys in college had been sold on the idea of the hook up. They had been told all through high school that when they got to college it would be a never ending stream of pussy. None of them wanted a relationship. They wanted to have sex with you and never speak to you again. I literally had guys come up to me and say to my face, “I hate you. I know you hate me. We should have sex. It will be fun.“

I was too priggish to give into any of these situations, but other girls I know did. They slept with guys to give themselves a sense of personal validation and were always disappointed when things never went any further.

I left college without having a boyfriend. I also left college without having any kind of stable career path. I was faced with a future alone with no meaning. Then I met my husband. We’d known one another since we were children. We were both tired of trying to find someone. I needed health insurance and to move out of my parent’s house. I thought I knew everything about him. I was terribly wrong and if you ever meet me IRL ask me about it and I’ll give more details than I am willing to give here!

After my misadventures in college, this seemed like as good as it was going to get. Sure, we weren’t really attracted to one another, but he would look me in the eye and talk to me. That was an improvement.

Things were fine for the first two years. Then he got weird. He started spending money we didn’t have on shit we didn’t need. I decided to go back to school for computer programming. I wanted an actual career and not just the menial white collar jobs I had held since we got married. I wanted a sense of self worth and to do interesting work I was proud of. I told him that if he would support me for two years that I could start bringing in four time more money than I had before. We could start a business. We could be partners. We could have our freedom and independence from The Man.

He wanted his freedom, but he didn’t want to work for it. It was the biggest disappointment in his life that he wasn’t born wealthy. This ate at his soul. He was bitter and resentful of having to go to work to earn a wage. He was always scheming about how to get rich quick without any effort. He would bully me about how I wasn’t developing the next Candy Crush. He would come to me in tears and tell me that he just needed me to earn a million dollars a year. He could find a way to be happy on just a million dollars a year.

He got incredibly paranoid. He was convinced I was cheating on him. He would follow me to networking events he previously had no interest in. He would skulk around behind me nursing a glass of scotch, watching me as I tried to network. He would go over and yell at me in front of people I was trying to connect with professionally. Once I came home from a business meeting to find him in the garage activating the GPS on my phone so he could track me down and physically bring me home. He would lay on the ground behind my car to prevent me from leaving the house.

He was jeopardizing everything I had worked so hard to accomplish and I simply could not tolerate his behavior anymore.

I feel I have been left in the lurch. I talk to other people who have built their careers on writing books and doing conference talks. I ask them for advice about how I can build this as a sustainable career while still paying my bills and I always get sheepish looks and the response, “Well, my wife has a really good job with benefits.“ I hear that and my heart sinks. I keep seeing and hearing that the career path I want to take can only be sustained by having a supportive partner who is willing to shore up the other person’s financial deficits.

I feel a great deal of anger at my ex-husband for destroying our marriage because he was unwilling to give up his $10,000 a year vacation habit. I have been borderline unemployed since September and I am just now reaching the end of my savings. We were $30,000 in debt with two incomes and bringing in over six figures while we were married because my ex couldn’t do without picking up an expensive hobby every couple of months. I had a plan that would have been mutually beneficial for both of us and now I am spinning plates frantically hoping that I can achieve what seems like the impossible all by myself.

I have no illusions about my book. I am writing about an incredibly niche topic that has almost no job prospects. I keep hoping if I develop skills around graphics programming that I can break into that area of expertise and have a long, stable career build on something most people don’t know that doesn’t fundamentally change, but I don’t know if I have enough time or runway to slog it out. I’m afraid of taking a dead end job and waking up seven years from now to find I didn’t keep up with the new changes in tech and that I am unemployable. Having the buffer of another person in case I made a terrible mistake and failed eased my mind. Having no safety net and throwing myself into a chasm right now is deeply worrying to me and I don’t have anyone I can even talk to about my anxiety because I am completely alone right now. Except for my parents. They have been fantastic, but I hate having to go to them with my hand out.

Being single at this point in my life is markedly different than it was when I was younger and I had no career. I am doing my best to not see getting remarried as an escape route for the path I have chosen to take. I would love to have a supportive partner around to help me out so I don’t have to do this alone, but having survived an unsupportive one, I know it’s better to be alone than live through that again.

I keep feeling like I am supposed to move on. Join OKCupid or Match.com. Go to speed dating. Relocate to San Francisco or Seattle to get access to a larger pool of eligible men. But I keep getting this nagging feeling that things have not fundamentally changed much since I was in college. Reading horror stories about how Tinder has basically supercharged the college hook up dynamic worries me. Seeing how many men are basically jumping into relationships to avoid being alone worries me too.

I like working. I see so many people doing frivolous crap all the time that I worry if I did move to a city and started trying to be social like everyone else that I would stop dedicating myself to my work. I would stop pushing and get left behind. It’s so hard to find another person who also likes working who is willing to just be in the same space I am while we’re both working.

I want to be with someone who wants to be with me. I would love to have someone to cook for besides just myself. I would like to have someone to build robots with me in my basement and then cuddle on the couch watching Star Trek. I don’t want that badly enough to grasp onto anything with a dick that comes along because I don’t want to be alone. I feel I have progressed from my college aged self who felt like having a boyfriend would be a validation to someone who is comfortable with themselves but would like to find another person to share things with.

I’m not willing to be with someone who did a visual assessment of me that I am just hot enough that they’re willing to have sex with me but they think I am unattractive enough to be approachable. I don’t want to be with someone who thinks that relationships are parking spaces and that you are supposed to always be parked somewhere or on the lookout for one.

As it looks increasingly like this will never happen, I am trying to accept being alone. I won’t settle for anything less than someone who likes me as a person and who I actively want to be with. There might be no one out there like that and I need to be okay with that.

Being alone sucks. But being with a destructive and unsupportive partner who doesn’t love you sucks more. It’s important to have a creative and fulfilling life rather than waiting for it to just happen to you. For better or worse, I am living a life I want to lead. I have no idea how sustainable it is in the long run, but for now I’m being true to myself. I am trying to have faith that if I do that then things will work out. Doesn’t mean I don’t indulge in feeling sorry for myself every once and a while.

Enough whinging. Back to work.

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.

Quality over Quantity

Back in December I was approached about contributing to the Pragmatic Magazine. I was told the theme of the issue was Swift and I was asked if I had any good Swift posts that I would be willing to share.

I had a number of Swift posts that I was very proud of and I sent the links to the editor. Then I had a sinking realization that these posts were all from 2015.

Last year was a difficult year. I made a lot of mistakes and had a number of mental health issues. On paper my year seemed like it was incredibly successful, but I felt at the end of 2016 that I had not grown as I would have liked and I was not in a place I wanted to be.

One of my resolutions toward the end of last year was to have more technical content on my blog. I am in the process of writing a book. I intended to have companion blog posts where I share a number of things that I learned while I was writing the book. I have one post that has been partially written since November. It’s nowhere close to being done.

I keep wondering what’s the matter with me. I would like to produce more technical content. I keep meaning to, but things keep coming up. I know if I don’t make time to produce technical materials for blog posts or conference talks or to post on GitHub that I will be left behind. People always want examples of your work and you can’t keep pointing to work you did three years ago.

This morning I found a link to this article. The author talks about a lot of strategies about how to have a long and successful career in tech. This article helped to crystalize in my mind about why I am not producing more technical content.

Those blog posts that I submitted to the magazine were based on problems that took me months to solve. Each one of those posts and every project that I have written about that I am proud of all started the same way. I took something that was hopelessly unfamiliar and tried to force myself to learn it. These were all projects I did for Brad Larson when we were rewriting our code base in Swift.

One of these projects was wrapping libxml2 in Swift. The sample code was all written in Pascal. There was only one post written by anyone for this topic for the iPhone. That person was Jeff LaMarche. I was going to link to his blog post about it in this blog post, but it’s been taken down. So I had an incredibly undocumented technology that no one was using that it was my job to figure out.

I had about a week of complete and total panic and despair. I felt that I had been hired by mistake and that Brad would find out I was an inexperienced idiot and I would be fired in disgrace and I would never work again. I wondered about how hard it would be to find a nice easy call center job where I could cross stitch while talking on the phone all day answering the same questions over and over again. I thought this was hopeless, but it was my job to figure it out, so I had to try.

I spent a lot of time walking. I couldn’t look at my computer without getting a complete headache. I spent some time building robots. I would look at the docs periodically, but not for too long because doing so would cause a migraine.

After several weeks of doing this, suddenly things started to become clear. Instead of looking at a bunch of gibberish and having no idea about how to approach it, I finally had questions. I wondered what this one thing did. I wondered what the difference was between one object and another. I started to understand how to approach the problem.

I completed my task by learning all of this stuff over the course of about two months and I wrote my post. I was incredibly proud of the work that I did on that project and for finally figuring out how to solve it.

I never would have done that project if I wasn’t working for Brad.

First off, I never would have known what libxml2 even was. I would have just used the built in Cocoa framework and fought with it, but found plenty of sample code that I could copy and paste and go about my merry way. More importantly, if I had been doing this for myself, I would have taken one look at the lack of support, said fuck this, and done something else.

Forcing myself to confront something that seemed impossible and pushed me close to my breaking point mentally and emotionally. I have a faulty, tin-plated emotional system. If I get pushed too far I can’t function or learn. My brain shuts down. I had to confront my panic and my fear and force myself to approach this logically. At the beginning of Dune the main character has to take a Human Test. He is forced to put his hand in a box of pain and not remove it. Having mental health issues is like taking a Human Test. You have to think your way through your emotional issues and find some way of logically dealing with them so you don’t remove your hand and get scratched by the Gom Jabbar.

By being placed in a position where I could not simply give up, I was able to push through the initial phase of not knowing what the fuck I was doing to be able to see that there was an end to the Desert of Despair. I understand now that a lot of things I want to learn that seem difficult or impossible are not. I have been trying to teach myself Metal and 3D graphics math for the last two years. I know that even though the symbols seem incomprehensible and there are not a lot of approachable resources out there, I can bash my head against it enough to figure out a starting point. I can look at those symbols long enough over a long enough period of time that I can grasp some kernel of what I don’t understand that I can figure out.

I feel like our community doesn’t reward people for solving hard problems.

It pisses me off every year when Tim Cook announces some amazing new thing at WWDC and some jack ass in the audience gets some version of “Hello World!” working on it because everyone wants to be first. Everyone tries to cherry pick some easy problem that they can solve and post about so that they can show they’re keeping up with the Lattners. I have seen so much pressure in this community to pretend like you know everything. Companies place a lot of emphasis on what do you “know” not “how do you learn.” I admit that it’s a lot easier to test knowledge as opposed to problem solving and learning. I know that we’ve generally used knowledge of data structures and sorting algorithms as a proxy for how we learn. But memorizing some tips and rules doesn’t prepare you for the complete and total helplessness you feel when you confront something you must figure out that you don’t know how to do. You either rise to the occasion or you flee and become a Scrum Master.

I am realizing that most of the things I find interesting are difficult. I am in the process of learning some things that are complicated and poorly explained. I am hoping that after I push through everything I will have a wealth of material to write about on this blog. But I have to accept that what I want to do is hard. There is going to be a lot of invisible work that I do that isn’t being seen. There will be a lot of time spent thinking and processing and waiting for things to click.

Dan Barber is a prominent farm-to-table chef focused on sustainable food production. He wrote an article a while ago that really stuck with me. The gist of his article is that farmers are stripping their soil by only growing the most high profit crops. The soil gets progressively poorer and the food grown on it grows more and more tasteless because it’s nutritionally vacant. He found a farmer who grew an heirloom variety of wheat for bread flour. He thought the reason the flour was so delicious was because it was some heirloom variety, but it was because the farmer rotated his crops. He grew some less lucrative crops on his land that enriched the soil and only grew this wheat on the soil every three years.

I think one reason we have such a high burnout rate in tech is that we’re approaching development like we do farming. We will keep stripping our mental soil because it’s more lucrative to do so than it is to have furlough periods where we push ourselves to achieve truly difficult things. Start ups want to churn and burn developers because they don’t care about a person’s long term viability as an asset. It’s our responsibility as developers to take control of our careers.

Right now I am taking some time off to write a book. Even if the book is wildly successful I won’t make nearly as much money off of it as I would if I had worked somewhere during that amount of time. But taking this time to learn these things that I have wanted to learn for so long has been an extraordinary experience. The process of taking something that seems impossible and being able to make some traction with it makes me feel like I can conquer the world and anything is possible. Compared to a year ago, where I felt like I had to pretend I knew everything and I worked myself into a nervous breakdown.

Last year was a furlough year. I needed it to recover from some bad professional decisions. This year is a soil enriching year. I have so many projects I want to do and write about, but they’re going to take some time to figure out.

I would like to write more about tech on this blog, but I have to accept that I want to learn some difficult things that take a lot of time to figure out. I am not going to have a new post here every week that I am proud of. But if I can get four difficult technical posts on here this year, that’s not so bad.