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.
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.