Building an Application in Response to a Tough Climate. My Journey.

Stephen CStephen C
7 min read

The Backstory

As a self-taught developer with a focus on the MERN stack, my passion lies in crafting software that makes a difference. In a tech industry that's growing more competitive by the day, I set out to test a bold question: Can an indie developer, armed with self-taught skills, truly thrive in today’s market? I’m on a mission to find out.

The concept was straightforward. There had to be a solution for new developers to break into the software engineering field. Bootcamps come with hefty price tags and no guaranteed outcomes, especially now when junior engineers need extensive experience or degrees just to get their resumes noticed. College isn't an option for many, leaving self-taught developers isolated, often leading to despair and burnout. Alarmingly, 80% abandon their tech dreams within the first year.

I was once in that position. Three years ago, I wrote my first line of code after transitioning from a career as a mechanic in the US Air Force. I was lost, with no community to guide me, relying solely on YouTube tutorials and my own project attempts.

Progress was painstakingly slow. Yet, I refused to give up. I had never felt such excitement and passion for a career. Coding was my calling, offering the freedom to create and see my work come to life. The challenges were daunting—endless hours of failure, troubleshooting, revisiting the drawing board, poring over documentation, and navigating the endless loop of YouTube tutorials.

However, as with most journeys, the toughest paths often lead to the most rewarding destinations. I eventually achieved proficiency, particularly in React and the MERN Stack, along with Java and Spring boot. I finally felt capable of building what I envisioned, within reasonable limits, of course.

The Idea

I began to devise a plan. Today's new programmers require an alternative path—one that offers education, guidance, mentorship, and the opportunity to be part of a team. Most importantly, they need real experience building projects within an agile sprint framework, without the hefty $20,000 price tag of a boot camp. And so, I began coding.

The Project

I wrote a list of everything I needed to build, with no budget or skill restraints. If it should be included, it will be included. I am by no means the best programmer in the world. I knew there would be obstacles that would be extremely difficult for someone of my level to navigate. But I had tenacity, and the wealth of information available on the internet to help me.

The List Of Desirable Features

Team Based Approach

New programmers need a team, a community of people with the same goals and aspirations as themselves. I needed a way to place a new member into a team of 5. This team would need to learn together, grow together, support each other through the hard times and celebrate each others success in the good times. Additionally, I would need an area for team members to share ideas and updates. So I would need a news feed.


Team Mentorship & Dashboard

What does every team need? A mentor. Someone who is at a higher level of programming, and can guide these members along their path. The mentor would hold classes, assign tasks, follow up on progress to ensure accountability, hold mock interviews. Each team of 5 would have such a mentor. The mentor needed a dashboard to visualize this data.


Classes Delivered by Video Meetings

I needed to deliver something I hadn’t delved into before. WebRTC. It was a tough beast to tame. I decided on two types of meetings. Classes, which were scheduled by the mentor and accessible to all members of the team. And one-to-one meetings, which were requested by the member and approved by the mentor. Classes needed to follow a structure. 3 per week, the first to introduce a topic, the second for a live Q and A to iron out any difficulties and the last for each member to present what they had learned, struggled with and planned to return to on a later date.


Real-time Messaging between Team Members

Members needed to to able to communicate in order to support each other. A no brainer. So I needed to develop a real time messaging feature. I chose Socket.io. I would also need to implement a voice calling feature, which would require Socket.io as a signalling server and WebRTC to exchange media channels over a Peer Connection.


Team Projects/Hackathons

These members needed a way to build real projects and gain experience working in an agile framework. This is what most boot camps offer their students to experience how real software engineering teams work. I needed a way to allow members to assume roles, vote on projects, work in sprints, and then present their projects.


Coding Challenges, And An IDE

I would need an IDE and code editor. For a new programmer to master interviewing, they would need experience solving challenges in different algorithms. For this, I would devise a badge system and require members to solve a certain number of beginner, intermediate and advanced challenges. Then they would need to sit a real-time video interview with their mentor in order to earn the badge for this algorithm.


Ranking System

How to foster healthy competition between team members? Well, devise a ranking system and offer rewards for top competitors. Aside from badges earned from training algorithms, ranking points would be delivered from completing tasks, presenting good findings in class and studying. When a certain rank has been attained, the member would receive a reward for their hard work.


Notes, Findings & Drills: A Place For Record Keeping

A personal development of mine: When I’m programming, I often find that I solve a problem, but within a few weeks, when faced with the same issue, I forget the solution and have to research it all over again. To address this, I began keeping track of my ‘Key Findings’ so that I could quickly refer back to them in the future. This practice soon led to a large database of helpful solutions related to my tech stack. Similarly, I would encounter things that made me think, ‘Hmm, I wonder why that works like that; I need to research that later,’ only to forget about them. These became ‘Lookups,’ another entry in my database. My users needed a way to log these future lookups and a place to store their solutions. More importantly, they needed to be held accountable for actually researching these solutions. Therefore, I decided that one class per week would be devoted to users discussing the solutions they found for these lookups. Finally, I added ‘Drills’ for areas where the user understands what is required but needs further practice. Users can log drills, note their confidence level, track how many times they have practiced the issue, and include a link to their IDE.


Job Centre

A job application database and workflow for follow-ups was something I knew I needed. I would need a Kanban board like tool for users to visualize the application stage of various jobs, and a database behind to store contact details for companies, and when follow-ups after application and interview was needed.


Real Person Interviewing & Calendar

I found when coding or interviewing in front of a live person, things I would easily figure out while on my own would escape me while trying to display it in front of a real person. This was due to nerves. How can I help my users to circumvent these nerves? Give them practice. When one of users get invited to an interview, I would need my mentors to interview them on algorithms but also professional personality questions. My users would also need a calendar to submit approvals for new meetings, and a place from where to join the video meeting.

In Conclusion: Where do I stand?

For a first post, I apologize if I was a bit long-winded. While my project still needs a lot of work, I now have a minimum viable product. All of my features have been implemented (though some I am not overly thrilled with and will definitely be going back to improve), and I have a base to blog on and post updates as my dream project comes to life.

Aside from this, the amount I have learned while building this project has been enormous, and my own record-keeping databases are much more filled out. I now feel I can speak openly and confidently about full-stack development using the MERN Stack, and I hope I can help others achieve the same.

As far as developing this application as a business, I have set a hard deadline for the initial build to be complete by July 26th, 2025 (my birthday), and it will be ready to beta test with real software engineering hopefuls in August. I myself will be the first mentor for beta test purposes.

I thank you for reading my blog, and I do hope you can leave a comment or send me a note on LinkedIn. Let’s thrive in this trying climate together.

0
Subscribe to my newsletter

Read articles from Stephen C directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Stephen C
Stephen C

Hi, I’m Stephen, a self-taught developer specializing in the MERN stack. My journey into development began without formal education, driven by a passion for programming and building exciting projects. I’m currently building my own SaaS platform to prove that it’s possible for an indie developer to succeed in today’s competitive tech landscape. I’m focused on demonstrating that with the right mindset and tools, a solo developer can create something impactful and scalable. I believe in the power of independent developers, and through this project, I hope to inspire others to take the leap and build what they dream of.