This section includes Personal Opinions of mine only, which all based on my personal experience.
It includes topics such as: technology, people, entrepreneurship, and others.
To receive exceptional benefits(appreciation, raise, title,rate, position), you should perform exceptional actions.
Sep 6, 2022
To be a successful employee, you have to understand the values that is appreciated by your organization, for example:
If you work for a startup, the main values that are expected from you is to understand the founders vision, be aligned with it, and work hard.
If you work for an enterprise, you are expected to have a good harmony with the team ,understand the internal politics, and be very very careful when approaching other people interests;
also you should fully understand that is your direct manager and his manager will have a great impact on your career path, you need to understand the values they expect from you to deliver.
Aug 27, 2022
Being nice is the gift you give to other nice people like you, don’t give to those who don’t deserve it.
Aug 25, 2022
The worst professional advice that anybody can tell you:"Just be yourself".
The correct formula is: Keep improving yourself until you become the best version of yourself.
If your tune is misunderstood, work on it.
If you think that you have all the answers, work on it.
If you don’t leave good-enough first impressions, work on it.
If you have a listening (understanding what people wants) problem, work on it.
It all starts by honestly knowing your flaws, then work on improving them based on your priorities.
Be the best version of yourself.
Aug 5, 2022
In many stages in your professional and personal life, you may find your self in a position of being:
Too satisfied in what you have and not ambitious enough to improve and move to the next step,
or the opposite, where you are too ambitious but never satisfied.
Having the proper balance of being satisfied (feeling blessed in what you have), and at the same time, being ambitious enough (to peruse your dreams and achieve your goals), is a great target to have.
Having this balance could turn your life from a boring or stressful one, into a life that is full of achievements with a taste of happiness.
June 24, 2022
From time to time, professionally, you may get lost, your self-esteem and confidence may be affected, and you will become full of doubts.
When facing such situation, asking yourself the following questions, could help you re-align again:
What I am? (For example, manager, developer, entrepreneur, business man, academic, researcher, mentor)
What the things I love to do the most?
What the things I am really good at that provide the maximum value to my organization/customers?
Your target will be to reach a point where the answer to the above three questions is almost the same.
While it looks easy, its not, most likely it requires tough decisions to make, bold actions to take, and huge efforts to apply.
However, if you made it (and you can, trust me in this), you will be the best version of yourself, at least for a while.
June 13, 2022
After almost two decades of witnessing and practicing management, and working/trying most of the tools that are available, Microsoft Excel is still the king that is understood, accepted, and preferred by most managers :)
Again and again, the secret is always in simplicity and practicality.
May 29, 2022
Many people says that you will have a very limited number of opportunities in life, I totally Disagree with that. If you have:
Invested in your self to be the best in your field
Built a good network with awesome people
Being nice to people
Taken care if your family.
You will have awesome opportunities looking for your almost every day, and you will be extremely picky to choose among them. Opportunities are everywhere, just invest in yourself.
March 22, 2022
In entrepreneurship ecosystems, I see two types of entrepreneurs:
Entrepreneurs who create real money.
Entrepreneurs who create huge propaganda.
I rarely see something in the middle.
March 6, 2022
You operate in three modes:
Relief (Comfort) Mode
Your Focus Mode is very very limited in time and consumes a lot of your energy, be very careful on how you spend this time. Instead, try to shift most of your daily activities to the Auto-Pilot mode, where you do things naturally with minimal energy, or even better, shift them to your Relief Mode, where you can do them and recharge your Focus Mode. Happy Productivity
Feb 20, 2022
Its never about the programming language it self, it is always about the value gained by utilizing a language, framework, or technology. Delivery Time, Cost, and Risks, are the core factors to consider. Note: There is still a lot of Cobol vacancies over there, even in JPMorgan, check out indeed[dot]com and you might be surprised by the offered packages
Jan 29, 2022
If your Microservices based architecture increases your software development complexity, it is either one or more of the following:
Your don’t have proper DevOps infrastructure (mainly CICD)
You don’t have proper architectural design (mainly separation of concerns)
Your application and/or environment doesn’t need microservices architecture (mainly a small team, same technology, and relatively small scope).
Jan 19, 2022
I have been professionally working for around two decades now, as: employee, team leader, manager, CEO, consultant, service provider, and professor; and practiced all types of management: centralized, decentralized, aggressive, easy, demanding, and flexible management styles.
And the ultimate result is:
If you take care of your employees, they will become your partners, they will take care of your business and your customers, no doubts about that; and your role as leader is to create other leaders, and they ( your employees) will take it from there. <br> Note: I am not sure if somebody said that before, but I think that I read something relevant in the past.
Jan 13, 2022
Your 20’s is not the time of having work-life balance, it is the time of:
being expert in your field,
enhance your technical and/or management skills to the maximum,
build excellent relationship with your colleagues’, managers, and customers,
grow your network,
and build the reputation that "You are the one who gets the job done" in your field.
If you paid the above bill in your early career years, most likely you will become:
highly compensated employee/partner in an orgazanitions in your domain,
or an entrepreneur of your own business,
and, eventually, will have the work-life balance you have been looking for, to the rest of your life, with luxury. If you decided to take it easy, work from 9-5, then enjoy the rest of the days with stuff that are not related to your career or future dreams, most likely you will end up struggling financially and professionally for the rest of your life.
There is no right or wrong in this, it is a decision that you have to make, to pay the bill now or paying it later.
Jan 2, 2022
Some times I wonder why brilliant people like Einstein, Nikola Tesla, and Newton was preferring to work alone or with a very minimal numbers of assistants (to the best of my knowledge), while theoretically, they could hire a lot of employees to scale up their scientific work and contribution, any thoughts about that?
One of the main factors of success is getting things done consistently, and that cannot be achieved with luck or coincidence, important things should be realistically planned, and carefully executed
Nov 21, 2021
One of the greatest signs of good software developers is to know when to leave your computer, have a break, and take a cup of tea, these moments are when your technical challenges are magically solved
Nov 17, 2021
If you improve your self 1% everyday by reading, practicing, improving on your mindset, or doing anything that could make you better, then after one year, you will be 3 times better than the person you are today. Note: Inspired by the 1% rule of "Atomic Habits" book.
Sep 30, 2021
Everybody knows the importance of quality, however, people always tend to sacrifice quality, why!! because its expensive.
If you demand quality, you need to afford it.
Sep 8, 2021
If you are not having fun doing your work, it could be one or more of the following (Ordered):
It could be your current job responsibilities (Discuss it with your manager)
It could be your direct manager (discuss it with the HR if enterprise, or the Top Management if small organization)
It could be your organization culture (Adjust yourself or leave the organization)
It could be your attitude (You should be honest with yourself and work on improving it)
You could be in the wrong career (Change your career path).
Enjoying what you do is the first step in having a successful and happy life, don’t settle for less.
Aug 22, 2021
Get knowledge and learn from anyone, that’s great, but be sure to take advice from only the people who practiced and/or witnessed situations relevant to your context. An advice from the wrong person may cost your goals.
July 31, 2021
Doing things for fun, and being highly paid for that, is one of the most blessing gifts in life. Don’t just work, have fun doing your work.
July 26, 2021
People don’t like to read documentation, but they really enjoy read stories. I believe that the best developers write code that is really enjoyable to be read by other fellow developers, they write it as stories.
June 9, 2021
Be student all the time, no matter what expertise you have or degrees you gained, this will make you a better person by being more knowledgeable, more valuable, and most importantly, more humble.
June 9, 2021
Being busy all the time is not a cool thing, and doesn’t reflect how important is the person; in fact, it could be a critical sign that shows issues in time and resources management. Most of the successful people I know have a plenty of time to do a plenty of things without affecting their productivity. Focus on results, not processes, be Result-Oriented.
June 25, 2021
I have been thinking a while for the true definition of "Expert". According to Cambridge dictionary: <b>"Having or showing a LOT of knowledge or skill"</b> However, "a lot" is relative, so I was looking for a criteria that could measure that, and I have concluded the following list that could be part of it :
Top in Field: The person is in the top 5% of his/her field in his/her region, and is well recognized by the other experts in his/her domain.
Success Stories: Has a TRACK of implementations(skills) or consulting (knowledge) of many significant problems in different contexts that were hard to be solved by the average Senior people in his/her specialty.
Actual Experience: Most of the time relating to cases from his/her own experience.
Solid-Knowledge: Most of the time has hard evidences (theoretical and practical) that are easy to be understood and accepted by the average people and the other experts in his/her domain.
Highest Rates: Most of the time, getting paid the Highest Rates in his field in his region.
June 8, 2021
Your employees are the most important factor in your business success, you should give them respect, coaching, support, and good pay (as much as you can afford). Without doing that, eventually you are out of business.
June 7, 2021
Before judging if a technology is old, ask yourself these questions:
Is it compatible with the new trends and technologies (such as Microservices, Containers, DevOps, and Cloud Computing)?
Does it receive a continuous updates and batches from its vendor or implementor(s)?
Does it have a good IDE support?
Does it have a good community support where you can find answers to your issues or inquiries instantly?
Does it have a good number of resources (specifications, books, articles, blogs, …etc)?
If the answer to all the above is "YES", then the technology you are talking about is a "Mature and Stable Technology", not an "Old Technology". Be careful, and don’t be a fashion-based software developer or architect.
June 1, 2021
Last week, I shared a question with my connections, if creativity could be taught? I face this question every day, with my students, my employees, and my customers.
The responses to my question varied between, Yes, No, and something in the middle.
My personal opinion is:
if you get 4 years old children, and put them in a place with anything (papers, sand, water, tissues, .. ), they will start creating cool stuff in a very creative and innovative way, simply because we are all gifted with Creativity and Innovation in our DNA. However, this gift will be either Enhanced or Constrained by the ecosystem surrounding us (home, school, culture, and environment), the thing that will affect our capabilities for ever. So, back to the original question, can creativity be taught? The same question could be reflected on other questions: Can Intelligence be taught? Positivity ? Persistence ? and Consistency ?
In my personal opinion, the answer to all the above questions is: Yes. But, if it could be taught, why companies do not do it? Why big companies always pick innovative, creative, smart, and hardworker people? The ultimate answer is: Because its Expensive and Risky process on the business.
May 11, 2021
Since 2005 until 2019, my network grew to around 5000 connections, from different domains, regions, and cultures.
The thing that turned my LinkedIn newsfeed to something that is irrelevant to my interests, in addition of showing personal news for people who I don’t know; also, it had a lot of dead connections of my friends’ old profiles. So, in 2019, I decided to rebuild my network from scratch, so I removed all the old connections, and started to build my network.
Since that time, I have started to see relevant contents to my interests again, in addition to the news of my friends.
Everything requires refreshment from time to time, even your social media network.
May 10, 2021
In CICD, here are the Continuous Delivery pipeline options in real-life implementations:
Build Artifact → Deploy
Build Artifact → Push artifact → Deploy
Build Artifact → Build Container → Push Container → Deploy
Build Artifact → Push Artifact → Build Container → Deploy
Note: I didn’t include Test Automation and Security stages for simplicity.
April 3, 2021
If you keep running away from your technical issues, they will keep chasing you, and they will wait until you go live, then they will take you down; don’t wait until that moment.
March 29, 2021
Your code should be a story that is enjoyed to be read by your fellow developers.
March 13, 2021
During my professional career, I have witnessed, worked, and applied different management styles: the American style, the English style, and the Centralized style. In my opinion:
The American style is a "result-oriented" approach, which Is based on the concept "You should have faith that everybody will do the right thing", where a team member can pick his/her own process if he/she can deliver results faster. While personally I think its an amazing style that empower people and encourage innovation, having the wrong people in the team can easily vulnerates the system.
The English style: which is based on "Process, Process, Process", and "Documents". Where during the whole process-document thing, the team power is consumed, and the focus on results could lost.
The Centralized style: While this style, could introduce expected results and could ensure good deliverables (assuming having a good leadership), it cant scale, it could make the team careless, losing loyalty, and acting as passive members, where they only obey orders, and avoid any type of innovation or positive initiation.
March 7, 2021
I always believed that my top three reasons of my passion of the software development are: Java, Object Oriented Programming, and UML. With this wonderful combination, sky is the limit in Software Engineering Reusability.
Feb 21, 2021
If you have all the available academic degrees, professional certificates, and/or many years of experience, good for you. But what really matters, that how you can utilize all these qualifications to deliver high-quality software systems that provides the values promised to internal or external customers.
Feb 8, 2021
I have been building end-to-end software applications for almost two decades now (almost daily), and I doubt that any software/system architect could be able to make a good architectural decision without having a continuous hands-on experience on the various technologies and trends.
Without having such experience, an architect wouldn’t be able to understand the pains and gains that could face the technical team, which may lead to projects/products failures, caused by the gap between the theoretical architecture and the practical implementation.
Jan 28, 2021
In the software development industry, adopting new technologies and trends without having a clear justification to solve current problems or reducing cost (time and resources), will most likely increase the overall overhead of software development projects and will definitely create a new level of challenges.
Jan 20, 2021
Hire open-minded people who are passionate to learn; attitude, knowledge, and skills could be part of the learning curve
Trust me, most of the many successful people you have met in your life, had negative attitude and bad habits at some points in their lives, but because they are open-mind enough, they have been able to improve their personality and attitude and become what they are today. During my professional life, I have gotten the chance to work-with, interview, and hire hundreds of engineers in the software development industry. In the beginning, we were looking for people with good skillset. Then we started to look for positive energy and good attitude. But now, after almost 20 years, I would look for two main things:
(1) being open-minded, and (2) passion of learning.
Open-minded enough to improve in all aspects, such as starting to carry a notebook and pen to write all the notes, to focus on quality, deliver all your personal and professional tasks on time with minimum following up, and receive any criticism from your colleagues, customers, and stakeholders as hints to improve your tasks, and maybe improving some aspects of your personality. Being open-minded is a great gift, if you don’t have, start working on it
Jan 12, 2021
In the current trends of digital transformation and agility, it is all about what is "Enough" to proceed to the next step/action/phase, not what is "Complete". This includes:
Enough Design and Architecture
and Enough Infrastructure
However, the main challenge here, is defining "Enough", which could be part of the process itself.
Dec 15, 2020
Saying that your organization is Agile is not enough to be Agile, it has to apply Agile principals and practices in the right contexts to be so.
Nov 21, 2020
What if the distance in the picture is only 10 meters and this is a one lifetime task, would you invest in shaping the box to be faster!! In fact, trying to work smarter in this case makes it harder. The full advice should be: "Be smart on when to work smarter not harder".
Nov 1, 2020
When you like or hate the organization your work for, think twice, because most likely you like or hate your direct manger, not the organization it self.
Sep 28, 2020
Last week, I asked one of the best managers I have ever knew: How do you deal with the employees who objects most of the time on the work process? His answer was: First, you need to know why he/she objects, is it because of his/her leadership skills and good ideas to implement, or to cover his/her weaknesses. If it is because of the first reason, then most likely, putting this person in the right place, could make a good difference for the person and the organization. But if it is because of the other reason, then I think you all know the answer.
Sep 9, 2020
Agility doesn’t mean rushing things out, it means deliver values faster.
Aug 29, 2020
Working with smart-people is one of the priceless gifts in life, if you have it, enjoy it.
June 10, 2020
In Software Architecture, complexity doesn’t vanish, it could be only transformed from shape to another.
June 6, 2020
If you struggle with the technology, and you try to make it work, DON’T, it is the wrong technology for your team. And if you struggle with the process, and you try to make it work, DON’T, it is the wrong process for your culture.
May 3, 2020
Agile is not the Agile you think? When management or business people say Agile, they mean to be responsive faster to market as a part of their digital transformation move. On the other hand, When IT people say Agile, they mean implementing an Agile process in their software development, such as: XP, Scrum, or SAFe. So be sure to understand the context first before discussing Agility!
June 16, 2020
Again guys, the most important (and maybe the only) measure that can tell whether a software architecture is a monolithic or micro-services based, is how it is deployed, not structured, period. If you structured your application into a modular approach (as components or web-services), congratulations, that might make it cleaner, but if you still deploy once, it is a monolithic.
June 4, 2020
In this era of technology disruption, if an enterprise wants to stay in the market, it should know and respond to customer-needs quickly (Digital Transformation ) *, and to do that, it should deliver values faster *(Agile Culture) *, and to deliver faster, it needs a new approach *(Agile Process) and ownership (DevOps). Faster delivery and ownership requires teams parallelization and resources isolation (Microservices). Taking one part of all of the above is like buying car-wheels only (One Component), and not a full car (the Whole System) and expecting that you could reach your destination faster.
industry is the Delivery Time
The traditional process of planning software delivery is:
Customers request vendors to deliver in 1-3 months claiming that business/operations will struggle if they didn’t operate in this period.
Vendor commit to deliver in this period assuming that they will lose the contract if they didn’t do that.
Management will push project managers to avoid penalties, project managers will push technical leads, technical leads will push the technical team to deliver.
At the end of the day, the project is delivered in 6-18 months, everybody is happy , and a new project is started. Note: the funny thing that: customers, vendors, management, project managers, and technical leads are most likely aware of the actual delivery time from the beginning, but they like to have some action :)
April 20, 2020
Is open-source technologies and systems are less secure than closed-source? One of the worldwide trends in technology nowadays is to use open-source software technologies and systems (OSS). This trend is adopted because of many reasons, including: (i) cost reduction, (ii) maturity, (iii) and learning resources. However, the main criticism of OSS is security, but is it really justified? A research paper published by IBM in 2005 , shows that open source projects are not less secured than closed source projects, in fact, sometimes it can be better. For instance, the most secured operating systems on earth are Unix-based systems, which either open source (such as RedHat, Sun-Solaris, and Ubuntu) or use open-source kernels (such as IBM AIX and HP-UX). Another example is the hypervisor software used by Amazon for their cloud services virtualization, where they used to use Xen, and now moved to KVM, which
both are open source (full story can be found at ). So, is it really less secure!!!
June 31, 2018