“Leadership and learning are indispensable to each other.” - John F. Kennedy
From development to product launch, my third project was by far one of the most intense and rewarding experiences at Lambda School. In one week, my team and I managed to create a fully interactable song suggester App for the spotify platform. Our goal was to allow Spotify account users to sign in, build playlists, and get recommendations based off of their preferrences.
I was recruited to be part of one of the first Track Teams at Lambda. A track team is a peer-led team of developers. Normally, a Project Lead is assigned to each project team. The role of the Project Lead isn’t to develop code, but to help with planning, scheduling, and all aspects of teamwork and collaboration. The difference between track teams and the regular teams is the existence of this role. Our team had no such thing as a Project Lead, and the responsibilty was instead dissolved equally between all members. This placed a heightened importance on many different soft-skills for all of us. Communication , transparency, and accountability all meant much more to us. Without having a Lead to check in to, we had to assume responsibility for all of our goals by ourselves, and ensure success through our own means.
Here’ a link to the deployed DS API which powers the song suggestions in our app. I worked on implementing the routes for our back-end to connect to, so that they can get what they need, when they needed it. I also implemented many different data cleaning and analysis techniques to make sure that the data being passed into our model was serving it’s purpose. compressing and uploading the model for app connectivity was an awesome experience as well. Sign up for the app here and try it out!
Many challenges were overcome during this 1-week cross-functional sprint. Beginning with the data science API calls, we ran into issues early with object conversion to and from JSON. This was due to the fact that our ML model accepted input in the format of dataframe objects, but our backend was sending us JSON objects. We also had our model producing predictions in raw python format, but needed to establish a method of converting those predictions back into JSON objects so that the back-end could properly send them to the front.
The answer? FastAPI
FastAPI solved all of our conversion issues. It works by being based on open standards. It automatically converts model data into JSON format, making it simple to send the properly formatted objects back and forth. Passing the proper information into our model was a matter of taking the raw object sent to us, passing it through it’s own wrangling function, and then feeding the wrangled object into our model. There was a lot of work that went into this project. If you’re interested in the details and want a deeper look at all of the work that went into this 1 week frenzy, checkout the team github.
Working alongside a team of 3 front-end developers, 1 back-end developer, and 3 data scientists, we succeeded in creating all pieces of a web app with functionality. A front-end with user-interactivity, a functional data-science API with a live model, and a successful back-end connecting the different parts together. This wasn’t easy by any means, and every member of the team had to bring their “A-Game” every day, or risk falling behind. At the end of the week, we were all exhausted and proud of what we’ve put together. It might not be the most scalable or elegant of solutions, but for a 5 day time constraint, the results were absolutely impressive. I worked alongside some amazing developers, made life-long connections, and had a blast every step of the way.