When I carry my ukulele around, people ask, "Oh, are you a musician?" Umm... I own a ukulele. I don't really play it that well. I know a few strings. I can strum it a bit. But... I am NOT a musician.
That's how I felt about being a developer in the past 5 years. Yes, I built websites. Yes, I deployed a bunch of tech and probably wrote thousands of lines of code. (More like copy) But was I REALLY a developer? I didn't think so. I knew just enough to get the work done. And I sort of turned my back on development a decade ago when I went $20k into debt to launch a mobile app.
When my job fired our director, I knew I had to switch roles and be a developer. But they didn't need more developers. And worst, my current title as 'Course Developer' was pretty worthless in the real job market.
Oh and then they fired me while I was in the process of moving.
This is roughly 3300 words. It's long. I thought about breaking this into multiple posts but then that's 7 clicks, instead of skimming and scrolling. And I don't expect you to read EVERY SINGLE WORD. Skim, read the sections you want, skip the parts you don't care about.
To help: Here's a table of contents. You're welcome.
Spokane WA isn't exactly known for its tech scene. Even the meetup scene was limited. The most recent tech-ish event was like 4 months ago. While putting boxes on a moving truck, I was let go from my remote job. I had no network in Spokane and I was starting completely fresh. But now, I was way more focused on being a full-time developer.
In Ukulele metaphor - I was sick of playing Twinkle Twinkle Little Star and decided to finally commit to playing Bohemian Rapsody.
I had some things going for me:
1) I'm in a fortunate situation where I was getting benefits and had a pretty decent savings to survive unemployment for AT LEAST a year. I grew up super poor where my mom worked 3 jobs to feed us. I learned from that experience and now, I plan financially. If things got SUPER desperate, I can hustle at a supermarket.
2) Toxic workplaces lead to stress, which has caused me to get health problems to flare up. My prior job had amazing coworkers and great culture, and I wanted to find that again. So I wasn't in a rush to take any tech job.
3) I'm no stranger to networking. (Heck, I wrote a 3 part series on it ) If I wanted to find a job to call home, I knew I had to work hard to build a network, and understand the company culture before Day 1. I've always attended meetups and involved myself in communities, which opened the door to asking them about their jobs.
4) Remember how I never called myself a developer? Because I'm a self-taught PHP nerd for years. I wasn't really committed to developer work and I wrote some really hacky code. I did it because it was a means to an end. But now, with a new perspective, I was ready to take being a developer seriously.
For new devs... Don't use my prior experience as an excuse for why this post won't work for 'new to coding'. I've learned MORE from my Bootcamp than I did with self-studying in the past 5 years! And self-taught PHP forced me to unlearn a lot of bad habits.
1) Connect with real developer/mentors. With the price of admission, I immediately got connected with the instructors and future coders of Spokane. They've walked me through interviews, got me in the door for tech interviews, and become lifelong peers and mentors!
2) Accountability. Nucamp is roughly 4-5 months. Honestly, some weeks were harder than others! But without the support of my peers and instructors, I would have quit. Constantly seeing the finish line also helped me push through, even when I wanted to bash my head in because I didn't understand what this error message meant.
3) It's super affordable vs the alternatives. You can also buy online courses. But it doesn't give you a network, accountability, or learning in a classroom environment with peers. Think of it this way - if you want to get incredibly fit, you can either:
A) buy a cheap $20 gym membership and spend thousands of hours figuring things out yourself.
Or B) hire a $100 trainer who already walks the walk and can shortcut the entire learning curve.
1) A flipped classroom model: If you’re not familiar with that concept, click here. Overall, it’s a more efficient use of resources. Most of my college tuition went to pay for new buildings and football fields, and then demand that I have to pay to print my homework. Knowing my money is going to people who are actively working to improve the program is satisfying.
2)The Slack community: There are lots of questions. But there are LOTS of really smart people jumping in to answer. Every day is there someone new sharing a cool resource or blog. Additionally, the instructors nationwide are helping and answering questions. It's amazing.
3) Finally – flexibility: Some of the more expensive boot camps have you sleep and eat in a city hundreds of miles away from home. I’m in my early 30s. That’s not feasible.
Nucamp is broken into a few courses for their full-stack program. Each one takes a month long.
This is my complete unfiltered opinion of each one.
My instructor was Danielle. I already had a lot of experience with Bootstrap. She filled in the blanks for post-processing (gulp/grunt), some cool Visual Code tricks, and introduced me to the companies of Spokane. Later on, Danielle also brain dumped a lot of things to expect working as a developer in Spokane. She was the start of an amazing Bootcamp.
My instructor Brent just went above and beyond. He helped me get interviews with college IT programs and even spent some time outside of Nucamp to coach me. In regards to the class, I was having a LOT of trouble understanding React, because React Classes ARE STUPID. There - I said it. React 16.8 introduced hooks, which makes a whole lot more sense. For boot campers or newbies to React, React classes are good to know. Once you get the hang of React, move towards Wes Bos/Level Up Tuts/Youtube to improve your React, and explore React-based frameworks like Gatsby and NextJS to dig deeper in the React ecosystem.
My instructor was Evan, who can describe super-complex tech elements in simple terms. He was also the first developer I ever met in Spokane! In regards to the content, I thought I would LOVE React Native, having done mobile development way back then.
Here are some of the problems:
- It took a while to set up. Week 1 was just getting Android Studio to work. Some of us couldn't because of port permissions and figured out work-arounds with Expo. So that was a wasted week 1.
- While the other courses had instant feedback, React Native took minutes to build. Imagine spending 40% of the time waiting for code to compile - just brutal. Heck, my super-basic Worm App took 15 hours just to get the content up and running.
- It was also buggy. 5 students with the same code and node versions could result in separate errors because of the OS.
- Using the 'create-react-native' package between the course and the latest version was dramatically different. That's not the course's fault, but more in line with why I think React Native changing too frequently so much every few months.
- It doesn't teach transferable skills in a clean way. The routing concept taught in React Native was super confusing. Node did a better job of it. Using animation libraries was a terrible coding experience, because the emulator was slow.
In spite of that and since we didn't know better - we worked with what we had and we did our best with the material.
My instructor was Adam. Adam is amazing. While all the instructors looked for real-world examples to provide metaphors within the Bootcamp, Adam brought in ACTUAL use-cases (based on his backend dev experience) and even bombarded us with tech jargon to prepare us for the workforce. He was super responsive and looked for ways to help students succeed when they missed class. In terms of the content, NodeJS and MongoDB was a digestible challenge. Where React Native was messy and were just parroting whatever our course videos said, NodeJS had us think again about the 'why' of coding. My peers even went, "Node is awesome! The code actually makes sense again!" (Unlike cough React Native cough)
Coding boot camps aren't golden tickets to employment. There's still a personality/culture that a person has to have. In my previous job, I probably spent 10% of my work coding. So now, my 5 years of coding might as well have 5 months! During Nucamp, I vowed to commit 100% of my time to code. Overall, if I working as a developer, I'll be coding EVERY SINGLE DAY. I'm not going to survive if I need to be "motivated".
I had to fall in love with coding. Fortunately, it became easier thanks to Nucamp. How?
First, the accountability piece again. My instructors were super excited to teach. And I was excited to learn! But I didn't want to let down my instructor. That accountability pushed me to do the nucamp work, and pushed me to dig even deeper!
Second, deploying websites. In my prior coding experience, you buy hosting, you set up files, a database, and after a couple of hours, you can finally code. Now, there are so many instant websites (with things like Gatsby+Netlify). Heck, I deployed a pizza site in 40 minutes, that had an owner of a pizza franchise calling me personally to give me free pizza.
Finally, my girlfriend as she's continuing her nursing degree. If you're unfamiliar with higher education, here's how it looks. Half your day in class, then half your day in lab/clinical. Then 10 hours researching and doing homework with a 15-page report due tomorrow. You want to be a health professional? You have to WORK FOR IT.
If she can commit 60-100 hours A WEEK to her nursing training, then I can at least do half as much.
But let's do some math.
22 weeks of Nucamp at a minimum of ten hours a week means 220 hours of development. My girlfriend is doing a minimum of 60 hours * 64 weeks of class. That's 3840 hours of studying. The average CS degree takes 4 YEARS. 60 hours * 45 weeks per year is 2700 hours. For 4 years, that's 10800 hours. Let's even HALF it at 5400 hours. Your 220 hours of a bootcamp is NOTHING to a CS Degree's 5400 hours.
In the job market, I'm competing against everyone. I need to stack the deck in my favor.
I committed to:
- Roughly 10 hours a day, 6 days a week of coding.
- I probably pushed about 60 projects (50 of them mini-projects, and 10 really big projects).
We all have 24 hours in the day. Being unemployed, I could waste today on Destiny 2, but that's not going to feed me tomorrow. Each project increases my chances of getting hired. In fact, many of my interview take-homes were made easier because I solved that problem in a prior project.
My goal was to be a developer in Spokane, not to learn how to code. I did graduate with honors from Nucamp. And I loved the experience.
But it's job hunting time and I need to stack the deck in my favor. This is how I did it.
I started interviewing as early as I can. In the book, How Google Works, Eric Schmidt, the former CEO of Google wanted all developers to do participate in interviews. Why? Because interviewing is a SKILL. A skill you can only improve THROUGH INTERVIEWING.
There's a lot of soft skills involved - your ability to speak to strangers, how you think on your feet, being able to market yourself, knowing how to pick up context clues based on their questions, and being able to do storytelling... typically FOR AN HOUR.
After 10+ interviews, I really started getting a flow of how to best present myself.
I'm not here to make 500+ Linkedin connections. I'm here to really bond with people and find job opportunities.
In my opinion - don't waste time attending networking events and trading business cards. There's no real connection. They won't vouch for you at a job.
Instead, I did this.
👀 Method #1: Attending meetups CONSISTENTLY.
When I lived in Portland, I was a huge fan of the FCC-Portland group (Mostly because they had food). By frequently attending, I became a regular and valuable contact within the community. Within a few months - I had friends in high places who could get me in touch with tech recruiters and professionals.
I tried to recreate that in Spokane, but tech events weren't as frequent... so
👀 Method #2: Speaking at events/conferences.
I spoke at my first conference a few years ago. Here's the secret: Everyone sees the speaker as 'the expert'. If you can help them, they will want to be your friend.
Spokane doesn't have a lot of tech meetups. BE THE CHANGE. In just 6 months of living in Spokane, I took over two meetup groups. For one group - I get the opportunity to spend 10-15 hours digging into a specific topic (like Gatsby, Webpack, Serverless, Headless WordPress, etc), and then sharing my knowledge.
👀 Method #3: Ramen chats
You may have heard the whole 'ask them to coffee'. IF you're young, it works! Everyone wants to help a college student. But I'm in my mid-30s. So instead of coffee, I've been taking people of interest to ramen. I went on Linkedin, typed in a specific company and looked for someone who fits my experience. Then I sent a polite LinkedIn Message, tweet, or emailed them (via their website) and pitched my ramen hang out.
By following those three methods, I was able to connect with 50+ Spokane developers in a few short months. I'll explain the benefits in another section.
AKA Job hunting sucks so much.
Getting rejected is soul-crushing. There's data that proves it. Whenever I would feel demotivated, I'd remember these post from r/dataisbeautiful.
It's a numbers game. I stayed organized like a project manager and treated this like a 12-month project. I source-controlled my cover letters and resumes. I allocated 5 hours a week to job hunting.
The first de-motivational blow came in my first interview.
It was the FIRST EVER interview with a Spokane company, via video call with the HR person. She took one look at me. The first thing she said on the call was, "Are you legally allowed to work in the US?" There wasn't even a hello. Just a "Are you even legal?" Some friends defended it, saying she was just 'untactful'. Born and raised in Philly, I was constantly treated like an outsider and picked on because of the color of my skin. A workplace shouldn't make you feel that way. And that's some real special magic for the HR person to do it in the first minute.
No other interview pulled up a red flag like that one. I'm glad her attitude wasn't representative of Spokane as a whole.
Using a timeline with the Nucamp curriculum.
When I was in the Bootstrap course, I was applying to 2 jobs a week (about 10 jobs total). I used an old resume, but with minor tweaks. I only got one interview, the terrible one where the HR person asked if I was allowed to work in the US. It really soured me.
When I reached the React course, I was still applying to 2 jobs a week (about 10 jobs total). They were all duds. I did get an email interview with a take-home. I completed it quickly, and they didn't respond back until a month later. It was a pretty weird red flag. I didn't continue since they already felt scummy from the beginning. Again, my goals were to practice interviewing while looking for a good culture fit.
When I reached the React Native course, I was applying to 3 jobs a week, or about 15 jobs a month. The major change: I crafted my resume/cover letter to fit the needs of the company. Suddenly, it took an extra 1-2 hours to apply for a job. But it paid off with 3 interviews! I only moved to the next stage for one interview. I didn't get the job because they wanted Laravel (PHP framework) with a focus on security. Being self-taught in PHP, I was anything BUT security-focused. The senior dev and I became friends anyways. This was also when my Nucamp instructors/mentors really vouched for me and helped me with resumes and interviews.
When I reached the Backend course, I realized the company cultures I was applying to were BORING. I wasn't getting the companies that fulfilled my needs of a great culture/great learning environment. That's when I realized - they were boring because of I my resume/cover letter boring! I saw this amazing blog post from Basecamp. I emulated the design, and continued applying, to roughly about 10 jobs a month.
This is my new cover letter.
LOOK AT IT - it's brimming with personality. ☝️
With the new cover letter, and graduating out of Nucamp, I suddenly had 3 job interviews! It went like this.
Job 1: Interview was with their team. Super weird - what they wanted was a unicorn who can do everything. When I called them on it, they didn't seem too thrilled. Red flag and no thank you.
Job 2: For the take-home, I was given a photoshop file of a dashboard that's connected to a database. My job was to create it in the language of choice (I did it in Laravel because Laravel 6 just came out, and I was going through Laracasts.com at the time.) In the offer, they tried to get me to move to Seattle. I can't -- sorry. I stay in Spokane.
Job 3: I did 2 in-person interviews and a take-home involving recreating a working app concept using vanilla HTML/CSS/JS. I taught Wes Bos' JS30 to a group of folks in October. One of the features in the app was straight from Wes' course (The slide animation). They made me an offer.
SURPRISE - Job 4: A interview from a month ago reached out again and asked if I could interview with the whole team. Making friends with the staff worked out! They seem to be dragging their feet with an offer, so I waited it out.
I now had two companies that wanted me.
During this time, I was also working with an incredible job coach Jim Hopkinson of salarytutor.com. When I was feeling demotivated, he encouraged me. When I hated my resume/cover letter, he supported me. When I had to figure out the benefits, he reviewed it with me. I highly recommend everyone get a job coach because he helped me make decisions with a clear mind, even when I was getting desperate. People always talk about expenses. But if he helped you land a job and increased your pay by say... $10k, is it worth it?
Anyways - he said this: "Until you sign the dotted lines, you aren't employed. Keep applying."
I didn't want to wait for the two companies to send me an offer.
In a drunken stupor, I applied to a third company, using my new cover letter. They sent me a quiz to fill out, which had a LOT of googleable answers. The quiz was too simple. I sent them a polite email back giving them some feedback on better questions to ask future candidates. (I was also drunk.) They really liked my email, and they decided to skip the phone interview to bring me to their offices THE NEXT DAY. Remember how I was drunk when I did the quiz and wrote them an email? Apparently, my email was 9 paragraphs long! Whoops. :-|
They also liked me at the in-person interview (thanks to all that practice), and they set me up with a test to complete. The take-home was to recreate a website of theirs with Bootstrap/SASS. I spent a weekend on it and got it to about 95% pixel-perfect. I didn't get the background working absolutely perfectly, nor was I able to get the mobile menu ABOVE the background. I turned it in anyways out of exhaustion.
They then sent me an offer that I accepted!
By the end of it, it was really nice to have three companies who wanted me. It wasn't easy.
My decision on which company was based on what I shared in the beginning:
- Company Culture
- A environment of learning and growth
Well, I'm now working as a developer in Spokane! I'm still hosting meetups. I'm still speaking/presenting on code topics. I'm still creating workshops all over the city. I'm still taking developers to ramen. I'm still taking 2 online courses a week. And I'm still trying to add more hours to my developer time to hit 10,000 hours of practice. But best of all, I get to do it while working around the brightest people on the planet and I get to learn from them.
Another bonus - one of my mentors at Nucamp is also working there - which is a dream! I still bug him with newbie questions.
And I hope to continue empowering developers, new and old, to push themselves and enjoy this amazing world of coding.