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 Fotis Fotopoulos on Unsplash

Anyone who tries to break into the industry of software engineering will face the question of which role to aim for at first. The software industry has a huge variety of possible roles that one can pursue, but as an aspiring engineer, it is clever to aim for something that is relatively easy to achieve.

Different roles in software engineering have different characteristics, some of which require not only the base understanding of the craft but also in-depth knowledge about engineering principles and sound architecture. …


Photo by Green Chameleon on Unsplash

This is a question that almost everyone who pursues the path of software engineering might ask him/herself. It seems to me that some opinions in the community are quite biased in the sense that some engineers with degrees will advocate that college is the right way to go, while others may disagree. It’s healthier to study the question from multiple perspectives in order to reach a sounder conclusion.

In wide terms, most would arguably agree that a college degree is not necessary to get employed as a developer. The industry proves this, since a very big amount of developers in…


Photo by Ferenc Almasi on Unsplash

The world of frontend development is rapidly growing, and the need for developers increases daily. Software projects these days are built with heavy user interfaces since the browsers are more powerful and can make applications highly interactive.

At the same time, older legacy projects face the issues of having to migrate to newer technologies since the old frontend frameworks are outdated and no longer supported. This creates a need of bringing in fresh blood — developers who gladly take on the challenge of migrating old technology to something new and fancy.

Anyone who keeps an eye on the job market…


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…

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