How did I end up here? Medium has been a platform that I have been revisiting quite frequently. Therefore, I felt that I wanted to give back to the community by sharing some of my experiences and thoughts mainly about my own software development profession.

Image for post
Image for post
This is me 😀

So who am I? I am a 27-years-old software developer who is born and raised in Sweden, with roots from Ethiopia and Afghanistan. I have had a genuine interest for computers since I was a little kid, but I was never introduced to programming until later in my life.

Like many young people, I had…


Image for post
Image for post
Photo by Pakata Goh on Unsplash

If you’ve been following the software development community, you’ve probably come across content about “the top programming languages in 2021” and so on. Developers tend to talk about the different languages and rank them differently based on a range of factors.

Usually as a junior developer, you want to keep your learning as focused as possible and not risk spending time on technologies that you will rarely use. Even in the actual relevant technologies, you might want to skip learning features which aren’t used in reality very often. …


Image for post
Image for post
Photo by Muhannad Ajjan on Unsplash

Programmers know that frameworks are there to help their lives. With a framework, you can do things a lot quicker than doing it natively. Take Node.js as an example. No one writes applications by merely using native Node.js. You always add a framework on top of it like Express.js which abstracts away a lot of the noisy code, so that you as a developer can shift your focus to your business logic instead.

While frameworks are great and developers swear by them and even fight over which one is the best, there are some things that a developer should look…


Image for post
Image for post
Photo by Markus Spiske on Unsplash

Often times, developers talk about legacy code. It seems that everyone has their own definitions of what they regard as legacy. If you ask people who support the TDD methodology, you will probably get the answer that legacy code is any code which lacks automated tests.

Others define it as code which lacks support in terms of documentation and thus makes it hard for anyone to maintain it.

A very vague definition is the one which states that legacy code is any code written by someone other than yourself.

I think that there is truth behind each one of the…


A project rewrite is not always an optimal solution

Image for post
Image for post
Photo by Fotis Fotopoulos on Unsplash

We’ve all heard about successful software project rewrites. Sometimes, rewriting a project from scratch is what will save it from complete failure. It might be the final resort and turn out to be a company’s best decision.

Before going deep into the potential problems with rewriting a project, let’s focus on the definition of a software rewrite. A rewrite is defined as the act of re-implementing existing functionality without re-use of its source code, or in other words: a complete replacement of the current code with a new codebase. A rewrite is not a bunch of small redesigns of the…


The 3 Phases Juniors Go Through In Order To Mature As Developers

Image for post
Image for post
Photo by Florian Olivo on Unsplash

Growth is crucial for any software developer. Since the world of technology is steadily evolving and things are in a constant change, a developer needs to grow in order to survive and stay relevant in the industry.

There are phases that every software developer most likely will go through. Some developers reach those phases or milestones quicker than others, but the real signs of improvement appear once you hit those points. It’s very important to become mature as a developer if you want to truly perform at a professional level.

Let’s explore some of the growing phases that a developer…


Image for post
Image for post
Photo on Unsplash by Joshua Aragon (@goshua13)

A topic which is often debated among junior and entry-level developers is whether the job market for software developers is oversaturated or not. In other words, is there a lack of available programming jobs in the market at the moment? Of course, some areas have a higher demand for software developers than others, but there are some patterns that can be recognized globally.

First and foremost, it is necessary to discuss why some developers are experiencing a real hardship in finding programming jobs, and why others are experiencing the complete opposite. My perception is that the ones who face hardships…


Should You Learn Data Structures and Algorithms Or New Languages and Frameworks?

Image for post
Image for post
Photo on Unsplash by Tim Gouw (@punttim)

New developers frequently find themselves asking this question. As a new developer, you can easily get intimidated by the vast amount of information out there about programming and software development. It is a big ocean of knowledge and it can quickly become overwhelming for someone just starting out.

This is especially true if you’re trying to get into the field as a self-taught developer. Those who take the traditional college route are better off in the sense that they get a clear roadmap to follow and their mentors will guide them along the way. Yes, there are roadmaps to follow…


Image for post
Image for post
Tailwind CSS — is it worth it?

I never intend to bash any technology on purpose. I believe that every technology has its valid use case. But it is necessary as a developer to analyze a technology as well as its pros and cons before following the trend of adopting it for the sake of it.

One of the newer technologies which gets a lot of attention these days is Tailwind CSS. When I first heard about it, I was immediately interested because of my natural inclination towards the front end world.

Tailwind is a CSS utility framework. It is created for utility purposes, meaning that it…


Image for post
Image for post
Photo on Unsplash by Alvaro Reyes (@alvarordesign)

I am very grateful for having gained great insights and big takeaways early in my career as a software developer. Due to the nature of the project setup that I worked with as well as working in a fairly small team with experienced developers, I managed to pick up lots of learnings on my day-to-day work and grow very rapidly.

There were times where I had to seriously step up my game because of the expectations, and I had to take on bigger responsibilities. …

Yamo Gebrewold

A fullstack software developer with a great passion for frontend technologies.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store