My Flatiron Bootcamp Experience: From E.E. to S.E.

Eric Contreras Cabrera
4 min readNov 1, 2021

I earned my Bachelor’s in Electrical Engineering (B.E.E) from the City College of New York in 2016. For the past five years, I’ve worked in the rail industry doing Communications Based Train Control (CBTC) Testing as an Electrical Engineer with New York City Transit. In January of 2021, I finally decided I was ready for a new challenge — it was time for a career change.

Technology is the future of our civilization. That said, I became eager to dive into computer science. This is where Flatiron School’s Software Engineering Bootcamp came in. With a flexible schedule and scholarship opportunities for students from underrepresented backgrounds, Flatiron School allowed me to take my first step on the path to becoming a software engineer.

I participated in the Software Engineering Bootcamp part-time over the course of ten months. Below are the core areas, technologies, and frameworks I’ve gained exposure to:

  • Front-End Development including creating UIs and style webpages, including JavaScript and ReactJS
  • Front-End Web Applications including two key Ruby frameworks: Sinatra and Rails
  • Back-End Development including object-oriented programming and storing information in databases using SQL and Object Relational Mappers
  • Back-End Web APIs include creating JSON APIs along with productive, scalable front-ends with React and Redux

At Flatiron School, I spent every week learning new concepts via online lectures and hands-on labs. After learning and practicing one module, I finally had two weeks to put my knowledge to the test by building my own project. (This period was known as project mode). Over the course of these ten months, I’ve built a total of five applications:

  1. Upcoming Sneakers Releases: Using Ruby and an external sneakers API, I created a Command Line Interface application that displayed upcoming sneaker information based on a selectable list of available brands.
  2. 0utfitt3r: A Sinatra and HTML Views based application where a user can sign up and log in to create a closet for their outfits. A user can browse through a catalog of outfits available and add it to their own closet.
  3. HaikuMe: A Ruby on Rails based app where a user can log in and create haikus. The app checks for proper haiku properties that include a 5–7–5 syllable structure using a syllable counting Ruby Gem. It also incorporates OmniAuth to allow signups using an existing GitHub profile.
  4. X-ercise: A workout logging app that uses JavaScript for frontend and Ruby on Rails as an API backend for data persistence. A user can create a workout and add exercises to it. Each exercise contains properties such as weight and number of reps per exercise. The App filters the workouts based on five default muscle groups.
  5. ProjectV: A simple social site built using React, Redux and Thunk. A user can sign up and login via JSON Web Tokens (JWT) authentication. The user can then perform CRUD actions on their posts as well as upvote or downvote other users’ posts.

In addition to exercising the knowledge I gained from the bootcamp, project mode challenged me in a few unexpected ways too. Most notable were:

  1. Developing an app idea — Since computer science has an enormous reach, brainstorming an idea was always a bottleneck for me. However, I learned that my idea didn’t necessarily need to be novel; it should be a fun and creative way for me to demonstrate what I’ve learned so far.
  2. Writing clean code — As I delved deeper into the many computer science concepts, I quickly realized that code can get out of control fast if it lacks structure. I strived to keep my code clean and leverage object-oriented principles such as abstraction so that adding additional functionality would be seamless and other individuals (like my project assessors) could follow along easily.
  3. Debugging — After completing five projects, I learned that debugging is just an inevitable part of coding. I might as well embrace it rather than beat myself up about making mistakes. Learning how to use tools like binding.pry and the JS debugger made debugging less frustrating. Now, I actually enjoy ironing out all those cryptic error messages.
  4. Being resourceful — The lectures were a good guide but there was no way they could teach me everything I needed to know for my project. By extensively reviewing documentation and searching online forums for guidance, I was able to get myself out of trouble during those late night coding sessions.

At the end of project mode, each project was assessed by a Cohort Lead. The assessors made me feel more confident in my abilities by asking specific questions about my project and even giving me a coding challenge. The challenge was either to add a new feature or to improve upon an existing feature on my application.

As I near the end of the program, I am excited for a new chapter — the job search. This is where the true test begins but I am ready for the challenge. Getting a job as a developer is only the next step, however. Technology is evolving on a daily basis, so Software Engineering is a career choice that will continue to challenge me everyday with lifelong learning. And who knows, maybe one day you’ll use one of my future contributions to Computer Science.

--

--