Eman's Journey - Dev Retro 2022
From Self-Taught to Success: How Eman Built a Career in Tech Without a Degree
The Civil War
I had a relatively privileged upbringing, attending private schools and doing well academically. In 2013, I completed high school and traveled to Juba to get a new passport and prepare my documents for university admission. This was an exciting and important time in my life as I prepared to take the next step in my education and embark on a new journey.
Unfortunately, a civil war broke out in my country, causing a dramatic shift in the political landscape and leaving a lasting impact to this day. Millions of people, including my family and myself, were forced to leave our homes and seek refuge in Uganda.
The war led to the collapse of the economy, resulting in widespread financial losses and hardship. The war and its aftermath were difficult times for my family and many others in my country.
What is Computer Science?
I was given the opportunity to study Computer Science in Zimbabwe through a scholarship. Although I was unfamiliar with the field, I had no other options and therefore accepted the offer. The scholarship presented itself as a chance for me to not only further my education, but also to create a better future for myself and my family potentially.
I arrived in Harare, Zimbabwe on September 11, 2015, nearly a month after the beginning of the semester. I had no idea what computer science was and I had never heard of any programming languages.
Everything the lecturer said felt like a foreign language to me and I scored 2 out of 50 on my first programming test!
Bucky Roberts π
I came across a fellow named Bucky Roberts on YouTube, he had a channel called TheNewBoston, and he provided simple and entertaining explanations of programming principles. I began staying up all night watching his tutorials and eventually, my understanding of programming improved significantly. In a few weeks, I became the person that my classmates would turn to for help with programming questions.
This is the video that made me fall in love with programming.
First Semester
I enjoyed studying Operating Systems and Programming in C and found myself spending a lot of time on these two subjects. I took the exams for the first semester and passed 5 out of 7 modules, but I didn't do well in Communication Skills and Analogue Electronics.
Due to financial constraints, we were unable to go back home for the holidays and had to stay on campus. It ended up being a good thing because the other students went back to their homes and the internet speeds were much faster. I took advantage of this opportunity by spending countless hours watching programming tutorials on YouTube and illegally downloading courses from FrontEnd Masters and Lynda.com.
Facebook Developer Circles
In 2017, the Facebook Developer Circles program was launched in Harare, and I had the opportunity to attend the ceremony with some of my university colleagues. I was blown away by what I saw and experienced.
It was a different feeling compared to my school days, I met developers who were creating real-world applications, which was something new to me as I was only familiar with basic hello world programs and exercises from my C Programming textbook.
The meetup exposed me to concepts such as development servers, APIs, and the differences between frontend and backend development.
I was very inspired by Achim Munene (Far right) and Kudzai Chasinda There was a Hackathon and Kudzai won an award for a bot he built. It was the day I decided I wanted to become a Software Developer, just like them!
Dropping Out π€¦πΏββοΈ
In 2017, I experienced several challenges and made a series of wrong decisions during my second year of university that ultimately led to the loss of my scholarship. These challenges included alcohol dependency, undiagnosed ADHD, depression related to past experiences with war and trauma, and an intense focus on programming that caused me to neglect other courses. As a result, it became difficult for me to maintain my scholarship and continue my studies.
I used this laptop to learn programming and borrowed the screen from a friend in the Electronics Engineering department who used it for experiments.
Back to Uganda πΊπ¬
In 2019, I returned to Uganda after a difficult period of time in university. I knew that it was unlikely that I would receive another scholarship, and my family was unable to provide financial support. However, my older brother was able to send me $400, which I used to purchase a used Lenovo laptop. This allowed me to start coding again after a 2-year break, during which I had forgotten much of what I had learned. It was a challenging time, but I was determined to keep working towards my goals and was eventually able to pick up where I left off and continue learning and growing as a programmer.
Overcoming my challenges
To experience personal growth, I realized that I needed to make sacrifices and put in extra effort to improve myself.
After returning to Uganda and committing to making changes in my life, I took the following actions to work towards becoming the best version of myself:
Talking to Professionals
In order to better understand and address my situation, I sought out the advice of medical professionals and found their guidance to be extremely valuable.
Cutting Off bad habits
In 2019, I made the decision to stop consuming alcohol and staying up late. To better manage my time and career, I used Trello boards to organize my plans and set specific goals for myself, including learning certain skills. By making these changes, I was able to better focus on my goals and make progress toward achieving them.
Imposter Syndrome
I spent a lot of time watching tutorials and felt like I was making a lot of progress. I was able to follow along with the instructors and solve any code challenges they presented, but I struggled to build anything on my own. Despite being able to grasp concepts quickly, I found it challenging to apply what I had learned to my projects. As a result, my GitHub profile remained largely empty until this point. It was frustrating to be able to understand the material but struggle to put it into practice.
Brian Holt is Hosting an AMA on Hashnode!!
I knew Brian Holt from Frontend Masters and I owe him a debt of gratitude for teaching me React and also encouraging me to break out of the tutorial hell and overcome my imposter syndrome.
It is said that an image is worth a thousand words.
The green dots in the image represent countless hours of hard work and effort. I was determined to make the most of my circumstances and work towards my goals. I was willing to put in the time and effort needed to achieve success, even when the path ahead was uncertain.
A Second Chance ππΏ
Thanks to my participation in the Facebook Developer Circles program, I was awarded a scholarship to pursue a diploma in web development. This opportunity allowed me to learn and grow in my field, and it significantly impacted my career by helping me reach the next level of professional development. I am grateful for this opportunity and the knowledge and experience it provided.
OpenClassrooms π
I received a diploma in front-end development from OpenClassrooms, a leading online learning platform in Europe. The program is designed to provide students with hands-on, project-based learning experiences that teach relevant and in-demand skills. To earn the accredited diploma, which is recognized at level 6 of the European Qualifications Framework (EQF), students are required to complete nine real-world projects that cover a range of topics including database modeling, software design, interface design, and API development.
Completing the diploma program gave me a huge boost in confidence, and I began to contribute to open-source projects and volunteer in local developer communities. I would either facilitate programming workshops or act as a coach for complete beginners looking to learn how to code. These experiences allowed me to share my skills and knowledge with others, while also continuing to learn and grow as a developer.
During my studies at OpenClassrooms, I worked on the following projects.
La Revue (React.js, Google Maps APIs, Express.js).
Shadows of Mordor (jQuery, HTML5, CSS).
Quote Generator (HTML, JavaScript, Sass).
Express Food (MySQL, PHPMyAdmin).
I also had the pleasure of becoming friends with some amazing individuals such as Mahfoudth Arous, Yahya, Donna, and Chaimaka Osuji, who wrote a very kind message to me earlier this year.
Outreachy
I later learned about Outreachy, an online internship program that offers opportunities to work on open-source projects. If you're just starting in programming, I highly recommend applying for this program.
I applied and chose a project called "Mozilla's Tokenserver - From Python to Rust" to work on. At the time, I was learning Rust and thought this would be a great opportunity to put my skills to the test. By the end of the contribution period, I had submitted a total of seven pull requests. I vividly still remember these two.
My First Job π
In June 2020, I was able to secure my first job thanks to my contributions to open-source projects and involvement in the local developer community. The job involved working on a project called LabXpert, a comprehensive laboratory information system designed to streamline and improve the medical testing process from sample collection to the release of results. This was a great opportunity for me to apply my skills and knowledge to a real-world project, and I was excited to be able to make a positive impact on the quality and efficiency of the testing process.
Summary βπΎ
The project I was working on was very dynamic, requiring me to constantly adapt to changes. I learned that it is often more effective to abandon initial, complex plans that may include unnecessary or flashy elements and instead focus on quickly delivering the product and getting feedback from users.
Things I have learned π¨πΏβπ»
Becoming familiar with development practices such as containerization, multi-environment deployments, and working with CI/CD pipelines.
Examining the pros and cons of using existing infrastructure versus creating custom solutions.
Determining which features are most important and focusing on delivering value to users.
Skills Gained πͺπΎ
MongoDB (Aggregation Framework, Advanced Data Modelling).
Redis, Messaging Queue, Event Sourcing, and Event-Driven Architecture.
Docker, Portainer, Gitlab CI/CD, Traefik, and Firewalls.
TypeScript, Redux, Progressive Web Apps, and Web Workers.
GitStart
After working on LabXpert for 10 months, I was offered a new role with a remote startup in the USA that offered a higher salary than my previous job. This allowed me to better support my family financially.
In this new position, I worked on large-scale commercial and open-source projects with distributed remote teams. It was a great opportunity for me to continue developing my skills and experience in the field.
Summary βπΎ
Working at GitStart has taught me the importance of being proactive in ensuring that projects are completed efficiently and effectively, as well as the importance of putting the team's goals ahead of my own. This includes taking the initiative to address any issues or challenges that may arise, setting up regular check-ins and updates, and seeking out resources or support when needed. I have also learned how to delegate responsibilities when necessary, and how to step up when my team lead is absent. Overall, my time at GitStart has allowed me to develop valuable skills related to teamwork and project management.
Things I have learned π¨πΏβπ»
Gaining experience with Mongorepos and Microservices, as well as learning how to properly structure projects.
Conducting self-reviews of my code and documenting discussions in Pull Requests or public channels, rather than private direct messages.
Exploring the inner workings of popular open-source projects such as React.js and Calcom.
Developing technical writing skills, giving tech talks, and working together as a team to grow and improve.
Skills Gained πͺπΎ
GraphQL (Apollo and Relay).
Advanced SQL (PostgreSQL), Prisma, and Hasura.
Advanced TypeScript, Abstract Syntax Trees, and Compilers.
i18n, State Machines, and more about state management in web applications.
Hashnode
I have participated in three hackathons from Hashnode this year, and I have emerged as a winner in two of them.
Although I was not successful in my last hackathon attempt, it inspired me to keep working on my app and turn it into a full startup. I have joined forces with a poet from Rwanda and a UX/UI designer from Germany, and together we are building a company called Inspirers.
Inspirers π
Inspirers is an app that connects you with experts who have achieved success in various fields and can provide guidance and inspiration. Through the app, you can learn about their stories, methods, and tools and see how they were able to achieve their goals. You can then adopt elements that fit your personality and add your creative twist to them as you work towards your own goals.
Ways to increase productivity
To effectively manage my time, I maintain a calendar and schedule blocks of time for meetings, writing, and coding. I use tools such as Google Calendar and Calendly to assist with this.
Listening to Lofi music and using the Pomodoro technique has been extremely beneficial for me. I use an app called Llama Life for this.
Using an external monitor and being able to efficiently manage multiple apps and windows has greatly improved my productivity. I use an app called Rectangle to help me with this task.
To streamline my workflow, I use two different web browsers (Firefox and Google Chrome) simultaneously. I have installed the extensions Toby and dailydev in one of the browsers, with Firefox being used for documentation and quick reference, and Chrome for my daily tasks. Toby allows me to save my tabs for later, and dailydev provides me with a curated feed of articles related to my interests.
2022 Wins π
Winning two Hashnode Hackathons.
Earning from technical writing.
Traveling for my first international conference.
Upgrading my home office.
2023 and beyond ππΏ
I have been offered a job as a Frontend Engineer at a software company in Manchester, UK and I will begin working there in January.
My other 2023 goals include:
Returning to college (again π).
Launching my Startup (Inspirers).
Relocating to [Redacted].
Repaying the kindness and support that I received early in my career by mentoring other developers.
More office upgrades!!!!!!
I appreciate you taking the time to read my article. I hope you had a happy and successful year β€οΈ.
I'm available on the following platforms if you'd like to connect:
I want to express my gratitude to Tasha, my mentor, who inspired me to start writing. Also, huge s/o to:
Mark "Mayor" Techson for being a continuous source of inspiration and also for writing this awesome thread.