At Rithm, we believe that one of the best ways to prepare students for jobs as web developers is by giving them opportunities to work on real-world projects. Working on personal projects can be fun, but working in a team or on an existing code base gives students insights into the day-to-day challenges of a developer that they might not otherwise learn. Our 5th cohort is nearing the end of working on these projects, so we spoke with our students Allie Antkowiak and Stephen Carrera to get their perspective on the experience.
Describe yourself in a few sentences (where you’re from, what you did before bootcamp, something unique about you).
Allie: Hi, I’m Allie. I was born here in the Bay Area, but my family came from Poland and Polish was my first language. I graduated from Berkeley with a degree in psychology and worked in business-oriented roles for the last 5 years. I liked working at my previous positions, but felt something was missing and I wanted to find something I would feel challenged in and could see myself working in for the rest of my life. I took a career test and programming came up as one of my matched careers. After hearing about Codecademy, I decided to give it a try and realized how much I liked it. I’ve been studying for about a year now and can’t wait to make the switch over to a new career. Something unique about me: I lived in Ecuador while working at a nonprofit and got to see the Amazon jungle and cloud forest.
Stephen: My name is Stephen Carrera and I’m originally from San Antonio, TX. Before Rithm, I was living in New England working in IT, focusing on databases and CRM software. I enjoyed creating new tools for my coworkers and discovering new trends about our customers. Fun Fact: I enjoy learning about people’s stories and backgrounds, even complete strangers. You never know who you are going to meet.
How would you describe the experience of working on these company projects? Can you tell us a little about the projects you’ve been working on?
Allie: Sure! It has been such an amazing opportunity to be part of something that users will be using one day. The project we were working on was to create a mobile app for a company called Groupmuse, that brings live music to people in the form of smaller house parties. We had access to a back-end API that would respond with JSON and we were responsible for creating the front-end (what users will see) with React. We were given mockups and it was up to us to implement it.
Stephen: It feels like these projects have been the culmination of our weeks of hard work yet just the beginning of our future. Working as a team to deliver features for these companies and their users has been so gratifying. I’ve had the opportunity to build a mobile app for Groupmuse using React Native and Redux to connect classical musicians with local hosts in their community. Also, I’ve been working with the sports media group, The Relish, to build their backend systems to enable their brand ambassadors to refer new users to their video platform.
How large is your team? What have you learned by working together?
Allie: Our team was 4 students and a instructor. We programmed in pairs and would switch partners every few days. It was great to work in such a small group because each person brought their own skillset to the table and we learned a lot from each other and by discussing the concepts with each other. We learned the flow of working in a group on a project and how to divide the work, work on separate branches, make pull requests, respond to comments, and handle merge conflicts. We also learned how to communicate clearly about technical topics and realized how important it was to reach out to others. Because we stayed in such close contact, we got exposure to all parts of the project as opposed to only one area and grew a lot in our programming skills.
Stephen: Our teams have varied in size from 2-4 students with a focus on pair programming. As a team we’ve been able to hone our skills with Git to ensure a clean master branch, and adopt project management skills to focus on the tasks at hand. In pairs, we can discuss and troubleshoot problems efficiently and have an extra pair of eyes looking for ways to make our code more flexible, dynamic, and adaptive.
What are some things you have accomplished while working on these projects?
Allie: All of the projects are challenging because they all incorporate at least one new library/framework or language that we didn’t learn about in the bootcamp. In this case, we learned how to create an application on a mobile phone (instead of the browser) using React Native. It was challenging to learn about all the idiosyncrasies of React Native, but also very rewarding when it came together. We got exposure to all the different aspects of the project, including creating React Native components, using Redux, adding Thunk for AJAX calls to the API, making validating/authenticating functions, setting tokens in the async storage, researching and implementing a router, handling errors and setting up a simulator. We also used Jest and Enzyme for testing our code.
Stephen: For Groupmuse, building a deceptively simple onboarding flow for their mobile app that focuses on the user-experience. This feature tested our skills with Redux and our ability to quickly adapt while having never touched mobile development in our curriculum with React Native. For The Relish, creating a system with Mongoose, Express, and Node to track the activity of their brand ambassadors while simultaneously developing a call to action flow for their users.
What was the most challenging thing about working on your project?
Allie: The most challenging part was how to design the project. Throughout the bootcamp, there were many coding projects where we started to get into the mindset of a developer and how to design a project from the ground up. There was a lot of guidance during these projects and this was the first project we were set free to see if we could fly. It was a lot of fun discussing with teammates how we should organize the code, what components and data structures we wanted to use and where to incorporate redux. It took a few days of trial and error to reach an optimal solution and we got so involved in the code, we wanted to keep coding during the weekends!
Stephen: The most challenging (and most rewarding) has been developing in React Native with Redux. I found React and Redux to be my weakest skills during the curriculum. This project required me to level up my skills in a hurry. Luckily, with the help of my team, Captain Michael, and sharp google skills, I was leveraging component life cycles in no time. Now, I am onboarding new members to the project. TIP: If you ever feel weak in some area, keep building small apps with it.
As a developer, what have you learned as a result of working on production code?
Allie: In production code it is important to make it dry (don’t repeat yourself), optimized, and readable. During class exercises, most of us were content if the code worked and we wouldn’t spend too much time refactoring. With production code, it was important that the code was clean and understandable by someone who just started working on it. It was also important that the parts fit together in a logical way. Since there was no one ideal way to do things, it was on us to put our heads together and come up with ideas. After we’d finish each part, we got immediate feedback from the instructors who could give us helpful tips and tricks for improving our code, teach us how to make our code stronger by guarding against errors preemptively, and show us syntax we would encounter in production code and should get used to using. I’m glad we had the opportunity to see what it will be like to work in the field and I’m sure it will make it easier to transition into our roles once we graduate.
Stephen: Developing new features is but a small part of the job. So much of the process relies on ensuring existing code is tested, fixing bugs (then creating more tests), looking for opportunities to refactor and optimize, documentation, and the communication required between the stakeholders of the project. Exposure to each facet is very important to the overall success of the product.
It is not only motivating, but fun to work on code and features that will be used by many people. Check out more about our company projects here!