Category Archives: Conferences

Meaningful Relationships and the Art of Networking

Family

My father and I have had arguments about family for most of my life. My father keeps insisting that now that I am an adult I should make a pilgrimage twice a year to go to his family reunions. I don’t see the point in going to these because I had many of these events from my childhood where I felt kind of like we were the Anne of Cleeves juice glass in the collection of wives of Henry VIII. We needed to be there so that there would be a complete set of my father’s siblings and family, but once we were accounted for we were kind of ignored and forgotten.

I came to terms with this at some point in my early adulthood because, honestly, what do you say to people you only see twice a year? Most of my relatives were much older than I was. My cousins were in college and getting married when I was in Jr. High. We were at different points in our lives.

The advent of Facebook and the Internet has made it much easier to connect with my relatives and keep up with what they are doing. We’re also now all adults and it’s a little easier to connect with people when you’re at the same point in your life.

Yet still I fight with my father over the necessity to go there and see people in person. We would have incredibly heated arguments over this and I could never articulate why this bothered me so much until recently, and yes, it does has something to do with networking.

Meaningful Relationships

I guess the things that bothers me about going to various family reunions is that they are perfunctory and superficial. You go, you say hi to the host, you eat your sandwich, you go home.

I observed over many years that most people’s relationships with their families were much different than my own.

I grew up in a very small town where most people had a huge network of cousins and other relatives who were all around the same age. They were thick as thieves in school and continue to voluntarily spend time together as adults. People weren’t just cousins, they were friends as well.

My cousins were not my friends. I really think that they could have been.

I remember as a kid being hauled to the family Christmas brunch where I would usually find a nice corner to sit in and read my Babysitter’s Club books while I waited for presents to be opened so that we could go back to the hotel and go swimming. One thing that happened every year was that my cousins would all go out to a movie and I was always invited to go. My dad would tell them no, I wasn’t allowed to go with them.

After a few years they stopped asking and whatever relationship I had with them withered until I became an adult and reconnected with them on social media.

My mother’s family was closer in both age and geographically and I barely saw them either. I will now go on Facebook and see every cousin of my mother’s, except her, go on a week-long camping trip and other various adventures that we are never included in because we’re not really a member of the family.

I keep fighting with my dad because I think we have different ideas of what “family” is.

My dad thinks that family is people you are related to by blood who are obligated to take you in if you are in trouble. He sees them like Social Security. You show up once a year to let them know you are alive so that if you are at a point where you might not be you can show up with your hand out and expect to be taken care of.

To me, what I observed, is that family are your social circle and your safety net. Family is people you want to spend time with and who you want to help if they’re in trouble. My dad has no interest in a meaningful relationship with any member of his or my mother’s extended family and he assumes that the blood tie is enough to fulfill this goal.

So What Does this Have to do with Networking?

I’ve noticed that some people are taking the wrong approach to networking.

Many people think that having several hundred LinkedIn connections is a network. It isn’t.

Jeremy Sherman was talking at the mini-360iDev in Greenville last year about how he networked with a journalist he hoped would feature him in a piece for his magazine. The only reason this tactic worked was because Jeremy actually made friends with this person. They liked one another and it was a real, meaningful relationship. He made it clear it wasn’t a mercenary tactic, he just really wanted to befriend the guy and that it worked out because he treated the journalist as a human being and not an opportunity.

All of the opportunities I have had have come from having meaningful relationships with people in this community.

It means a lot to me that the Kleins, the Remsiks, and the Wilkers have given me the opportunity to speak at their conferences. I like all of them as people very much. If I didn’t get to speak at 360iDev in two weeks (buy your tickets!), I would still like the Wilkers very much and would have found a way to go (but I am glad I didn’t have to).

I made friends with Chris Adamson because I liked the work that he did. We hung out at Anime Central the last two years because we were friends and we both had a mutual enjoyment of anime.

If I had gone into my friendship with him with the agenda that I was going to get something out of him, our friendship would never have materialized. People can sense users a mile away. Don’t be a user.

I am at a point right now where if I lost my job this afternoon, I have a large number of people I would go to for help, not just to find another job, but just because they’re friends who I think can give me advice and comfort about what to do. I have a lot of people in this community that I consider to be close friends and confidants and it makes my life and career richer for having a meaningful relationship with them.

Networking is about building meaningful relationships with people. It’s about seeing them as people and spending time with them even if it doesn’t immediately get you anything. It’s about finding people you genuinely like and who genuinely like you. If you go to one conference and meet someone once and never follow up with them, then I am sorry, they are not a connection in your network.

If you’re going to go to the expense and time of attending a conference, make the most of it. Meet as many people as you can. Find people who like the same things you do and keep in touch with them. You can’t pick your family, but you can pick the people you choose to be connected to.

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.

Zen and the Art of Analog Synthesizer Maintenance

2014: The Year of Magical Thinking

You can take a picture of something you see
In the future where will I be?
You can climb a ladder up to the sun
Or write a song nobody has sung
Or do something that’s never been done

Last week I was in Atlanta for CocoaConf Atlanta. That conference was the cap on one of the craziest years I have ever had.

Exactly a year ago I had dropped out of school because I was having a nervous breakdown. I knew I needed to find a programming job but I had no idea where or how I would do so. I was completely broken and I had no hope that anything would get any better. The only thing that got me through that period of my life was the faith that something would happen.

I spent a lot of my time in 2013 sowing seeds, hoping one or two of them would take root. I attended several conferences and met a lot of people. Two of the people I met were Jonathan Penn and Chris Adamson. Jonathan mentioned he was writing a book and wanted to know if I would tech review it. Being a tech reviewer is an unpaid task, but I like and respect Jonathan, as evidenced from this blog post.

The editor for Jonathan’s book is Rebecca Gulick, who also happens to be the editor of my book with Chris. When he was looking for a coauthor and he mentioned me to Rebecca, she already knew who I was.

Before I was approached about writing the book, I reached out to Brad Larson about learning OpenGL. I knew I wanted to be a graphics programmer, but that it takes a long time to learn, especially for someone like me who didn’t have any programming experience until two years earlier. My reaching out to him resulted in me having the chance to work with him on a contract project for Digital World Biology. Even though we were working on this project, I hadn’t met Brad in person.

I happened to meet Brad in person a week after I signed the contract to work on the book with Chris. I didn’t know it at the time, but the book I was working on used to be the textbook used for the iOS programming class at MATC. That definitely made an impression.

Six months ago, I had a couple of conferences that I knew I would be speaking at. I wound up doing twice as many as I thought I would. My first conference talk was less than a year ago. This year I spoke at ten conferences total.

Between writing a book, traveling all over the United States, and getting a job with one of the best programmers in the world working on robots, my head is spinning. There are so many things I thought I might get to do a few years down the road. I just wanted a job to get some experience so that maybe one day in like five years I would be able to work with someone of Brad’s caliber. I hoped that maybe I would be able to work on a book in three years.

I looked back at the goals I set for myself at the beginning of the year. No, I didn’t wind up starting a podcast or buying my MIDI wind controller (however that is on the horizon). I set out six long-term goals that I wanted to do in the next 3-5 years. I have knocked half of those off in 2014.

Depression

Oh brother I can’t, I can’t get through
I’ve been trying hard to reach you, cause I don’t know what to do
Oh brother I can’t believe it’s true
I’m so scared about the future and I wanna talk to you
Oh I wanna talk to you

I am going to be honest. I had absolutely no idea how to proceed from here. Part of being alive is to strive to go further and do better. Once you get to where you want to be, what do you do? I always feel a bit of a disappointment when I finish my cross stitching projects because I keep feeling like I will feel a sense of accomplishment, but it’s always a letdown. I enjoy the process of making the thing more than the joy of accomplishing them.

Part of my excitement about these long term projects was the anticipation of all the neat things I would get to do between then and now. I was really looking forward to all the neat stuff I would get to do and all the time I would get to spend working on my craft.

None of that happened.

Things happened so fast that I haven’t had a chance to enjoy anything I have been doing. I haven’t had a chance to stabilize the ground under my feet. I haven’t had a chance to really dig deep into something than interests me because I am running around like a chicken with my head cut off rushing to the next thing.

I have honestly been depressed. I feel like I shouldn’t be depressed and that I am a terrible and ungrateful human being because I got everything I ever wanted. Not only did I get everything I ever wanted, I got it way faster than anyone else. I have it made and I have no idea how to get up each day and deal with my life. Plus I feel like I can’t talk about it because I know that there is absolutely no reason for me to be unhappy.

I had a lot of conference talks lined up for 2015 and I was thinking about doing a lot more stuff because I feel like I worked my ass off sowing these seeds. I hoped that one or two would take root but twenty did. Last year I had nothing but my stubbornness and refusal to quit and now I have the situation of having too much. It feels wasteful to me to squander opportunities I would have killed for a year ago.

But I have to.

It has been a tremendously difficult decision, but I am not doing any conference talks for at least six months. I do not plan to attend any conferences during that time either.

I love this community. I have made so many friends in so many places. I spent a lot of my life feeling like a freak who never fit in anywhere. Being welcomed into this community and treated with respect has meant more to me than I can ever express. One reason it took me so long to make this decision is because this community means so much to me and I want to make sure other people like myself have a chance to join and be welcomed as well. The Klein family has changed my life and I can never express to them what their kindness has meant to me.

I feel like my life is moving too fast and I need to take a step back. I need to focus on getting my feet back under me. I need to focus on doing my job well. I need to focus on sharpening my tools. I need to find something that gives me back the joy and meaning I had in my life back when I was struggling to break through.

The Zen of Sound

Are you lost or incomplete?
Do you feel like a puzzle, you can’t find your missing piece?
Tell me how do you feel?
Well, I feel like they’re talking in a language I don’t speak
And they’re talking it to me

Last year I felt like I had to spread a wide net to catch one opportunity. I spread myself very thin doing a lot of different things to try and get myself enough exposure to find a job. I am pulling back on a lot of these things.

Looking back at my long-term goals, the half that were not fulfilled all had to do with audio programming. I love sound. I wanted to be a sound designer before I became a programmer. Last year I wanted to write a synthesizer app as a portfolio project, but I had too much noise in my life that I couldn’t focus the way I needed to for this project.

Now that I can pull back on a lot of the things that are taking up my time, I can focus my free time on projects that personally interest me without worrying if they will get me a job.

I spoke to Brad when I began to feel overwhelmed about what I should focus on for the next year or so. He advised me to think of something that doesn’t exist and to try and make it happen. He talked to me about taking an impossible task and breaking it down into small, discreet parts that can each be accomplished individually.

Audio affords me a lot of opportunities to explore things that interest me. I became interested in electronics after I began working with physical hardware at my job. I also became interested in math after I started working with GLSL. Additionally, Apple introduced not only Swift, but AVAudioEngine. There have been audio programmers on Twitter who do not think you can do audio programming in Swift because Swift is not built on C.

When I tried to tackle this last year, I had no idea what I was getting into. I also placed a lot of chips on me being able to pull this thing off that caused me a tremendous amount of anxiety.

I am not going to make that mistake again.

I know it isn’t necessary, but I want to build a physical synthesizer before I tackle a software one. I want to get a feel for how all of the pieces fit together.

I also want to spend more time making music with my tools. You can’t really create a piece of software for a group of people if you don’t understand how they are going to use it. I used to play around with this stuff all the time years ago, but it’s been too painful to work with until recently.

I am not going to disappear. I am going to catalog my journey here on my blog. I hope that I can figure out how to do some things that will be helpful to the community at large. I plan to take everything I am learning over this time and present it at NSScotland, which I am still going to speak at. I could not let down Alan Francis again.

I hope that anyone reading this can understand and respect my decision. I hope that I am not the only person who has felt this way and that reading about my depression can help someone else. I am in this career for the long haul. 2014 was a sprint. The journey is a marathon. I can’t keep going the way I am because I won’t make it to the end. I am going to miss all of the amazing people I have met over the last year, but I need to take care of myself and focus.

Thank you everyone for an unbelievable 2014. I am looking forward to coming out of my self-imposed isolation a happier and healthier person. God bless and keep all of you. Don’t have too much fun without me.

Mono No Aware

Over the last year we in the iOS community have had a mass exodus of our best people back to the Mothership. There was a period for a while on Twitter where like once a day I would see someone tweet “I have an announcement to make. I just made a really tough decision, but I have accepted a job at Apple.” My favorite response to this phenomenon that I saw was from Jeff LaMarche, who tweeted: “Last one to go work for Apple turn the lights off, okay?”

One day a few months ago I go on Twitter and see a tweet from Jonathan Penn. “I have an announcement to make.” Oh no. “I just made a really tough decision…” Oh please, dear god, don’t let this be what I think it is. “…but I have accepted a job at Apple.” NOOOOOOOOOO!!!!

The Breakpoint Formerly Known as Jonathan Penn

The Breakpoint Formerly Known as Jonathan Penn

I honestly can’t tell you why losing Jonathan Penn to Apple affected me so profoundly. I met Jonathan back at my first CocoaConf in Chicago 2013. It wasn’t like I was as close to him as I eventually got to Chris Adamson. We weren’t best pals or anything. I don’t think I had a closer relationship to him than anyone else did and I actually think I probably wasn’t as close to him as other people were. And yet.

I think Jonathan has a biological mutation that causes him to secrete nitrous oxide because whenever you are around him, you can’t help but feel happy. I don’t think I have a picture of Jonathan without a big goofy grin on his face. Watching him crack up during the CocoaConf game show was a joy to experience. Additionally, Jonathan is wicked smart. I would go to his talks and feel like the village idiot because I would be blown away by his rapid fire delivery of concepts that sailed right over my head.

I guess I got used to the idea that he was always going to be here. I figured when I go to CocoaConf there are certain things that are always there. There will always be an amazing keynote by Daniel Steinberg. There will always be a Breakpoints Jam concert. I guess I thought there would always be a Jonathan Penn.

Back when I had my life changing trip to Boston, I started thinking about what kind of a person I want to be. I wanted to be Jonathan Penn. His passion and his energy were absolutely amazing. He is such a warm and giving person. He adds so much to the iOS development community. I wanted to be like Jonathan Penn.

I am being slammed this year with a lot of instances of impermanence. We got a new programming language from Apple. Many prominent actors and comedians who I grew up with passed away. I feel change happening around me everywhere I turn. The phrase I have as the title of this post, mono no aware is a Japanese phrase that talks about the ephemeral nature of existence. Everything we do has meaning because nothing lasts forever. Life is precious because we have a limited amount of it. Each and every moment we have will never come again and no matter how lousy it might seem at the time, it is special because it is transitory.

Everything in life is transitory. As a member of the generation that came during the internet boom and the Great Recession, that is painfully obvious. People don’t work for the same company for forty years anyone or have the same job their entire career. This is doubly so for computer programming. I have only been programming for the last two years and I am already gearing up to switch from imperative programming to functional programming. Before I left for my conference on iOS programming I got a bunch of help from my boss setting up iHaskell notebook to learn Haskell. I can already feel the ground shifting under me and I am trying to adapt before it is too late or too difficult.

Jonathan going to Apple felt very much like he had died. We can’t talk to him about what he is doing anymore. He is too busy to waste a bunch of time on Twitter. I don’t reliably have an event ten times a year where I can go and absorb all of the joy he radiates. He’s still here, but he is now sharing that joy with other people.

I guess I was also very upset when Jonathan left because I didn’t know that the last time I saw him might literally be the last time I saw him. Had I known that he would be moving on to another stage of his life I would have savored the time with him more. We always feel regret when it is too late to do anything about it.

Jonathan leaving makes me think about the fact that I am going to leave someday. Right now we have this amazing community in iOS, but this is ephemeral. Something else that is going to be really cool is going to come along. All the top people are going to get tired of what we are doing and are going to move on to the next thing.

Yuri Nakamura is my spirit animal

Yuri Nakamura is my spirit animal

I worry about my ability to let this thing go. I don’t want to be the person who graduates from high school and keeps hanging around because they can’t move on. There is an anime series, ”Angel Beats!” about a group of teenagers who had terrible lives and died young who spend time in an afterlife that looks very much like a normal Japanese high school. The point of this afterlife is to get the people in this afterlife to resolve the unresolved issues they brought with them in their previous lives and to help them move on, which in this series is called “graduating.” (My twitter avatar is of me dressed as one of the main characters from Angel Beats, not Sailor Moon.)

Sometimes it is hard to move on. You have a snapshot in your brain of this fixed point in time where things were really great or terrible. In Star Trek: Deep Space Nine, Captain Sisco is trying to explain linear time to the wormhole aliens. The aliens point out to him that he has frozen his linear existence. His life was trapped in amber at the exact moment when he lost his wife. He can’t figure out how to live his life after this tragedy happened.

Life doesn’t stop just because you want it to or because you have been so incredibly damaged that you can’t figure out how to cope with your new paradigm.

Imagine my surprise and delight to actually have a chance to rectify all of this, Jonathan made a cameo at CocoaConf Las Vegas this weekend. Jonathan’s parents live right outside of Vegas and he brought his whole family to CocoaConf to watch him rock out at the Breakpoint Jam.

Thanks to Solomon Klein for making me look thin in this picture with Jonathan.

Thanks to Solomon Klein for making me look thin in this picture with Jonathan.

Having the chance to sit in the audience one last time with Jonathan being a Breakpoint was a fantastic gift. James Dempsey asked me how the concert was and I told him it was the best one. He thought I was pandering to him, but I wasn’t. Jonathan brings this energy to the performances and being able to sit there and enjoy this performance knowing that it would be the last one was truly meaningful to me. The crowd was a smaller, more intimate crowd. The concert wasn’t a super rousing concert, but it felt more like hanging out with your friends goofing around, which was really nice to have.

Jonathan, if you are reading this, I hope you are not creeped out by my writing a whole post about you. I hope I didn’t bother you by hugging you a few times. I wish you the best of luck at Apple. I will try to stop talking about you like you are dead, but I make no promises.

Culmination of a Dream

Two years ago, I didn’t know Chris Adamson existed. I was taking my first semester of the iOS development degree at Madison College when I first found out about him. I was taking the Objective-C class mostly because I needed to have a full load in order to continue to collect unemployment benefits. I was planning to follow the Java track, get a job for a health insurance company, and lead a normal mundane existence. That all changed when I heard two words that would change the course of my life: Core Audio.

In my previous life, I went to school for audio engineering. I learned Pro Tools and Logic. One of my teachers was talking about the extreme guys who programmed those pieces of software and they fascinated me. I had no idea how anyone would program a digital audio workstation, so I kind of forgot about it.

When my teacher Eric Knapp mentioned Core Audio, he said it was one of the hardest things to learn in the Apple development environment. It was a toss-up between Core Audio and OpenGL. Me being the good little masochist that I am, I decided I would learn both of them. (Having tried my hand at both of them, I am awarding Core Audio with the trophy for being harder to learn.)

Trying to read "Learning Core Audio" while cruising and enjoying the ocean.

Trying to read “Learning Core Audio” while cruising and enjoying the ocean.

I bought Chris’s book on Core Audio and made the incredibly stupid decision to take it on vacation with me for beach reading. After seeing the unfamiliar and deprecated “NSPool” object, I freaked out and realized I had to work a lot harder in order to learn enough to understand what the hell is going on.

In February 2013 Eric told me that Chris would be speaking at a conference in Chicago. The conference was in two weeks. I was a poor, unemployed college student, so I had to scrape together enough money to be able to go down and attend this conference so that I could meet Chris.

I saw him around the conference, but he was a big important author and I didn’t really know what to say, so I didn’t approach him. On the last day of the conference, Chris did a talk on audio on iOS. I sat in one of the front rows and peppered him with a lot of impertinent questions about audio programming on non-iOS platforms. Having been on the receiving end of questions like this in my own talks, I commend Chris for his patience and restraint at not shoving my Ravenclaw scarf down my throat.

Kyubey and I grokking AV Foundation video.

Kyubey and I grokking AV Foundation video.

We wound up talking after his talk and having lunch together. He was one of the first people I have encountered that I felt completely in synch talking to. I wore a Doctor Who shirt trying to bait someone into talking to me about it. Chris saw it and commented that he would ask about it, but everyone and their brother was into Doctor Who. I pulled out my phone and showed him a picture of my pug, Delia Derbyshire. When I said her name, his face lit up and he got really excited. He was the first person I met who knew who Delia was without me having to explain it. Eric asked who Delia was and we were talking over one another explaining who she was. I was so happy. I was grateful to him for hanging out with me and talking about my stupid geeky audio stuff.

Several months later I got to attend CocoaConf Boston and spend a whole day with Chris doing Core Audio. That day was one of the best days of my life. I was having a lot of problems at that point in time and I felt like my life was falling apart. Spending the summer working through the Core Audio book knowing I would get to do this workshop in the fall gave me focus when I needed something to get me through my life.

Chris giving his penultimate Core Audio workshop at CocoaConf Boston 2013.

Chris giving his penultimate Core Audio workshop at CocoaConf Boston 2013.

Chris and I were able to work our way through our initial awkwardness due to both of us having some social anxiety issues to become friends. I stopped worrying that I was bothering him by commenting on his tweets and I began to feel comfortable asking him for advice.

Earlier this year I was again trying to figure out what I was doing with my life. I had a contract job that was ending in a few weeks and I had to figure out what I wanted to do. I applied for a QA position at a company in town whose employees I knew and liked a lot. Something in my gut told me that I didn’t want to do this job. I knew I needed a steady paycheck, but I just had a gut feeling that I wasn’t supposed to take this job.

I went to Chris and explained my situation. He patiently read through my long rambling email and responded back, “I should tell you to take the stable job with the decent paycheck and the nice coworkers, but I have an ulterior motive. I need a coauthor for my book and I would need you to start after your contract is over.” I immediately wrote back to the company and told them I was no longer available.

Like all recovering journalism and English majors, I always wanted to be a writer. I wanted to write books and stories. I have absolutely no idea why I wanted to be a writer. I don’t remember if I actually liked writing or I just liked the idea of being a writer. I sort of gave up on the idea of being a writer in high school when I realized everything I wrote was crap. I realized if I wanted to be a writer I needed to have some actual experiences. I had to get out of my comfort zone and change my perspective of the world. Sometime in college I just sort of decided not to think about writing for a decade to give myself a chance to actually find something to write about.

The Boston Breakpoints

The Boston Breakpoints

I began writing again last year around the same time I met Chris. I had another developer recommend starting a blog and I have written at least one blog post a month since I started my blog. I know a lot of people do podcasts because they are “easier”, but I have always found that writing really helps me get my thoughts out of my head.

Back in March at CocoaConf Daniel Steinberg had a session called “Book Chat.” It was for anyone who had written or wanted to write a book. The only other person there besides Daniel and I was Chris. Many people over the last year have tried to talk me out of writing a book. I heard the usual arguments that books take a long time and they don’t generate any money. Daniel asked me what I wanted to get out of a book. I told him I wanted to be able to type my name into Amazon and have a result pop up. I also wanted to take the cover of my book, frame it, and put it on my wall. That was all.

Today marks the culmination of a dream for me. I have a book I wrote being published. We are on a public beta and there is still more work for me to do on the book. But it is real. It is happening.

OMG! I got a shout-out in Chris's "Stupid Video Tricks" talk in Chicago!

OMG! I got a shout-out in Chris’s “Stupid Video Tricks” talk in Chicago!

I am thinking about where I was a year ago. I had weathered several failures and I felt broken. I had no idea what the following year would bring. I had the single-minded determination that I had to finish the Core Audio book and go to Boston. I didn’t know how or why, but I knew that it was a turning point in my life and I threw everything I had at that.

Going to Boston changed my life. It changed my perspective of who I could be. I was pitched by several companies there that I didn’t imagine would even be interested in me. None of those leads worked out because I was just too messed up to take advantage of them, but they made me realize what kind of person I could be if I wanted to. Josh Smith had me talk to Dave Klein about speaking in Chicago this year. I didn’t think I could be a speaker until that happened. I applied for another talk that happened a few weeks before CocoaConf Chicago, which wound up being my first tech talk, but that would never have happened without Josh Smith.

Mad props to Mark D for throwing Greek and trombone playing at us at 8:00 in the morning.

Mad props to Mark D for throwing Greek and trombone playing at us at 8:00 in the morning.

I love this community. I love that I came here from a really crappy background and that I found people who were willing to accept me for who I am. I am happy that I haven’t been discarded because I am damaged. My damage could even be considered an asset because I bring uniqueness and experience with it.

All of these people keep talking about the importance of teaching young girls to code, like somehow my generation of women is too old to learn new things and we are a lost cause. Meeting someone like Chris whose experience was so like my own and knowing that I could have another chance at life gave me hope, which gave me the tenacity to endure all of my various disappointments. He gave me strength to accept all the broken, dirty pieces of myself and accept that they are part of who I am. He woke me up and made me think about all the parts of myself that I had numbed because they were too painful to deal with.

I went from a world of “No” to a world where anything is possible with enough work and tenacity. These last two years has been a miracle.

“iOS 8 SDK Development” is my first book. I hope there will be many more where this one came from. I treasure this book because it represents something I didn’t think I would ever have. It is also a project I got to work on with a great friend whose presence has enriched my life.

I wish I could go back two years and tell the earlier me that I would meet these people who would change my life. But I can’t. Spoilers, sweetie.

Approaching the Speakers at the Tech Conference Zoo

I am traveling to CocoaConf Las Vegas tomorrow. This is my second CocoaConf of the “season.” The first CocoaConf of the season was in Columbus, OH.

Since I am a member of Eric Knapp’s gang of iOS disciples, I was able to car pool with some of the other members of that group. On the way home, one guy in the car asked me if I had spoken to a certain person at the conference. I had not. I didn’t know this person.

I was told that this guy really wanted to talk to me but he was intimidated by me because I was speaking at the conference.

This made me feel really bad.

"No, I never thought about working at Apple. Why are you asking?"

“No, I never thought about working at Apple. Why are you asking?”

I am in this weird transitory state at the moment. When I first started going to conferences I really wanted to meet all the speakers, so I would aggressively and strategically make sure I was sitting next to them for meals. I made a lot of great friends and found a lot of advocates for myself this way. I would not be where I am today if I had not done that.

Now that I am a speaker, I don’t really know how to act. I don’t want to aggressively sit next to all my fellow “speakers” and make people feel bad because somehow we are an exclusive group of people because we really aren’t.

I feel bad about CocoaConf Columbus because I basically spent the entire trip hanging out with Chris Adamson. He’s my friend and coauthor, but I felt like I really should have made an effort to meet other people. It was kind of hard for me because I had no opening line to start a conversation with a stranger. That was one great thing about talking to speakers at programming conferences. There was a way to start a conversation. You could read their bio and ask about their job. You could ask them about their talk. I used to tweet people during their talks and come up to them later and explain who I was.

I am asking anyone who wants to meet me at a programming conference to please just come up and say hi to me. Tweet at me so when you introduce yourself I have an idea about who you are. Believe it or not, I am a somewhat socially awkward person and it is a lot easier for me to talk to people if I have some idea about what to talk about.

Unless a person is really putting off “stay the heck away from me” vibes, most of us are really approachable. We like to geek out about technology. That’s why we are here talking about it. If you want to geek out with us, just pull up a chair and say hi.

Hope to see a few people do this in Las Vegas. Looking forward to meeting you.

Carefree Highway

I was asked today to do a talk in South Carolina next month. I got so excited about doing the talk that I really didn’t think about how to get there.

I like to avoid flying when possible. When I went to Denver last month I took the train. That turned out to be a terrible idea, but it was an interesting experience.

South Carolina is about 900 miles away. When I was a kid we used to drive to Nashville. Driving seems doable.

The reason for this post is I want to talk about my car.

Two for the road.

Two for the road.

I have owned one car my whole life. I got a brand new Subaru Impreza back in 1998. I have had this car for half of my life.

This car has been through hell. I crashed it three times in the first few years I owned it. It had a nice respite for a while, but I crashed it again back in January. Since the car was sixteen years old, my husband decided it wasn’t worth getting the body fixed.

I have been pressured by my family to replace my car. I am being told it is no longer reliable and that it is going to be hard, but I need to let it go.

My car has been absolutely reliable for sixteen years. I feel bad for not treating my car better when I was first learning to drive. I am a superstitious person and I am afraid if I replace it before it dies that I will have bad karma. (Pun intended.)

I am willing to accept that I need to replace the old girl, but I would really like to have one last adventure with her. I would like to drive her to this conference in October.

I plan to do whatever I need to do to make sure the car is reliable and won’t break down in the middle of nowhere. I plan to make arrangements to make sure I know what to do if the car breaks down on the side of the road.

I know this is an incredibly stupid thing to do, but I love my car and I want to have this time to remember my time with her and to let her go.

I will have the car looked over before I go. If there is any question of the car’s reliability, I will not take it.

I know I am being overly sensitive about an inanimate object, but I would really like to be able to control how I let my car go. I accept that it needs to be replaced, but I want to be able to have a say in how I spend the last of my time with it.

And now, the end is here
And so I face the final curtain
My friend, I’ll say it clear
I’ll state my case, of which I’m certain
I’ve lived a life that’s full
I traveled each and ev’ry highway
And more, much more than this, I did it my way

Advice to Conference Speakers When Things Go Wrong

While I was attending 360|iDev this past week, I saw a speaker have a bad talk. I saw this speaker do this talk a few months ago and he knocked it out of the park. This time, several things went wrong and the talk went a little off the rails.

My heart went out to this speaker because earlier this month I had my own first encounter with a talk going off the rails.

My Conference Talk Failure

I spoke at CocoaConf Columbus. I was doing two talks. One talk was on GPU Programming and the other talk was on Debugging. I spent the vast majority of my time on the first talk. The subject matter was far more difficult and I was trying to do something rather ambitious with it. I didn’t really give the Debugging talk the love it deserved.

I knew when I woke up the morning of my talk that it was going to go badly. I spent a bunch of time in the morning refactoring it up until the few minutes before the talk began. I was rearranging deck chairs on the Titanic.

I'll just be over here drowning myself in my own tears.

I’ll just be over here drowning myself in my own tears.

When I began the talk, I included a really stupid inside joke that went on for far too long and things just got worse from there. I got flustered and none of my code demos worked properly. I also included way too many of them and all of the demos were based on the same project, so I became confused as to which demo went with which concept.

As I panicked, I spent more and more time looking to my coauthor for help like a kid looking to the teacher for the next line in the school play. I knew I was doing this and I couldn’t help it. I felt like the world was collapsing in on me and I was trapped up there for one terrible hour until I could escape and find a nice corner to cry in.

The Bad News

Here is the bad news. If you are going to be a conference speaker, you are going to have talks that go wrong. It is just going to happen. You are going to have a few that go well, you are going to get complacent and figure you have it all sorted out, or it might even be your first one and you didn’t prepare as much as you should have.

The good news is that you can learn from the experience. Human beings have the unfortunate habit of learning best when we fail at something. Emotional failure stings and it physically hurts us. We learn very quickly not to touch a hot stove because it hurts. We also learn not to go before an audience unprepared because that hurts too.

It is vitally important to not just give up on speaking when you have a bad experience. That is the opportunity you have to learn the most if you can shake off the pain and learn what you did wrong.

Advice

Here is my personal advice for anyone who has either had a bad experience or is just starting out and is worried about having their first bad experience.

  • Figure out if your talk is recoverable. I read a memoir by a gymnast who said that when she would get to practice in the morning she would immediately know if it was going to be an on day or an off day the moment she stepped on the balance beam. Sometimes you start the day off on the wrong foot and you just have to keep chugging along. If you can’t recover from your talk, try not to worry about it. The more you try to recover from it, the more panicked you will be, and the worse it will get. You just have to get through it as best you can. Don’t run away. Just finish as best you can.
  • LetItGo

  • If you think you can recover, take a few seconds to close your eyes and gather your thoughts. It might seem like a long time to you, but there is a temporal shift between how you feel time and how your audience feels time. It might seem like an eternity to you, but to them it isn’t that long.
  • Try to shake it off. Believe me, you are going to feel terrible. People will try to make you feel better by telling you it wasn’t that bad. They are trying to help. Try to be gracious to the nice people who feel terrible for you and want to make you feel better even though you really want to wallow in your own misery for a while. Let yourself feel bad, but not for too long. Have a good cry, then let it go. Don’t let this spook you out of ever doing this again.
  • Learn from what you did wrong. In my case, I didn’t practice my talk enough and my demos were confusing. I will not make those mistakes again. I am currently working on another talk to replace this one and I am trying to be very careful to do the talk that I can do, which might be less ambitious than doing the talk I want and envision. If you are a beginner, you are going to make mistakes and you will know that you could have done better. You will do better next time.
  • Remember that everyone in the audience is rooting for you to do well. No one came to your talk hoping to see you crash and burn. Everyone out there is empathizing with you. Most people find public speaking to be terrifying and if you are having a bad talk, you are living their nightmare. There will always be some asshole who will leave you a comment on your card that you weren’t prepared or some other negative thing. It is going to hurt. Fortunately, those people are usually the minority. Try to remember all the nice things people said and all the people who tried to make you feel better when things went wrong. Our community wants you to succeed.

Moving Forward

As painful as my Debugging talk was, I probably learned more from it than I did from the other talks that I did that went well. I know that the speaker I saw at 360|iDev is going to take that talk and refactor the hell out of it and the next time he does it he will knock it out of the park.

We learn more from our failures than we do from our successes. Failure is painful, but necessary for us to grow and learn and to do better. We are all going to fail at some point. There is nothing to be ashamed of. Just grow, learn, and do awesome stuff.

Programmer’s Math Call for Proposals

I am working on creating a talk about all of the math that I learned in high school, forgot how to do because it had no “real world” application, only to discover that I really need to remember it now.

I am asking anyone who follows me on Twitter, App.net, or reads my blog to please contact me about any math concepts you have encountered that made your brain shut down like Zaphod Beeblebrox’s sunglasses because it was too terrifying to deal with.

I want to get an idea of concepts people either don’t really understand or, if you are a math person, what concepts you think I should cover.

I don’t allow comments on my blog because I got sick of spending hours deleting all the spam that got through my filter. If you already have my email address, feel free to email me. Please ping me on Twitter if you don’t have my email.

I am trying to write this talk to address what issues our programming community has. The more feedback I get from people about what they find confusing and what they would like to see covered, the better I can do at helping all of us do better things.

Thank you.

For the Love of Math

I want to ask everyone a question. Am I the only one who remembers that at one time they really loved math?

I didn’t always love math, or reading. I found both of them rather difficult my first few years of school. I had classmates who went to preschool or had older siblings or stay at home moms who had a small head start on me for reading. I was determined to learn to read and I quickly caught up and surpassed many of my classmates.

Square One Television

Square One Television

It wasn’t until second grade that I discovered my love of math. There used to be an educational program on PBS called Square One Television. I became obsessed with this show because it took all these arithmetic concepts I had trouble grokking and explained them in a way I could understand.

They also talked about such advanced topics as Cryptography and Tesselations. (I do want to apologize for the dated content, this was created in the 1980’s.)

This show taught me what a googol was before the spelling changed and became a search engine/Big Brother. Even today when I see a number that is the same backwards and forwards I get really excited because I know it is a palindrome.

Yes, that is James Earl Jones.

Yes, that is James Earl Jones.

Notable people like James Earl Jones and Weird Al Yankovic appeared and lent their talents to making math fun for kids. If you do watch any of the clips I have linked to, please to watch the Weird Al one, it is full of Monty Python homages.

So, if I loved learning math so much and I enjoyed being challenged, why did I major in journalism rather than something math related?

My first major in college was engineering. I was bullied a lot in high school and I had a year where the highest grade I got on my report card was a C. As such, I wasn’t accepted to any of the schools I really wanted to go to. I went to the University of Wisconsin-Platteville to major in engineering. The male to female ratio at the time was two to one. After attending a tech conference where the male to female ratio was fifty to one, that seems positively progressive, but at the time, it was a bit of a shock.

I did not fit in with my classmates.

Every class I had I was the only girl. No one would sit next to me. I had a circumference of empty seats around me. If I tried to talk to anyone, they would literally cry and run away.

I took calculus my freshman year and due to a lot of stress and social issues, I received a D. I don’t really remember anything we were supposed to learn after the first week.

Contrariwise, if it was so it might be, and if it were so, it would be, but as it isn't, it ain't. That's logic.

Contrariwise, if it was so it might be, and if it were so, it would be, but as it isn’t, it ain’t. That’s logic.

I felt like a failure. The thing that got me through high school was this mythological idea that I would go off to college and find my people who would love and accept me for who I was. Going and discovering that things were even worse there than they were in high school was a massive shock and disappointment.

I temporarily dropped out of college. I tried working at Border’s for a while, but that went badly, so with nothing else to do, I went back to school. I went to Madison Area Technical college to take some entry level classes to get my grades back up enough to get back into the UW system. I transferred to UW-Whitewater, where I graduated in 2006.

Trying to jump over the negatives to get to the positives.

Trying to jump over the negatives to get to the positives.

I bounced around majors a lot, but I knew for a fact I was not going to do anything math related. I thought I was too stupid to learn calculus. I thought my success with algebra and trigonometry was a fluke, that those things were useless anyway, and that I needed to pick something easy just so that I could get through college because I was told that having a degree in anything would get me a job. *insert hysterical and bitter laugher here*

Journalism didn’t work out. Neither did video editing, sound design, or doing commodity white collar work. Back in 2012 I felt beaten. I had no idea what to do with my life and I contemplated ending it.

Then a miracle happened in a place I did not expect.

I have spoken about how the worst job I had was one where I was told to pretend to do work. I wasn’t allowed to ask any questions and I was supposed to act like I knew a bunch of stuff I had no way of knowing. It was miserable. However, there was a silver lining.

While trying to find something to do that looked like work, I discovered Codecademy. Codecademy began at the beginning of 2012 with the promise that you could learn to code in a year. I had it on my radar, but I was too discouraged from trying to learn programming to give it a try. When I had to find something that looked like work, it fit the bill.

I discovered that all the things that had stymied me for years while I was learning to program all of a sudden went away when I was doing things over and over again and doing them for long, concentrated pieces of time. I could do something I gave up on ever being able to do. I felt joy, and more importantly, peace while I was sitting at my computer feeling the code flow through my hands and onto my screen.

When that job ended I made the radical decision to go back to school full time rather than find another job. I was tired of running. I was tired of feeling stupid. I was tired of being afraid of failing. I wanted to learn to code because I wanted to know I could do it.

The two biggest motivators for me learning to program were Core Audio and OpenGL. I studied 3D modeling and animation along with audio engineering. I wanted to understand how the programs I used worked. I learned all the low level stuff I could find to help me with this quest.

Then I hit a wall.

What on earth does this stuff mean?! Mark Dalrymple knows Greek, right??

What on earth does this stuff mean?! Mark Dalrymple knows Greek, right??

I wanted to program and audio synthesizer. I was lent some Digital Signal Processing books by a friend, but when I look through them, it’s all Greek to me. And yes, I literally mean Greek because there are all kinds of symbols that I remember somewhere in the back of my head writing out and drawing in notebooks back half my life ago that I had buried because the memory of them was too painful.

I am in between conference gigs right now. Got home from CocoaConf Columbus and immediately went to That Conference.

It has been something of a whirlwind and I am still processing a lot of the adventures I had on these trips.

One of the talks that I was most looking forward to was at talk on the Accelerate framework by Mattt Thompson. I really wanted to know more about it, but I walked away disappointed. Mattt said that you couldn’t really utilize the framework unless you understood the math behind it. My talk on GPU programming also had the caveat that you have to understand math in order to fully utilize shaders. I went to no fewer than three talks and one keynote talking about math and our lack of knowledge of it.

I want to do something about it.

My favorite book in seventh grade and my introduction to logic.

My favorite book in seventh grade and my introduction to logic.

I asked the Klein family if I could replace my poorly attended Debugging talk with a talk on math. I want to figure out the most common stumbling blocks people have with the various frameworks and try to explain math to people the way it was explained to me, in a fun and relevant manner so that it doesn’t seem so forbidding and scary.

I am slowly going back and trying to immerse myself in the math that fascinated me as a teenager. I am not doing this because I think it will get me a job somewhere, I am doing this because I miss how I used to feel when I got exposed to something amazing. There are so many secrets and wonders of the universe that are a mystery to me because I shut off a part of me that I couldn’t bear to look at any more. I am sick of being that person. I don’t want to be afraid anymore. I want my love of math back.