DEV Community

Cover image for My Journey as a Production Engineer Fellow in the Meta x MLH Fellowship Program
Alana Edwards
Alana Edwards

Posted on

My Journey as a Production Engineer Fellow in the Meta x MLH Fellowship Program

I am now halfway through the fellowship and reflecting on my journey thus far.

For the past six weeks I've been learning new technical skills; however, as we begin week seven, I think it's important to impart the knowledge I've gained. Today, I will take you through my journey as a Production Engineering Fellow, while highlighting the key lessons.

Week 1: For the very first time, I used Flask, a lightweight Python library to build a portfolio website. The technologies that we were introduced to in order to complete this project were: Python virtual environments, package managers, and Jinja, a templating engine. Additionally, I got more in depth learning about Git and version control. Another element to this project that was very exciting, was being paired with another fellow to do code reviews, I rebased my feature branch onto one consolidated branch to ensure that the history was clean and linear, making it easier for my partner to review the pull request.

Week 2: I was introduced to Linux fundamentals and for the first time ever, I set up a Digital Ocean Droplet (VPS) and deployed my portfolio project.

Week 3: This is where things got a little daunting. This week we were assigned bash scripting challenges, and they were indeed very challenging. This was also my first time writing bash scripts and I learned about its importance in automating tasks and how bash scripting is used in Production Engineering. As for the portfolio project, I wrote a redeployment script to automate deployment using a detached tmux session.

Week 4: We were introduced to services and the MySQL database. For the first time ever, I configured a MySQL database on the VPS. After configuring the database, I then created a systemd service and redeployed the portfolio project on the service instead of the detached tmux session.

Week 5: We learned about Test Driven Development (TDD) and while this wasn't my first time writing unit tests, it was my first time writing tests using Python's unittest framework. This week, we were again paired with another fellow to write tests for each other's portfolio projects. We cloned each other’s projects and submitted pull requests on our respective repositories where we committed the test code. After pulling the branch locally to confirm that everything was working, we finally merged the pull requests.

Week 6: Introduction to Docker, Docker Compose, and Nginx. This week's learning is pivotal in DevOps and Production Engineering. Docker abstracts different capabilities and removes hardware dependencies to solve the issue of "it works on my machine". Docker effectively “cures” environment inconsistencies by running containers that work consistently across any system. I wrote my first docker-compose.yml file, containerized my application, and set up an Nginx container to act as a reverse proxy. I also configured SSL certificates using a jonasal/nginx-certbot image, which helped me understand secure web traffic and HTTPS.

Top comments (1)

Collapse
 
pollo_gunpao profile image
Jocelyn Anahid Velarde Barron

loved this! super detailed, congrats on making it halfway through!