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. One of the company projects our 20th cohort is completing is a web application that streamlines the process of workers making wage dispute claims against their employers. We asked two of our students, Julia and Kathrin, to share their experience working together with us:
Tell us a little about yourself! What were you doing before you came to Rithm? Some fun facts about yourself would be great too!
Julia: Before Rithm, I was a biomedical engineering student at the U of Minnesota. By the time I graduated in May 2020, I was committed to pursuing software engineering instead, inspired by a love for coding that I had picked up in college. Also, given the poor COVID job market at the time, I knew it would be the perfect opportunity to work towards a career switch. Over the past year, I’ve taught myself web development and computer science fundamentals and have been in Rithm School since February. It’s been the best decision of my life!
I’m from Minnesota, but I temporarily live in Los Angeles. I love to take advantage of California’s perfect weather and landscape by hiking, running, and going to the beach when I can. But I do miss the Minnesota lakes and snow!
Kathrin: Before Rithm, I was working in the Visual Effects industry as an Associate Producer for Film and TV. Though I eventually decided that the VFX industry wasn’t for me, I was very fortunate to work on some cool projects like Black Panther, Captain Marvel, and The Politician television show! In my free time when I’m not coding away at Rithm, I love to hike, travel, and take Italian Language classes.
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?
Julia: It has been an incredible experience so far! It was a bit scary the first day since we had to set up our local environment and get a feel for the app and codebase. I had the hardest time setting up my environment due to some weird settings on my computer, but Matt was super helpful and patient and we got it working eventually! I’m on the Clever Counsel project, an app to help pro-bono lawyers in CA handle wage disputes for their clients in a more automated and efficient way. It uses the React / Flask / MySQL stack and a neat serverless crawler that performs Selenium-related tasks. There have been dozens of interesting and challenging tickets for us to tackle so far – always something new to do!
Kathrin: I find the experience to be a bit challenging but fulfilling at the same time! It was a bit overwhelming at first to get thrown into a large codebase, but after the first couple days you start to get the grasp of it and hit a groove. It has been incredibly satisfying and exciting to build out real features and see how much we’ve accomplished in such little time. I find that the company projects have been a great way of showing me that even though I might not know the answer at first glance, I have enough knowledge to figure it out.
Clever Counsel, the project I’m working on, is a web application that helps streamline the process for workers making wage dispute claims against their employers. A lot of the time these claims don’t get filed because there’s a large amount of paperwork involved, and the money owed is not a significant enough amount for law firms to take the cases on. This application will make it more efficient for lawyers to file all the necessary paperwork for these claims for workers.
How large is your team? What have you learned by working together?
Julia: I work with five other students on the Clever Counsel team. They’re all amazing people and it has been inspiring to see them all grow as engineers over the past few months. I’ve learned a lot by observing each teammate’s work and communication styles and thought processes. I attribute much of my growth as a problem solver and communicator to this team and the entire r20 cohort.
Kathrin: Our Clever Counsel team is six people and it has been awesome being a part of this group! I think the most important thing I have learned is being open to working on things that at first seem too complicated or unfamiliar. There were a couple of tasks I threw myself into that felt a bit out of my comfort zone in respect to what I felt I could build. While at first I wasn’t really sure how I was going to accomplish them, slowly but surely with my teammate we figured it out! That feeling of accomplishment is the best, when you work on something that seems impossible, and then you get it working and learn something new in the process.
What are some things you have accomplished while working on these projects?
Julia: So far, I’ve integrated flask-marshmallow schemas to replace our models’ serialization methods, which removed testing and maintenance overhead. I also helped build a full-stack feature with a dynamic calendar interface so users can add multiple days of wage records at a time. Yesterday, I finished implementing document uploads to AWS S3 and mocking the uploads in the test suite. I’ve learned so much and am grateful for all of the help from my teammates and especially our instructor, Matt.
Kathrin: What was really nice about the Clever Counsel project is that there was a lot to build on both the front end and back end. One of the tickets I completed was regarding a bug in a couple of forms on the front end that were allowing users to submit empty data to the database. I was able to improve the UI of the forms and strengthen the back end validation to prevent that from happening. Additionally, I did some React component reorganization to make some components more reusable.
On the back end, I worked on implementing a bulk create method for creating estimated pay stub amounts based on some initial data that was included on forms within the application. I also got to explore implementing an optical character recognition tool for turning timesheet pdfs into usable formatted data. This was a really exciting and challenging feature to work on, because we hadn’t really discussed optical character recognition in the class before.
What was the most challenging thing about working on your project? Have you faced any challenges in particular since working remotely?
Julia: In general, one of the most challenging things for me has been testing! I’m not a big fan, but I do recognize the value of a thoroughly tested codebase. The greatest specific challenge I’ve encountered has been implementing server-sent events to update users on the status of long back-end processes. It has involved hours of research and countless rabbit holes that haven’t ended successfully yet. Right now, I’m at a pretty big roadblock, but hopefully I can figure it out! Regardless, I’ve learned a lot about SSE.
I haven’t had issues working remotely, besides some personal internet problems here and there. I actually wouldn’t have been able to attend Rithm if it weren’t remote, so I’m very lucky in that sense.
Kathrin: I think the most challenging part for me has been getting familiar with new tools and technologies. There were times where we had to go fix a bug in the codebase and it involved a tool we never used before, or we were building out a feature that required a completely new dependency. I felt like those moments of trying to wrap your head around how something was implemented and why, or how to implement something new were difficult for me.
I have been pretty lucky so far with my remote experience. I was working remotely for my job for 6 months before the bootcamp, so I was kind of used to doing everything online. With the exception of a couple wifi outages or my computer running too many things, it has been pretty smooth.
As a developer, what have you learned as a result of working on production code?
Julia: So much! I’ve improved at Git workflow and Github collaboration, including managing tickets and PRs and working with a project board. Working on an app with many contributors has also taught me the importance of writing clean and readable code and communicating with the team regularly. I’ve also become more comfortable with approaching and understanding large codebases and googling things more efficiently to fix bugs and find best solutions.
Kathrin: The few things that I have learned are bugs are everywhere, managing a more complicated git workflow, and the importance of documentation. Since so many more people have worked with the codebase, it’s really easy for bugs to come about. The git workflow also gets a bit more complicated when you are working with production code and an entire team, so it has been great to get used to merge conflicts and working on different branches.
Lastly, I learned just how helpful documentation is! It felt so much easier to dive into the codebase when it was clear what the code was doing compared to when the documentation was lacking. When you have a large codebase like the one in Clever Counsel, good documentation is a huge time saver and incredibly helpful for people that are just getting acquainted with the application.
Do you have any advice for future students?
Julia: Don’t be scared of errors! They can be intimidating, but they’re a common part of the job. Always remain calm, confident, and curious when approaching any new problem – it will make you a more efficient problem solver. Also, take breaks! It can sometimes be hard to step away from your code to take a breather, especially in the middle of a tricky problem, but short breaks are the best way to clear your head and rejuvenate.
Kathrin: The advice I have for future students is don’t be afraid to try something new, take the time to write good tests and documentation, and don’t forget to enjoy it! Three weeks go by really fast, so make sure you have fun and take the project as an opportunity to try coding things outside of your comfort zone.
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!