Category Archives: Naval Gazing

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.

Super Mario Brothers

I have written on here before that I did not get to play video games as a kid. The closest I got to a Nintendo was watching my daycare owner’s kids playing Super Mario Brothers on the NES from the couch because I never got to join them.

When I watched them play, they knew where all the hidden shortcuts were. They knew to jump in certain places to hit invisible boxes and to travel over the side of a wall to get to a pipe that allows them to skip a bunch of levels.

I wondered as a kid how they found all these short cuts. I realized at a certain point that someone else showed them. Someone created a guide that talked about where all the easter eggs were and people either found them through reading that guide or watching someone else play.

There are speed records where someone can get all the way through the game from beginning to end in just over five minutes. It became a thing to try to get through the game as fast as possible.

As a kid I didn’t really understand that. I thought the point of the game was to play the game. I was told by people rolling their eyes that the point of the game was to beat the game.

I wrote a post yesterday talking about my being upset about the algorithm questions that are asked at programming interviews.

I have gotten a lot of push back on this.

I have been accused of being incompetent and not being a real programmer. I am confronted by people who are angry with me for not just accepting that if I read an algorithms and data structures book that I will be a better programmer.

I feel I am being misunderstood.

I feel like a a lot of people telling me this are like the people who I watched playing Super Mario Brothers as a kid. I think that they have been told there is some bible of short cuts that get you through the game faster. They don’t look around on their own or explore the game. They’ve been given a set of instructions that gets them through the game faster and they can’t comprehend why someone would not take a short cut that they know is there.

The impression I am getting from people is that they are blindly accepting that these are strict rules that we are supposed to follow and if we don’t follow them then we’re ignorant and wrong.

I think about all of the levels that the game designers created that no one ever looks at because everyone is in such a hurry to get to the end and beat the game.

I don’t care about beating the game.

I care about playing the game.

I don’t want to accept that there is only one way to be a programmer. I like to find things out for myself. I want to explore more than one way to do things. I don’t want someone telling me my code is wrong because it’s not the way they would do it because they only know one “right” way. I think there are a lot of right ways.

I did not mean to imply there was no point in learning algorithms. I am sure they have their place. I’m sure the right algorithm in the right place would completely change the way I think about my code. It’s just that over the last two years I have seen so many people implement lots of terrible code that they think is “best” because they read in a book somewhere that things have to be a certain way.

I had someone try to create a protocol around a class that would never be subclassed because it’s what he thought Apple wanted him to do because he didn’t think critically about how to use polymorphism properly. I have had people suggest I simplify my code by doubling the code base and add three or four data structures to get around using an if statement.

Singletons are evil. React is evil. JavaScript is evil. Use MVVMMVVMMVMVC. Emacs over Vim!

There was a lot of push back against Swift when it first came out because it was different. People lashed out at it because it was not what they were expecting or familiar with.

I feel like sometimes we over-engineer things instead of looking for simple solutions. We think we have to place a thing in another thing and guard against the possibility that someone in the future will do. We have to force a tool to act like another tool in order to conform to some protocol rather than using it how it’s supposed to be used. We want everything to be one size fits all because it makes life easier to think that way.

Right now I am trying to see if a simple solution will work for me before I implement a more complex one. I don’t want to just blindly apply something because a stranger on the Internet tells me to.

Just reading an algorithms book doesn’t make you a good programmer. Understanding a problem and when to implement the right algorithm makes you a programmer.

I want to figure that out for myself rather than having a bunch of people talk down to me about how I can beat the game in five minutes. I am actively refactoring my code to implement better solutions, but I don’t want that to be my first step. I want to screw up and do stupid shit so I can learn from it and figure out how to do it better. Sometimes when you think you know all the answers you don’t look for new ones and if you’re not learning anything new then what’s the point?

I’m sorry for people misunderstanding my desire to figure things out for myself as being willfully ignorant or contemptuous for good software development. You learn more from your own mistakes than you do from other people’s. The last time I checked, thinking for yourself was still allowed. I don’t care if you hate me, or think I am wrong or ignorant or stupid. I am entitled to my own reality and you are too.

Keeping Score

“Why did you let him treat you that way?”

I get this question a lot when people ask me about various relationships I have had. People don’t understand why I would not put up more of a fight on things like where we go on vacations or what color the wedding invitations were or whether we spent the tax return on a new couch or put it in savings.

I was thinking about that this weekend. I am in the process of painting and organizing my house. There are areas of the house, especially in the kitchen, that I have no idea about. My ex-husband organized the kitchen and basically never let me in there, so there are cupboards I have never opened full of things I have never seen.

One thing I decided to do was get rid of his plates and mugs. He had a set of plates and mugs that preceded the marriage. He left them here when he moved out. While he was packing he told me that he decided to leave those here and take a set that we bought our first year of marriage and the set that we got for the wedding.

I refused to let him take the wedding set.

The wedding set is a set of Asian-style square plates. It was one of the only things I absolutely insisted must be on the wedding registry. He told me he hated them because they were purple and he didn’t want a bunch of girly things clogging up his kitchen.

A dear friend of my family bought us the only set we got. The entire time we were married those plates were shoved onto a high shelf and were only used when we had company.

I asked him if he wanted his plates. He asked which ones, because he would take the purple ones but not the ones he made us use for nearly six years. That was when I realized why I let him treat me that way.

Until recently, I have been at a loss as to explain it. Usually those decisions were meaningless to me and I would let the person who cared more make the decision.

I also made an erroneous assumption that if I gave in on something I didn’t really care about that the other person cared very deeply about that it would go both ways. I figured that things would be equitable and that if I gave in on something that he would give in on something too.

I found out too late that it doesn’t work that way.

Every time I gave in on something, it was either immediately forgotten or it sent the wrong idea that I would give in on everything if enough pressure and bullying was applied. When I would stand up for myself, I would be viciously argued with. Either it would be too difficult for me to continue arguing and I would give in, or it would be so draining that it would take me a long to time recover in order to have another argument like that again.

This lead people to think I could be controlled. Yell at me and make my life miserable enough and I would give up and forget about whatever it was I was asking for or arguing about. These people felt they could bully me and always win because I would stop fighting.

What they didn’t know was that I was keeping score.

I was keeping track of every single time they lied to me or forced me to do something I didn’t want to do and didn’t treat me like a human being.

My ex-husband ignored my requests for a divorce for over a year. I physically moved out of the house and filed for divorce and only came back when he promised to go to therapy with me. But like so many other things in our marriage, he thought that if he ignored this it would go away.

I remembered every early thing I gave into in our marriage. I kept track of every lie he told me and every favor that he forgot the moment it was over.

I kept track of every time he blamed me for the quality of his life. Every time he purposely yelled at me to force me to cry to make himself feel better. Every time he put someone else ahead of me and assumed I wouldn’t make a fuss about it because I would just take it because that is what I do.

I will never be this person again. I am working very hard to be more assertive and to take more of a stand on things because I don’t want to train another person into thinking that I am a doormat.

If you’re involved in some kind of relationship with someone that you constantly steamroll because they always eventually give in, keep in mind that this person is also keeping score. This person remembers every single act of aggression you have placed upon them. And they are waiting.

I am the Hermit

So today I was really stupid and went on Facebook and whined a little bit about not finding anything fun. Since I gave up drinking I realized that the vast majority of my recreational activities revolved around getting to drink. My favorite restaurants had ten page drink menus with ten or fewer food items. I used to like camping because it was an excuse to drink all day and read in the tent. I was exhausted and trying to figure out what to do today before giving into the inevitable by staying in bed and sleeping until early afternoon.

A friend of mine invited me out for a Solstice event in Illinois at her church. This event is starting around now (quarter to eight on a Saturday night) and is two hours away from me. I assume it will go on for some time, at which point I would need to drive two hours home and get home at like 3:00 in the morning.

I have no idea how to tell this person that I can’t deal with doing this.

My current job is incredibly mentally demanding. I remember a time before I started programming where I could go out with people after work and do a lot of stuff, but I can’t anymore. By the time I get done with my work for the day, I have nothing left to give. Trying to explain to someone that it’s just too difficult for me to drive four hours on the spur of the moment on one of the only days of rest I have is too difficult.

I see so many people around me who seem to have more demanding schedules than I do who seem to do more than I do. People who have children and full time jobs and still have hobbies and groups they belong to. I have no idea how these people do this. I have groceries delivered to my house because it’s too difficult for me to drive twenty miles and deal with traffic and all of the zombies that litter the grocery store. It’s easier for me to just cook for myself than it is to leave the house to find food, which is one of the only reasons I don’t do take-out.

Every time I leave my house I have to carefully plan it out to make sure that I reserve enough energy that I don’t completely exhaust myself. I do this when I have conferences. I know well ahead of time that I have one coming up and I make sure to rest adequately before going and I have proper recovery time once I get home. I have no idea how I used to be able to commute to work. Just commuting from my bed to my desk is a stretch on some days.

Nothing I am saying on here is about people I meet at conferences. I love attending them and meeting people. It’s a relief to get to spend time with people that I feel on some level grok me that I can have meaningful interactions with. Sadly, most of them live too far away for me to have enough of them to justify leaving my house on a regular basis.

I have a lot of local friends who are annoyed with me because I don’t spend time with them. They invite me to do things that require me to drive between half and hour to two hours to get to wherever they are. If they’re in a city, that requires me to navigate a bunch of traffic and find some place to park my car, which can get expensive. Sometimes they want me to drive them places because they don’t own cars because why would anyone own a car in a city. I am exhausted before I even get there.

I was talking with someone about building an airplane. Their hanger is 45 minutes away from my house. I spent half of a day with him driving to several regional airports to visit a bunch of people doing this. It took me over a week to recover from this excursion. I have been avoiding his emails because I don’t know how to explain that spending half a day driving around completely drained me of all my energy and that I don’t think I can work on a plane with him because the drive there alone completely exhausts me.

Sometimes I cancel on people because I know that if I put out the energy to go and do things with them that I will have nothing left for a week or more. If my presence was appreciated and respected it would be easier to justify going, but most of the time it’s seen as expected. It feels like a bottomless pit of need. No matter how much effort I put into maintaining a relationship with someone, they always need more. Everyone else can do this, why can’t you?

It makes me feel shitty. I feel there is something wrong with me because I simply can’t do what everyone else seems able to do. I don’t know if it’s because of how difficult my job is that I have no energy. I don’t know if I am depressed or I have something that is preventing me from fully being able to rest. I don’t know if I have too many projects. I don’t know if I am burned out. I don’t know if it will ever get any better.

I had a severe period of exhaustion about ten years ago that slowly got better over the course of two years. I keep holding out hope that this gets better as well. I think it’s slightly gotten better, but I am still painfully exhausted most of the time.

I am also finding that I don’t enjoy doing the things I used to enjoy doing. I used to go camping and go to movies and do board game nights. I don’t enjoy these things anymore. I find them mentally and physically exhausting. I find that I have empty, meaningless conversations with people who are trying to find an escape from their lives. I used to be one of those people, except I did escape from my life.

I don’t know how people can go out several nights a week. I don’t know how they can go to the movies and to concerts and to Geeks who Drink pub quizzes. I don’t know how people can spend their weekends at festivals and still be able to get up and go to work. I don’t know what they could possibly have to talk about. Based on my previous experience, you don’t do this stuff to talk.

I worry about mentioning any of these thoughts because I don’t want people to think I am misanthropic. I worry that this is simply a prolonged period of depression and if I tell everyone to fuck off and leave me alone I will be regretting it in a few years when I feel better and I am atoning for being an asshole to everyone.

I just know that right now I am tired. I have no interest in doing anything I found fun for the last five to ten years. I just want to spend all day in my house with my pugs working on programming. When I get too exhausted to do programming I don’t want to further exhaust myself by leaving my house and hanging out with strangers doing things that are supposedly fun but I find boring. I am sick of trying to explain myself to my friends who do not seem to understand because they personally don’t experience what I experience. I am sick of being told that if I go on a one week vacation that it will magically refresh me and make me all better. I am sick of people trying to give me unhelpful advice rather than just saying “Sorry to hear you feel lousy.” I am afraid to break off relationships with them because I am afraid of being alone. I am afraid I will snap out of this one day and people will hate me for being priggish and sanctimonious, so I keep trying to make efforts that result in me being resentful and further exhausted.

My friend told me that I didn’t have to talk to anyone at this event. I could just keep to myself and commune with the Lord. Well, I can keep to myself and commune with the Lord just fine from my house. If they do this again and she tells me about it ahead of time, I can schedule it so that I don’t exhaust myself. For now, I am the hermit.

My First Year Being Alone

One year ago today I went to a court house to dissolve my marriage. I was married for a little over five years to a man I have known since I was a kid. I don’t remember how we met because it was so long ago. We gave things a try and they didn’t work out.

This last year is the first year of my life where I have really been on my own.

I didn’t really have a lot of relationships. When I got engaged to my ex I hadn’t had a boyfriend in over ten years. I didn’t date at all when I was in college. When I married my ex I didn’t really have any career prospects and I was afraid that I had missed my opportunity to meet anyone and to get married.

I lived with my parents until I was 27 years old. I had been diagnosed with bipolar disorder when I was 16. I don’t think I ever had bipolar disorder. I was being sexually harassed by a number of people at the school I was attending (including the priest who taught our religion classes) and basically instead of doing anything about it, everyone just decided what I was saying couldn’t possibly be true and I must be crazy. I spoke to some of the people I went to school with over the last few years and they agree with me that something was terribly off about our school and that it wasn’t just me.

I spent ten years being medicated for an illness I don’t have. Those medications clouded my mind and destroyed my ability to function. I spent ten years being told that anything that I felt or observed that was inconsistent with what other people wanted to believe was wrong and I could be discounted because I was crazy. I was sometimes actively targeted by people who knew they could bully me and people would let them because I was the weird crazy girl. I was told to hide who I am and pretend like I was normal to avoid all the trouble people cause me. I was told not to set my sights too high because I was never going to accomplish anything and that just getting through college or holding down a job were high enough aspirations.

I am not recounting this to get sympathy or whatever. I am simply trying to explain why I didn’t have a job or live on my own until recently. There was a period of time where I didn’t think I would graduate from college. I never thought I could hold down a full time job. My self was slowly being hacked away over the years and I lost track of who I really am.

I married my ex-husband so that I could have a future. He seemed like a stable person and I had no stability in my life. He had direction and I wanted to have a better life. So I married him and we moved into our house six and a half years ago.

Things did get better. I got my first full time job. It was working at Target, but I did that job for a year. Then I got a better job and held that for a year and a half. Then I got a miserable job that eventually lead me to programming. I went back to school, I networked, and I now have a really great career.

Sometimes I forget where I came from. I forget how miserable and hopeless everything seemed in my twenties. I forget there was a period of time where I missed half of my classes because of various mental health issues. I forget that a teacher told me not to set my sights too high and I should just focus on finding a nice little town with a nice psychiatrist to settle in. I forget consistently being told I will never amount to anything and won’t do anything special or important with my life. I have a life I never thought was possible. My highest aspirations when I was 25 was to have a quarter of what I have now. It’s a miracle to me that my life exists.

Even though it’s a miracle, I still have felt a great deal of depression over this last year. I feel like I have no right to feel this way. I should be grateful for what I have, and I am. I shouldn’t want more, but I do.

This past year has been incredibly upsetting. I have never had a time where I had to figure out who I am. I have never had to pay my own bills. I didn’t know if I would run out of money because I did something stupid like buy too many books and so I wouldn’t have heat. I was afraid I would forget about paying my property taxes and lose my house. Those were the first insurmountable things.

After that, I found other things insurmountable. I am just now starting to figure out what I want to do with my house. I never decorated it or organized it because it was simply too overwhelming. I also wasn’t committed to staying here since there was nothing keeping me here anymore. I was deeply ambivalent about it. I also had a worry that if I started treating the house like it was mine that i was precluding the possibility of letting another person into my life. I know from my experiences with my ex that he treated the house like it was his house. He begrudged me any space in the house because he thought of it as his. I know that if I paint the house and bring in all of my bookshelves and I fill all the space in the house, I am basically enforcing that I have no room in my home for anyone else except me. I am afraid that the longer I am by myself, the less likely it is that I will ever feel comfortable letting another person in.

I don’t want to be alone forever. Being alone right now is fantastic. I can do whatever I want. I haven’t put my laundry away in over a year. I don’t have to coordinate what I cook with anyone else. I don’t have to spend my weekends being dragged around by my significant other when I would rather be at home working on my electronics projects. Being alone right now is great, but I don’t want to be alone for the rest of my life.

One thing I didn’t count on with the divorce was the deep depression I felt. I had fantasies about spending long glorious weekends programming and working on electronics projects. I thought that if I could control all of my time that I would have this golden productive period where I would get so much done. A lot of days it was a struggle just to get out of bed.

I miss being touched. I don’t think my husband and I were particularly physically affectionate, but apparently it was enough that I didn’t feel the overwhelming ache that I feel every day now from not being touched. I sometimes will lay on my stomach on the floor because the weight being applied helps with the pain. The pugs help with the pain too. One reason I adamantly wanted to work from home the last year or so is that if I can’t touch the pugs I fall into a massive depression because of lack of physical contact with another living thing.

I read a while ago about some company talking about doing cuddling as a service. I would be all over that. I keep having people telling me I can get guys to take me on dates so I can be touched, but that tends to lead to things I am not ready to do yet and I think it’s fraud to pretend to be into someone just because you miss being hugged. I would like it if I could just pay someone to cuddle with me for an hour and leave and know it’s not going anywhere.

People have suggested online dating, but I really don’t want to go there. I have spent a lot of time and energy avoiding the vast awfulness that is The Internet that I don’t want to open myself up to unsolicited dick pictures and verbal harassment from guys who are mad at me for not responding to their dick pictures. I would like to find someone through networking like I did with my job, but in spite of the reputation that programmers have for being antisocial neckbeards most of the men I encounter in our community are married and in long term relationships. That being said, DON’T ASK A WOMAN OUT AT A PROGRAMMING CONFERENCE!! EVER!! Those are professional events and I go to them for professional reasons, not to meet men.

So why am I writing this blog post? I am writing it partially because I have had a number of people over the last year come to me to talk about their pending divorces. I wanted to share my experiences with depression after my divorce because those feelings are normal. Even if you were the one who wanted the divorce, you’re going to feel sad. It’s okay to feel sad. Don’t beat yourself up because you have days you can’t get out of bed and the world seems hopeless. Don’t beat yourself up if you don’t do all the stuff you thought you were going to get done once you were alone. You’ve gone through a trauma and traumas take time to heal.

Also, don’t necessarily rush into a relationship immediately after getting divorced. Even though it’s painful and difficult, it’s important to be alone with yourself for a while. It’s important to know who you are and what you want from life. If you immediately jump into another relationship with someone, you don’t have time to process why your last relationship failed. I think we’re all so eager to avoid being unattached because it’s somehow socially deviant that we’re setting ourselves up for failure because we are treating being in a relationship like being in a job. You can’t be unemployed. If you are, then there’s something wrong with you. There’s nothing wrong with being alone and deciding that you’re not going to give up your freedom for someone unless they’re special. Also, get a pug. Pugs are great at snuggles.

Last thing I want to do is thank this community of people. I would not be here right now if it wasn’t for the people in this community. I thanked everyone for being awesome this weekend and someone thought I was leaving programming. That’s not the case at all. Programming has given my life meaning and direction over the last few years.

I want to thank Eric Knapp for teaching me how to program and letting me ask him the same stupid question over and over again because there was some nuance I didn’t understand that was bothering me. I want to thank Emily Van Haren for holding me in the hallway at school when I broke down sobbing because I didn’t think I could continue on anymore because life was too difficult. I want to thank Josh Smith for getting me to talk to Dave Klein about speaking at CocoaConf and changing how I thought about myself. I want to thank Chris Adamson for being one of my first mentors and for helping me fulfill my lifelong dream of writing a book. I want to thank Brad Larson for helping me to solidify my programming skills and for giving me the job I needed to be able to leave my ex-husband. I want to thank all of the conference organizers who let me speak at their conferences when I was nobody and unemployed so that I could network with people and have a future. Lastly, I want to thank everyone I have met, everyone who follows me on Twitter, and everyone who reads this blog. I spent my whole life being told to hide who I am because no one would ever accept me. The amount of support and acceptance I have received from this community is something I never thought was possible. I would not be here without that. So thank you.

The Great TV Binge Quest of 2016

The last few days I have been asking people for suggestions for shows to binge. When I am cooking or doing something where I am not just watching TV in a dedicated manner I want something on in the background that I can tune in and out of without missing too much stuff.

My go-to default for most of my life has been Law and Order. I have seen most of the episodes so many times that once when I was waiting to go to the airport from a conference I saw the end of an episode with the sound off and I not only knew every detail of the story, but I knew that was the season finale of Season 14. That’s incredibly pathetic.

Law and Order was great because for a period of time in the early 2000s it was on ALL THE TIME. There were three cable channels that had it on. There were three iterations of it in NBC. If you were trying to kill twenty minutes with the TV on, odds were pretty good you could just throw on an episode of Law and Order.

Since I cut the cord and apparently cable TV has moved on to other shows, this is no longer the case. I have spent a good portion of the last six years trying to find a replacement for Law and Order. It isn’t that I think Law and Order is the greatest show that ever existed, it just had the right combination of characteristics that made it ideal for the purposes I had.

What makes an Ideal Crappy TV Show To Binge

Here are my criteria for what makes a good background TV show:

  • Must be at least five seasons long
  • Can’t be too engaging
  • Has to be somewhat repetitive
  • Has to have procedural elements

So far the best show I have found that meets these criteria is Grey’s Anatomy. I started looking for shows on Netflix that had at least five seasons and even though I really didn’t want to, I gave it a try. It’s actually quite a good replacement for Law and Order. It’s been on for a long-ass time and it’s going to keep going for a while. It has serialized elements in being a soap opera, but each episode has procedural elements where there will be some patient or case people are working on. There will be some kind of surgery. You can walk away for five minutes and still be able to kind of figure out what is going on.

Top Chef and Project Runway have worked pretty well too. Since they’re game shows the generalized structure of each show is the same so you can figure out what is going on if you stop paying attention for a while.

Shows That are Too Good

One problem I am having is people recommending shows that I should sit down and actively watch rather than garbage I can just have on in the background.

Breaking Bad is not a good candidate for my purposes.

Supernatural is also one that I can’t binge on. I have slowly worked my way up to season five, but it’s not something I can just passively have on for five hours.

Pretty much anything that has been on cable with abbreviated seasons like Mad Men and Halt and Catch Fire are not good candidates because I want to actively watch them.

Any prestige TV is not a good candidate for my purposes. Prestige TV is something you watch to be actively engaged. There is a time and a place for Prestige TV, but when I just want a steady stream of macaroni and cheese I don’t want to deal with prime rib.

Shows That are Too Engaging

There are so many shows that are disqualified because they require you to pay attention. One of my early candidates to replace Law and Order was NCIS. That stupid show is way too intricate for what it is. You have to pay attention to every single thing people say and do to know what is going on. I listened to an audio commentary from the actors where they got distracted for a minute about something and were like “Wait, what just happened? Why are we in this basement now?” It’s not worth the mental capacity to pay attention to what is going on to get through the entire series.

The West Wing is nothing but people walking and talking. You have to pay attention to every bit of dialog and after a while it gets incredibly preachy and irritating because it’s the world as Aaron Sorkin wishes it would be rather than the world that it is and it just makes me angry and thinking about politics and then I can’t deal with anything anymore.

Shows I have Already Seen

People have suggested some really good shows. The issue is that I have already seen those.

These include, but are not limited to, the following:

  • Battlestar Galactica
  • Futurama
  • Buffy the Vampire Slayer
  • Scrubs
  • Firefly
  • Doctor Who
  • Lost

Part of the issue is that I don’t want to just get into a rut where I watch the same show over and over again. There is scary amounts of stuff out there that I haven’t seen or read. Even if a book is shitty or a TV show goes off the rails, it’s still good to explore and absorb new things.

I find myself coming back to shows I have already seen like Alias and Chuck, but I would like to contemplate the possibility that there is an amazing show I haven’t seen yet.

That is what happened with Fringe. I tried to get into it a few times, but the first season was kind of slow. My affection for Walter got me through the rocky first season and I discovered a show that I actively looked forward to watching to see what would happen. When it was over I was so happy with how it wrapped up. It was like finishing a great book. But then I was sad that it was over and I can’t see it for the first time again. I want to hope there is something else like that out there and I won’t find it if I just keep watching Grey’s Anatomy over and over again.

Potential Binging Shows

Here is an informal list of shows that I keep forgetting exist that meet my criteria:

  • CSI (I watched it up through Season 7, so technically haven’t seen most of it)
  • Medium
  • Crossing Jordan
  • The X-Files
  • Star Trek: Deep Space Nine and Star Trek: Voyager (saw DS9 all the way through when it aired but not since, could never get into Voyager)
  • Stargate:SG1, Stargate Atlantis, Stargate Universe
  • Person of Interest

A lot of these are older shows. I think that with Peak TV come with the death of the kinds of shows I am looking for. Peak TV is similar to what is going on with film. There are lots of incredible prestige shows that demand constant attention and prompts rabid fan discussions on the internet. Then if you’re not a prestige show, you’re something like The Big Bang Theory. There is a huge amount of really bad, not funny or smart TV that is too bad to be good for having on in the background because when you do pay attention to it, you recoil in horror at the sexist, homophobic garbage being spewed.

There does not seem to be much of a demand for shows without vast mythologies and serialization that is fairly repetitive. Ironically, I am basically looking for the TV equivalent of the Marvel Movie franchise. Those movies are awesome. They are basically the same story over and over again with some variation in the setting and the primary hero.

I realize that by writing this huge blog post complaining about not finding bad TV to watch that it makes me seem like a couch potato neck beard who never leaves my parent’s basement. I think of this stuff as white noise going on in the background. It’s like trying to find a good radio station to listen to while you work. It’s hard finding music that helps you focus and doesn’t just make you flip through stations going “Nope, nope, hell no, aw this is the end of my favorite song and now they’re playing something I hate!”

I will continue my mission to explore strange new worlds. To seek out new shows and new storytelling. To boldly go where lots of other people have gone before!

I Need Help

I have written a little bit about my food situation and my weight on this blog. I have been on my own for almost a year and things that I put on the back burner are starting to boil over a little bit and I feel like I need to pay attention to them.

When my ex moved out of the house and I got to control my own food, I thought that I would lose the twenty or so pounds that I put on the last few years of our marriage. The marriage was going badly and I had started programming, which basically consumed my entire life. I figured after he left I would be able to eat the way I wanted to and that the weight would gradually come off.

The weight has not come off. It has been stubbornly hanging around. I have been somewhat passively trying to eat healthier. I cook my own food, which is usually things like chicken that are made up of lean protein and a lot of veggies.

I joined a gym a year ago, but I haven’t been able to go regularly. I would go once or twice, then I would basically become exhausted for weeks afterward. I didn’t get tired the day I went, I would just feel horrible and shaky for weeks afterward. I tried to push through it but I just kept feeling worse.

I know at this point it sounds like I am in terrible shape. I can walk all day and feel fine. I did that while I was out here in San Jose. I take a long vigorous walk each day when I need to clear my head and I don’t have the weird sweating or heavy breathing or heart pounding that you tend to get when you are horribly overweight or out of shape.

I think that my body right now is in a state of shock over everything that has been going on the last few years and, for lack of a better explanation, my code base is fragile. I can’t add new things to my life without my body completely freaking out. I wrote about having my conference plague that wouldn’t end and I can feel it giving out on me.

I don’t really know what to do. I am in trouble and I don’t know how to fix it.

I talked to Jaimee Newberry and she said that every time I talk to her, I am stressing out about being fired. I am constantly freaking out that I am letting someone down or not living up to what I need to be doing. I have been perpetually doing this since 2012.

Back in 2014 I had a few months where I basically never left my bed. I would get up, program all day, and basically drink from noon onward.

I have been abusing my body trying to catch up to where I think I am supposed to be and I just need to prioritize figuring out how to feel better. I am tired of feeling stressed out all the time. I am tired of feeling chubby and not really knowing what to do with it. I am tried of drinking every night because it is the only way I have to signal my brain that this is when my day is over. I am tired of being too mentally and physically exhausted to go to the gym and run because I actually like running. I would like to be able to do it regularly without causing a system-wide crash.

I need to figure out how to restructure my life. I need to find some other way to relax that doesn’t involve me automatically drinking wine every night because it’s the only way I can tell my brain to stop working. I am very ritualistically oriented. I have to brew my tea every morning before I start working because it’s the way I tell my brain it’s time to work. I need to find another solution for telling my brain when work is over.

I need to stop stressing about getting fired. I am not saying that I should assume I never will, it’s just that the perpetual worry about it is causing me a lot of problems.

I need to figure this out. I am poisoning myself and I can’t keep doing this.

The first step towards fixing a problem is to acknowledge that it exists. I need to make a plan to figure out how I am going to incrementally fix myself. I learned programming and worked on two books and I have been able to do a lot of amazing shit. I can do anything I put my mind to. I can do this. I just need some help.

Soul Searching

January, 2014

I began my programming career in late December 2013. It started something out of necessity. Sometime around October I suffered from a nervous collapse that made it impossible for me to focus on my school work. I had dropped out. I was lying to my husband about dropping out of school because I was gambling on my ability to find a job around the time I was supposed to graduate. I was very lucky and something came through.

My only hope for my first job was that I would find something in iOS. In the Madison area, that was a pretty stiff order. Madison is a lot of enterprise Java, government, and health care.

I managed to find a job at a start-up where I was the oldest person by a decade. I was partially hired because my bosses were not old enough to drink and didn’t know any better about hiring people who have actual experience.

By January, I knew this wasn’t working. I didn’t get along with my programming partner and I knew I was going to be let go. I was okay with that. I knew it was a bad fit.

I did some soul searching at that point. I knew it was bad to lose your first job after two months and I did have some concerns with my long-term ability to be hired. I had a few choices. I could kind of fake it and find another, similar job where I would be equally uncomfortable, but possibly be able to fake it better. Or, I could acknowledge that I was in the weeds and I didn’t know what I was doing.

The people around me didn’t know what they were doing either, but I had enough training and visceral awareness to know that my programming sucked. I knew it could be better and I knew it would never be better if I continued to pretend like I knew what I was doing.

I sat down and started thinking about what I wanted from my career. There was only one thing I absolutely knew I wanted. I wanted to be Brad Larson.

Brad, for those who have not heard my enthusiastic ramblings about him, is the creator of GPUImage. Brad taught the Advanced iOS class at MATC the first year it was offered. The classes were, and are still, available to watch on iTunesU. While I was a student I heard a lot of stories about him. I heard about how Apple engineers told him that something he wanted to do with his Molecules app was physically impossible to do on the current hardware. He figured out a way around the limitation and he made it happen. He was the guy who did impossible things.

I didn’t know if it was possible or how long it would take, but I wanted that. I wanted to understand the language well enough that I could figure out a way around the limitations. I wanted to be a great programmer.

I reached out to Brad and told him that I wanted to do what he does and asked him for advice about how to get started. He was very kind and wrote a nice email back. A few weeks later, a contract opportunity became available to work with him on an extension of his Molecules app. I knew I was on my way out at my current job, so I reached out to him. I told him that I didn’t know anything but that I wanted to. I really wanted to make sure I didn’t misrepresent myself because I wanted to learn and I couldn’t do that if I pretended to know things I didn’t.

After this contract job, I spent time working on a book with Chris Adamson and doing a lot of conference talks. I was trying to get my name out there so that I could find a job. I talked about GPU programming and Metal because they were new things. I didn’t really explain them as well as they should be explained because I didn’t have enough experience with them to fully understand them. I gambled on talking about difficult and obscure technology to try and differentiate myself from all the other new programmers out there.

To my shock and surprise, Brad reached out to me about working for him as my speaking obligations were winding down. I did it. I accomplished the short term goal I made at the beginning of the year to find a programming job with a great programmer so that I could get better and be a great programmer too.

January 2015

Let’s jump ahead a year.

At the beginning of this year I initiated a divorce with my husband. Things had been difficult for a long time. My goal for a few years had been to find stable employment that would allow me to end the marriage.

I do not want to badmouth my ex-husband. Our divorce was amicable. He was a friend before we were married and he continues to be a friend. We had a lot of trouble and I honestly wish him no ill will.

I am bringing this up simply to establish that the last six months have been very difficult.

I have never taken care of myself.

I lived with my parents until I was 27 years old. I was essentially a perpetual student because I didn’t really understand how to find a job or support myself. I moved from my parent’s house to my husband’s house. The first few years I was working I had my husband manage our money because I was earning minimum wage and I did not want to know what my weekly paycheck was because I was afraid if I knew how little it was, it would be easier for me to mentally justify calling in sick when I didn’t feel like going. I was unemployed from 2012 for most of the rest of our marriage. I have never budgeted my money. I have never paid my own bills. I never lived on my own. I don’t think I filed a tax return until I got married because I earned no income.

The last six months have been difficult. It’s been hard trying to learn things that most people knew when they were 16. It’s been hard being away from my pugs so much every day. My house is still a mess because I am simply too tired and demoralized to clean it. I don’t think I’ve put my laundry away since February. My ex-husband was actually so appalled by my inability to care for myself that he cleaned my kitchen one day when he was here picking up some of this things.

The last six months have been physically and emotionally exhausting. I have had bouts of depression that I have spoken about on this blog before. It’s been rough.

Because things have been rough, I have been letting a lot of things go. One of those things has been my focus on my long-term goal of being a great programmer.

I have barely been getting by.

I have had weeks where I have barely gotten anything done. I have felt a great deal of self-hatred and fear about losing my job and independence.

At a certain point it became easy to rest on my credentials. I wrote a book. I was invited by Saul Mora to interview people for NSBrief. I had lots of people who knew who I was. I was given some cache for being a great developer because I had credentials. I didn’t want to think about how little I actually knew because it was too fucking demoralizing to deal with. So I pretended. I even convinced myself that I was as good as I needed to be. I got careless. I stopped trying because it was just too hard to deal with.

Now

I am not doing this any more.

I am tired of what I have been doing for the last year.

The reason I told my long, rambling story at the beginning of this post is because I feel like I am back there now. I feel like I have two choices about how I can proceed from here.

I can either decide that I learned enough and keep hiding behind my credentials. I can learn fast enough to keep up with things, but I won’t ever become the developer I wanted to be. I will have to keep pretending like I know more than I do.

I don’t want to do this anymore.

I want to be very clear about a few things.

Chris wrote most of the book. My name is on the book and I wrote three chapters from the book. I wrote the Debugging, Testing, and Photos chapters. Two of those chapters didn’t really require me to add much to the code base. When I had to tackle the Photos chapter I had to fly out to CocoaConf Boston to work directly with Chris on that chapter because I was not familiar enough with the code base to write the chapter by myself. I needed help with the Core Image code.

Chris worked on the book for two years before I was brought on. I think my presence played an important role in getting the book done. I contributed to the book. But, I feel that I have received more credit for the book than I am due. I haven’t read the book all the way through. I am not comfortable with most of the concepts in that book.

I am tired of waiting around for someone to figure out that cut to the front of the line. I am going to be proactive and admit that I don’t really know that much. I have never written an app of my own. I have focused on some very obscure and esoteric low level programming. For a developer who has only been working for a year and a half, I am fairly advanced. However, I have a long way to go.

I have realized that I have been squandering my opportunity of working with Brad by being too proud and afraid to ask him for help. I have been ignoring things that I don’t understand. Yesterday I asked Brad about what provisioning was. He could have explained it in a sentence. Instead, he took an hour to show me Instruments and how it could be used to analyze one of his projects. I felt like my world went from 2D to 3D. I realized that there was a whole dimension of being a programmer that I used to be aware of and wanted to explore that I had abandoned because I was tired and demoralized and didn’t want acknowledge how little I know. I felt exhilarated and deeply, deeply ashamed.

I do not want to be afraid anymore.

I am working on my own personal application. I am going to do my best to write about that process on this blog. I will be talking about concepts that are probably covered in the book that has my name on it. I will talk about things that most people who have been programming for five years already understand.

I want to go back to the spirit this blog was created in. I created it to document my progress as a student to a professional. True to my roots, I am a perpetual student.

I am going to ask more questions. I am going to delve deeper and try to understand better. I made time for what was important for the first half of this year. Now I need to get back on the track I decided a year and a half ago. I need to stop worrying so much about my exposure or my reputation and worry more about my skills. If my reputation suffers because I want to shore up my weak points, then I probably deserve it. It’s painful to admit that you don’t measure up, but if you won’t accept reality then you can’t change it.

I hope that Brad will continue to be patient with my questions and continue to go the extra mile to expose me to things I wouldn’t have thought of otherwise. His commitment to excellence pushes me to be better and even though it is painful sometimes, it is something I asked for that is rare in this day and age.