From Teacher to Platform Engineer: My Journey into Software Development

Header image: Teacher at whiteboard to man coding at computer

Like many, my career path has taken some unexpected turns. After studying journalism and Spanish in college, I enrolled in Teach for America and spent two years as a bilingual elementary school teacher in McAllen, Texas, a town on the US-Mexico border. I taught third grade for a year and then moved up to fifth grade. While I enjoyed many aspects of teaching, I eventually realized it wasn‘t the long-term career for me.

When I left the classroom in 2016, I took some time to reflect on what I really wanted to do next. My mind kept coming back to a longtime hobby – building websites. Throughout high school and college, I had taught myself some HTML, CSS and JavaScript and loved geeking out on creating websites in my spare time. I found the process of coding incredibly satisfying, an ideal outlet for both my creative and analytical sides.

The more I thought about it, the more I realized that programming was a highly practical skill that could open up exciting career opportunities. The demand for software engineering talent has exploded in recent years and shows no signs of slowing down. The U.S. Bureau of Labor Statistics projects 22% growth for software developer, quality assurance analyst, and tester jobs from 2020 to 2030, much faster than the average for all occupations.[^1] [^1]: U.S. Bureau of Labor Statistics. (2021, September 8). Software Developers, Quality Assurance Analysts, and Testers. Occupational Outlook Handbook. https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm

My experiences traveling abroad also reinforced the value of in-demand technical skills. No matter where I went, from Bolivia to Peru, I saw that having abilities like programming meant you could find work and thrive. I knew I would never run out of things to learn in a rapidly evolving field like software development.

Diving into coding bootcamp

So in 2017, I decided to fully commit to gaining the skills to become a professional web developer. I started out with free online tutorials and resources, which were helpful for the basics but didn‘t give me the well-rounded foundation I needed to actually land a job as a software engineer. That‘s what led me to Programming School‘s online coding bootcamp.

There were a few key things that drew me to Flatiron. First, they were the only program I looked at that had a third-party verified job placement rate and offered a money-back guarantee if you didn‘t get hired (see details). To me, that demonstrated real confidence in their ability to train job-ready developers. I also liked that the online program allowed me to go at my own pace and create a schedule that worked for me. As someone who was living abroad in Peru at the time, this flexibility was essential.

Even though the program was remote, I never felt alone in my learning journey. From the very beginning, I was hooked. I still remember geeking out over building a command-line Tic-Tac-Toe interface before I had even officially enrolled! Of course, not every moment was pure coding bliss – there were plenty of times I felt stuck or frustrated. But whenever I hit a wall, I always had the support I needed to break through, whether from my cohort lead, fellow students, or Flatiron‘s dedicated technical coaches.

Flatiron‘s full-stack web development curriculum gave me a strong foundation across the core tools and concepts of modern software engineering. On the backend, I gained proficiency in Ruby and the Ruby on Rails framework for building web applications and APIs. I learned to create and manipulate SQL databases and structure data with object-relational mapping. On the frontend, I became skilled at leveraging JavaScript, HTML and CSS to craft dynamic user interfaces and implement functionality with libraries like React and Redux.

Some of my most valuable learning experiences came through the 5 major portfolio projects I built from scratch throughout the program – a CLI gem, Sinatra web app, Rails app with jQuery frontend, JavaScript single-page application with Rails API backend, and finally a React-Redux app. With each project, I took on a new challenge – user authentication and authorization, consuming and integrating third-party APIs, designing and building my own APIs, test-driven development. Many of my biggest breakthroughs came from encountering bugs and problems in my code. As panic-inducing as those moments felt at the time, they were ultimately invaluable chances to deepen my understanding by zooming out, tracing back through my steps, and identifying where I went wrong and why.

As I approached graduation, I started working closely with my Flatiron career coach on preparing for the job search. My coach became an essential source of structure and accountability, ensuring I was doing everything possible to market myself effectively and land my first software engineering role.

Becoming a platform engineer

After several intense weeks of polishing my portfolio, study, networking, and applying, I had the immense satisfaction of accepting an incredible opportunity as a Platform Engineer at Ibotta. Ibotta is a leading cash-back rewards and payments app with over 40 million downloads.[^2] As a platform engineer, I collaborate closely with product, design, marketing, and analytics teams to build and optimize the core systems and infrastructure powering Ibotta‘s web and mobile applications.

[^2]: Ibotta. (n.d.). About Us. Ibotta. Retrieved May 12, 2023, from https://home.ibotta.com/about/

My day-to-day work involves architecting efficient and scalable solutions to support Ibotta‘s rapid user growth and high transaction volume. I build microservices, RESTful APIs, and event-driven systems leveraging technologies like Node.js, Docker, AWS, and serverless computing. I also own the planning and execution of projects to revamp legacy systems, improve site stability and performance, and drive innovation.

Some specific initiatives I‘ve led include decoupling our monolithic API into specialized microservices, establishing a continuous integration and delivery pipeline, and upgrading our infrastructure to a containerized cloud architecture. I also created a framework for end-to-end integration testing to improve quality and reduce production bugs.

Applying teaching skills as an engineer

Interestingly, I‘ve found many ways to apply my previous experience as a teacher to my work as a platform engineer. Strong communication is invaluable for collaborating with teammates, documenting my code and systems, and explaining technical concepts to colleagues and stakeholders. I‘m frequently tapping into my curriculum development background to create onboarding resources, tutorials, and learning paths for other engineers.

In many ways, I still see myself as an educator – now I just get to teach and learn about programming, which I find endlessly fascinating. I‘ve also realized how much my non-traditional background can be an asset in tech. My ability to break down complex topics into understandable terms is fairly unique among developers and helps me make outsized contributions, particularly in cross-functional efforts. Studies have shown that diversity of thought and experience on engineering teams leads to greater creativity, innovation and problem-solving.[^3] [^3]: Dizikes, P. (2014, October 28). Study: Workplace diversity can help the bottom line. MIT News. https://news.mit.edu/2014/workplace-diversity-can-help-bottom-line-1007

Advice for aspiring engineers

For anyone else considering a career change into software engineering, my biggest piece of advice is to go for it – but be ready to work hard and stay relentlessly persistent. Take advantage of the wealth of free coding resources out there to see if it‘s something you truly enjoy. If you decide to invest in a bootcamp or more intensive program, do your research and choose one that will give you a strong technical foundation as well as dedicated job search support.

Build a portfolio of projects that showcase your skills and passions. Contribute to open source. Write and share technical blogs and tutorials. Have a compelling story for why you‘re making this transition. Especially as a career changer, you may need to get creative to get your foot in the door – for me, that meant building a tutorial for Ibotta‘s API and making pull requests to their open-source projects to get noticed!

Most importantly, embrace having a beginner‘s mindset and get comfortable pushing yourself beyond your comfort zone every day. The beautiful thing about programming is that the learning never stops. This field evolves at a breakneck pace, with new frameworks, tools, and even paradigms emerging constantly. In just the last few years, the explosive growth of cloud infrastructure and serverless computing has revolutionized how we build and deploy applications.[^4] Emerging frontiers like Web3, blockchain, and AI/ML are poised to shape the future in exciting and unpredictable ways.

[^4]: Columbus, L. (2020, February 2). Roundup Of Cloud Computing Forecasts And Market Estimates, 2020. Forbes. https://www.forbes.com/sites/louiscolumbus/2020/02/02/roundup-of-cloud-computing-forecasts-and-market-estimates-2020/

As long as you have a genuine passion to build, solve problems, and expand your skills, you will never run out of opportunities to learn and grow as a software engineer. One of my favorite things about this field is that you are in the driver‘s seat of your own education and development. There‘s always a new domain to dive into, technique to try, or tool to experiment with. Pursue the areas that intrigue you and don‘t be afraid to change course as you discover new interests. Have faith that every bit of knowledge you gain expands your capacity to take on future challenges and create valuable solutions.

Looking back, I‘m grateful for every part of my unconventional journey into software engineering, from the challenges of teaching to the exhilaration of seeing my first app come to life to the unbeatable high of getting hired to do what I love. Each step, whether a triumph or a setback, has made me a more adaptable, creative, and resilient technologist.

While I can‘t say exactly where my path will lead next in this ever-changing field, I know the fundamental skills and mindsets I‘m cultivating – systems thinking, user-centric problem solving, continuous learning – will serve me in any domain I explore. No matter what the future holds, I‘m excited to keep growing, innovating, and using technology to make a positive impact. If my experience is any indication, a winding and uncertain road can lead to the most fulfilling destinations.

Similar Posts