Why I am Leaving Teaching to Become a Software Engineer

Intro

A few weeks ago I met with my Principal to tell her that I would be resigning from my position as a teacher at Deerfield Beach Middle School. She was pretty disappointed but also very supportive once I told her that I was moving to Northern California to pursue Software Engineering. When I told her that quitting was a tough decision she looked at me and said “Well, there’s money in software engineering,” as if to say my decision was probably not a bad one. She’s completely right, there is a lot of money in this field. Income potential is more than triple what I make as a teacher, but that is not the primary reason that I am pursuing software engineering. There’s a pretty interesting story behind my decision and I’m going to share it because I want people to know that 1) it’s never too late to pursue a new career 2) following your passion can brighten your world 3) the tech industry is the industry of the future and social justice organizations need to begin paying attention to it.

Black Lives Matter Alliance Broward’s Development Initiative

In June of 2015 I co-founded a social justice organization called Black Lives Matter Alliance Broward. The founders and I envisioned an organization that would challenge systemic racism in Broward County Florida via popular mobilizations. We propelled ourselves into the political scene by taking on local cases of police brutality, but there were many issues we were interested in such as food justice, rights for the homeless, education reform, criminal justice reform, environmental issues, and more. Along with having varying interests we lacked internal organization, focus, or long-term planning. Around the time of our 1 year anniversary (June 2016) Alton Sterling and Philando Castile were murdered which resulted in a massive local outcry here in Broward County. Members of the Alliance quickly organized a protest and a healing circle, both of which brought out the largest number of people we had ever seen at any of our events. But there was an interesting issue: we had no plan for what to do after those people went home.

I reflected on this issue and immediately became concerned. We had hundreds of people coming to us wanting something for them to do or work on, and we had nothing to give them. I began thinking about all the problems we had inside the Alliance and what type of system we could implement to deal with these problems. I put my ideas into a PowerPoint, presented them to the Alliance, and then the Alliance held 4 more meetings to revise and edit the system. We could not all agree on every single component of the system so we decided to implement the new system in phases and make changes along the way. This initiative was called the Development Initiative (DI) and it consisted of 5 key components.

  1. New Member Intake Process: people interested in joining our organization would complete a one on one with an Alliance member to learn more about the Alliance. They would then be assigned a team leader or “mentor” who supports and guides them through learning how to be an organizer.
  2. Mentorship Program: Every member, new and old, would be assigned a team leader/mentor who provides support.
  3. Membership expectations: all members would be held to the same expectations in order to be considered a “member”. These expectations were primarily based on the minimum work that was needed to keep the organization running.
  4. Grunt Work Sessions (GWS): This is a weekly 4 hour volunteer session where members and non-members come together to do often neglected work such as making phone calls, designing flyers, conducting research, updating the contact list, scheduling one on ones with prospective members, and a lot more.
  5. 4 New Committees:
    1. Administrative Committee: maintains the organizational structure, runs the general body meetings, runs GWS, and runs the new member intake process.
    2. Education Committee: designs and implements trainings for both Alliance members and community members.
    3. Financial Committee: manages Alliance finances.
    4. Health, Sustainbility, & Accountability Committee: holds members accountable to membership expectations, mediates internal conflicts, manages mentorship program, puts on social and recreational events for Alliance members, and creates processes for violations such as sexual assault or physical violence.

The goals of the DI were to

  1. Steadily grow Alliance membership by recruiting new members
  2. Retain members and sustain growth by prioritizing the health of Alliance members
  3. Increase the capacity of the Alliance to take on long-term campaigns or projects
  4. Provide supporters with ways to support the Alliance without becoming a member
  5. Provide members with the education and knowledge to be more effective organizers and better critical thinkers
  6. Use pre-designed processes to deal with internal conflict so as to prevent internal conflicts from disrupting the organization’s work

Issues Along the Way

As one of the primary leaders of the DI I was more excited than ever to be an organizer. I was working on something I believed could evolve our organization and make us more effective at bringing change to Broward County. While leading this initiative I found that some of the processes we were using (for things like scheduling one on ones or tracking new members) were really inefficient because they required a lot of manual labor. I did my best to make these processes more efficient but eventually I realized that the most efficient solution would be some sort of software or application that did the majority of the work. For the first time in my life, I started to really see the value of technical skills and I was frustrated that I didn’t have any. I didn’t know how to build software and all the programs I found online were too costly for an organization that does not yet have an endowment or donor base. It was at this point that I decided I would learn how to code. I had no intention of quitting teaching or pursuing software engineering as a career. I just had specific programs I wanted to build and I didn’t like feeling powerless to build them.

Researching Software Engineering  

I started researching software engineering around October of 2016. Months prior a dear friend from college named Blake mentioned that she had attended an engineering program. Back then I didn’t know what software engineering was. Computer science was this word that I heard every now and then but I had no real concept of what it was. So I called Blake, told her about my work with the DI, and asked her if the school she went to would teach me what I wanted to learn. She was actually really excited that I was expressing this interest. She broke down software engineering and shared a little bit about her school. She thought that my personality was perfect for the program she attended and that I would do really well in her field of work. That was really encouraging so I researched her program, Hackbright Academy, which was based in San Francisco along with dozens of other similar programs.

The fancy name for these types of schools is “Software Engineering Fellowships” but they are also called coding boot-camps. Coding boot-camps are extremely rigorous 12-18 week programs where students spend 60-80 hours a week learning how to code. Graduates of these boot-camps then go on to find entry level positions as software engineers with starting salaries that average anywhere from 80-105k depending on the school. There’s only so much you can learn in 12-18 weeks so once graduates find a job they continue to develop their coding abilities through on-the-job experience. At first I thought I’d attend a coding boot-camp and then return to teaching while coding for my organization and maybe doing freelance work on the side. But during a trip to San Francisco I changed my mind.

Months before deciding to learn how to code, I had booked a trip to San Francisco to visit a college friend for 10 days during my Christmas Holiday break. This trip ended up being the perfect opportunity to connect with folks who worked in the tech industry plus I got to see what San Francisco was like. While there I woke up early almost every morning to work on Codeacademy’s html and css tutorial. This was my very first introduction to real code. I also connected with Darrell Jones III, a college friend who worked at a tech startup, and he provided a lot of insight as well as resources. He too was excited about my new path and was very encouraging. During this trip I decided that I wasn’t going to return to teaching after attending a coding bootcamp. I loved the Bay Area and all it had to offer, I hated my income as a teacher, and I was becoming more and more passionate about code. Most importantly, I don’t like to be average at anything and if after a boot-camp I go back to teaching full-time, it will take a long time for me to become an excellent coder. To become excellent as quickly as I would like I will need to immerse myself in the world of coding. I will need to get a job as a software engineer and develop my skills through on-the-job experience.

Breaking Into Startups

After my meeting in San Francisco with Darrel Jones III he added me to a Facebook group called “Breaking Into Startups”. This is where my path started to become clearer as my passion continued to grow. Breaking Into Startups is a Facebook group created by 3 men (Artur Meyster, Timur Meyster, and Ruben A. Harris) who broke into tech from non-traditional backgrounds. They created the Facebook page as a support system for people who are trying to break into the tech industry but don’t have a degree in computer science or have never worked in the tech industry before. They also have a podcast that interviews amazing people who broke into tech. Guests on the podcast have the most interesting stories and come from a variety of fields such as dance, art, education, banking, and culinary arts. These stories were very inspiring so I began listening to the podcast every day. I took all the advice that guests gave and refined my plans accordingly. I used suggested resources and researched suggested schools. I eventually narrowed my choices down to two schools, Hackbright and Hack Reactor. I chose them because they are both well known, have strong reputations, and are extremely difficult to get into. I was set on attending a “top” boot-camp but the podcast taught me that these schools had extremely rigorous admissions processes (some are more selective than Harvard). So around March of 2017 I buckled down and dramatically increased my studying

Learning HTML, CSS, and JavaScript

Prior to March 2017 I was studying for a few hours each weekend but June Application deadlines were around the corner and I had not gotten as far as I wanted to. So, at the end of March I began studying much more rigorously. Every night after work I studied and I committed to about 16 hours of studying each weekend. HTML and CSS were pretty easy to learn but JavaScript was a challenge and this was the language I would need to know for my applications so I had to increase my diligence. I’d heard and read that the application process consisted of a coding challenge as well as technical interviews where you may have to solve a problem in front of an interviewer or explain a coding concept. I worked really hard to overcome my weaknesses with JavaScript by doing hundreds of practice problems along with a Udemy course and other supplemental material.

During the 2nd week of April I used my 10 days of spring break to study 8+ hours a day. I took few breaks, I didn’t go out, I didn’t have fun—I simply studied my ass off. Applications for the July cohorts were due in early June but admissions were done on a rolling basis so there was a possibility that all the spots would be filled prior to the June deadline. Just to be safe I set my personal application deadline for the end of April.

Note: While learning JavaScript I came to really understand why I was so attracted to coding. Coding is about problem solving and I love challenging problems. But also, coding requires the ability to understand systems. You have to be able to see how all the parts of a system work together to make that system run effectively, as well as how to manipulate or adjust parts of a system in a way that improves the efficiency of the system altogether.

Applications

Immediately after submitting part 1 of my applications to Hackbright and Hack Reactor I received my coding challenges through email. A coding challenge is basically a test involving some sort of task you have to complete using code. There is no time limit for completing the task and you can use the internet to help you. But the challenges are designed such that the internet will only give you information to help you develop your solution. The internet will not give you the actual answer. Hackbright’s challenge was a Python challenge and Hack Reactor’s challenge was a JavaScript challenge. The cool thing was that each school allowed me flexibility with the coding language I use to complete their challenge. Since I did not know Python I completed both challenges using JavaScript.

Hack Reactor’s challenge was fairly easy and I completed it in about 20-30 minutes. Hackbright’s challenge was completely foreign to me and initially read like gibberish. I actually got scared of Hackbright’s challenge and refused to look at it again for 24 hours. When I finally sat down to work on Hackbright’s challenge I spent about 2 hours trying to solve the problem but I couldn’t figure it out and none of my online research seemed to be helping. During a 1-hour break to go pick up my boyfriend, an idea came to me. When I got home I fleshed out my idea in the Google Chrome Console. It took me another 30 minutes or so to write the code properly but when I finished and tested it I knew I had solved the problem correctly!

The next step was my interviews. I scheduled my Hackbright interview for that same week but my Hack Reactor interview wouldn’t happen for about two weeks. I won’t go into much detail about my Hackbright interviews but essentially I had two and during the 2nd one my interviewer told me that Hackbright would like to offer me a conditional acceptance. I gladly accepted the offer and looked out for a follow up email.

Conditional Acceptance to Hackbright Academy

My conditional acceptance to Hackbright Academy requires me to complete 6 modules that introduce me to the basics of Python, the primary language that Hackbright teaches. Hackbright never told me exactly why my acceptance was conditional but I infer from their email that it was because I completed their challenge in JavaScript. They probably want to make sure that I have some familiarity with Python before starting their program. I’m almost finished with the modules, which have been pretty easy so far. Python and JavaScript are very similar languages so once you’ve learnt one you can pretty easily pickup another.

You might be wondering what happened to my Hack Reactor application. I immediately withdrew it because Hackbright was my top choice. I am really interested in learning Python, a back-end language, but also Hackbright is an all-women’s program. The tech industry is a majority white male industry and many coding boot-camps are majority white men. I figured that it would be meaningful to be surrounded by women at least once during my journey into tech. Coding boot-camps are extremely difficult because it’s a huge sacrifice of time, mental energy, and emotional energy. I will be coding all day every day including weekends and there is little time for socializing or having fun. There will be moments when I get stuck or I don’t understand a concept and an all women’s coding school would reduce some of the insecurities or fears that would arise if I was in a school where I was a double minority. So yes, I pulled my Hack Reactor application and settled on Hackbright.

 

What Comes After Boot-camp

I found housing in Oakland, so I will be moving there around June 29th 2017. My classes start on July 3rd 2017. 

After 3 months of boot-camp in San Francisco I will look for a position as a junior software engineer, or maybe even an internship. I hope to stay in the Bay Area while I job hunt because that is the tech hub of the country and it seems like a great place to grow. I will also use my tech skills to continue to support the Alliance here at home and its technology deficits. Outside of simply finding a job in tech, my personal and long-term interest is bringing technology to under-resourced social justice organizations and under-resourced communities.

Tech is the future.

If you don’t know how to program you risk becoming programmed.

Oppressed communities will struggle as long as they are not able to use technology to uplift their causes and facilitate sociopolitical change.

Helping communities face this challenge may be what I am destined for. I don’t fully know yet but I’m excited to find out.


Thank you for reading this and if you have any questions about how to break into tech, I suggest you visit the Breaking Into Startups website here. I still have a lot to learn but I’m open to answering questions as well (you can email me at ikn02010@gmail.com).

If you are interested in following a similar path I’ve put together a document outlining the steps I took and some resources you can use. It’s in this google doc. Enjoy.

2 thoughts on “Why I am Leaving Teaching to Become a Software Engineer

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s