Taking The Broccoli
When I was about 8 years old and living in Houston, my family friend Barnet took me to the grocery store. I lost a bet. I don’t remember what the bet was, but I know I lost, because my end of the bargain was that I had to eat broccoli for lunch. I distinctly remember the schadenfreude in Barnet’s laughter as he made me pick out my own stalk of broccoli to eat.
We went home and he steamed the broccoli. I sat down, and chewed on the first forkful for at least 5 minutes. Barnet always tells me that I looked like I was taking medicine, so he loves telling people that I told my mom that, having lost the bet, “I took the broccoli.”
"Mom, I took the broccoli."
It’s probably not the craziest thing in the world to imagine parent-figures taking drastic measures to get a young person to try new foods. People being picky about what they eat isn’t exactly breaking news either. However, this stuck with me for a while.
I gained a reputation amongst my friends regarding the way I ate my burgers in high school and university (plain and dry), and I often was tricked into going to certain restaurants by other friends because they knew I would suggest the same old boring places I’d always suggested if they asked where I wanted to go.
This limited me in more ways than one. However, the most obvious of these was my weight - I weighed 247 pounds two years after I graduated from my undergraduate degree program! One day I got tired of this and started making changes with more exercise, counting calories, etc. I did lose a lot of weight, and I feel healthier now, but that’s not the point of this blog post.
A Leap Of Faith
I reached my goal weight in 2012 (three cheers for losing 80 pounds!), but I still limited myself to only eating certain foods. I could still tell that something was off, because I was an adult by that point and I couldn’t figure out why I kept such a limited diet. Fast forward to 2013 - I moved to Oklahoma City for a contract job, and my friend Danny moved there at the same time as I did. He asked me if we could meet for dinner, and I asked him where. “Let’s go to this Ethiopian restaurant.”
Panic. What was I going to do? Reading the menu ahead of time didn’t help - I had no idea what anything on the menu was to begin with. I was literally sweating alone in my apartment because of plans I had made. Why am I acting like this? Maybe I can just go to dinner and eat nothing. “I’m honestly not that hungry,” I thought I could say.
We sit down. I haven’t seen Danny in a little bit, but he can tell something’s up. He asks me what I’m gonna get, I try to mumble “I’m honestly not that hungry,” so he might misunderstand me and stop asking me.
“Dude, people all over the world eat this stuff - if they enjoy it, why shouldn’t we?”
It’s weird to say that I felt what I can only describe as enlightenment when he said this, but that’s how it felt. I felt stupid after feeling that, but I’ll never forget the way it felt to have such a clear realization after the fact. Since then, I’ve loved trying new foods and I’m not as lean as I was in 2012, but I definitely feel like I eat better.
By this point, you may be wondering, “I come here for the software blogging - what does this have to do with anything?”
Fitting This Into The Software Blog
In 2013, I was almost exclusively a mobile developer. Whenever I applied for jobs, I made it very clear that I wasn’t able to do much else for a company other than Objective-C or some very very loose C++. I did ok, but I always felt judged a little bit for putting up those barriers and limiting myself.
I want to point out that this is just my story - if you’ve found your niche and feel value to the world around you by staying in your niche, then you OWN your niche. You do you, always.
I wanted more. This isn’t a commentary on the field of mobile development, which is rich and carries a ton of new things to learn every day for any platform. However, I think back to when I was developing an app with some friends called Afterparty. This app was all about taking photos and showing people what was going on around you geographically for a brief period of time (and we released it in January 2015, Evan Speigel.)
To accomplish the social aspect of Afterparty, we needed a place to save photos in the cloud so others who had the mobile app could also see them. I was out of my league, and in no position to be putting code together for a server. Thank god for Parse, which gave me an easy way to manage a REST API for Afterparty and write zero server-side code. We shipped the initial release of the app on Parse, and it performed just fine. All I had to do was hope that Parse would always stay afloat.
Hey, if Facebook is buying them, they must be staying up forever!
Oh. Well that sucks.
Trying Other Things
In 2015, when I was working for IDscan, I had a little pet project to enable a potential customer to use our SDK. He needed it to work via a web service.
I remembered reading an article about Node.js and Express by Michael Katz which, ironically, starts with a link to an article I wrote about server-side Swift. I credit his article, which came out in 2014, with being my first exposure to Node.js and Express.
In 2015, I leaned on this article heavily as I stumbled my way through an Express app prototype for this potential customer. I felt in over my head, but I remembered what Danny told me, and simply applied the same logic to the software I was trying to write. “People all over the world try Node.js - if they enjoy it, why shouldn’t I?” I am 100% confident I wouldn’t have even tried to take on the project if he hadn’t said that to me years earlier. The prototype worked and I moved on from the project, and I was so happy I had written something other than code for a mobile phone.
Though my mention of Parse earlier may seem critical, they’ve done an excellent job releasing their API solution as an open source Node.js framework, and it was time to keep Afterparty alive. I didn’t have to change much code, but the functionality I did have to write felt more natural. I actually felt like I could eventually figure out what I was doing, even if I didn’t know at the time.
Here’s the kicker - I wasn’t really supposed to be working on that web service at IDscan. I did it because I wanted to prove to myself that I could step up if I needed to, and that I wasn’t going to be afraid anymore of trying new things. I probably should have devoted my time to other things on the priority list, but I felt an urge to learn Node by diving in and doing it. It seems ridiculous on its face to be afraid to try software, but the walls can close in on you quickly when you are around people who know what they’re doing, and nobody likes feeling totally lost with no way out.
After writing that Express app, I no longer feel afraid to try anything I can get my hands on with work. It’s not always been easy, and there have been times where the fear will creep up again. The fear of being judged by someone else for your attempts at trying something in software is based in reality, and it’s encouraging to see networks like Stack Overflow starting to take measures towards fostering an emotionally safe environment to learn and collaborate. Ash Furrow gave a great talk on this at RWDevCon ‘17.
However, the whole experience taught me a ton about having some success getting an app to work outside the mobile ecosystem I was so used to. I don’t think its fair to say that my career growth has a linear relationship with the experiences I’ve had outside mobile development, but I wonder what would have happened if I forced myself to stay in my niche. This brings me to my last point.
Staying In My Niche
Swift was announced as a programming language in 2014, and I flipped out. I had spent so much time learning Objective-C, and I felt like it was going away as soon as Apple announced an alternative. It took a couple of months, but I finally figured I wasn’t going to get anywhere by only using Objective-C, so over the next two years of employment with IDscan, I started writing Swift during my free time to try and learn it. When you work with a team to develop a cross-platform framework in C++, Swift is rarely, if ever, part of the picture - I had no opportunities at work to grow my knowledge of Swift.
On my own time, I developed three free (and open source) apps, one of which gained some notoriety, but all of which likely feature absolutely terribly written code. I knew I had to try, though. 2012 David wouldn’t have even tried. I am pleased with how my career has grown since then, and I struggle to think of the experiences I would have missed out on if I hadn’t gone to dinner with Danny.
I hope you take the following things away from this:
- You are never just a (insert last project you worked on) developer.
- If you want to try anything new, find someone who’s good at it or does it a lot, ask them how to start, and lean on them.
- Don’t be afraid, because you’ll make tons of mistakes as you learn and get better at whatever you’re trying.
- Mustard and pickles are trash, but Ethiopian Chicken Tagine is actually pretty delicious if you give it a shot.
- A little bit of butter and Parmesan cheese makes broccoli taste pretty good.