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.

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.

My Life in Stitches

So I have an embarrassing thing about myself I want to confess. I have an incredibly terrible and subversive hobby. I have been living in fear of people finding out about it and judging me. Here goes…

One of my favorite hobbies is cross stitching.

At the point, you might be wondering why I think this is some subversive thing to confess to. I will tell you why.

I have been cross stitching since I was seven. Pretty much my whole life I have been lead to believe this is something I should be embarrassed about.

My collection of projects finished but not framed over the last six years.

My collection of projects finished but not framed over the last six years.

My father would continually tell me that I should stop my cross stitching hobby and take it back up again after I retire. Looking at how tiny all the holes and the patterns are, I am highly skeptical that this is a good course of action.

I would bring my cross stitching to school to do during study halls and I would be constantly ridiculed by my classmates for doing it. So, like a good teenaged girl, I caved to peer pressure and hid my hobby away.

When I got married I had several very large and complex pieces that I worked years on framed. My husband wouldn’t let me hang them in the house for several years because he hated them. I still have a multitude of projects that I have finished and thrown into a bag that is slowly getting larger and larger over the years.

I have always felt like I was a weird, socially aberrant person because I have had a fascination with filling in little boxes with color and making a pattern out of them. I hide my carefully organized and structured projects in metal lunch boxes and pray that no one asks me what is inside.

So what does this have to do with anything?

Over the weekend I attended CocoaConf Columbus. Our first keynote speaker was Mark Dalrymple. During his excellent keynote, he talked about people embracing their hobbies. One of the hobbies he threw out was cross stitching. This threw me for a loop. Cross stitching has fallen out of favor over the last ten years. Also, this was a tech conference! People don’t talk about sewing at a tech conference!

I have painfully learned over the years that tech people are not supposed to cross stitch. Back when I was less experienced, I would go to interviews and be asked what I did for hobbies. I would say I cross stitch and there would be an immediate reaction on the face of the interviewer. I could tell that they mentally determined that I was not a tech savvy person.

There is this stereotype that women who cross stitch (and it is mostly women) are usually stay at home mothers or elementary school teachers. I am a British history buff and one very painful memory I have was reading about an attempted coup of Mary, Queen of Scots. Mary was an accomplished needleworker. When she was locked up in the tower, one of her captors sneered at her that she would have plenty of time for her needlepoint now. Society see needlework as something inherently tainted. People who enjoy doing needlework can’t possibly be fit to do anything important like run a country. Leave that to the other people who are more able to take on that responsibility.

You don’t see a lot of tech people talking about their cross stitching projects. Hell, knitting is much more socially acceptable than cross stitch! That might be because a lot of men do it, but that is a topic for another time.

Dragon project requiring over 50 threads, including metallics and beads.

Dragon project requiring over 50 threads, including metallics and beads.

Cross stitching is a far more concentration heavy task than knitting is. Cross stitching, specifically counted cross stitch, requires a tremendous amount of organizational skills. I regularly complete projects that include fifty different shades of thread and can include over a hundred symbols that contain some combination of those colors. You learn very quickly to get organized or you give up. Over the years I have learned to organize my thread to prevent it from tangling or becoming confused.

Counted cross stitch also requires you to look at a symbol on a grid, translate that symbol into a color, and render it onto a fixed rectangular surface of squares. Does this sound at all familiar? It is very similar to the process that takes place on the computer to render an image, except instead of bits I am using thread. I have been a human fragment shader for 25 years.

Do it yourself Doctor Who lunch box sewing kit! *Not guaranteed to be bigger on the inside.

Do it yourself Doctor Who lunch box sewing kit! *Not guaranteed to be bigger on the inside.

Every skill that makes me a good programmer is a skill I learned from counted cross stitch. I learned to be patient while working on a very large project that takes several years. To give an idea of scale, the dragon picture in this post is a project that I draped over my 15-inch Mac Book Pro and the edges spill over the sides by several inches. I learned how to mentally break down the project into manageable parts so that I did not get overwhelmed and confused. I learned how to organize my space and my tools to optimize my time. I learned to “debug” my designs because no matter how hard you concentrate, you will make mistakes. If you just keep following the pattern like a robot, your design won’t render properly.

This weekend was the first time I brought a counted cross stitch project to a conference and worked on it while listening to a session. I find that I can focus far better while cross stitching than I can while I have a computer in front of me because I get so focused on the screen that I tune out what is being said. I have been told it is rude to cross stitch in class or at conferences even though it is not considered rude to chat on Twitter.

I want to thank Mark D. for giving me the courage to write this post. I am tired of feeling ashamed of a hobby that has been a large part of my life for 25 years that has given me all the tools I need to continue to do what I want to do. I hope that one day people won’t be judged on their hobbies or how they decide to spend their free time, because often those are the things that shape us into the people we are.

Final Countdown to CocoaConf Columbus 2014

After months of prep work and a roller coaster of changes, I am in the final day before heading off to the first of my three August conferences.

I have encountered more issues with Metal than I was hoping to find. This is the first time I have had a paid developer account during the beta period. Prior to now I was so busy just trying to establish a foundation that I somewhat ignored the new stuff that was coming out. This is the first time I have participated in the early release of not one but two new groundbreaking technologies on the ground floor.

I had to move more of my GPU programming talk over to OpenGL ES than I was planning to. I don’t think that is a bad thing per se. The most important thing I wanted to do was to answer a very specific question about one aspect of OpenGL programming. The fact that Apple came and changed everything about that made my talk both easier and harder. A lot of time was spend explaining why Metal is necessary and that fit into the parameters I wanted to address.

I will be giving this talk again in December. There will be a golden master of Xcode 6 at that point in time. I hope that it will be stable enough at that point that I can speak more about how to do things in Metal specifically rather than just ambiguously saying “This is how this would work if it were working, but it isn’t.”

I am giving my talks later today at Bendyworks. Bendy has been very kind to let me come and practice my talks there. I have found the feedback I get from them to be invaluable. I have also found that I am far less nervous once I have performed the talk at least once in front of real people and not just my pugs.

Speaking of my pugs, I am not going to see them for a week and I am very sad about that. I am going to miss my little buddies. Such is life.

I still have not packed. I need to pack sometime today. I also have to go to our Swift user group meeting to make arrangements with the people I am carpooling to Ohio with.

So I have a half dozen tasks to do today. Just need to take them one at a time to avoid feeling overwhelmed.

This is really stupid, but I keep forgetting that I do these talks because I love traveling to the conference and meeting new people. It’s hard to remember that this is going to be an amazing and awesome experience because I am putting a lot of pressure on myself to do a good job with my talks. I need to make sure I take some time to chill out and not worry so much about what I am doing.

Don’t panic.

Looking forward to seeing all my peeps at CocoaConf Columbus and That Conference in Wisconsin Dells!!

Code of Conduct

So today there has been some controversy on Twitter about 360|iDev’s Code of Conduct.

I honestly do not understand what the controversy is here. They are clearly stating that they want a diverse conference where everyone will be respected.

Here is my perspective on things.

I am a female programmer. I got into programming later in life. I originally studied video and audio production. I was young and foolish and thought I could succeed purely through sheer force of will. I would say I was about 30 when I really began to learn enough programming to make a go of it. At the last job I had I was not only the only woman, I was also the oldest person by a decade. I also have some health issues that make it impossible to work more than 40 hours a week.

Between being a woman, being older, not having a dozen years of experience, and having health issues, I feel very vulnerable in a community that fetishized boys barely old enough to drink who have been coding for fun since they were ten.

I have been extraordinarily privileged to be given the opportunity to speak at conferences on something that isn’t feminism. 360|iDev will be the fifth conference I have spoken at this year. I am speaking about Apple’s new 3D graphics programming framework.

People like Jim Remsik, Dave Klein, and John Wilker are all throwing me a lifeline to give me the chance to establish myself as a professional and maybe have a career.

I worry sometimes that I only get these opportunities because of “male guilt”. I am very concerned with being seen as someone who only gets to speak because they want more women. I have worked tirelessly to try to prove my cred by tackling difficult programming topics that frighten most people away. I am worried sick about not having a great talk to present at 360|iDev because my reach exceeds my grasp.

Even if I make an idiot of myself, at least I was given the chance. That’s all I ask for. I am being given a time and a place and what I do with it is up to me. A lot of people won’t even do that and I am eternally grateful for being given the chance to do what I can and make what I can of it. I am also grateful for the chance to meet the other people who are speaking and attending. In a world where connections are everything, the connections I have made at my conferences have been absolutely invaluable.

I have absolutely no idea what in the Code of Conduct created this fuss. I do know that I submitted a talk to a conference I could not afford to attend and that the organizers are not only giving me a chance to speak about a topic that is near and dear to my heart, they are also financially making it possible for me to go.

Talk is cheap. If you care so much about getting more women in technology, hire more women. Be willing to train them when they don’t have 5-10 years of experience. Mentor someone. Do something that actually costs you time or money. 360|iDev did. Don’t just go on Twitter and be a douche.

Lay Down Your Burdens

Today I invested way too much of my time contemplating my future. These thoughts were primarily based on these pieces by Ed Finkler and Matt Gemmell. Both of these articulate men spoke about feeling burned out.

Ed has at least 15 years of web developer experience and Matt recently left software development to become a full time writer.

Here is my story.

I began programming in earnest in March of 2012. I began going to school for programming in 2010, but I was working at the time and I didn’t have the time or energy to really immerse myself in programming. By March 2012 I had unofficially dropped out of school and had walked away from programming feeling defeated.

I began a new job. The second week I was there our team lead walked in, closed all the doors, and told all of us under no circumstances were we to tell anyone in the company that we had no work to do and that we were to pretend to be busy.

Along with looking for another job, I also started working through the tutorials on Code Academy. It looked kind of like work and it was something to occupy my time. Ever tried doing nothing 40 hours a week? It’s living torture. Doing those tutorials kept me from having a complete nervous breakdown.

Miraculously, I discovered that if I spent 40 hours a week coding, I actually was able to learn it. Before I embarked on this experiment I had to look up how to write a “for” loop. I got to a point where I could just code. I didn’t feel stupid, I could do things and make stuff work. I felt amazing.

I was eventually fired from my job, but I actually finally understood what I needed to do in order to be a programmer. I needed to code. A lot.

I went back to school and I was on unemployment. It was going to take a year and a half to finish my programming degree, so I set out to code a lot. I gave up everything I used to love doing to learn programming. I would wake up at 7:00 in the morning and code 10-12 hours a day. I would code tutorials over and over again until I understood them.

I assumed this was temporary. I figured I would learn enough to find a job and that eventually I would be able to get some of my life back. I would be able to read fiction books. I would be able to cross stitch. I could learn to make candy. I would be able to take a weekend off. Hell, I would be able to go on a vacation!!

Welcome to my life,  Jared.

Welcome to my life, Jared.

None of this has happened yet.

I have never been able to get back to the feeling I had when I initially mastered the fundamentals of programming. There has always been another obstacle to overcome. I learned object orientation. I learned to build user interfaces. I learned design patterns. I’m learning a whole new fucking language.

The only thing that gets me through all of this is the idea that somehow, some day I will gain a critical mass of knowledge where I will be able to take a break. I am not talking about never learning another new thing ever again, I am talking about being able to go on a cruise for a week without bringing my computer and having a panic attack because I am wasting time I could be spending reading programming books. I am talking about being able to think about possibly having kids without thinking that it would completely and utterly derail my career. I am talking about being able to write and produce an application without having to immediately go back and redo it because everything changed a week after I finished it.

I regularly work myself to exhaustion. I will be laying in bed completely incapacitated feeling guilty that I am not working. I give myself migraines where I have to have my Kindle pried from my hands because I feel like I should be reading a programming book when I am about to throw up from the pain and I should be asleep.

I don’t want to be Sisyphus. I don’t want to get so close to getting that boulder up to the top of the hill only to watch it fall back down to the bottom. It is fucking demoralizing to see everything you know crumble to dust before your eyes and having to start over.

The Modern Programmer

The Modern Programmer

There is a chapter in one of Anthony Bourdain’s books talking about how when you go to a celebrity chef’s restaurant, like Wolfgang Puck’s, your food isn’t being prepared by Wolfgang Puck, it’s usually being prepared by a guy named Jesus or Jorge. He says being a chef is grueling and you don’t have guys chained to their kitchens into their sixties. He pleads that these guys put decades of their lives into their craft, don’t they deserve a break? Why should programmers be any different?

Everyone has a certain number of times they can watch their life’s work go up in smoke before they say fuck it, I give up. I am not there yet, but I can seriously see a time ten, fifteen years from now when I am there. I don’t think it is healthy for us to just accept that everyone is going to either get career burnout or career obsolescence. There has to be a healthy, sustainable way for everyone to be able to adapt to change at a pace that is reasonable. It isn’t right to treat people like resources to be used and discarded when they can’t take it anymore or want to have some semblance of a normal life. This isn’t too much to ask.

Thoughts on Being an Indie Developer

Back at the beginning of 2014 I thought everything was finally coming together. I got my first programming job and I had my first tech conference talk lined up. Everything was going great. 2014 was going to be my year.

A month into 2014 I lost my job. It wasn’t a great fit and I wish everyone the best. However, it put me in this uncomfortable position of revamping my conference speaker bio. I felt kind of like I broke up with my boyfriend a week before Valentine’s Day. I had no idea what to say. I didn’t want to just go, “Hey, I am unemployed! Huzzah!”

My answer came in an email from our CocoaHeads organizer. He was announcing what people in our group were presenting conference talks and he listed my job as: “Independent”.

Yes! Independent is perfect. I don’t have to go through the humiliation of having to put in my bio that I am unemployed or tap dancing around the fact that I don’t have a job listed. I have a job. I am an independent developer.

After I got done with my talks I started a remote contract job that lasted two and a half months. Immediately after that I started a project that I am currently still working on that will take another few months.

Life is pretty sweet. I work out of my house, so I can wear comfortable clothes. I don’t have to leave my pugs. I don’t have to drive anywhere. If I want to leave in the middle of the day to work out of a tea house, no one cares.

I would love to do this for the rest of my career. I get to do things that interest me and I can change what that is every couple of months without my resume looking like swiss cheese. I keep waiting for a nice block of time where I don’t have any obligations to anyone to work on my own stuff.

However, I am coming to a slightly uncomfortable reality.

everyone-is-a-democrat-until-they-get-a-little-bit-of-money.jpgI have noticed over the last month or so that an awful lot of formerly independent developers are now being hired by large companies.

I am wondering if my wanting to work for myself out of my house is me still clinging to a fig leaf that I am not an unemployed developer but that I am doing this out of my own free will. I am worried that I am going to be the guy in the group who dates women half his age long after it stops being socially acceptable and it just becomes sad.

I don’t even know if what I want to do is feasible. Other developers that I have spoken to have seen contract work dry up because iOS has become a mature enough platform that companies are creating in house developer teams rather than hiring contractors to do piecemeal work. Additionally, it is conventional wisdom that the market for paid apps has also mostly dried up.

I don’t really want to start a company and be in charge of people because I noticed people don’t really listen to what I have to say. I also don’t want to jeopardize a bunch of other people’s futures on the chance I might not be wrong about something. I am okay with gambling my own future, but I don’t want to be responsible for anyone else’s.

I am an arrogant person who looks at Steve Jobs and uses the fact that he succeeded as proof that following your gut can pay off even though there are thousands of people out there who have done that and failed. I like to think that there is more than one way to do something and just because 90% of the world does their job the same way doesn’t mean I have to. There is a 10% out there that does things differently, and isn’t that the spirit behind people who identify themselves as Apple users?

I know if I am smart I will find a nice, stable company to work for that hopefully will let me work remotely and pay me a nice wage. One day it will happen. But not yet. I have apps to make.

Why I am Not at WWDC

Seeing a lot of the normal “Why are there no women at WWDC??” posts that tend to come out this time of year. I want to offer my very limited perspective on why I am not at WWDC.

I did not enter to win the WWDC Golden Ticket lottery because I could not afford to go. It isn’t just the cost of the ticket. It is also the flight and the cost of the hotel. I estimate going to WWDC costs about five grand.

Five grand is a lot of money. That is a Mac Pro or a vacation to Europe.

There are a lot of people who go out there who do not have WWDC tickets who still paid between three and five grand to just be out there and talk to their peers.

My understanding is that a lot of people who go to WWDC work for companies that pay those expenses.

I don’t work for a company. I used to, but that company did not really value sending people to conferences, so I doubt they would have paid to send me even if I were still there.

I took two years off to go back to school to learn programming. I am now in the rocky process of trying to establish myself as a professional.

I have some health issues that prevent me from being able to work all those crazy hours that are expected of you if you work at the kinds of innovative start-ups that want to do cutting edge iOS technology or have enough money to send people to go play with the new toys.

Replace health issues with family issues and you will see the problem a large number of women have trying to get to something like WWDC. Even if you can afford to send yourself, you are still leaving your children/family for a week to go run yourself ragged.

For better or worse, women are still the primary caregivers of children. My conference excursions are becoming longer and farther away and it is causing an issue between my husband and I. He doesn’t think it is fair that I am going off on these trips without him and expecting him to subsidize the costs associated with them. Even though I am a speaker and many of the costs get taken care of, there are always some costs that we wind up paying.

There are two easy things that Apple could do to get more women at WWDC:

  • Set aside 100-200 tickets for women in technology. Either set it up as a lottery or have women apply using an essay or something. Try to pick people who are doing interesting things and not just the token woman board member at Zynga.
  • Do something to help ameliorate the cost. Waive the cost of the ticket. Set up a roommate system so that if you want to spilt the cost of a room with another woman you can do that to save money. Each time I have gone to CocoaConf Chicago I have ridden down and roomed with a woman I met when I picked them up to go to Chicago and both woman became very good friends.

I will probably never work for Apple. I can’t afford to move out there and I can’t work the number of hours expected of an Apple engineer. I probably won’t ever get to go to WWDC. I think it is disappointing because I would love to go to all of the OpenGL and Core Audio labs and sessions that I hear are a ghost town because no one cares about them. I am working within the constraints that I am given and doing the best I can.

Apple could make bringing women to WWDC a priority. They think bringing students to WWDC is a priority and the set aside 150 tickets for students. If they wanted more women there, they would do that for them too.

But then again, they would also set aside tickets for a lot of the prominent iOS companies that got shut out of the WWDC lottery. They probably had 100,000 people enter into a lottery for 5,000 tickets. They could double or triple the cost of a ticket and still sell out every year. They had nearly 400,000 people download their Swift programming guide within a day of it being announced/released.

Apple is going to do fine without people like me. I can throw a hissy fit about them not including me, or I can just accept the fact that I am in the same boat as a lot of other people and do the best I can with what I have.

I am not going to have the same career as everyone else. That doesn’t make what I do any less relevant than working at Facebook or trying to create a social photo sharing start-up. I don’t think I have to measure myself based on what other people use for measures of success.

To quote a famous philosopher:

“Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. But the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.”

Just because I am not at WWDC does not mean I don’t exist or that I am not a developer. We’re out there. It might take a while, but you will see more of us. I am not quitting.

AVFoundation Audio at CocoaConf Chicago 2014

Overview

Two weeks after I had my first tech talk I had my second tech talk. This second tech talk was at CocoaConf in Chicago.

My Door

My name isn’t in lights, but it’s still pretty awesome!

In some ways, this talk had higher stakes than my first talk did. CocoaConf is a more hard skills conference. CocoaConf is invitation only. Most of the people who speak at CocoaConf are well known developers in the Cocoa community. My talk was only going to be in front of 20-30 people, but those people were going to be very well known people. Additionally, CocoaConf is very reputable about having well developed talks.

This was a very important opportunity I was being given. It was very important to me that I not embarrass myself or let down the people who were giving me this chance.

Considerations

I was trying to figure out how in-depth to make my talk. From speaking with other people, I was under the impression that most people think that doing audio programming is hard. Part of what I wanted to convey with my talk was that audio programming doesn’t have to be hard, but then since audio programming is easy, then why am I doing a whole talk about it?

Janie Talking

Picture of me delivering my talk in Chicago

I decided to err on the side of just showing what could be done easily. I spoke to a few people about how hard people expect what I talk about to be and I was told that no one was expecting WWDC-level complexity.

Also, I hoped that by focusing on audio session-based demos that it would have a nice, cohesive block of information that I could cover in an hour without glossing over anything or running out of time.

I tried to think about what the fundamental things were that people would want audio for. I know that I personally would like to build a synthesizer, but that it would take years to learn and what I am interested in is highly specialized.

Most of what people use audio for is just recording and playing back. These are things you can do with a few lines of code that used to take hundreds of lines of code. I made a determination to focus on things people could implement easily and achieve quickly.

Preparation

I knew based on what happened with my first tech talk that I really needed to make sure I practice my talk in front of an audience. After I finished that talk I approached Brad from Bendyworks about performing my talk at their workplace so that I could get an idea of how much material I have versus how much I need.

I got to perform my talk three days before I got to do it for real. I had a rough draft of my slides and working demos.

I am posing with the door that has my name on it :)

I am posing with the door that has my name on it 🙂

Everyone I talked to said to not include too much information on my slides. I did that in my first tech talk and that went badly. I was so nervous that I forgot to talk about things that weren’t on my slides. I know it isn’t super dynamic to have a lot of slides, but I wanted to make sure that I was providing the information I needed to.

One thing I figured out by practicing my talk was that if I just brought up a demo and tried to find the code I wanted to talk about I tended to stumble over it and not be able to find it while people were watching me. One change I made was to take screen shots of the code I wanted to talk about and include it as a slide rather than try to find what I wanted to talk about in the code base.

When I didn’t include code in my slides my talk was only half as long as I needed it to be.

I included a quiz in the talk because I wanted people to be engaged in my talk. One thing I added was to have multiple choice answers for the quiz because people tended to not remember the choices. Hell, I wrote the talk and I couldn’t even remember all of them off the top of my head!!

Having gotten an idea about what wasn’t quite working properly and how to pad out the talk somewhat I was ready to proceed to the main event!

CocoaConf Chicago

I had the great privilege to be in the first group of speakers after the keynote. I was planning to spend five minutes before my talk with my headphones on listening to music to get myself psyched and focused. That didn’t happen. I forgot that the Kleins ask you to pitch your talk to people in the morning, so I had to go up and do my spiel about why people should come to my talk.

Kyubey posing with my special pink CocoaConf mug

Kyubey posing with my special pink CocoaConf mug

Then everyone dispersed and immediately went to the rooms for the talks.

I had 10-15 minutes before my talk where everyone was waiting around in my room. I didn’t really want to start my talk early because I didn’t have enough material for that and there was a possibility that someone might come in at the time the talk was actually supposed to begin.

We had a few hiccups with my set-up. I didn’t think I needed a microphone or speakers, but Chris Adamson very wisely advised me to have some and since we had a bunch of time before the talk was supposed to begin we had plenty of time getting those things taken care of.

Still, after all of this set-up there was a substantial amount of time where there was waiting. I threw on my psyched music and I got to have five minutes of meditation before I had to perform.

One thing that I did for me was I had a stuffed Kyubey doll that I used as a prop in my talk. Kyubey is a character from Madoka Magica that makes contracts with girls giving them a wish in exchange for them battling evil.

I know he isn’t real, but having a “safety net” there where I could pretend that if things went really badly I could just make a wish to get another bite at the apple really helped me to not panic. I know that only one person in the audience understood the joke/reference. I hoped that if I didn’t spend too much time on it that if it didn’t go over well then it wouldn’t derail the whole talk.

Another thing that I did was I brought a bunch of candy with me. I didn’t want to just stand up there and talk to myself for an hour, so I brought candy to bribe people to engage me in conversation so that they weren’t just spending the whole talk checking their email and doing things on Twitter.

Yes, I have been told that I talk with my hands. A lot. Also that I should have pulled back my hair.

Yes, I have been told that I talk with my hands. A lot. Also that I should have pulled back my hair.

Overall, I think it went okay. I did have a few periods of my talk where I got really nervous. One thing that happens when I start having a panic attack is that I develop a speech impediment. This happened twice during my talk. I felt it coming on and I was able to shake it off before it got too bad.

I know that after I do more of these they will get better. Considering my level of expertise and comfort with doing something like this it could have been much worse. I know if I do more of these my delivery will get better.

Aftermath

So, I spent several weeks focusing on this talk. I was not employed at the time I was preparing for this talk so this was the only thing I had to focus on.

I was really happy that I got to go first. I could get the talk out of the way and enjoy the rest of the conference. Another aspect about going first that I didn’t take into consideration was how energetic people would be at the beginning of the conference. I noticed that with some of the later talks the next day people were tired and a little burned out. This was something I observed when doing my first talk. I didn’t think about what a gift it was to get people who were bright eyed and alert over people who were looking forward to going home to crash.

One thing I didn’t take into consideration was how keyed up I was about doing the talk. After I got done with the talk I crashed a little. I was sitting in another talk when I realized that I was done. It was over. This thing I had been waiting for a month to do and preparing for was over and I had nothing else I was looking forward to after it was done. That was a little sad.

My slides are here and my demo projects are here.

Comments

While sitting down to write this blog post I finally bit the bullet and read my comment cards.

I was expecting a lot of what I saw. People said I seemed nervous. I did some silly things in my talk. People said they wish I had not relied so much on my slides.

The one that I saw that really disappointed me was that many people complained that I didn’t tackle a hard enough topic. One person said they wished I had tagged this as a beginner talk and that they were expecting me to go more in depth with what you can do with audio programming rather than just the easy stuff.

I needed to make a decision about how hard to make the talk. I erred on the side of talking about something easier rather than harder because I didn’t want to frighten people away from audio programming. That might have been a mistake. I know it was something I struggled with and hoped I made the right choice on. I don’t know if the choice I made was right or wrong, but having more than one person explicitly say that it was the wrong choice makes me feel bad.

One thing people did not comment on that I expected to have commented on was my use of Kyubey. I didn’t utilize him as best I could. If I had been smarter or less stubborn I would have cut him from my talk. I included him just for me so that I would feel comfortable and that isn’t really a good thing to do.

In the future if I am going to include a prop I am going to include a prop that is a reference more than two people in the audience will understand.

Conclusion

Having the chance to talk at CocoaConf was one of the most amazing opportunities I have had. I am grateful to the Klein family for giving me the chance to speak. I hope that I did a good enough job that they would be open to me speaking there again.

I know if I want to be a better speaker I need to do it a lot more. I have been pitching a few talks to different conferences later in the year. I hope to have opportunities to learn and grow as a speaker.

One of my goals as a developer is to be able to share my knowledge with other people. I would like to write books and do talks. Being able to give back to this community is very important to me and I hope that I will be able to continue to contribute in the future.

Tech Talks Prep

I have been very fortunate to have two tech talks accepted for the beginning of this year: Snow*Mobile 2014 and CocoaConf Chicago.

Snow*Mobile was the first programming conference I ever attended. I was able to attend by being a student volunteer. My job was to hand out the name badges to the attendees. Having that job made a huge difference to me because I got to meet everyone who came and since I was working with the conference I had some built-in recognition from the conference goers.

The talk I am doing for Snow*Mobile is about sound design and user experience in mobile applications. The talk I am doing for CocoaConf is on AV Foundation audio.

If someone told me that I would be speaking at the next Snow*Mobile after I attended the first one I would have laughed at them. I didn’t think it was possible that I would be able to be a conference speaker at this point in my career.

I know that I am being given this opportunity by the Remsiks and the Kleins. At CocoaConf especially they tend to only invite experts and people who have written books.

I am putting a great deal of pressure on myself to not let down people who are giving me opportunities.

Snow*Mobile is a month from now and CocoaConf is two weeks after that.

I am juggling a lot of things right now. I have been at my job for a month and I love my job. However, due to the nature of the beast, I do not have a lot of free time or mental energy to take on new tasks.

I decided to dedicate this whole weekend to getting some portion of these talks done. I do not intent to leave them until the last minute. I want to give myself some time where I can change course if something I am doing is not working.

So far this weekend I have completely rethought both of my talks. I realized that the UX talk was misguided because I was thinking of it from the perspective of film. I realized all of my examples were from things that are vastly different than what I as a user am looking for in an app.

I feel better about this talk now that I have a better grasp on what I would like to say that would be useful to people attending the conference.

I had a similar revelation with my CocoaConf talk. I started getting overwhelmed by the amount of information I felt I needed to present. While I was doing research I found a focal point for my talk. I know that I can speak reasonably about the amount of information I am going to present and I will be able to give a solid, yet entertaining talk on my topic.

I am also lucky in that I have access to people who know more than I do who are willing to help me and answer my questions.

I think at this point I have maxed out the number of things I can effectively manage without dropping anything. I am gambling somewhat because I am counting on nothing disastrous happening to me in the next month and a half. This is one reason I am trying to knock these things out now on the off chance that something unforeseen happens.