Cheryl Murphy is not only a dedicated full-stack web developer skilled in technologies like React, Next.js, and NestJs but also a community-driven professional who recently took on the role of volunteer project team lead at Web Dev Path. With a dual Bachelor's degree in Computing and Chemical Engineering from Monash University, Cheryl’s journey in tech is marked by a passion for building accessible solutions and a commitment to fostering community within tech.
This month, we caught up with Cheryl to learn about her journey into web development, her role at Web Dev Path, and the importance of community in tech.
Can you tell us about your journey as a web developer and how you became involved with the Web Dev Path project?
I started making websites around the age of 13. I enjoyed organizing and sharing information with friends. I remember making web versions of annual reports for a school club and hosting them online so we didn’t have to post them overseas to previous members, which saved us a lot of money.
When I was a bit older, I moved on to creating simple utility apps in Visual Basic, which helped me with different tasks. I learned all these from books as online courses weren’t available back then. I found it quite challenging as a teenager who had never learned programming fundamentals other than Logo.
I was very tech-savvy, so naturally, I pursued a degree in computing. The degree provided me with a solid foundation in programming, learning electronics, hardware, C and assembly languages, data structures, and algorithms.
I got a few casual jobs in IT support, then a job as an in-house IT support/web developer. Unfortunately, the company closed down after two years, and I decided to pursue another degree in Chemical Engineering. Towards the end of my degree, I met my husband, we had kids, and I started learning more in my spare time while being a stay-at-home parent. I enjoy learning new things but also hope to stay current with technologies and restart my career when my kids get older.
I tried many things in the last few years such as web development, mobile development, and cloud, but I’ve found that I’m most interested in web development. I utilized free and low-cost resources on the internet, joined a lot of programming communities, and actively searched for collaboration opportunities all the time. I even found a few freelance jobs while doing that. This is how I came across Web Dev Path.
How has your experience at Web Dev Path contributed to your growth as a web developer?
Web Dev Path has helped me improve my communication skills. After working in a few different teams, I realized soft skills are just as important as technical skills for a web developer.
In the project, we encourage everyone to review pull requests. A lot of developers underestimate how important reviewing pull requests is and often place it very low on their priority list. While doing code reviews, I learned a lot from someone else’s code, how to suggest changes to other developers, and it also helps with staying current with the changes of the project.
There, we emphasize the importance of reading its project documentation, which I think is a very important skill to have as I often find myself reading a lot of documentation when working on things I’m not familiar with.
I learned that it is important to communicate clearly and concisely, whether in team chat or writing documents like GitHub issues. I need to write issues that accurately describe the problems, otherwise, there’s a chance that other developers will make the wrong change.
I find Web Dev Path is closer to a real work environment compared to other programming communities, which helps us get used to using more formal and polite words in communications. I remember offending someone because the way I talked was a bit too casual, as I’m used to being in some more casual programming communities online, which is completely different from face-to-face communication.
Could you share some examples of the projects you have worked on and how they have showcased your skills and expertise?
The main projects I’m working on now are:
Chingu Solo Project Evaluation App:
View on GitHub
This app allows evaluators to assess solo projects without needing access to Airtable, where all Chingu data are stored. It also features improvements to the efficiency of the evaluation process.
It is my first app using the Next.js app router. I have learned a lot building it, particularly transitioning from pages to app router and understanding client and server components, and server actions. As feedback is frequently updated from another repo, I wrote a scraper to scrape the GitHub repo readme, which contains all the feedback whenever the feedback repo is updated. The GitHub repo triggers the scraper hosted on Google Functions on push using GitHub actions. The scraper then parses and saves all the feedback in a Firebase
The app supports OAuth authentication and role-based authorization to restrict data access to only authorized users (admins, evaluators) to protect sensitive data of all Chingu members.
Chingu Dashboard:
This is still in development and will serve as the new platform to facilitate voyage project collaboration by having all required actions, reminders, and information available to members in one place. I work on the backend, which is built with NestJS and PostgreSQL with Prisma ORM. The frontend uses Next.js. This is a large project and has been ongoing for about a year, started in April 2023, with five frontend developers, five backend developers, two product owners/scrum masters, and two UI/UX designers. We hope to start beta testing around June/July 2024.
Note: Chingu voyages are 6-week collaboration projects in which members work in a team of developers, a product owner, a scrum master, and a UX/UI designer to build an app.
Chingu Dashboard Frontend
Chingu Dashboard Backend
I have also worked on numerous practice projects (solo), to practice my practical programming skills and develop a few more apps to assist in my daily tasks.
What role do you see open-source projects like Web Dev Path playing in the growth and development of the web development community?
I believe open-source projects, especially those with communities, like Web Dev Path, are very important for junior developers since they would have spent most of their learning time focusing on courses and tutorials. Participating in a group project has many benefits for developers at any level, such as learning from other team members, improving communication skills, learning new technologies, networking with developers and non-developers, and receiving support from those tech professionals.
Web Dev Path also offers mentoring and focuses on following procedures and best practices, which are invaluable for many new developers.
As a busy mom, how do you balance your work on multiple volunteer projects with your contributions to the Web Dev Path project?
I like to sort tasks or projects by their importance and set a time limit on each project per day or week, so I make sure I have time to work on other projects. I work on urgent tasks first. As much as I want to work on everything, I delegate tasks to other team members if they can take on another task.
I also avoid signing up for too many projects so I don’t take on more than I can handle. This is a mistake many people make when signing up for volunteer projects, and they end up not being able to participate in all, or any, of them.
What advice would you give to aspiring web developers who are considering joining and contributing to open-source projects like Web Dev Path?
First, try to understand the project to confirm if you’re interested in contributing, not just because it would look nice on your resume. Read their website, and GitHub repo, find out the project goals and vision, and check if they align with yours. This will keep you motivated. Read everything available, and ensure you understand the contribution process, project guidelines, workflow, and communication protocols.
There are different ways one can contribute to an open-source project:
- Improve the knowledge base. You might find a mistake or ways to make the documentation (e.g., readme, wiki, API docs) better.
- Review pull requests. Reviewing pull requests can be a good way to learn more about the codebase. You can also learn a lot from reading someone else's code.
- Report bugs.
- Offer suggestions for improvements (UI, UX, or code).
Communication is essential. As an open-source project maintainer/leader, I find the most frustrating thing is poor communication or even the lack of communication. Read everything, ask if anything is unclear, and try to convey your ideas clearly: format your text, and add screenshots if needed. I also suggest spending a few minutes every day checking the community chat so you can be aware of any news, updates, and changes.
How does it help you grow as a developer to mentor other early career developers in this project?
To me, the biggest benefit of mentoring newer developers is that it improves my communication skills, such as how to convey my ideas and give feedback.
I’ve also learned a lot of new things while mentoring, as I see people using different ways to solve the same problem, and it provides other perspectives on the problem. I also often get introduced to new technologies and interesting things in general.
I love the networking opportunities I get from meeting so many people while working on different projects. I’ve made friends with some people I worked with and it’s amazing listening to their personal experiences, opinions, and how much they appreciate and enjoy working with me.
Talking with Cheryl Murphy has given us valuable insights into the life of a developer who cares deeply about her work and the people she works with. As a developer, mentor, and mom, Cheryl continues to advance the possibilities in web development while paving the way for others. Her advice for new developers is straightforward: engage with projects that resonate with you, and embrace the learning opportunities that come from the community around you.
Top comments (1)
Great advice from Cheryl! Reviewing pull requests can be challenging but a sure way to learn a lot!