Completing The Microverse Software Development Program: A Year In Review

A roundup of the things I learnt and projects I built as a student of Microverse Global School.

ยท

7 min read

Completing The Microverse Software Development Program: A Year In Review

For context, Microverse is an online software development school that sets you on the path to becoming a world-class software engineer. They have an income-sharing agreement (ISA) where you pay nothing until you start earning at least $1000 per month.

I started the year already being admitted to Microverse and was billed to resume in January 2021. I didn't know what to expect but I was quite optimistic. I wanted to learn. I wanted the challenge. I knew it was going to be tough but I expected nothing less. If you'll like to read about my admission process, then here's a link.

GETTING PAIRED WITH MY FIRST PARTNER AND CRUNCHING HTML/CSS3

Microverse learning structure is heavy on pair-programming, so I got paired with my first partner, a Ghanaian named Rashad. He was a cool and relaxed dude, which is something that mattered since we are both new. We had to learn programming concepts within a few hours and build with them. I had programming experience, especially with Php/Laravel, but CSS concepts like flexbox and grid were some that I need to learn rapidly. I also got used to using linters like stylelint(for CSS) and HTML validator for code conformity. In this module, I had to clone websites and then worked on a final capstone project where I had to build the UI for a design provided by the school. Here are the project snapshots below๐Ÿ‘‡๐Ÿพ properteer-img.png Screen Shot 2021-12-31 at 11.06.28 PM.png Screen Shot 2021-12-31 at 11.09.14 PM.png

MENTORING AND GEMMING UP WITH RUBY

After HTML/CSS, I moved to the Ruby programming language where I started writing logical computer programs. I wrote my own version of some in-built Ruby enumerable methods like map, inject, each, none?, any?, count etc. I also built a tic-tac-toe game that runs in the command-line interface.

The school also introduced Data Structures and Algorithms (DSA) curriculum since we were now doing proper programming. DSAs, as tough as they can be, definitely got better as I spent more time with it. I also got used to working with Rubocop, a linting tool for standard code conformity in ruby. Also, this is where I got introduced to Test-Driven Development (TDD). For unit testing, we used RSpec, a popular Domain Specific Language for writing ruby tests.

Around this period, I became a mentor for new students to help them settle in and be a go-to source for their technical problems. Being in a position where I helped other students improve felt fulfilling.

CAPSTONE PROJECT: LINKMEUP BOT

Anyways, for my Ruby capstone project, I built something I'm quite proud of. A telegram chatbot called LinkMeUp. It is a mini social networking system built on top of the Telegram Bot API. It helps people connect with other private users who actively shares their current interests. One of the fun things I did in this project was improving it to use the ActiveRecord gem with PostgreSQL (for data persistence) without the Rails framework. See snapshots below ๐Ÿ‘‡๐Ÿพ linkmeup.png

BATTLING LOW ENERGY AND SPINNING WEBS WITH RAILS

From ruby, I moved to the Ruby On Rails module (ROR), a web framework for ruby. Rails is Microverse's goto framework for backend engineering and I started by first getting a proper hang of the MVC (Model-View-Controller) framework for structuring backend code and serving it to the frontend. While working with rails, I encountered and understood the N + 1 problem in database querying, I also tackled this by eager-loading necessary data which help streamline database fetching to as few calls as possible.

Around this time, I got quite low on energy and will, due to personal reasons, but Microverse advised that we have an emotional mentor, someone we can talk to about our issues and make us feel better. So shoutout to someone very dear to me (a lady) for doing an amazing job in this respect. Even when my problems are technical, she was willing to listen and just help calm my mental turbulence, lol.

CAPSTONE PROJECT: SOCCER INFO

For my Rails capstone, I built a soccer micro-blogging platform called SoccerInfo. It allows registered users to publish their opinions on footballing issues. Users can also upvote to control content prioritization. I integrated an asset management service called Cloudinary to handle image warehousing and serving to the frontend to ease the load on my server. Here is a snapshot and link to the project below๐Ÿ‘‡๐Ÿพ soccer-info.png

SPICING UP THE FRONTEND WITH JAVASCRIPT

Since I have worked with Javascript (and jQuery) before Microverse, this module was quite fun for me. However, I improved my DOM manipulation skills drastically. I also got really comfortable with the frontend unit and integration testing with Jest. I particularly liked how code modularization in Javascript works. I also fell in love with Webpack for code bundling.

CAPSTONE PROJECT: ULTRA WARS

For my Javascript capstone project, I was charged with building a space shooter game. Yikes!! One thing Microverse really taught me was how to pick up a new technology and start building stuff with it in a matter of hours. Call it Just-In-Time learning. In this case, I had to pick up the Phaser JS game library and build a shooting game with it in a matter of days. I called it ultraWars and I feel quite proud of its completion, as it opened my eyes to a whole new digital world. I definitely didn't see myself building games at the beginning of the year. Here are some snapshots below ๐Ÿ‘‡๐Ÿพ Screen Shot 2021-09-19 at 6.08.55 PM.png Screen Shot 2021-09-19 at 6.02.52 PM.png Screen Shot 2021-09-19 at 6.03.10 PM.png

TAKING JAVASCRIPT ON STEROIDS WITH REACT AND REDUX

The final stop was the React/Redux module, a javascript library/framework that provides a cleaner and more efficient way to write javascript. I love how React, via its in-memory virtual DOM, helps optimize DOM traversal and manipulation with even lesser and neater code. Getting to use Redux to manage state powered by its one-directional data flow architecture instead of React's inbuilt state and props (especially for sharing large data amongst multiple React components) was an efficient addition.

CAPSTONE PROJECT: LIGA PRIMERO

Before reaching the capstone, I built some cool projects in the learning phase. But for the capstone, I built an app called ligaPrimero. A football app for monitoring the standings, fixtures, teams form and other data of the Spanish La Liga Football League. For this project, I had to fetch data from an API and serve it to users in a manner they can make sense of. It also has a feature that lets you filter/analyze data based on some key data points peculiar to football. PS: I'm still improving/expanding this app. Here are some snapshots below ๐Ÿ‘‡๐Ÿพ Screen Shot 2021-11-24 at 2.09.37 PM.png Screen Shot 2021-11-24 at 2.10.13 PM.png

FINAL CAPSTONE PROJECT: digiDocs

After completing all technical modules, it was time for me to build the final capstone which was reviewed by external reviewers. My assigned capstone was to build an online platform for booking doctor's appointments. I called it digiDocs. I was expected to build a rails backend API that houses doctors and users data as well as appointments that connect them. I also had to prepare endpoints that helps client connect with the API in a RESTful manner. For the frontend, I had to build a React client that accesses data from and sends data to the API depending on users' interactions.

Since browsers, by default, refuse Cross-Origin Resource Sharing (CORS) - a mechanism that allows servers to load resources from a different origin/domain - I had to configure rack-cors on my rails server to allow my frontend client to interact with the API.

Everything I had learned had to come to full use. From UI development with CSS3 and Bootstrap to building interactive UI with Javascript and React, to OOP and MVC paradigms with Ruby on Rails, to database design and querying, to Test-Driven Development with RSpec and Jest. Basically, I had to do full-stack development all-around. Here are snapshots of my final capstone project below ๐Ÿ‘‡๐Ÿพ digidocs-1 digidocs-2 digidocs-3 digidocs-4

CONCLUSION

Succinctly, it has been a challenging year dominated by lots of learning for me. Another part of Microverse was the professional skills curriculum, which beyond just software engineering included soft skill projects that shaped me into a better professional. The Data Structure and algorithms curriculum also improved my problem-solving capacity.

Now, I am in the interview preparation stage of the program and can't wait to see the good things the future hold. If you ever have plans to apply to Microverse, I wish you the best of luck and can attest that you will be better for it.

As for me, I'll continue to improve my skills even more and see where the tides take me. See you aroundโœŒ๐Ÿพ.