The Importance Of Contributing To Open Source
- - 15 May 2025 - -How I started contributing to open source projects? And what can software engineers learn and benefit from doing so?
- -diff --git a/.gitignore b/.gitignore index 29104b4..4dea62e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +public/ resources/ .hugo_build.lock diff --git a/assets/hazem-krimi.pdf b/assets/hazem-krimi.pdf index a3bf7c4..aa6a90c 100644 Binary files a/assets/hazem-krimi.pdf and b/assets/hazem-krimi.pdf differ diff --git a/public/404.html b/public/404.html deleted file mode 100644 index dfa5cbe..0000000 --- a/public/404.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Hazem Krimi
-
- Hazem Krimi
- Hi again! So, you want to know more about me! We’ll go through how I got into tech, my education and my career and some other things you might find interesting. Hopefully you enjoy reading about me and I am looking forward to chat!
-Similar to many other software engineers stories I was fascinated by video games since childhood with the Atari, Nintendo Gameboy, N64, Game Cube and PC gaming. Some games I played when I was a kid are: Duck Hunt, Prince of Persia, IGI, Super Mario Bros (Of cource!) and many more.
-I am from Tunisia, and there you get to specialize in Computer Science early on in high school and that is exactly what I did in 2014. My first programming language was Pascal which is a similar language to Delphi. I learned the fundamentals of algorithms and data structures using Pascal, Networking fundamentals and got a little bit into webdev by the last year of high school. On my spare time, tinkered a bit with some game engines like Unity and Unreal 4 with some of my friends.
-In the summer of 2018, I got more interested in web development especially with JavaScript. So, in university I went for a program that is focused on web development but I did learn other stuff like C, Java, Linux, a bit of Assembly and I got into the intecacies of Computer Architecture and Operating Systems.
-The university program was mostly packed with the fundamentals but none of the technologies of today’s world. So, I did a lot of learning by myself through small practice projects and participating in hackathons. Most of the technologies I work with today I learned by myself including: React.js and React Native, Node.js, TypeScript, GraphQL, MongoDB…
-I started my career as a Front End developer in a software agency in Tunisia called EMIKETIC - building mostly e-commerce websites for small to medium businesses and sometimes on custom solutions for clients. There I got to learn Next.js, Strapi and especially how to work effectively in a team environment where I got to hone my communication and collaboration skills.
-Then I started working remotely in a company based in the UK called Cielo Costa - which is all about providing custom solutions to improves internal business processes.
-Currently, I am working at Finteum - which is creating a global financial market for intraday liquidity, enabling interbank lending for hours at a time.
-Even though I didn’t pursue Game Development, I am still a gamer but I don’t play that much anymore. Currently, I am more into Cycling, reading Mangas, Personal Development books and Computer Science related books. I also play Chess - and card games.
- -
- Hazem Krimi
- I recently started contributing to open source projects that I was using because I wanted to give back to those projects since they provide utilities I use on a daily basis either at work or on personal matters.
-Working on an open source project is similar to working on a project at a company. Since each project usually has a team of dedicated maintainers, resembling senior developers or tech leads, who review pull requests and merge them, are responsible for releases of the project and are responsible for its future direction by having a roadmap for example.
-Even though an open source codebase had many people contribute to it over the time, it is usually very well documented so it is fairly easy to get a big picture understanding of a project by reading the documentation. You can find documentation on the architecture, the directory structure of the codebase, project specific concepts or “business logic”. Also, you will always find guides on how to contribute, report bugs and how to install, run and debug the project on development mode. And if you get stuck, there are places where you can chat with fellow contributors or maintainers to get clarification or help.
-Therefore working on an open source project gives you experience in par with working at a company if not better. Because you will have to be truly autonomous with choosing what to work on, take the initiative and communicate with other people working on the project, and most importantly get deep into a new codebase and figure stuff out on your own for the most part.
-Another advantage is that you get to choose what project to work on and even what part of a project. This gives you the freedom and desire to learn about the processes of software engineering other that developing a project like deployment, testing and documentation. Not like in a company where you are tied to the position you got hired to do and even if you want to get into another area in a company project in my experience you will either slow the team down and potentially miss deadlines or you are denied access entirely.
-Don’t stress it out and just pick a project you use and find interesting. Look for any beginner friendly issues like bugs or small improvements. Then get to the documentation and read it thoughouly to be on the know on any rules set by the project creator(s), get familiar with installing the project and running it in development mode, and know where the communications channel are to reach the team. Lastly, get to the codebase and start working on the thing you have chosen to do and eventually get it done and open a pull request.
- -
- Hazem Krimi
- These are articles about things I learned about software engineering.
- - - - - - - - - - - -How I started contributing to open source projects? And what can software engineers learn and benefit from doing so?
- -
- Hazem Krimi
- I have over three years of experience building web and cross platform mobile applications in E-Commerce, Fintech, Auditing and Compliance.
- -Tinkering is what got me to where I am now as a professional software engineer.
- - - -
- - I am a software engineer with an extensive experience building AI-powered and user-friendly web and cross-platform mobile applications using various technologies including React, React Native, TypeScript, Golang, Rust, Kotlin and Scala to name a few. -
- -These are all the projects I worked on personally and professionally.
- - - - - - - - - - -UI component library utilizing Vite and Storybook to be used in my personal projects.
-Assembler for The Hack language from the Nand to Tetris course witten in Rust.
-Master touch typing with real code snippets from your favorite programming languages, powered by AI.
-These are articles about things I learned about software engineering.
- - - - -How I started contributing to open source projects? And what can software engineers learn and benefit from doing so?
- -
- Hazem Krimi
-
- Hazem Krimi
-
- Hazem Krimi
-
- Hazem Krimi
- These are all the projects I worked on personally and professionally.
- - - - - -UI component library utilizing Vite and Storybook to be used in my personal projects.
-Assembler for The Hack language from the Nand to Tetris course witten in Rust.
-Master touch typing with real code snippets from your favorite programming languages, powered by AI.
-VM Translator from The Jack language VM code to The Hack language assembly code as part of the Nand to Tetris course
-A discord bot that plays audio tracks from facebook, youtube and podcast websites.
-
- Hazem Krimi
-
- Hazem Krimi
-
- Hazem Krimi
- These are articles about things I learned about software engineering.
- - - - - - -