My apologies if there are any errors due to my level of English.
Before doing my dev retro 2022, I'll talk a little bit about 2021 or should I say the last 6 months of 2021, because these months have a serious impact on my career choice. So let's go.
The last six months of 2021 were crucial for the next steps. During these last months three main points:
-
Finalize my project and the engineering thesis,
-
I did my internship in embedded systems
-
I did my first Talk at the online Meeting Embedded.
Yes, I have been working on these three points for the last six months.
I should make an electronic system that allows the remote control of electronic quantities (voltage, current, ...) of a solar photovoltaic installation. I used the ESP32, and Arduino (ATMega 328), all programmed in C++ (my favourite system programming language). Already there as a (future) power engineer, I felt much more comfortable in programming than in power. And I started coding in my first year of college so I knew I liked software development and would end up working in that field if I continued.
There was the pressure of the internship, the thesis to finish writing, the project to finalize and finally, I did the defence and got an excellent mention. Yes, I'm a power and process engineer.
I like the embedded world. Writing code that runs on a system with 13kb of memory, a system where the speed of response is more than crucial. I was almost 99% sure that I was going to make a career as an embedded system engineer (now you understand why I chose this defence project). But the second reason, I liked the company I was working for (I won't give it its name). And it is in this same company that I did all my internships over 3 years, that is to say, 10 months in total. Despite several points that I didn't like and that I closed my eyes on during the whole period, I liked going there because I felt useful and I was doing what I liked: programming electronic cards, thinking about memory allocation, and working with pointers.
And it seems that the company liked me. They wanted to hire me as soon as I graduated. But a series of events made me finally reconsider all those little things I didn't like and I finally decided not to continue with them after I graduated:
-
Working until late, 10 pm (I wasn't really against it, but at some point, you have to stop)
-
Lack of respect
-
Talking down to you when you're dealing with bugs that only you can work on It (I took screenshots that are in my google photo as a souvenir). I'm not bragging, I was the only one after the boss who coded embedded in the team, the others are electronics or web dev. Sometimes I slept in the company office just to finalize some tasks.
-
I was working on the company's projects to the point that my thesis project was only done in one month: December. While the defence was scheduled for Tuesday, December 29, 2021, I was still working on the project the Saturday before (the 25th). On top of that, I faced my first burnout (even in my senior year with the pressure, I never experienced anything like that). I kept the after-effects, a real trauma, even my parents are not aware of it. With the support of my older brother, I got over it and at the end of the internship, I completely skipped the company, and cut the ties (which is not my habit), because I felt chills every time the name of the company was mentioned. Even today my parents and relatives ask me why I don't work in this company, but I didn't want to talk about it.
My goal at the end of the internship is to find another company, maybe on board, but I don't want to work in this company anymore.
Yes, I love 2021: I attended my first (online) Tech conference as a speaker. It was at the Meeting embedded 2021 held in November, I was happy and excited to present my C++ memory management library for Arduino and the benefits of embedded for young developers (like me). Thanks to @meetingcpp who organized it.
Oh yes, the video is available on YouTube (don't make fun of my English)
I was motivated to continue in software engineering because I thought I had my chance and my place.
I hope you understand now how and why I switched from energy engineering to software engineering. But I didn't leave the embedded system completely, I still have my electronic components for tinkering (2023 has some heavy stuff)
Now let's talk about 2022
Here is how 2022 went at my level as a dev:
![how 2022 went for me](https://cdn.hashnode.com/res/hashnode/image/upload/v1672609009925/0e0fc708-89e7-4504-bba9-db2567810a21.png align="center")
Let's detail these different phases
I took three months off, to reflect on my career and to improve myself in JavaScript and React. Because yes, JavaScript was my first programming language before C++. And I made my debut in React in 2020 so I had to improve and get the hangs right. And with Twitter I learned that JS/React in 2022 without TS is inconceivable, so I started in TS (which I loved especially because I'm a fan of typed languages). And I assure you that this choice was beneficial for the future. After 3 months I felt the need to work in a start-up to get more skilled, meet people, and learn a lot about software engineering. And guess what: two friends who don't know each other sent me the same internship offer at ERUGIS who wanted a dev in React. The two friends knew how much I was a React fanatic (by the way the only JS framework I use if we don't count Next.js). So I apply and you know the rest...No you don't. In the meantime, I had planned to go to Ghana to learn English (March). So I was preparing for the trip when ERUGIS called me for an interview for the internship, I went there for a remote internship because I should be in Ghana during the period. Fortunately or unfortunately it was not the company's perspective so I was not accepted but one point to remember (our lead dev told me afterwards): I was given 2 web pages to reproduce with React. And even though I knew I wasn't going to do the internship, I still reproduced the page, added the interactions and sent the result in the time frame I gave (2 days I think). This will help me later on.
At the beginning of April, the trip to Ghana was aborted (difficulty to find a room from Benin, the devaluation of the Ghanaian currency, etc.). So I decided to go into business for good. And I wanted to do React and why not backend? And guess what? I went to my Gmail, I searched for ERUGIS then I wrote them (it was the lead dev's address) that I wanted to work with them, I'm available physically and full time (I liked their stack, and I wanted to learn, blah blah blah) and Alhamdoulilahi, they called me within a week saying, I quote: "Come as if you were starting your internship, keep your documents with you, ID card, diploma, ..."
On April 19, 2022, I start my internship as a dev frontend at ERUGIS. The team was very young, pleasant and friendly, and my integration was fast. Moreover, the company was migrating one of the frontend applications to TS, so guess how I was with my typing and utilities in TS (Pick, Omit, Type indexing...): very happy.
During this period I made my first big mistake.
If there's one thing I'm not at all comfortable with in the frontend, it's CSS (a nightmare for me) and if there's one thing I like to do all day long in the frontend, it's JavaScript. And my goal was to be like @kdy1dev: the creator of swc. Frankly, I was fascinated by his work: writing a compiler for TS to JavaScript in Rust as well. So I started to learn Rust and then Go when I came back home or during the weekends. But you know what, it was stupid of me: I was a beginner in software development, I don't have a solid foundation, and the projects I was working on at ERUGIS, had nothing to do with these technologies. So basically I was learning something else when I needed skills in other things (you will understand later that it was really stupid). Nevertheless, I was learning about the React ecosystem, the packages, and the news. But it was in July that the good things start: I should go up in competence and become full-stack (with my background in C++, node and Kotlin yes I had done Kotlin two years ago), the company and my lead ask me to start with the backend...And there again I made a mistake!
I liked this period because I was doing less CSS and I was touching another language other than JavaScript. Since it's Java and I had done C++, I quickly got used to it... But I bitterly regretted it. Let me explain. The basic stack of the company is:
-
frontend: TS + React
-
backend: Python + Django. The lead is a Django rockstar, frankly. The company wanted to try a new technology which was Java especially since they were migrating one of their applications to microservices. I then decided to use it to develop the microservice in question and guess what it was a failure:
-
Java is (really) verbose
-
Some basic features are headaches like JSON manipulation where you need either Jackson or write your serializer, go through miles of methods
-
CRUD or rather CRD because Hibernate doesn't support update
-
And many other things On top of that, during the deployment, I hit my head, as a result, the microservice was rewritten in Python/Django in less than a week by the lead, I told you he was a Django rockstar.
Even if in a start-up you have some flexibility or freedom in the work, use the tools and technologies best mastered by your colleagues unless you are a senior full of experience.
These were my last months as an intern and I also switched to Python + Django and honestly I love it, long live Python. I am currently focusing on the challenges of the projects, how to architect the code, and tackling different problems instead of spending time on how to "parse a JSON".
I also had the chance to do pair programming with the lead and guess what: it's beneficial. I realized that I was focusing too much on learning syntax, new features, and cool methods without really giving much importance to the code architecture. Now it's better, I assure you. Because I start thinking about optimization when necessary and he gave me some links on software engineering that I consult from time to time. Let's say I'm becoming a full-stack web developer. In October, I officially become a software developer at Erugis.
Having elders who guide you is beneficial, especially if you are self-taught.
Yes, I have become a software developer officially, I am getting more and more tasks and responsibilities in the company and I am learning a lot. But this period is marked by my desire to publish articles. I always wanted to publish articles and use humour to talk about tech, and software development. I had a blog on which I published some articles about JavaScript, React, and embedded systems. But you know what, I didn't get any feedback, and my blog wasn't consulted. But Twitter, or rather one man, is going to change everything and this is on November 25th.
I commented on a tweet from @Ákos Kőműves where I asked him on which platform he advised me to publish my articles and he answered me in a friendly way (I never saw him): Hashnode. And he didn't stop there: he went to my blog and saw this article and strongly advised me to publish it on Hashnode and to follow it with other interesting articles. I was so amazed that I went straight to creating my Hashnode account and started drafting what will be my first article on Hashnode in 2022. If @Ákos Kőműves you read me (this writing is too long) thank you.
You may wonder why I'm so happy to publish on Hashnode? Look at the following statistics:
![histogram of my blog's views](https://cdn.hashnode.com/res/hashnode/image/upload/v1672693419875/3391dd38-ab97-4826-973e-fe701ca966dd.png align="center")
![view per article](https://cdn.hashnode.com/res/hashnode/image/upload/v1672693564390/877b8035-05ff-4e06-a326-cb9855c928c8.png align="center")
My first article was viewed more than all my articles published on my old blog. My goal now is to publish regularly, maybe twice a month on topics like React, Django, and Raspberry.
I like Twitter because you exchange with amazing people and I also like to publish articles, just that it requires consistency.
This is how 2022 was at my level, or rather the outline of my year 2022. Now let's talk about 2023.
I want to grow as a software developer, and learn about various topics like:
-
microservices,
-
software architecture,
-
design patterns,
-
data structures and algorithms,
-
Django,
-
raspberry and I try to work on a side project that I will mature and also publish articles frequently.
Frankly, this is a long article and I'm tired of writing. I have nothing more to say, just that 2022 wasn't bad at all, on the contrary, I spent it well, it's 2023 that is going to be heavy for my dev career because I have to improve my skills. And I'm glad I published this article, it allowed me to review the lessons learned during the past 365 days. Long live the developers, long live Hashnode, happy #DevRetro2022 days.