Let’s Inspire
Find the right project for you
Problem Background
Does your GitHub look like this?
2020: Hello_world.rb
2021: Hello_world.py
2022: Hello_world.js
Let’s Inspire will help you break out of the tutorial loop.
How?
Project based learning: Building. Testing. Shipping.
Developers entering the tech industry via bootcamps, self learning, university, or some combination of all the above have a variety of skill depth and breadth. New skills are a necessary component for breaking into tech, but job seekers need help to determine the most valuable projects for their portfolio or specific language development.
According to 2021 Council on Integrity in Results Reporting (CIRR) data, anywhere from 5 - 30% of development bootcamp graduates were still seeking full time employment 6 months after graduation.
Closing the gap between beginner and job ready can require significant effort in developing a personal project portfolio, a skillset, and resume that communicates technical excellence. That effort should be spent building, not filtering through the vast array of YouTube series, courses, and other tutorials that can be found online.
Given the right filters, our users can select an appropriate project that gives the greatest return on time invested.
Curated project resources are key to leveling up
Research Insights
Originally, our target user base included both designers and developers to capture a broader tech audience. After initial problem space research we determined that to provide the most value within a predetermined scope, we needed to narrow the breadth of our target user base. The focus of our product was then turned towards early-career developers who were having trouble finding a unique personal project to work on.
After conducting 10 user interviews we came up with the following insights:
1. Developers gain inspiration from personal experiences
- 7/10 participants expressed that a real-life situation led to a project idea
2. Developers have a focus on skill development
- Some participants wanted to work on a specific programming language that they’re not familiar with
3. Developers want to collaborate with others in the tech industry for a sense of accountability
4. Developers feel lost on where to start
- With an abundance of resources out there, it can be difficult know which ones are really effective
5. Developers wanted to work on a project that is unique and correlates to their passion/interests
Landing on a Solution
Let’s Inspire seeks to rescue developers stuck in a “hello, world” tutorial loop. With the vast array of programming education resources available at tip your fingers, it is far too easy to be overwhelmed with choice. New languages, frameworks, clickbait articles & videos can put developers on a path of jumping from one generic tutorial to the next.
Our team determined that answering the following question would lead to an effective minimum-viable-product (MVP) that provided sufficient core features:
How might we provide relevant recommendations to tech industry entrants for their portfolio projects?
Let’s Inspire is a user driven questionnaire that focuses on key user interests and values in order to curate appropriate portfolio projects with supporting technical documentation resources.
Lo-Fi Mockups
Through multiple usability tests of our Hi-Fi prototype we learned that users were confused or overwhelmed by the information presented on the landing page and results screen.
Hi-Fi Mockups
We iterated our design to a more simpler and sleek version that gives users a better understanding of what our app does and how to navigate through it.
User Testing & Feedback
After showcasing our initial prototype to users, we gained insight on various improvements that could be made in terms of layout and functionality. Although we gathered many great ideas, we decided to prioritize the changes that would add the most value to our users using our product. Some key changes that were made included a simplified questionnaire option menu, a documentation of technical resources on our results page, and higher quality graphics on our landing page.
Technical Implementation
Where is it hosted?
- Back end: Google Cloud Platform
- Front end: Netlify
What is your tech stack?
- Back end: Node.js, Express
- Front end: React
High level journey of a request
- User opens URL in browser
- Based on the questionnaire, react fetches results from api endpoint
- The result is filtered based on user input
- Each field is displayed on the DOM, displaying appropriate links from the back end records
What was the hardest part of development?
- Determining how to write the back end and make it work.
- Figuring out how to deploy the back end to Google Cloud.
In the first few weeks, determining the amount of backend data we need to create an MVP. We primarily focused on the number of options that provide the most value on the results page.
Does your app have any scaling issues?
Adding more possible languages or other user choices would multiply the number of possible links required for us to find to display on the final results page.
What are some key takeaways?
The importance of working closely and communicating to ensure that we meet our development timelines. Making time to test the app and being mindful of how the user flows affect the data in our app.
Some things have been easier or more difficult than expected, and therefore it is sometimes challenging to estimate how long they might take.
Future Steps
Although we will not be continuing this project, we have identified feature milestones 3, 6, and 9 months out that would incorporate key feedback learned from user interviews and testing.
3 months
- A persistent results page that could be saved to the user's browser.
- A shareable link that users could send to friends / collaborators.
6 months
- Add 2 more programming language tracks.
9 months
- Increase the personalization of resource recommendations.
- Develop an on-ramp for community curated resource recommendations.
Learnings
Product Manager Learnings:
Zach Fester
- Communicate early and often.
- Lead with context.
- Invest the time to understand a problem.
- Prioritize ruthlessly, scope flexibly
Designer Learnings:
Paul Ahn
- Communicating ideas quickly to the rest of the team to ensure that everyone is on the same page.
- Making sure that all my designs are feasible from a developer standpoint
- Utilizing tools such as Trello to make sure that everyone works efficiently in an agile environment
Designer Learnings:
Jo Sturdivant
- Adapting to an Established Team: Joining the team in week 6 of 8 was challenging, as I had to quickly adapt to existing workflows, dynamics, and goals. This mirrors real-world situations where you often integrate into teams mid-project, and flexibility is essential.
- Work-Blocking for Efficiency: With only two weeks to complete the project, I learned the importance of a structured work-blocking system. This approach allowed me to manage my time effectively and meet deadlines under pressure.
- Making Data-Driven Design Decisions: Unlike my past projects, I had to rely on research conducted by others. This was a valuable experience in using pre-existing data to guide design decisions, helping me focus on the core insights without starting from scratch.
Developer Learnings:
Linda Shen
- Learning to use the agile development process
- Communicating technical limitations and scope to the team
- Getting comments on accessibility and communicating with the designer on user feedback implementations
Developer Learnings:
Vanady Beard
&
As the back-end developer, I learned how important it is to create efficient and reliable systems that support the entire application. This experience also taught me the importance of optimising the database and ensuring the backend is scalable and easy to maintain.
Developer Learnings:
Stephen Asiedu
&
As a back-end developer, I've come to understand the importance of being familiar with various database systems and modules. This knowledge enables me to build diverse applications and maintain versatility in my work. I've also learned that the responsibility for making the right choices rests on my shoulders, guided by my best judgement.
Developer Learnings:
Lisa Saffel
&
- Keeping the scope manageable, so we have a reasonable amount of features to implement.
- Frequent communication is important, whether in group meetings, one on ones, or on Discord.
- Having a clear understanding of the design and what is to be implemented.
Developer Learnings:
Maurquise Williams
&
- Process of Creating an MVP: Developing a Minimum Viable Product (MVP) taught me how to focus on delivering core functionalities balancing between essential features and avoiding scope creep.
- Collaboration in a Real-World Tech Setting: This experience taught me how to collaborate efficiently in a fast-paced tech environment, keeping the team aligned and productive, even while working remotely across time zones.
- Sharpening Critical Thinking and Problem-Solving Skills: This experience honed my ability to think critically and solve problems efficiently. By tackling challenges and finding quick solutions, I sharpened my decision-making and troubleshooting skills in a dynamic, real-world setting.
Developer Learnings:
Jeremiah Williams
&
All in all this experience was very awesome I learned that in coding with others being transparent is key
Developers Learnings:
Justin Farley
&
I learned how important communication is when working with a team. Communication provides understanding, advice, ideas, and much more. While working with the product team, I’ve found that communication keeps everything flowing smoothly. Working with a team also showed me that every member brings something different to the table and we all have to work together in order to align and meet our end goal.
Full Team Learning
As a distributed group, we learned the positive impact of effective asynchronous communication. Throughout the CoLab experience, we were collectively learning all the nuances of the agile process (sprints, backlogs, Trello) and how to best implement them for our team. After a fun and challenging 8 weeks, our team was able to align, establish a problem focus, and successfully deliver core product features.