Software Engineer · Dublin

I’m Majed, with more than a decade of experience in backend and distributed software engineering. I currently work at AWS Dublin in the networking domain.

I believe two essential traits of good software are reliability and maintainability. My journey began as a self-taught engineer without a strong engineering background. Through sheer conviction and years of hard work, I learned a great deal about this domain. I have strong opinions, loosely held.

Notes

Why meetings become lengthy

Lengthy meetings are the consequence of poor planning.

Poor planning is the outcome of uncleared goals.

Uncleared goals are the by-product of insufficient knowledge of the business.

Learn what is relevant

Avoid distractions. Learning everything is not necessary, just focus on what is relevant to your domain and profile.

There are individuals who are trying to convince you of what you should know because they have a desire to teach.

Why development processes break

There can be two possible reasons of any broken process in a software development team.

  1. Not all individuals are aware of the value added by the process.
  2. Management imposed the process.

Experience is more than technical knowledge

Knowledge of technology or framework is not the only factor that differentiates an experienced software developer from a newbie.

There are other factors that contribute to complexity, such as complex domain, team structure, tight deadlines, ambiguity and many others.

An experienced software developer has encountered many different problems over the years, allowing them to navigate these situations well.

What legacy code teaches us

Working on a legacy code base is a valuable experience that can teach us important lessons.

  1. Technology shouldn’t be your main interest. What is relevant today will be a legacy tomorrow.

  2. We have been attempting different ways to solve a particular set of problems. As we spend more time on a problem, our solution evolves.

  3. The technology always has a philosophy behind it. There is a set of assumptions and design considerations based on current knowledge.

  4. What looks obvious now was someday a fascinating idea.