Intro to the World Beyond
My experience at Lambda School was great. I got to learn a lot of new technologies and programming languages in a short period of time and worked with some amazing, smart and determined individuals. One of the best component of Lambda’s curriculum is the Labs. You get to work on a real world project with a cross functional team. It gives you a preview of how life will be like at your job after Lambda. I worked remotely with a team of 3 developers(including myself) and 2 UX designers.
We worked on an e-commerce web application that let merchant sell product to user online. I personally decided to do this project because I understand the shift to online shopping that has been happening for years and got accelerated by the coronavirus pandemic. small businesses need more options or ways to sell their product online. I think another shopping platform can help a lot. That first I was concerns about working on a project I didn’t started or structured. It took me a day to review and understand how the files were structured.
Planning is very important to the development process. If you can get this right, the rest of the development will be easy. During planning of the project, the team categorized each feature into two releases. The most important features like a users creating a profiles or sellers uploading products was placed in the first release. These features are then broken down into tasks. When breaking down a feature into shippable tasks, I start with two cartegories, frontend and backend. A list tasks is then made for each category that lead to deployment of the feature. Below is an example of the Trello card of a feature, cart page.
The Trello card is for the cart page. It contains a list of tasks I needed to complete in order to deploy the feature. This card serves as a guide for while coding the feature.
Contribution and Challenges
As full stack web developer, I contributed to the frontend and backend of the project and it came with a lot of challenges and struggles. I worked on the database, migration and api endpoints for the product’s reviews in the backend section. For the frontend, I worked on the cart page.
During the development of the cart feature, I found it easy coding and testing the feature. But it wasn’t all easy. I encounter a problem when I was trying to merge my code with the team’s main code. I know this is a problem a lot of developers have faced. To be honest, it was really furstrating but the process tought me a so many valuable lessons. While trying to merge my pull request to the main branch, I had 5 conflicts. I try fixing the conflicts from my local branch and then push it to the remote repository, but this wasn’t working. Everytime thought I have fixed the conflicts, the conflicts appears when I try merging my branch. It was really frustrating and I was working against time. Due to the time constraints, I decided to create a new branch and basically just copy of the changes I have made steps by steps. While copying the codes, I was testing the pull request, making sure the passed every check. Doing that, I was able to merge my branch with no conflict. I discovered one of the problems were defining things in a file I didn’t use and also not deleting a file that I had no use for. It was stressful going through this, but I was able to get the work done in time. And the help of my teammates during this process really helped me get through it faster.
Trust The Process
The process haven’t been a walk in the park but I have come a long way. I have shipped the product’s review database table and the cart page.
My next step in the process is to work on the checkout page. This page will be contected the to the cart page with the “Checkout” button. The goal is to create function to calculate the cost of the product, shipping and tax. I plan on making the checkout experience easy through the integration of Stripe. This will help buyers checkout faster, creating a good user experience. It will also make payment processing easy for merchants. But I foresee the integration of Stripe been the most significant technical challenge of this feature. It will be my first time integrating Stripe in an app. It’s going to be an unfamiliar territory, but also an opportunity to learn something new. I love learning new things and facing new challenges, it helps me grow my skills.
I have gained real life experience of the how it’s like working on a projects you didn’t start with a team of developers. Up to this moment, I have mostly done solo projects. When starting a project you have sole control on the technical decisions. But when working with a pre-existed project, you have to work around the structures and technical decisions of the people that started the project, which can be difficult at times. But I was able to get it done, thanks to the many skills I have learned during my time at Lambda. My teammates where the best developers I have worked with so far. They were always will to help me when I had issues with my code, vice versa.
One of the feedbacks I recieved was “Always pull from the remote main branch when starting a new local branch”. This feedback was important to me because I always forget to do that and end up having problems in the end. I will use the experience and lesson I have learned in during this lab through out my career. And this project have given me a real life experience I can refer to in future job interviews. I think gives a little advantage over many applicants with no experience of working with a team of developers to ship features for an existing project. It wasn’t but I trusted the process and when through the struggles. I’m glad I took this path. I can’t wait to see what the future holds after Lambda.