From Music to Coding.

By Joanne Lee - Frontend Developer

Joanne is a cellist turned musician, who went through Flatiron School coding bootcamp for four months, job searched for two months and ultimately landed a role as a Front End Developer @ Los Angeles based startup.

The month’s check read $582. I sighed. It was the sixth paycheck I’d received from my boss and this was barely going to cover gas money. Something had to change.

At the time I was a freelance musician working in Irvine, California, where tiger moms and music prodigies abound. As a recent master’s degree graduate, I had no connections, no reputation and found myself as a dispensable cello instructor. 

I was fortunate to be provided a place to stay by my loving older sister who refused to let me pay my share of the rent (not that I could). Even after six months of hard work and free rent, I only had eight students, and it became apparent that my pay was not going to cut it. I loved teaching cello but it was far too unreliable and unpredictable for me to create a real career doing it.

I began exploring new career opportunities and noticed that there was an eerie similarity between deciphering phrases and musical patterns of Bach and finding solutions for problems in computer science. Music is a language - for example, one cannot play Germanic music such as Brahms in the same way as French impressionist Debussy. Coding/learning new technology languages seemed to be the same type of challenge. With this realization I began looking for coding bootcamps to attend. 

After a significant amount of research, I settled for Flatiron School's online coding bootcamp due to its practicality. I compared costs, and Flatiron School's tuition (I was offered a Women in Tech scholarship) was significantly more affordable than other intensive bootcamps. At $800 per month, everything was self-paced, and it took me 4 months to complete the entire program. 

Flatiron School's curriculum was intensive. It began with learning Ruby, then touched on git basics, breezed through HTML and CSS, and delved deeply into Object Oriented programming along with SQL and database structures. Mid-way through the course, we had to write our own project using Sinatra and Ruby and then built another project using Ruby on Rails. After Ruby on Rails, the program delved deeply into JavaScript, and we were required to build yet another project in Rails/Ruby. Last but not least, I was taught React/Redux with the graduation project requiring us to build in React/Redux.

I enjoyed having my own self-paced schedule, I usually logged in 12-14 hours of coding/learning each day. Flatiron School's coaches (who were available for video calls and screen shares) were second to none in terms of teaching me how to think and problem solve like a developer. There were a plethora of peer programming opportunities and study groups where I was able to learn by watching. To those interested in peeking into what I learned, feel free to check out the projects I built at Flatiron School's (Link below).

Despite the intensity of Flatiron School's curriculum, upon graduation I had an unshakable feeling that I was far from an established programmer. I would review the code of others and marvel at how ingenious their concise line was in comparison to my lengthy, haphazard buggy functions. At this point in my journey I had two main fears: 1) That I knew so little in the ever-growing world of computer science 2) How will I make money with my rudimentary knowledge? 

All doubts aside, I needed a job and that pushed me to stop worrying and start moving. One of Flatiron School's great offerings is that graduates are paired up with a career coach that helps with everything from preparing for interviews, to writing a resume and building a LinkedIn profile. While the help from the coach was incredible, I realized early that I personally had to be extremely proactive when it came to the job search. I attended several meetups, continued practicing coding, flipped through ‘Cracking the Coding Interview’, did mock interviews using Skilled and continued building personal projects to keep my knowledge fresh. Each day, I logged onto indeed.com, LinkedIn, Ziprecruiter, Careerbuilder and Glassdoor to find and apply to any position that looked relevant. On average I applied to 10-30 roles each day and after about a month and a half in, I felt like I was just clicking ‘submit’ into a black hole. The majority of my efforts resulted in a ‘Thanks for applying, but we moved on in the hiring process.’ I was downtrodden and felt defeated.

Throughout my four months at Flatiron School I never looked back, I ran with hope that this was my ticket out. I developed a true love of computer science and the ability to build things with my own hands. The creative process was so similar to being a musician that I felt I had made the best decision I could, but with rejection letters pouring into my inbox I began to seriously doubt my place in the industry. But I persisted until I received an unlikely email:

 Hi Joanne,

I liked your experiences and would like to setup a technical phone screen with you.  This will be about 30-45 minutes and will be mostly talking about technical concepts related to Web Development, Javascript, and React.  

Can you pick a block from one of the time windows below to see if one of them will work for you?

Thursday, 11/1 from 10 AM - 1 PM

Friday, 11/2 from 12 PM - 2 PM

If neither of those days works for you, we can schedule something for next week.

Thanks, and I look forward to hearing from you.

I replied immediately and setup the phone screen for that Friday. The actual interview lasted almost three hours, with the interviewer asking me a range of questions. Everything from the difference between forEach() and map() and difference between PUT vs POST in REST; I was also asked to define all the component functions in react, the difference between functional components, class components and of course, an interview is not complete without a question on async/await and scopes. I was not expecting a second interview but the next day I received the following email:

Hi Joanne,

I enjoyed our conversation last week and would like to move forward with the next step in our process.  We'd like to have a more hands-on technical interview with you and a few of our engineers that will involve writing some code.  It will be held remotely, using an online IDE for the coding piece.

Are you available this Friday at 10 AM or 1PM (PDT)?  The interview should last about an hour.  If Friday is no good, then we can schedule something for next week.

I was in utter bewilderment. During the second interview, there were three people in the video call: the manager/software architect, senior backend developer, and the senior DevOps engineer. Knowing my musical background, they gave me an apt assignment: make a scale generator. I fumbled but managed to get something that worked in the allotted 2 hours, leading us to the third last interview.

The third interview started with a review of the scale generator I had previously written, the team then had me refractor it. I tripped over a basic javascript scope problem and that ate up almost 40 minutes time. Nervous was an understatement, the interviewers just looked at me, no hints, no smiles, no words of encouragement. It was vastly different from the experience dealing with my coaches from Flatiron School. Pushing aside nerves, I kept thinking out loud and finally found a working solution. The second part of the interview was a React question, and again, I was stuck on a small bug for another 40 minutes (the actual default state should have been an array ([ ]) but I put down string (‘ ’) and the render method was firing errors everywhere). I kept digging.

Leaving that interview I was certain that I did not get the job. I was simply happy to have had the opportunity to learn what a technical interview was actually like. Much to my surprise, I got a call from the same manager and he me that I got the position! As humbled and elated as I was, I also felt a bit overwhelmed that now, I would be contributing to critical software with my code. That is when I realized that I may always be nervous or overwhelmed but I was not an impostor, I deserved to be here and I proved it. I replied back and signed the contract.

Thank you for reading about my journey! I would love to connect with you on LinkedIn if you ever want advice: https://www.linkedin.com/in/jojoleelee/

Video demos of the apps I built here

Best,

Joanne Lee