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.

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…


Photo by airfocus on Unsplash

In most software projects today, you tend to work in a typical Scrum fashion which includes working in time periods called sprints. A sprint is usually two weeks of work where a backlog has been planned beforehand and filled with tasks and then distributed among the software developers in the team.

Usually, the tasks are estimated so that every developer can finish the assigned tasks in a reasonable amount of time and meet the final deadline at the end of the sprint. But developers vary a lot when it comes to how quickly they execute tasks. …


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. …


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…


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

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

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…


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?

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…


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…

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