A software development journal — Introduction (Part 1)
Tags: beginners, webdev, programming, career
Published: 2023-10-22 14:30:17

This series of articles is being written with the objective of documenting the process involved in building a full stack web application from the ground up. I intend to publish an article every week in which I will present every part of the journey from the initial idea stage to a finished product. I am still learning the intricacies of software development (I hope I will never stop learning) so what I write here might oftentimes seem not optimal at the best or plain stupid at the worst. If at anytime anyone has a suggestion or correction to make please write me a message or comment. I’d really appreciate it!

Having the opportunity to work alongside a team of developers has taught me a lot of things beside simple coding skills. Writing these first sentences of this article series makes me think about all of the lessons in communication, organization, planning and general human relationships that I’ve learned as part of this process. I hope that by reading this series of articles, readers will be able to learn from my journey and my many mistakes.
Now that I’ve made a short intro let’s start with……

# The Beginning
I was at my desk fiddling with a pen. Thoughts were rushing through my head and I had no idea how to proceed further. I had recently graduated from LaunchSchool’s Core Curriculum and had transitioned from the rigors of a strict and well defined learning path to the vast open sea of options that the world of web development offers. In spite of the long time I took to learn software development I had nothing to show except a few small projects I’ve done during my time at LaunchSchool.
I was very confident in my abilities as a software developer, but I needed a way to actually be able to put my knowledge to good use and what better way to do that than to tackle a complex project?
I didn’t know what I wanted to build at this point. All I knew was that I wanted to create an impressive portfolio project that would be able to showcase the skills and proficiency that I’ve gained since I’ve first started the journey of learning web development.
I needed a team of like minded people to do that!

# Assembling the dream-team
Being familiar with the level of discipline and study necessary to graduate from LaunchShool, I decided that that would be the best place to look for teammates. I hastily crafted a message explaining that I would like to build what will possibly be the best-ever portfolio project that humanity has ever seen and I sent it to the LaunchSchool Slack channel.
And I waited…..5 minutes……no reply……1 hour no reply. No worries, I told myself, I shouldn’t be so impatient, Rome wasn’t built in a day after all. The next day still no reply. A few days later, no reply. At this point I was starting to get worried that no one might be interested in working with me on what was possibly the greatest rival to Facebook and Google combined.
A week passed and I still did not get a reply. The whole situation was very bleak, I was facing the prospect of having to work on what was possibly the next Spotify alone. ‘It’s allright’, I told myself, I will just spend the time (as I was already used to by now) studying more web development topics.
I think almost two weeks passed before I got my first reply from my fellow colleague Shwetank, shortly afterwards I got a reply from Antonina, and finally from Bob. I was thrilled that I possibly had the teammates that I was looking for. We decided to setup a video call so we can all get the chance to know each other, our goals and what we want to get out of this experience.
During the call, we got to know our objectives each other’s strengths and knowledge of different tools and programming languages. The fact that we all graduated from LaunchSchool meant that we all had a good mastery of the fundamentals and already shared common ground regarding the programming languages that we knew. The only missing piece was the fact that we didn’t know what project to work on. We decided that all of us will write down possible project ideas and meet the next week.

# The project
During the following week I struggled to come up with ideas for a portfolio project. The most important objective that I wanted to achieve with this project was to showcase our team’s ability to to build a full stack application from the ground up, using a modern tech stack. If the app could also solve a real world problem, that would be even better, but if not, I would of been satisfied to build a fully functional e-commerce store (thankfully that was not the case).
The next week I half-heartedly presented my awful ideas to the team, while hoping that somebody came up with something better than I did. Fortunately, Antonina came up with a brilliant idea!
She presented to us an app for local communities called ‘Neighborhood’ that would allow users in a particular location to issue requests for services and other ‘neighbors’ could respond. For example, I just bough a piece of furniture and I would really need some help setting it up; just issue a request on ‘Neighborhood’ and someone could respond and help out. Simple and brilliant!
The main purpose of the app is to encourage people in local communities to help each other and build long lasting relations based on mutual help.
Everybody on the team agreed that ‘Neighborhood’ was what we should start working on. Awesome! We now had an idea, but what were we supposed to do next and how exactly would we do it? Questions were racing through my mind again: What to start with, who should do what? What kind of database to use? What is Docker and why is everybody talking about it? Should we use React for the frontend? Do we design the UI first? Did I forget to feed the cat again?
Anyways, those questions will be answered in the next article in this series (only some of them actually).
# Notes
During this time I have to add that I benefited a lot from the guidance and mentorship provided by my friend and fellow LaunchSchool alumni, Iuliu Pop, who was very generous in sharing his knowledge and giving me a helping hand whenever I needed it.

# Resources
I’m not affiliated with any of these websites or the services/products that they provide. I’m just sharing resources that I’ve personally used and found to be very useful on my learning path.
https://launchschool.com — This is where I’ve achieved my mastery over the fundamentals of software development and I would gladly recommend any aspiring developer to follow their curriculum.
https://fullstackopen.com/ — This is a free course offered by the University of Helsinki that bridges the gap between the fundamentals learned at LaunchSchool and the tools used in modern web development.