I have always been a low-risk person. I tend to take small steps where even if I fail, I don't have too far to fall. I've been happy with the outcome (for the most part). Right now, I'm looking at a high-risk decision, and I'm not sure if I can take that step.
Where I am in My Career
If I look at where I am in my career (independent consultant and international speaker), it's a vastly different from where I was even 7 years ago (corporate developer in a cubicle). And since I am a low-risk person, if you had told me that I was going to be independent, I would have said, "There's no way that will ever happen." I would have sworn that I always needed the security of a regular paycheck (even if the security is ultimately an illusion).
Career Goal #1: Becoming a Professional Developer
I've been a hobby programmer for many years (really going back to when I was 10 years old), but I didn't think about it as a career until much later. I graduated from college with a B.A. in English. I had a lot of temporary jobs, but the first one I really stuck with was when I worked in reservations for the Disneyland Hotel.
This is when I first started thinking about how to get into development. I thought about signing up for night classes at a tech school, but there was something that didn't feel right about it. So instead, I concentrated on looking for a more technical job.
I found it in the communications area the Disneyland Resort. My first project (and why I was hired) was to move data from a DOS-based CMS to a hyper-media system. This was a good job, but it was really a pretty small step: I was moving from one hourly role to another hourly role.
As time went on, I was offered a salaried position in the same department (although I was still classified as "clerical" staff). This was another small step with a low risk of failure, and the cost of a failure would also be pretty low.
At that same position, I was put onto a multi-year project with the development team. My co-worker and I were on the user side of the project, working with the various business areas and figuring out the needs of everyone, and then we worked with the development team on what exactly could be done with the resources that we had available.
The development manager saw something in me (I'm not exactly sure what it was), but about a year into the project, she offered me a junior developer position on her team.
And that's how I became a professional developer through a series of small, low-risk steps. I might have failed anywhere along the way, but none of the steps would be much of a set back. But it also took me 6 years to get to that point.
The good news is that the team was awesome. I worked with very good senior developers who were willing to share and wanted the team to move forward. That's how I was able to grow and become the developer I am today.
I worked as a developer for the Disneyland Resort for 11 years. It was time for me to move on to something else, so I took a job at a startup.
You're probably thinking that going to a startup was the exact opposite of low-risk. But it really wasn't. In this case, the startup was about 4 years along (so it wasn't brand new). In addition, I knew the CEO (he's someone I used to work with), and on top of that, one of my former co-workers had gone to work there.
So this was another small step, and I got to work with some amazing people while I was there.
Probably the biggest step I took along my developer journey was when I decided to leave the startup (this was when it was acquired by a larger company after I'd been there about a year and a half). Because of my current situation, I left that position without having another job.
This sounds like a *huge* risk. But it really wasn't. I was well paid at the startup, so I had about 6 months of living expenses readily available. The job market was also good for senior developers, so I knew I wouldn't have trouble finding a new job.
After leaving the startup, I looked for jobs where I could include my love of speaking (see Career Goal #2 below). I explored a few different options including working for a boutique consulting company and working as a developer evangelist. I spent a bit of time interviewing with different companies, but these didn't lead to anything. Fortunately most of the interviews ended with an agreement that it wasn't the right position for me, so I didn't have any huge disappointments. Also, going through this process helped guide me away from a direction that wasn't going to be productive for me.
From here I started pursuing other things (see Career Goal #3 below). Some of those things didn't work out. But because of my situation, I was able to pick up a 6-month contract with no problem. That re-filled my bank account enough for me to be comfortable, and I was able to move on to other things.
All-in-all, this was an 18 year process (crap, I feel old now). But it was a series of small steps that got me to where I am today.
Career Goal #2: Speaking at a Professional Conference
While I was working my corporate developer job, I had the chance to attend professional conferences. I've always been a bit of a teacher by nature, so I had a dream (more of a fantasy, really) in the back of my mind that I would like to speak at a conference one day.
What held me back is that I didn't think that I had anything of interest to share.
There were some interesting techniques that I had found useful as a developer, and I would share them with other people on my team. Eventually, this led to me sharing things in meetings with the entire team. This was my first foray into speaking. But I still didn't think I had anything to offer the world at large.
One day I was listening to an episode of .NET Rocks, and they were talking about how there needed to be more people talking about beginning and intermediate level topics. (I've written about this several times before). I signed up for a local code camp and did my first presentation in front of strangers. The risk was low since it was really just a handful of people who I didn't know. Failure would not be a huge deal. This was a free event to attend, so it's not like anyone was going to ask for their money back if I failed.
This was January 2010.
My presentations went well, and I was hooked. I really loved helping other developers, and I really loved watching people learn.
Signing up for code camps is easy and low-risk. I could sign up for the So Cal Code Camps (which had 3 a year at the time) and the Desert Code Camp in Phoenix, and there was no fear of rejection (since they didn't reject anyone).
The next small step was reaching out to user group leaders and asking if I could speak at their events. Here's the first awkward situation that I remember: a user group leader from the next county over was speaking at the group that I normally attended. During the break, I asked him if I could come speak at his group. I really felt like I was pushing myself on him, and he didn't seem very excited to put me on the schedule. But he put me on the schedule anyway (for 6 months out). 3 months later, I was at the Desert Code Camp in Phoenix, and he was also there. He had seen me speak that day and asked if I was interested in coming out to speak at his group. I sheepisly mentioned that I was already on his schedule.
As I spoke at more places and met more group leaders, it was easier for me to ask them if I could come out and speak at their groups.
After speaking many times, the dream of speaking at a professional conference didn't seem quite as out of reach as it did originally. The next small step that I took at to start traveling away from home a bit.
Up until this point, I had been speaking at free events: user groups and code camps. The next step for me was to speak at an event that people had to pay to attend. I submitted and got accepted to Nebraska.Code() last year. This is a regional conference that had around 500 people that year.
It was a risk because I had to spend quite a bit of money on travel (previously I had driven everywhere). And there was also a risk that I wouldn't do a good enough job. But I wasn't too worried about this because I had been speaking for 5 years, so I was more or less comfortable with the process.
This was March 2015. 5 years into my speaking adventure.
From here I submitted to more and more regional conferences. Some of them accepted my talks, some of them rejected my talks. This was my first experience with rejection. It was hard, but I'm more used to it now (I don't think rejection ever gets easy).
The next step wasn't planned. Among the people that had seen me speak, I would get requests to come speak for their company. This was another risk. Now people were actually paying me to come speak for them. But at the same time, it seemed like a pretty small risk. If I really blew it, they wouldn't pay me. But that was about it. (And this ties in to Career Goal #3 below.)
I really wanted to get my foot in the door for a professional conference. I knew this was harder because people were paying literally thousands of dollars to attend, so the organizers can't take any chances with the speakers. I had tried submitting to several conferences, but I was rejected each time.
I was fortunate enough to have someone recommend me, and I had the chance to speak at Visual Studio Live! in November last year.
This was probably the most nervous that I had ever been as a speaker. Up until then, I wasn't too afraid of the consequences of doing a bad job. But this was my shot at the "big time". If I blew this, then it could impact my ability to speak at other conferences at that level.
I did a lot of practice, and test-drove my presentations to user groups for 6 months leading up to it. That work paid off, my presentations went well, and I've had a chance to speak at that event a few more times.
I feel like I turned a corner soon after as I was accepted to speak at NDC London in January this year. It was a big step to travel internationally, but I felt like it was a small step from where I was. After I was there, I was a bit worried that my content really wouldn't fit based on the other talks I went to, but I had a good turnout and very good response.
In addition to London, I also got a chance to speak at NDC Oslo. I'll be going back to NDC London in January 2017, and it looks like I'll be at another London conference in May 2017.
I feel like I've turned a corner because I've had to decline some conferences because I had already accepted the invitation to speak on those same dates somewhere else. I have become careful about my submissions to make sure that things don't overlap. I still get rejections from events I really want to be at, but the acceptances seem to outweigh those for the most part.
I'm really happy with where I am as a speaker (I've spoken at 31 events so far this year). Ultimately, it took me 6 years to go from speaking at my local code camp to speaking at a professional conference in Norway. I know many people who have taken a much shorter path (and I'm happy for them). But I've gotten to where I am with a series of low-risk decisions.
Career Goal #3: Teaching Developers
Obviously my goal of being a speaker and my goal of teaching developers overlap quite a bit. But no one makes a living by speaking at developer conferences (okay, there are a few people, but it's an extreme minority).
After I left the startup (see Career Goal #2), I really wanted to see if I could get into a job as a developer trainer. I knew a few people who were making a living as trainers, so I tapped into them for advice and see if I could find a company that I would fit into.
One of my friends had done some work for a particular training company and thought that I would be a good fit there. She had actually seen me speak pretty early in my speaking adventure and had told me how impressed she was with my preparation and presentation.
This was a low risk decision for me. I had my 6-month living expenses buffer, so I could afford to take some time with the process. The process took a bit longer than I had hoped (and that's why I ended up taking the 6-month contract job).
Eventually, I got accepted and signed up with the company. And they couldn't get me my first class. Unfortunately, this was at a time when classroom training was in decline due to online offerings.
I invested quite a bit of time in this pursuit that didn't work out. But ultimately, I wasn't out anything other than time. I wasn't in a worse position than I was before.
After the 6-month contract, I decided to try again. As a next step, I signed up to do a course for Pluralsight. This was really a brand-building step. The goal was to get my name in the course catalog alongside well-known people. That would hopefully give me a bit of a credibility boost.
What happened instead was that my course did unexpectedly well. This turned out to be a good financial situation for me, and I was able to do more courses.
Again, this was a fairly low risk situation. If my course didn't do well, then it would be right there alongside many others. And there would no negative impact.
This goal isn't quite completed. I'm working on getting a steady income through in-person teaching engagements, whether workshops, seminars, code reviews, or mentoring. I'd really like to be in a position where I get to help developers, watch them learn, and make an income that feels stable.
Right now, I am stable financially, but I don't expect my current situation to last much longer, so I'm working on building my brand and speaking at lots of events so people can see that I am really good at making complex topics easy to understand.
It's taken me 4 years to get to where I am now, and I expect to continue.
High Risk Opportunity
If you've made it this far, you're probably wondering what the point of this article is. Recently, I've come across a potentially life-changing opportunity. But it is also quite high risk.
This isn't specifically career related (although it will impact my career). And I'm really not sure if I can make an active decision on this. I keep running through the scenarios in my head.
If I do nothing, I end up staying where I am. I'm not particularly content with this part of my life, but I've kind of resigned myself to how things are.
If I take the risk and fail, I end up negatively impacting this part of my life.
If I take the risk and succeed, I may end up in an awesome place, or I may end up finding out that it's not where I really want to be (or I'm not prepared to handle it). And it would not be possible to get back to where I am today.
I've never been the high risk person. My brother is. He's the kind of person who would jump out of an airplane and look for a parachute on the way down. I'm a bit of the opposite.
I have had substantial changes in my life. I've gone from corporate developer to independent consultant. I've gone from speaking at local code camps to speaking at international professional conferences. But these have all been through small steps.
I don't know if I can make the high risk choice. There are no small steps here. And if I make no choice, the opportunity will go away, and life goes on. To make things more interesting, I'm not thinking very clearly since I'm exhausted from conference travel and a bit fuzzy from illness and cold medicine.
[Update Jan 2017: Update: Low Risk vs. High Risk.]
[Update Aug 2017, I took the high risk path: Taking the Risk.]
And yes, this doesn't have anything to do with coding, but in addition to being developers, we are also all human.