There are points in time where some of us begin to have a realization that while everything around them is moving forward, they are staying still.
They wake up in the morning, do their work, come back to watch tv, spend some time with family and friends and then go to bed. Then repeat. They may look forward to a vacation, a visitation or something terrible to happen so they can break out of the rhythm of their day to day lives.
Some of us may hear the voice of an awakening in their heads, calling them to fulfil a higher…
I have great respect for engineers who apply their minds into what they develop. In general, each and every one of us tries to solve a problem a bit differently than the rest. Some of us have quite an interesting approach that extends its influence on the rest of us. Shaping the methodology of which we attempt to solve similar problems in the future. These are the folks we call Computer Scientists and what they produce is what we call Algorithms.
In this day and age, and as the software industry and technology in general is advancing with the speed…
Growth is the most common characteristic of life. It’s in everything around us. From the smallest organisms to the forever expanding universe around us. Everything aims for growth in one direction or another. Some of it happens naturally without any manual interference, and some of it requires the extra effort to change from one state to another.
But growth without a measure is hard to track. Some may consider their growth non-existent if they don’t have the measures to realize it. But more importantly, growth can be in any direction. …
Software engineering is a modern methodology used to represent a system, any system, in terms of models and actions. Computer scientists define the core principle of software engineering as “Modeling & Simulation”. Which simply a computerized representation of particular entities in the universe (Modeling) and how these entities interact and be interacted with (Simulation).
In general, the modeling and simulation process tries to solve a particular problem in our world. For instance, if we are trying to solve a problem of finding the best design for a city, we may model all the structures a city may have and the streets…
In previous articles, I touched very briefly on the fact that engineering can be a social activity. A bridge that engineers could use to connect to the rest of the world then use it to make the world a better place by solving its most complex problems.
Everyone today has some need or other that is directly or indirectly dependent on software. A mobile app, a website or just simply a piece of paper being processed through a printer with a person waiting on the other side for it to finish.
In any software engineering process, there are three aspects…
Social networks as part of the technological revolution that happened in the last few decades have been more and more involved into our lives on daily basis.
We use social networks today for almost everything. We connect to our family and friends; we sell and buy things and we advertise and share our thoughts all on social media.
But social media platforms today have been involved in some severe violations to basic human rights like privacy, experimentation without consent and more recently free speech.
For instance, social media platforms today use every single action you take on the platform…
What makes a successful product?
Is it the ability to pinpoint a market-need or maybe even create one?
Is it the ability to find a path to a better product than what the market already offers?
Or is it about establishing a good relationship with a customer then hiring the best engineers to materialize their vision?
Every entrepreneur in the market looks for answers to some of these questions regardless of where they stand in the market, or what level of experience they have.
In the enterprise world, the equation gets a bit more complex. Products become more and more…
If you take a closer look at our day to day lives, you will notice that our lives are nothing but a collection of choices and decisions.
We chose to act, chose not to act, we chose to think a thought and share that thought and so on — every single moment of every single day in our lives is nothing but choices and decisions.
Our decisions are sometimes well-placed, and some other times misplaced.
But the one thing we all have in common, is that we would never make a choice or a decision without knowing that it has…
Having software engineering experience without a true purpose behind it is like owning the smartest car, but without a destination.
You keep going and going until you run out of energy, but still end up getting nowhere.
Software engineering today impacts the lives of billions of people around the world — it’s tremendous powers can change an entire country into one direction or another; it can protect the planet from eminent dangers and save the lives of millions, as well as being a tool for crime and wrongdoings.
Software engineering is a vehicle for transmitting, processing, distributing, and manipulating data…
In the software industry, there are two popular schools of thought amongst many others when it comes to designing software.
A group of engineers will lean towards stateless modularity. They will build each component of their system as a pluggable and configurable agnostic module. And to ensure the independent nature of the module they might run into some seemingly redundant pieces of code to prevent any hard dependencies on one centralized component.
This approach is useful in the sense that it guarantees avoiding all possible single points of failures from a dependency standpoint.
It also guarantees that all team members…