diff --git a/.gitignore b/.gitignore index 9bd26448636..1456a3ea19c 100755 --- a/.gitignore +++ b/.gitignore @@ -156,6 +156,7 @@ build # git update-index --assume-unchanged docs/.obsidian/workspace.json workspace.json data.json +graph.json # personal wikis Office diff --git a/docs/about-me/projects/90-stashfin-tech-stack-infra.md b/docs/about-me/projects/90-stashfin-tech-stack-infra.md index 1d659f7a1ec..448e0794e34 100755 --- a/docs/about-me/projects/90-stashfin-tech-stack-infra.md +++ b/docs/about-me/projects/90-stashfin-tech-stack-infra.md @@ -7,11 +7,13 @@ ## Tech Stack 1. Languages - - Backend - PHP, Python - - Frontend - HTML, CSS, JS, React - - Android - Java + Kotlin, Firebase - - iOS - Swift + Objective C - - Libraries - Pandas, Numpy (other AI models and libraries) + +- Backend - PHP, Python +- Frontend - HTML, CSS, JS, React +- Android - Java + Kotlin, Firebase +- iOS - Swift + Objective C +- Libraries - Pandas, Numpy (other AI models and libraries) + 2. Frameworks - CodeIgniter 3 for PHP, Flask/FastAPI and Django for Python 3. Unit Testing - Phpunit for PHP, Pytest for Python 4. Databases - Aurora MySQL (OLTP), Redshift (OLAP), Redis (Caching and Queueing), S3 (blob storage) + Athena (Query layer on top of S3) @@ -28,6 +30,7 @@ - Helm package management (client) - Updates - Whatup - Kubernetes Manifests - Jenkins (CICD) + 1. Pipeline 2. Self service CICD @@ -49,8 +52,10 @@ - Redshift - Aurora (RDS) - Redis + 1. RedisInsight 2. Redis Streams + - DynamoDB - S3 (Blob storage) @@ -76,43 +81,57 @@ 10. Grafana 11. Locust (load testing) 12. Application and Web Servers - - Nginx - - Apache - - Gunicorn + +- Nginx +- Apache +- Gunicorn + 13. Application Development - - Precommit - - Crashlytics + +- Precommit +- Crashlytics + 14. Testing - - Selenium - - Appium - - Postman Runners (newman) + +- Selenium +- Appium +- Postman Runners (newman) + 15. Languages used - - PHP (Codeigniter) - - Java + Kotlin (Android) - - Python (Fast API / Django / Flask) - - Javascript (React) + +- PHP (Codeigniter) +- Java + Kotlin (Android) +- Python (Fast API / Django / Flask) +- Javascript (React) + 16. OpenVPN 17. JupyterLab 18. Analytics - - PowerBI - - Firebase - - SonarQube + +- PowerBI +- Firebase +- SonarQube + 19. Velero - Disaster Recovery 20. Deployment Strategies - - Blue/Green - - Canary - - A/B - - Mirroring + +- Blue/Green +- Canary +- A/B +- Mirroring + 21. ExternalDNS ### Others 1. TICK - - InfluxDB (device health monitoring) - - InfluxDB (server health monitoring) - - Kapacitor - - Chronograf - - Telegraf + +- InfluxDB (device health monitoring) +- InfluxDB (server health monitoring) +- Kapacitor +- Chronograf +- Telegraf + 2. Kong (dbless) 3. Konga 4. Vernemq (mqtt broker) diff --git a/docs/computer-science/programming-paradigms/oops-solid.md b/docs/computer-science/programming-paradigms/oops-solid.md index 0b8cc54e534..c4a0eaf8703 100755 --- a/docs/computer-science/programming-paradigms/oops-solid.md +++ b/docs/computer-science/programming-paradigms/oops-solid.md @@ -1,6 +1,6 @@ # OOPS / SOLID -## AEIP - Abstraction, Encapsulation, Inheritance and Polymorphism +AEIP - Abstraction, Encapsulation, Inheritance and Polymorphism ## Modularity @@ -14,7 +14,7 @@ Means a real world entity (like a car, bus, pen, etc..) ## Classes -Collection of objectsis called class. It is a logical entity. +Collection of objects is called class. It is a logical entity. A class defines the behavior of an object and the kind of information an object can store. The information in a class is stored in attributes, and functions that belong to a class are called methods. A child class inherits the attributes and methods from its parent class. @@ -69,53 +69,57 @@ Another example can be to speak something e.g. cat speaks meaw, dog barks woof e Types of polymorphism -1. Parametric polymorphism +### 1. Parametric polymorphism - This is a pretty common technique in many languages, albeit better known as "Generics". The core idea is to allow programmers to use a wildcard type when defining data structures that can later be filled with any type. +This is a pretty common technique in many languages, albeit better known as "Generics". The core idea is to allow programmers to use a wildcard type when defining data structures that can later be filled with any type. - ![image](../../media/OOPS-SOLID-image1.jpg) +![image](../../media/OOPS-SOLID-image1.jpg) -2. Subtype polymorphism (most used type, using shape like triangle, rectangle and calling area like traingle.area(), rectangle.area()) +### 2. Subtype polymorphism - Subtyping is better known as object oriented inheritance. The classic example is a vehicle type, here in Java: +Most used type, using shape like triangle, rectangle and calling area like traingle.area(), rectangle.area()) - ```java - abstract class Vehicle { - abstract double getWeight(); - } +Subtyping is better known as object oriented inheritance. The classic example is a vehicle type, here in Java: - class Car extends Vehicle { - double getWeight() { return 10.0; } - } +```java +abstract class Vehicle { + abstract double getWeight(); +} - class Truck extends Vehicle { - double getWeight() { return 100.0; } - } +class Car extends Vehicle { + double getWeight() { return 10.0; } +} - class Toyota extends Car { /* ... */ } +class Truck extends Vehicle { + double getWeight() { return 100.0; } +} - static void printWeight(Vehicle v) { - // Allowed because all vehicles have to have this method - System.out.println(v.getWeight()); - } - ``` +class Toyota extends Car { /* ... */ } -3. Ad-Hoc polymorphism (AKA Type Classes) +static void printWeight(Vehicle v) { + // Allowed because all vehicles have to have this method + System.out.println(v.getWeight()); +} +``` + +### 3. Ad-Hoc polymorphism (AKA Type Classes) - This is more commonly known as function or operator overloading. In languages that allow this, you can define a function multiple times to deal with different input types. For example in Java: +This is more commonly known as function or operator overloading. In languages that allow this, you can define a function multiple times to deal with different input types. For example in Java: + +```java +class Printer { + public String prettyPrint(int x) { /*...*/ } + public String prettyPrint(char c) { /*...*/ } +} +``` - ```java - class Printer { - public String prettyPrint(int x) { /*...*/ } - public String prettyPrint(char c) { /*...*/ } - } - ``` +### Others -4. Row Polymorphism -5. Kind Polymorphism -6. Higher-rank Polymorphism -7. Linearity Polymorphism -8. Levity Polymorphism +1. Row Polymorphism +2. Kind Polymorphism +3. Higher-rank Polymorphism +4. Linearity Polymorphism +5. Levity Polymorphism @@ -238,39 +242,39 @@ According to the popular guide [Unified Process](https://en.wikipedia.org/wiki/U ## SOLID principles -1. **Single Responsibility Principle** +### 1. Single Responsibility Principle - A class should have one and only one reason to change, meaning that a class should have only one job +A class should have one and only one reason to change, meaning that a class should have only one job -2. **Open Closed Principle** +### 2. Open Closed Principle - Objects or entities should be open for extension, but closed for modification +Objects or entities should be open for extension, but closed for modification -3. **Liskov Substitution Principle** +### 3. Liskov Substitution Principle - Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program +Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program - Letq(x)be a property provable about objects ofxof typeT. Thenq(y)should be provable for objectsyof type S where S is a subtype of T. +Letq(x)be a property provable about objects ofxof typeT. Thenq(y)should be provable for objectsyof type S where S is a subtype of T. - All this is stating is that every subclass/derived class should be substitutable for their base/parent class. +All this is stating is that every subclass/derived class should be substitutable for their base/parent class. -4. **Interface Segregation Principle** +### 4. Interface Segregation Principle - Many client-specific interfaces are better than one general-purpose interface +Many client-specific interfaces are better than one general-purpose interface - A client should never be forced to implement an interface that it doesn't use or clients shouldn't be forced to depend on methods they do not use. +A client should never be forced to implement an interface that it doesn't use or clients shouldn't be forced to depend on methods they do not use. -5. **Dependency Inversion principle** +### 5. Dependency Inversion principle - Entities must depend on abstractions not on concretions +Entities must depend on abstractions not on concretions - It states that the high level module must not depend on the low level module, but they should depend on abstractions. +It states that the high level module must not depend on the low level module, but they should depend on abstractions. - The dependency inversion principle tells us that we should always try to have dependencies on interfaces (or Abstract Classes), not classes. +The dependency inversion principle tells us that we should always try to have dependencies on interfaces (or Abstract Classes), not classes. - + - + ## STUPID diff --git a/docs/computer-science/security/improving-security-posture.md b/docs/computer-science/security/improving-security-posture.md new file mode 100644 index 00000000000..6ffda57ce0e --- /dev/null +++ b/docs/computer-science/security/improving-security-posture.md @@ -0,0 +1,70 @@ +# Improving Security Posture + +### 1. Assessment of Initial Security State + +- Conduct a thorough assessment of the existing security posture, including vulnerability assessments, penetration testing, and risk analysis. +- Identify weaknesses, vulnerabilities, and potential entry points for attackers. + +### 2. Formation of a Security Team + +- Establish a dedicated security team with a diverse skill set including penetration testers, security analysts, and possibly a security architect. +- Clearly define roles and responsibilities within the team. + +### 3. Security Policies and Training + +- Develop and implement comprehensive security policies. +- Conduct security awareness training for all employees to create a security-centric culture within the organization. + +### 4. Implementation of Basic Security Measures + +- Install firewalls, antivirus software, and intrusion detection/prevention systems. +- Regularly update and patch software to address known vulnerabilities. + +### 5. Vulnerability Assessment and Penetration Testing (VAPT) + +- Regularly perform VAPT to identify and address vulnerabilities in the system. +- Implement a process to prioritize and remediate findings. + +### 6. Web Application Firewall (WAF) Implementation + +- Deploy a Web Application Firewall to protect against common web application attacks. +- Configure the WAF to filter and monitor HTTP traffic. + +### 7. DDoS Protection + +- Implement a DDoS protection solution to mitigate the risk of service disruption. +- Test the effectiveness of the DDoS protection in simulated attack scenarios. + +### 8. Incident Response Plan + +- Develop and document an incident response plan outlining the steps to be taken in the event of a security incident. +- Conduct regular drills to ensure the team is prepared to respond effectively. + +### 9. Continuous Monitoring + +- Implement continuous monitoring solutions to detect and respond to security incidents in real-time. +- Set up log aggregation and analysis tools. + +### 10. Security Compliance and Auditing + +- Ensure compliance with industry standards and regulations. +- Conduct regular security audits to validate the effectiveness of security measures. + +### 11. Coordination with Development and Operations + +- Integrate security into the development life cycle (DevSecOps). +- Collaborate closely with development and operations teams to address security concerns during the development process. + +### 12. Leadership and Governance + +- Establish strong leadership and governance to ensure that security initiatives are prioritized and supported across the organization. +- Regularly review and update security policies and procedures. + +### 13. Regular Updates and Improvements + +- Stay informed about the latest security threats and technologies. +- Continuously update and improve security measures to adapt to evolving threats. + +### Conclusion + +By following a structured approach that involves people, processes, and technology, organizations can significantly enhance their security posture. This involves a combination of proactive measures, ongoing testing, and a commitment to continuous improvement. Leadership plays a crucial role in fostering a security-conscious culture throughout the organization. diff --git a/docs/computer-science/security/readme.md b/docs/computer-science/security/readme.md index 362c2ea07b8..8c89ad59bf6 100755 --- a/docs/computer-science/security/readme.md +++ b/docs/computer-science/security/readme.md @@ -1,5 +1,6 @@ # Security +- [Improving Security Posture](computer-science/security/improving-security-posture.md) - [Concepts](computer-science/security/concepts.md) - [Cryptography](cryptography/readme.md) - [Authentication](authentication/readme.md) diff --git a/docs/databases/modeling/database-workloads.md b/docs/databases/concepts/database-workloads.md similarity index 97% rename from docs/databases/modeling/database-workloads.md rename to docs/databases/concepts/database-workloads.md index e98ae280d70..e85b7aca95e 100755 --- a/docs/databases/modeling/database-workloads.md +++ b/docs/databases/concepts/database-workloads.md @@ -17,7 +17,8 @@ is characterized by relatively low volume of transactions. Queries are often ver - Help business with decision making and problem solving - Queries a large amount of data -The following table summarizes the major differences between OLTP and OLAP system design. + +### Differences between OLTP and OLAP system design | | **OLTP System Online Transaction Processing (Operational System)** | **OLAP System Online Analytical Processing (Data Warehouse)** | |---|---|---| diff --git a/docs/databases/concepts/readme.md b/docs/databases/concepts/readme.md index 189b1f34bcf..17ac70c1f73 100755 --- a/docs/databases/concepts/readme.md +++ b/docs/databases/concepts/readme.md @@ -7,6 +7,7 @@ - [Acid and Base](acid-and-base) - [Concurrency Control](concurrency-control) - [Isolation Levels](isolation-levels) +- [Database Workloads](databases/concepts/database-workloads.md) - [Disk Oriented vs In-memory DBs](disk-oriented-vs-in-memory-dbs) - [MVCC Multiversion Concurrency Control](mvcc-multiversion-concurrency-control) - [Rum Conjecture](rum-conjecture) diff --git a/docs/databases/modeling/data-modeling.md b/docs/databases/modeling/data-modeling.md index 20455969488..1ed4bcf8168 100755 --- a/docs/databases/modeling/data-modeling.md +++ b/docs/databases/modeling/data-modeling.md @@ -8,7 +8,7 @@ The data modeling process. The figure illustrates the way data models are develo -Data modeling (data modelling)is the process of creating a data model for the data to be stored in a Database. This data model is a conceptual representation of Data objects, the associations between different data objects and the rules. Data modeling helps in the visual representation of data and enforces business rules, regulatory compliances, and government policies on the data. Data Models ensure consistency in naming conventions, default values, semantics, security while ensuring quality of the data. +Data modeling (data modelling) is the process of creating a data model for the data to be stored in a Database. This data model is a conceptual representation of Data objects, the associations between different data objects and the rules. Data modeling helps in the visual representation of data and enforces business rules, regulatory compliances, and government policies on the data. Data Models ensure consistency in naming conventions, default values, semantics, security while ensuring quality of the data. Data model emphasizes on what data is needed and how it should be organized instead of what operations need to be performed on the data. Data Model is like architect's building plan which helps to build a conceptual model and set the relationship between data items. The two types of Data Models techniques are @@ -71,7 +71,9 @@ There are mainly three different types of data models: ## Schema From a very simple point of view, a relational database comprises *tables* with multiple *columns* and *rows*, and *relationships* between them. The collection of database objects' definitions associated within a certain namespace is called a *schema*. You can also consider a schema to be the definition of your data structures within your database. + Just as our data changes over time with Data Manipulation Language (DML) statements, so does our schema. We need to add more tables, add and remove columns, and so on. The process of evolving our database structure over time is called *schema evolution*. + Schema evolution uses Data Definition Language (DDL) statements to transition the database structure from one version to the other. The set of statements used in each one of these transitions is called *database migrations*, or simply *migrations*.- Migrating to Microservices Databases, Chapter 3, Evolving your Relational Database ## Extensible Data Modeling diff --git a/docs/databases/modeling/er-diagrams-entity-relationships.md b/docs/databases/modeling/er-diagrams-entity-relationships.md index 32ce37a484d..1e15add13bf 100755 --- a/docs/databases/modeling/er-diagrams-entity-relationships.md +++ b/docs/databases/modeling/er-diagrams-entity-relationships.md @@ -1,6 +1,6 @@ # ER Diagrams (Entity Relationships) -An**entity--relationship model**(or**ER model**) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between [entities](https://en.wiktionary.org/wiki/entity)(instances of those entity types). +An **entity--relationship model** (or **ER model**) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between [entities](https://en.wiktionary.org/wiki/entity)(instances of those entity types). ![image](../../media/ER-Diagrams-(Entity-Relationships)-image1.jpg) @@ -18,16 +18,19 @@ An entity set is a collection of similar types of entities. An entity set may co ## Attributes -Entities are represented by means of their properties, calledattributes. All attributes have values. For example, a student entity may have name, class, and age as attributes. +Entities are represented by means of their properties, called attributes. All attributes have values. For example, a student entity may have name, class, and age as attributes. There exists a domain or range of values that can be assigned to attributes. For example, a student's name cannot be a numeric value. It has to be alphabetic. A student's age cannot be negative, etc. -Types of Attributes + +### Types of Attributes - Simple attribute− Simple attributes are atomic values, which cannot be divided further. For example, a student's phone number is an atomic value of 10 digits. - Composite attribute− Composite attributes are made of more than one simple attribute. For example, a student's complete name may have first_name and last_name. - Derived attribute− Derived attributes are the attributes that do not exist in the physical database, but their values are derived from other attributes present in the database. For example, average_salary in a department should not be saved directly in the database, instead it can be derived. For another example, age can be derived from data_of_birth. - Single-value attribute− Single-value attributes contain single value. For example − Social_Security_Number. - Multi-value attribute− Multi-value attributes may contain more than one values. For example, a person can have more than one phone number, email_address, etc. -These attribute types can come together in a way like − + +These attribute types can come together in a way like + - simple single-valued attributes - simple multi-valued attributes - composite single-valued attributes diff --git a/docs/databases/modeling/readme.md b/docs/databases/modeling/readme.md index 2c0526cb3ac..dc4c4eaed25 100755 --- a/docs/databases/modeling/readme.md +++ b/docs/databases/modeling/readme.md @@ -3,4 +3,3 @@ - [Data Modeling](data-modeling) - [ER (Entity Relationships) Diagrams](er-diagrams-entity-relationships) - [ER - Tools](er-tools) -- [Database Workloads](database-workloads) diff --git a/docs/devops/devops-intro/feature-toggles-flags.md b/docs/devops/devops-intro/feature-toggles-flags.md index 3f37a140a65..728b80bc3fc 100755 --- a/docs/devops/devops-intro/feature-toggles-flags.md +++ b/docs/devops/devops-intro/feature-toggles-flags.md @@ -42,12 +42,15 @@ Feature Toggles are also refered to as Feature Flags, Feature Bits, or Feature F 1. Dynamic routing vs dynamic configuration 2. Prefer static configuration 3. Approaches for managing toggle configuration - - Hardcoded Toggle Configuration - - Parametrized Toggle Configuration - - Toggle Configuration File - - Toggle Configuration in App DB - - Distributed Toggle Configuration + +- Hardcoded Toggle Configuration +- Parametrized Toggle Configuration +- Toggle Configuration File +- Toggle Configuration in App DB +- Distributed Toggle Configuration + 4. Overriding Configuration - - Per-request overrides + +- Per-request overrides diff --git a/docs/management/product-management/product-design-stages.md b/docs/management/product-management/product-design-stages.md new file mode 100644 index 00000000000..d6fee6a4b4b --- /dev/null +++ b/docs/management/product-management/product-design-stages.md @@ -0,0 +1,74 @@ +# Product Design Stages + +Designing a product involves several stages that help ensure the successful development and launch of a product that meets customer needs. Here are the typical stages of product design: + +### Idea Generation + +- **Brainstorming:** Generate a pool of ideas through collaborative sessions. +- **Market Research:** Understand customer needs, industry trends, and competition. + +### Concept Development + +- **Idea Screening:** Evaluate and filter ideas based on feasibility and alignment with business goals. +- **Feasibility Analysis:** Assess technical, economic, and operational feasibility of potential concepts. + +### Market and User Research + +- **User Personas:** Create detailed profiles of target users. +- **Market Analysis:** Understand the market, identify target audience, and analyze competitors. + +### Prototyping + +- **Paper Prototypes:** Create low-fidelity prototypes for initial concept testing. +- **Digital Prototypes:** Develop interactive digital prototypes for more realistic user testing. + +### Design Development + +- **Detailed Design:** Develop detailed specifications for the product. +- **Material Selection:** Choose appropriate materials based on design requirements. + +### Testing and Iteration + +- **Usability Testing:** Gather user feedback on prototypes. +- **Iterative Design:** Make necessary adjustments based on testing results. + +### Engineering and Development + +- **Design for Manufacturing (DFM):** Optimize the design for efficient production. +- **Collaboration:** Ensure close collaboration between design and engineering teams. + +### Production Planning + +- **Vendor Selection:** Choose suppliers and manufacturers. +- **Supply Chain Management:** Plan logistics and ensure a smooth production process. + +### Quality Control + +- **Quality Assurance:** Implement processes to maintain product quality. +- **Testing:** Conduct rigorous testing of final products. + +### Marketing and Branding + +- **Brand Strategy:** Develop a marketing strategy and positioning. +- **Packaging Design:** Design product packaging for visual appeal. + +### Launch + +- **Market Entry:** Introduce the product to the market. +- **Promotion:** Execute marketing and advertising campaigns. + +### Post-Launch Evaluation + +- **Feedback Analysis:** Gather and analyze customer feedback. +- **Performance Evaluation:** Assess the product's performance in the market. + +### Continuous Improvement + +- **Updates and Upgrades:** Release updates or new versions based on feedback. +- **Market Monitoring:** Stay informed about market trends for future iterations. + +### End-of-Life Planning + +- **Disposal Strategies:** Plan for the product's end-of-life, including recycling or disposal. + +Throughout these stages, effective communication and collaboration among cross-functional teams (design, engineering, marketing, etc.) are crucial for success. Additionally, staying agile and adaptable to changes based on user feedback and market dynamics is key to designing a successful product. diff --git a/docs/management/product-management/readme.md b/docs/management/product-management/readme.md index a4a4305f6e9..66639dced13 100755 --- a/docs/management/product-management/readme.md +++ b/docs/management/product-management/readme.md @@ -1,5 +1,6 @@ # Product Management +- [Product Design Stages](management/product-management/product-design-stages.md) - [Product Management](management/product-management/intro.md) - [Product Manager Role](management/product-management/product-manager-role.md) - [Kano Model](management/product-management/kano-model.md) diff --git a/docs/management/readme.md b/docs/management/readme.md index 26686ebf2e9..873f15c4dc5 100755 --- a/docs/management/readme.md +++ b/docs/management/readme.md @@ -17,6 +17,7 @@ - [Sales](management/sales.md) - [Customer Engagement / CX](customer-engagement-cx) - [Community Building](community-building) +- [Six Sigma](management/six-sigma.md) - [Books / Blinkist - Management](books-blinkist-management) - [Others](management/others.md) @@ -68,12 +69,8 @@ - [Crisis Management](https://www.managementstudyguide.com/crisis-management-articles.htm) - [Workplace Violence](https://www.managementstudyguide.com/workplace-violence-articles.htm) - [Virtual Teams](https://www.managementstudyguide.com/virtual-teams-articles.htm) -- [Public Administration](https://www.managementstudyguide.com/public-administration-articles.htm) - -[How to make traffic better, not worse](https://youtu.be/AR7caWQvWBQ) - +- [Public Administration](https://www.managementstudyguide.com/public-administration-articles.htm) - [How to make traffic better, not worse](https://youtu.be/AR7caWQvWBQ) - Transit oriented development - - [Non Profit Organizations](https://www.managementstudyguide.com/non-profit-organizations-articles.htm) - [Political Science](https://www.managementstudyguide.com/political-science-articles.htm) - [Group Behavior](https://www.managementstudyguide.com/group-behavior-articles.htm) diff --git a/docs/management/six-sigma.md b/docs/management/six-sigma.md new file mode 100644 index 00000000000..7c3d5648b37 --- /dev/null +++ b/docs/management/six-sigma.md @@ -0,0 +1,41 @@ +# Six Sigma + +### Enhanced Problem-Solving Skills + +- Master proven methodologies for identifying and solving business problems. +- Develop a structured approach to address challenges, leading to more effective decision-making. + +### Increased Efficiency and Productivity + +- Learn how to streamline processes and eliminate unnecessary steps. +- Acquire tools to optimize workflows, resulting in increased productivity and resource utilization. + +### Cost Reduction and Financial Impact + +- Implement cost-saving measures by identifying and eliminating waste. +- Understand how to contribute to the financial success of your organization through process improvement. + +### Career Advancement Opportunities + +- Lean Six Sigma certification is widely recognized across industries. +- Open doors to leadership roles and positions that require a strong focus on quality and process improvement. + +### Improved Quality and Customer Satisfaction + +- Gain skills to enhance product and service quality. +- Understand customer requirements and deliver solutions that exceed expectations. + +### Cross-Functional Collaboration + +- Foster collaboration between different departments and teams. +- Break down silos and create a culture of continuous improvement across the organization. + +### Global Recognition + +- Lean Six Sigma is a globally recognized methodology. +- Boost your marketability and credibility on a worldwide scale. + +### Personal and Professional Growth + +- Demonstrate your commitment to ongoing learning and professional development. +- Gain a valuable skill set that is applicable across various industries. diff --git a/docs/networking/mqtt/mqtt-vs-http.md b/docs/networking/mqtt/mqtt-vs-http.md index 269459fe649..67df2beea3f 100755 --- a/docs/networking/mqtt/mqtt-vs-http.md +++ b/docs/networking/mqtt/mqtt-vs-http.md @@ -9,5 +9,5 @@ - MQTT has a very short message header and the smallest packet message size of 2 bytes. Using text message format by HTTP protocol allows it to compose lengthy headers and messages. It helps to eliminate troubles because it can be read by humans, but at the same time it's needless for resource-constrained devices. - The real advantage of MQTT over HTTP occurs when we reuse the single connection for sending multiple messages in which the average response per message converges to around 40 ms and the data amount per message converges to around 400 bytes. Note that in the case of HTTP, these reductions simply aren't possible. - The conclusion we can draw is that when choosing MQTT over HTTP, it's really important to reuse the same connection as much as possible. If connections are set up and torn down frequently just to send individual messages, the efficiency gains are not significant compared to HTTP. - - The greatest efficiency gains can be achieved through MQTT's increase in information density for each payload message. - - The most straightforward approach is to reduce the payload size where more data can be transmitted in each payload, which can be achieved through choosing proper compression and package methods based on the type of the data being generated. For instance, protobuf is an efficient way to serialize structured data. + - The greatest efficiency gains can be achieved through MQTT's increase in information density for each payload message. + - The most straightforward approach is to reduce the payload size where more data can be transmitted in each payload, which can be achieved through choosing proper compression and package methods based on the type of the data being generated. For instance, protobuf is an efficient way to serialize structured data.