Image for post
Image for post

During the last years, Javascript becomes one of the most potent and most used programming languages, it’s used in web, game, desktop development, and much more. You can be a Fullstack web developer (Both Frontend and Backend developer) just by using Javascript, according to that I liked to write an article about the roadmap so it can be useful for beginners to boot up and for others, to fill gaps in their knowledge if exists.

You can check the first part at the following link:

And here I will discuss some advanced technologies and concepts for both the frontend and backend. I believe advanced topics can be categorized into conceptual and technical topics, wherein technical topics we will cover more development tools, backend, and front end technologies that you can use.


Image for post
Image for post

During the last years, Javascript becomes one of the most potent and most used programming languages, it’s used in web, game, desktop development, and much more. You can be a Fullstack web developer (Both Frontend and Backend developer) just by using Javascript, according to that I liked to write an article about the roadmap so it can be useful for beginners to boot up and for others, to fill gaps in their knowledge if exists.

I will start in this article with basic things and continue in another article with the advanced stuff. …


Image for post
Image for post

I believe that every one of us contains two essences, you can call them the body and the soul, your self and the inner self, the conscious part and the unconscious part. Whatever a couple of names you chose, they exist. And your choices in life always reflect on your unconscious part either in a positive way or in a negative way. So I will take in this article about some very important rules from my perspective according to around 10+ years of working experience.

Work like you own the business

I am not saying don’t search for better opportunities, but whenever you got a job, work with your full power like you are running your own business, being loyal to your work will train your inner self to be like that in all things, you will train your inner self to be energetic to be accurate to be professional. Don’t wait for people to thank you, honor you, or give you more. Just give it all your effort and you will see after that how people trust you and you will see that opportunities will come to you alone. …


Image for post
Image for post

Entity Framework is an object-relational mapper (ORM) that enables .NET developers to work with a database using .NET objects. It eliminates the need for most of the data-access code that developers usually need to write. In some contexts like SaaS products you may need to apply a specific filter for any operation that happens on the database level, and you don’t want to include that in all your repository layer functions, so in this article, I will discuss an easy way to implement that.

SaaS Product Scenario

In your SaaS product, users can create companies, each company has its own resources, and the user should not affect in any way the other companies' resources while he doesn’t have access to their companies. So usually what happens is that you will add where condition by company Id whenever you query any entity from the database, or whenever you update any entity. …


Image for post
Image for post

Fission is a framework for serverless functions on Kubernetes. Whenever your functions increase more and more managing them will be harder, especially synchronizing the code between development and production environments. That time the CI/CD pipeline will be the best solution. While at the time of writing this article I couldn't find anyone did that before or any useful documentation about that, I needed to do that alone and thought to share that here, maybe it will save someone time. I did this pipeline on the Azure DevOps platform.

Deployment scripts:

A good practice would be to categorize your functions inside folders according to their purposes, and then you can have a create and update scripts for easy creating and updating these functions…


Image for post
Image for post

While there are no standard project templates in NodeJS like in other languages like .NET and Java, I wanted in this article to introduce a simple Boilerplate project that is using standard ES6, NodeJS Express, and connecting to a Mongo database.

You can find the boilerplate on the next link:

The main features of this boilerplate are:

  • The use of IoC and dependency injection
  • The use of middleware in a simple way
  • Logging provider that supports both normal logs in addition to JSON logs
  • Layered system (Controllers layer, Services layer, Repositories layer)
  • Unit tests for both controllers and services

Some important points to consider while writing your Web APIs project

  • You want to apply SOLID principles => You will need to apply Single responsibility => Layered system is the best point to start with, you want to know what is SOLID then check the next article…


Image for post
Image for post

One of the most important patterns in Microservices is Health Check, it helps the detection of a running service instance that is unable to handle requests, forcing an alert to be sent to the admin that may conclude with some actions like restarting the service.

I will talk in this article about the following points:

  • Introduction about the concept “Health Check”
  • Implementing Health checks in your NodeJS project
  • A simple example of how you can use the community libraries and customize it according to your needs

Why we need Health Checks

While software architectures have evolved their applications towards Microservices architecture and Containerization, the need to have Health Checks began to be mandatory. …


Image for post
Image for post

Modern applications are generating enormous amounts of image data. And in the last years, researchers began to apply some data mining algorithms to extract useful information from these images to apply smart decisions in business, to detect harmful situations in medicine, to understand behavioral patterns for people, and much more.

Detecting anomalies play a very important role in data mining which raises suspicions while these outliers most of the time differs a lot from the rest of the majority of images.


Image for post
Image for post

Separation of Concerns (SoC) one of the important concepts in software design and architecture, it's about decomposing the system into parts that highly independent and slightly overlapping in functionality.

In the case of OOP languages, encapsulation and inheritance are one of the main ways to achieve SoC. Event-Driven Programming (EDP) can be also a major concept in SoC too, ideally, the modules that are throwing the events should not be aware of the modules that will handle them. In this article, I will take you through implementing EDP in NodeJS with a real-life example.

Basic concepts with example

I will talk about an AI system that processes inputs, move across a couple of states, and do actions accordingly. I can give an example of that in reinforcement learning through the Q-learning algorithm. …


Image for post
Image for post

DRY (Don’t repeat yourself) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy. And while the nature of React development in rich forms application will include a lot of repetition in dealing with the state variables, validations, and rendering fields; I present in this article a way to abstract these operations through an abstract React component.

The first step is to create a React component that will work as the abstract forms component which should be inherited from any view component that needs to access these features. …

About

Ahmad Mhaish

I am a Software Architect and AI engineer that have a great passion for integrating technology with businesses and human life.

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