Dev Retro 2024:

Dev Retro 2024:

Three years of professional experience.

Sorry if here are many errors and typos in this articles, but I’m trying to improve my writing in english.

I’ll try in this article to talk a little bit about what happens to me inthis year (2024), my failures, my success, what I learn, what I don’t still understand. Why Dev Retro ? In 2023 I competed for Hashnode DevRetro 2022 and it was the name of the competition, and I like it, so

Introduction

Ok, so first of all, I’m trying to restart with my blog. I started blogging in 2020-2021 but I was not regular so I’m planning to restart and write a monthly update about my work (mostly). I think this will help me to track my progress so I’ll write more for me and on my studies and works monthly.

2024 ? I was (and I’m still) still looking for answers to many questions ! It was a nice year, many struggles, a lot of works, a lot of reflexions. Mostly around my work as backend developper at Uptimsie (even if I was doing fullstack tasks 😅) and my personal work: online courses.

At work

So at work, it went well (I think). We’ve started to port and update Uptimise Benin codebase to Ivory-Coast. I suppose that it’s what we call “scale” right ? Anyway, we need to change some parts of our services to handle in the way Ivory-Coast manage human ressources. We are talking about: operations, default setup, flow and so on. So we need everything related to the technique to work well: API, services, CI/CD. The CI/CD part you know and I know that it’s not me (😅). Our Lead did it. Like always !

And guess what ? I was appointed to lead the development of Uptimise Ivory-Coast. I was not hyped, it’s good, but at the beginning I was not so interested: you’ll be sometimes the first that the CEO will call if there is problem. Can you imagine ? A lot of responsabilities ! And this is what our Lead did so far.

But we know that it’s a normal thing, learn to lead some colleagues, be the one that a bug in production is assigned to, to resolve it asap. It’s normal for a career evolution ! And guess what again, I finally liked it 😂. You know why: I could assign an issue to our interns or delegate some tasks that are important but could boring me to them 😂. I know it’s malicious but I love it.

Fun Fact: Our Lead gave me access to some environments/servers and the first time I run our CI/CD after some updates, I broke things in production. I was like: “Damn, why this happen the first time I got the access, am I so bad !”

After May I think, I started to get tired, there was a lot of work to do for a small team like ours. And as I was responsible of some microservices when we building the Benin’s version, I’ve asked our Lead to do some refactoring in thes services for Ivory-Coast version. Don’t ask me why 😂. Sometimes I make a “git blame” and was shocked that I wrote some parts of the running code. I was like: “How could someone wrote this “shit” code" and the lead will look at you like (I’m sure he thinks something like): “are serious, you don’t know that your shit code is every where”. Let’s praise the Clean Code Shit Code.

I finally did the refactoring for a part of one service, I love it. And it’s one of the reason (personally) I dont like freelancing or projects that you deliver to a client after few months and forget about it. I like to see the evolution of my own code, learn to improve it. If I cannot understand my own code after some months I suppose others could not too.

And now what I’ve learned from my work:

  • Good comunication is the key: inside the teams, with those who are outside (CEO, product designer)

  • I don’t like to talk with the clients, be in discussion with them, maybe it’ll change but (you’ll learn from the next section) I prefer to stay in background do my job, get paid and it’s all. Everything related to “meeting”, “talk”, “long discussion” just annoyed me.

  • It’s good to have some elders that advise you on how to do some stuffs.

  • And there is so much to learn as a backend developer that sometimes I doubt that I could handle it.

  • Learn as I much you could, as much you and leave the rest in the hand of…God !

  • Progress at your own pace. You are only competing with yourself and your past versions.

Personal

I love personal plans, personal works, why ? Because it’s the only time that you’ve for yourself to do dumb, cool, shit, things ! But if you don’t find a good balance with your work, you could loose everywhere.

Backend dev is great but…

I’m interested by learning low level stuffs too. Not “Embedded System” particularly because what I love is not to design the electrical circuit or build a hardware. But I’m more interested with the code that run on these hardware. It’s technically called: “Embedded software” or “System Programming”. You know the topics like: process and memory management, file system, devices drivers. I finally understood it after studying the Nand To Tetris course.

I was able to study from “October 2023” to “July 2024” (10 months) a course about these thing even if I’m not sure that one day I’ll need it.

So now let’s talk in depth about my personal work in 2024

Online Low Level Courses

Online Low Level Courses (it’s a fake study) that I’ve imagined for my self to study system programming.

It contains:

From Nand To Tetris: Building a Modern Computer From First Principles

From Nand to Tetris: Building a Modern Computer From First Principles is a populare online course available on Coursera that I studied from October 2023 to July 2024. It’s in two parts:

  • Hardware: Logic gate, CPU, RAM, ALU and Registers implementations in HDL, Assembly Language,

  • Software: Jack programming language, Virtual Machine, Compiler, OS and their respective implementations

I enjoy study this course during my weekends and the nights. I was able to complete it (without the OS part) even if I was tired from daily tasks at work.

After this course I’ve two ooptions: OS concepts and compiler. I choose OS because I think it could help me to understand more backend development and become one day may be “Infrastructure Engineer” or “Platform Engineer”.

If you want to know more about my experience while studying Nand2tetris, I wrote a more detailed thread about it on Twitter

Advanced Embedded Linux Development Specialization by CU Boulder

I’ve started to study the course Linux System Programming and Introduction to Buildroot which is the first part of Advanced Embedded Linux Development Specialization. This course introduce me to the linux kernel source code and the linux system programming: fork, execv, thread, kernel cross-platform build, …
They provide short and well explained videos with assignment to complete. In addition they are two books as ressources to read: “The Linux System Programming” and “Mastering Embedded Linux Programming”.

Rejection for master application

I applied for two masters and was rejected by both (I was shocked):

  • embedded system in five universities in France.

  • electrical and computer engineering at CMU.

I re-apply again for the last one and now I don’t know even if i’m accepted I’ll go to do it.

Why ? Now that I understand that I could learn system programming by myself and that it’s what I like in embedded system field and that backend dev is cool too, I was less attracted by the master.

Next Year(s)

You kow backend development is paying my bills and until I was able to land a job in system programming I’ll try to improve my skills in backend development. There’s no doubt about it. I started to love it, what do you want, it’s what help me to buy my courses, so 😂. But for the next year it’s simple:

  • Backend development, I’ll continue to learn about : System Design, Django or a new backend framework, microservice, complex stuffs, data base

  • Data Structure and Algorithm: I need to up my skill in this area

  • System Programming: Learn Go and container from scratch, Linux driver developmment, maybe networking and why not to try to contribute to the Linux Kernel

  • Coding Challenges Projects: Complete some projects on the website and work mainly around CLI projects, server/HTPP/Networking and containers projects

Conclusion

During this year 2024, I learn more about myself, to accept the life situations and change/adapt to what’ll happen. And some lessons for myself:

  • Be yourself

  • Learn what you can

  • Do your best

  • Take rest

  • Learn/Study what make you happy

  • You’re not in a running agains other but you’re competing whith your version of yesterday

  • Time fly, you need to make some big decisions

  • Be humble

And keep this in mind