The document discusses building and testing design systems using Storybook. It covers how component-driven development (CDD) and design systems help teams collaborate better and build reusable UI components. The presentation emphasizes setting up Storybook with addons to develop and test components, using CSF (Component Story Format) to write testable stories, and automatically generating documentation. Visual, unit and accessibility testing strategies are also covered.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
The document discusses how a company called Odobo improved their testing process by defining a unified testing framework using Groovy, Spock, and Geb. This allowed both developers and QA engineers to write automated tests in the same framework, eliminating duplicated efforts. Key aspects of the framework included using Gradle for building, Groovy as the programming language, Spock as the testing framework, and Geb for browser automation. It provided benefits like increased code reuse and happier testers across both dev and QA teams.
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
Releasing a big software product frequently on the same high quality level could became an impossible task. Story Testing approach gives a possibility for many teams to work for a same product and release it without putting enormous efforts on testing. Approach is based on the BDD technique, Feature Flags and Selenium.
Automated Testing With Jasmine, PhantomJS and JenkinsWork at Play
The document discusses automated testing of JavaScript code using Jasmine, PhantomJS, and Jenkins. It begins with an agenda that covers an introduction to the speakers, testing JavaScript code and front-end code without a browser, and continuous integration. It then discusses Jasmine features for writing tests, using PhantomJS to run tests without a browser, and integrating testing into a continuous integration workflow with Jenkins.
This document describes Masaki Nakagawa's role as a Software Engineer in Test (SWET) at DeNA. It provides details about his background, responsibilities in developing test frameworks and automated tests, and approach to testing. As a SWET, he writes test code, builds test environments, and automates testing to improve developer productivity. He advocates for testing activities to be integrated with development and uses techniques like gray box testing to balance automated testing with readable, writable and maintainable test code.
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
For any project that is critical to the business, it’s important to do ‘Modern Architecture Reviews’. Being an architect is fun, you get to design the system, do ongoing code reviews, and play the bad ass. It is even more fun when using modern cool tools.
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
The document discusses how a company called Odobo improved their testing process by defining a unified testing framework using Groovy, Spock, and Geb. This allowed both developers and QA engineers to write automated tests in the same framework, eliminating duplicated efforts. Key aspects of the framework included using Gradle for building, Groovy as the programming language, Spock as the testing framework, and Geb for browser automation. It provided benefits like increased code reuse and happier testers across both dev and QA teams.
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
Releasing a big software product frequently on the same high quality level could became an impossible task. Story Testing approach gives a possibility for many teams to work for a same product and release it without putting enormous efforts on testing. Approach is based on the BDD technique, Feature Flags and Selenium.
Automated Testing With Jasmine, PhantomJS and JenkinsWork at Play
The document discusses automated testing of JavaScript code using Jasmine, PhantomJS, and Jenkins. It begins with an agenda that covers an introduction to the speakers, testing JavaScript code and front-end code without a browser, and continuous integration. It then discusses Jasmine features for writing tests, using PhantomJS to run tests without a browser, and integrating testing into a continuous integration workflow with Jenkins.
This document describes Masaki Nakagawa's role as a Software Engineer in Test (SWET) at DeNA. It provides details about his background, responsibilities in developing test frameworks and automated tests, and approach to testing. As a SWET, he writes test code, builds test environments, and automates testing to improve developer productivity. He advocates for testing activities to be integrated with development and uses techniques like gray box testing to balance automated testing with readable, writable and maintainable test code.
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
For any project that is critical to the business, it’s important to do ‘Modern Architecture Reviews’. Being an architect is fun, you get to design the system, do ongoing code reviews, and play the bad ass. It is even more fun when using modern cool tools.
Are you sick of Merge Hell? Do your feature branches go rogue? Do you spend more time fiddling with your Version Control System than doing actual development work? Then Trunk Based Development might be for you. Facebook does it. Google does it. Instead of messing with multiple branches, just use your master branch. Always. In addition to giving you an overview about how Trunk Based Development works, where it shines and where the pitfalls are, this talk will also cover the necessary techniques to succeed with it, such as Branch By abstraction, Feature Toggles and backwards compatible Database Migrations.
This document discusses Microsoft technologies and courseware that can be used to teach kids programming, including Small Basic, T-SQL, Kodu, and Lego Mindstorms. It provides information on the intent of the courseware, the technologies, activities like quizzes and recipes, and future directions for expanding the courseware and technologies to reach more students and teachers. The document promotes the TeachingKidsProgramming.org website as a free resource for teachers, volunteers, and students ages 10 and up to access recipes and learn programming.
This document provides an overview of automated testing in AngularJS, including unit testing, end-to-end testing, and acceptance testing using tools like Protractor and CucumberJS. It discusses the benefits of automated testing such as enabling safe refactoring and reducing bugs. It then demonstrates how to set up testing frameworks like Protractor and Karma and write tests using page objects and test-driven development. The document also covers acceptance testing with CucumberJS by writing step definitions and features in Gherkin and linking them to tests.
Yet Another Continuous Integration StoryAnton Serdyuk
This document describes the continuous integration process used at Startup Labs, Inc. It discusses using a single branch development model with feature flags instead of feature branches. Automated tests are run on every commit, with the goal of fast builds. Tests are run in parallel across multiple agents. Manual testing is done after automated testing. Load and migration tests are run before production deployments. The goals are agile development with small changes and frequent releases through continuous integration and deployment.
This document compares popular JavaScript automation frameworks for testing Node.js applications, including Protractor, WebdriverIO, and NightwatchJS. It provides details on each framework, such as supported features, syntax, and advantages. NightwatchJS is highlighted as a good option for end-to-end testing due to its built-in test runner, support for parallel testing, cross-browser testing, and mobile testing. While it requires callbacks, NightwatchJS has an easy syntax, inbuilt debugging, and is overall presented as a strong framework for end-to-end testing of Node.js applications.
Agile testing emphasizes:
- Collaborative, integrated teams that test early and often throughout development;
- Frequent deliveries of working software that is tested as part of being "done";
- The ability to adapt testing to changing business needs.
Some key principles of agile testing include shifting the focus of testing from the last phase to being integrated throughout development, having everybody on the team test rather than just designated testers, reducing the latency between implementing code and testing it, and treating bugs as issues to be fixed quickly rather than letting them linger.
Effective agile testing incorporates practices like automated unit and integration tests, test-driven development, automated system-level regression tests, acceptance test
The document discusses lean approaches to UI/UX testing including rapid wireframing tools, guerrilla testing, and automated A/B testing to test ideas quickly and cheaply. It then introduces Applitools, a visual automation test tool that can automate visual testing to check for issues like anti-aliasing, brightness, and sub-pixel shifts across browsers, operating systems, and screen resolutions. The document outlines Applitools' workflow for baseline creation and test execution and provides a demo. It notes challenges with visual testing and how Applitools addresses them through specialized image processing.
Android Studio vs Eclipse: What are the main differences?avocarrot
The document compares Android Studio and Eclipse IDEs for Android development. It finds that Android Studio uses the Gradle build system while Eclipse uses Ant. Android Studio offers deeper Android-specific code completion and refactoring support compared to Eclipse. It also has a redesigned user interface designer that is more customizable and responsive than Eclipse's limited XML-based tool. Android Studio organizes projects using modules with Gradle build files, while Eclipse uses workspaces that require restarting to switch. Overall, Android Studio is found to be faster, more robust and the better choice going forward for Android development.
The document describes a mobile product engineering team that is building a solution for last-minute hotel booking. The team consists of various roles including product designers, Android and iOS developers, backend developers, and QA testers. The engineering practices emphasize agile methodology, continuous integration and deployment, use of best tools and technologies, and data-driven development.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
The document discusses automating performance optimization for modern web applications. It describes defining performance issues to address, using tools to solve them, and integrating optimizations into the development process. Key parts that can be automated include minifying JavaScript and CSS, optimizing images, inlining styles, and removing unused CSS. Integrating these tasks with build tools like Grunt and deployment with Jenkins can make performance part of daily development.
This document discusses visual testing and the challenges of automating it. It introduces Applitools, a framework that handles challenges like anti-aliasing, pixel shifts, and dynamic content when comparing screenshots. Applitools uses flexible verification settings and image processing to identify visual differences while ignoring minor layout changes. The document provides examples of integrating Applitools into test frameworks and executing cross-browser tests by leveraging baseline data. It also outlines next steps like using screen regions and different resolutions.
Introduction to android studio 2.0 and data binding libraryKaushal Dhruw
This document introduces Android Studio 2.0 Preview 6 and the Data Binding Library. It discusses how the Data Binding Library allows writing apps faster by minimizing glue code and binding data and UI with few lines of code. It provides instructions for setting up a project for data binding and examples of writing data bound layouts and expressions. Key features of Android Studio 2.0 Preview 6 include improvements to the IDE, build system, and Android emulators.
This document discusses DevOps test-driven development (TDD). It introduces DevOps and TDD concepts and practices. It provides an example of using a Node.js test framework and API testing to implement TDD for a login feature. The document emphasizes that TDD is about designing better code through testing rather than just writing tests. It also discusses using continuous integration/delivery (CI/CD) pipelines to automatically run tests on code changes.
Configuring Bamboo plans through the UI can be difficult due to long wait times and complexity. Come to this session to learn how you can tweak your configuration and start managing your builds like a pro.
Przemek Bruski, Architect, Bamboo, Atlassian
The document discusses different layers of automated acceptance testing and compares different toolsets for each layer. The three layers are: 1) Acceptance Criteria Layer which defines test scenarios in a business-readable format, 2) Test Implementation Layer which implements tests against the system under test, and 3) Application Driver Layer which executes tests against the application. Popular tools like Cucumber, Concordion and FitNesse are compared across the layers in terms of their functionality and how each layer is addressed. The document also provides references and suggestions for further exploring related testing concepts.
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)Ilya Zakharau
Overview of the UX tools which allow transforming your prototype to code or ready-to-go application: Framer.js, Fuse Tools (Fuse Open), Alva, Supernova.
The presentation from BA Grodno Community meetup 20.03.2018
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
The document compares agile QA approaches like end-to-end testing and discusses how Quid uses both Selenium and RainforestQA for testing. It notes that while Selenium allows for fast automated testing, it is tied to the frontend implementation. RainforestQA uses human testers which is easier to maintain but slower. For complex products like Quid, RainforestQA has scaled testing better and freed up engineer time for more exploratory testing.
Better Page Object Handling with Loadable Component PatternSargis Sargsyan
This document discusses using the Loadable Component pattern to improve page object handling in Selenium tests. It introduces the LoadableComponent and SlowLoadableComponent classes, which are designed to make page objects less brittle by ensuring pages are fully loaded before interacting with elements. This approach reduces boilerplate code and makes tests easier to maintain. The document also covers common failures like brittle tests, not building a framework properly, and not using explicit waits, as well as tips for continuous integration of automated tests.
Covering topics like:
CI CD DevOps Jenkins TFS TeamCity Compile Test Package Delpoy
See Disclaimer in the last slide and/or in file comments, if available.
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
In 1999, PayPal's name was synonymous with innovation. In fact, the so called PayPal Mafia (original founders) went on to establish Tesla, SpaceX, YouTube, Skype and other startups. They also provided the early investments of many of the most innovative companies on the internet today. But over time that innovation slowed to a crawl.
In 2011 a number of things begin to come together for PayPal that started its journey back to innovation. This is the story of that reboot and how engineering has played a key role in partnering directly with product and design to move from a culture of products having a long shelf life, to one of rapid experimentation.
In this talk, Bill will outline the principles of Lean Engineering; principles for engineering that enable learning. Drawing from his experience leading User Interface Engineering at both Netflix & PayPal, Bill will walk you through the key principles your engineering team will need to adopt to be that enabler for product and design in your organization. This talk will not just inspire you, but it will also give you some hard earned advice on making this a reality in your organization.
Are you sick of Merge Hell? Do your feature branches go rogue? Do you spend more time fiddling with your Version Control System than doing actual development work? Then Trunk Based Development might be for you. Facebook does it. Google does it. Instead of messing with multiple branches, just use your master branch. Always. In addition to giving you an overview about how Trunk Based Development works, where it shines and where the pitfalls are, this talk will also cover the necessary techniques to succeed with it, such as Branch By abstraction, Feature Toggles and backwards compatible Database Migrations.
This document discusses Microsoft technologies and courseware that can be used to teach kids programming, including Small Basic, T-SQL, Kodu, and Lego Mindstorms. It provides information on the intent of the courseware, the technologies, activities like quizzes and recipes, and future directions for expanding the courseware and technologies to reach more students and teachers. The document promotes the TeachingKidsProgramming.org website as a free resource for teachers, volunteers, and students ages 10 and up to access recipes and learn programming.
This document provides an overview of automated testing in AngularJS, including unit testing, end-to-end testing, and acceptance testing using tools like Protractor and CucumberJS. It discusses the benefits of automated testing such as enabling safe refactoring and reducing bugs. It then demonstrates how to set up testing frameworks like Protractor and Karma and write tests using page objects and test-driven development. The document also covers acceptance testing with CucumberJS by writing step definitions and features in Gherkin and linking them to tests.
Yet Another Continuous Integration StoryAnton Serdyuk
This document describes the continuous integration process used at Startup Labs, Inc. It discusses using a single branch development model with feature flags instead of feature branches. Automated tests are run on every commit, with the goal of fast builds. Tests are run in parallel across multiple agents. Manual testing is done after automated testing. Load and migration tests are run before production deployments. The goals are agile development with small changes and frequent releases through continuous integration and deployment.
This document compares popular JavaScript automation frameworks for testing Node.js applications, including Protractor, WebdriverIO, and NightwatchJS. It provides details on each framework, such as supported features, syntax, and advantages. NightwatchJS is highlighted as a good option for end-to-end testing due to its built-in test runner, support for parallel testing, cross-browser testing, and mobile testing. While it requires callbacks, NightwatchJS has an easy syntax, inbuilt debugging, and is overall presented as a strong framework for end-to-end testing of Node.js applications.
Agile testing emphasizes:
- Collaborative, integrated teams that test early and often throughout development;
- Frequent deliveries of working software that is tested as part of being "done";
- The ability to adapt testing to changing business needs.
Some key principles of agile testing include shifting the focus of testing from the last phase to being integrated throughout development, having everybody on the team test rather than just designated testers, reducing the latency between implementing code and testing it, and treating bugs as issues to be fixed quickly rather than letting them linger.
Effective agile testing incorporates practices like automated unit and integration tests, test-driven development, automated system-level regression tests, acceptance test
The document discusses lean approaches to UI/UX testing including rapid wireframing tools, guerrilla testing, and automated A/B testing to test ideas quickly and cheaply. It then introduces Applitools, a visual automation test tool that can automate visual testing to check for issues like anti-aliasing, brightness, and sub-pixel shifts across browsers, operating systems, and screen resolutions. The document outlines Applitools' workflow for baseline creation and test execution and provides a demo. It notes challenges with visual testing and how Applitools addresses them through specialized image processing.
Android Studio vs Eclipse: What are the main differences?avocarrot
The document compares Android Studio and Eclipse IDEs for Android development. It finds that Android Studio uses the Gradle build system while Eclipse uses Ant. Android Studio offers deeper Android-specific code completion and refactoring support compared to Eclipse. It also has a redesigned user interface designer that is more customizable and responsive than Eclipse's limited XML-based tool. Android Studio organizes projects using modules with Gradle build files, while Eclipse uses workspaces that require restarting to switch. Overall, Android Studio is found to be faster, more robust and the better choice going forward for Android development.
The document describes a mobile product engineering team that is building a solution for last-minute hotel booking. The team consists of various roles including product designers, Android and iOS developers, backend developers, and QA testers. The engineering practices emphasize agile methodology, continuous integration and deployment, use of best tools and technologies, and data-driven development.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
The document discusses automating performance optimization for modern web applications. It describes defining performance issues to address, using tools to solve them, and integrating optimizations into the development process. Key parts that can be automated include minifying JavaScript and CSS, optimizing images, inlining styles, and removing unused CSS. Integrating these tasks with build tools like Grunt and deployment with Jenkins can make performance part of daily development.
This document discusses visual testing and the challenges of automating it. It introduces Applitools, a framework that handles challenges like anti-aliasing, pixel shifts, and dynamic content when comparing screenshots. Applitools uses flexible verification settings and image processing to identify visual differences while ignoring minor layout changes. The document provides examples of integrating Applitools into test frameworks and executing cross-browser tests by leveraging baseline data. It also outlines next steps like using screen regions and different resolutions.
Introduction to android studio 2.0 and data binding libraryKaushal Dhruw
This document introduces Android Studio 2.0 Preview 6 and the Data Binding Library. It discusses how the Data Binding Library allows writing apps faster by minimizing glue code and binding data and UI with few lines of code. It provides instructions for setting up a project for data binding and examples of writing data bound layouts and expressions. Key features of Android Studio 2.0 Preview 6 include improvements to the IDE, build system, and Android emulators.
This document discusses DevOps test-driven development (TDD). It introduces DevOps and TDD concepts and practices. It provides an example of using a Node.js test framework and API testing to implement TDD for a login feature. The document emphasizes that TDD is about designing better code through testing rather than just writing tests. It also discusses using continuous integration/delivery (CI/CD) pipelines to automatically run tests on code changes.
Configuring Bamboo plans through the UI can be difficult due to long wait times and complexity. Come to this session to learn how you can tweak your configuration and start managing your builds like a pro.
Przemek Bruski, Architect, Bamboo, Atlassian
The document discusses different layers of automated acceptance testing and compares different toolsets for each layer. The three layers are: 1) Acceptance Criteria Layer which defines test scenarios in a business-readable format, 2) Test Implementation Layer which implements tests against the system under test, and 3) Application Driver Layer which executes tests against the application. Popular tools like Cucumber, Concordion and FitNesse are compared across the layers in terms of their functionality and how each layer is addressed. The document also provides references and suggestions for further exploring related testing concepts.
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)Ilya Zakharau
Overview of the UX tools which allow transforming your prototype to code or ready-to-go application: Framer.js, Fuse Tools (Fuse Open), Alva, Supernova.
The presentation from BA Grodno Community meetup 20.03.2018
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
The document compares agile QA approaches like end-to-end testing and discusses how Quid uses both Selenium and RainforestQA for testing. It notes that while Selenium allows for fast automated testing, it is tied to the frontend implementation. RainforestQA uses human testers which is easier to maintain but slower. For complex products like Quid, RainforestQA has scaled testing better and freed up engineer time for more exploratory testing.
Better Page Object Handling with Loadable Component PatternSargis Sargsyan
This document discusses using the Loadable Component pattern to improve page object handling in Selenium tests. It introduces the LoadableComponent and SlowLoadableComponent classes, which are designed to make page objects less brittle by ensuring pages are fully loaded before interacting with elements. This approach reduces boilerplate code and makes tests easier to maintain. The document also covers common failures like brittle tests, not building a framework properly, and not using explicit waits, as well as tips for continuous integration of automated tests.
Covering topics like:
CI CD DevOps Jenkins TFS TeamCity Compile Test Package Delpoy
See Disclaimer in the last slide and/or in file comments, if available.
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
In 1999, PayPal's name was synonymous with innovation. In fact, the so called PayPal Mafia (original founders) went on to establish Tesla, SpaceX, YouTube, Skype and other startups. They also provided the early investments of many of the most innovative companies on the internet today. But over time that innovation slowed to a crawl.
In 2011 a number of things begin to come together for PayPal that started its journey back to innovation. This is the story of that reboot and how engineering has played a key role in partnering directly with product and design to move from a culture of products having a long shelf life, to one of rapid experimentation.
In this talk, Bill will outline the principles of Lean Engineering; principles for engineering that enable learning. Drawing from his experience leading User Interface Engineering at both Netflix & PayPal, Bill will walk you through the key principles your engineering team will need to adopt to be that enabler for product and design in your organization. This talk will not just inspire you, but it will also give you some hard earned advice on making this a reality in your organization.
The document discusses professionalizing the front-end developer role. It covers:
1. The responsibilities of a front-end developer in bringing a designer's static design to life, separating concerns between front-end and back-end teams through an API.
2. Techniques, tools, languages, and frameworks a front-end developer uses like test-driven development, automation workflows, preprocessors, frameworks, and more.
3. Introductions to Angular and React, including their conceptual overviews, classic request flows, learning curves, and how to think in the "React way" through components, state, data flow, and more.
This document summarizes an upcoming tour by Kevin Schroeder of Zend Technologies to discuss various topics including:
- An introduction to Kevin and what he does at Zend
- An overview of Zend products like Zend Framework and Zend Server
- A discussion of performance, scalability, and queuing in PHP applications
- A demonstration of using the Zend Server job queue to asynchronously process tasks
- Considerations for deploying PHP applications in different environments like development, testing, staging, and production
I attended the Tabara de Testare testing group on 3rd February 2015 to present "Lessons Learned When Automating. A live stream from UK to Romania.
http://compendiumdev.co.uk/page/tabaradetestare201602
I've been asked some very challenging questions about lessons learned, and how decisions are made during the process of automating and performing technical testing. In this webinar I'm going to answer them based on my experience. We'll discus how we know 'what to automate' which means we have to split our analysis into 'detection' and 'testing'. We'll cover lessons learned from solving problems, and making mistakes, and steps we can take during the problem solving process e.g. for intermittent failures, and possible tool bugs. We'll discuss abstraction levels and the different levels of the technology stack to automate: how to do it, and how we make the decisions. We'll discuss coding primarily the differences, and the overlap, between the needs for coding for testing and coding for production deployment. We'll also cover some WebDriver specific answers to some of these questions. I'm also going to describe books and techniques that have helped me over the years when trying to deal with these questions on production projects.
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
Step 1 discusses work management in Visual Studio/TFS 2010, including hierarchical work management, improved dashboards and reports, and Excel integration. Step 2 covers defining and reporting on what is considered "done". Step 3 discusses automated builds, including build reports and associating work items. Step 4 focuses on manual testing tools like Microsoft Test Manager for test planning, management, and bug filing.
Karthik Gaekwad is a member of the cloud team at National Instruments who owns the Canopy user management and licensing platform. He discusses National Instrument's approach to cloud development which includes short monthly iterations to incrementally develop and deploy new features. Key aspects of their approach include modeling the end-to-end system, designing features to be reusable across platforms, extensive testing and monitoring, and getting early user feedback through demos.
This document provides an overview of agile methodology and several agile frameworks. It begins with a brief history of the traditional waterfall model and its limitations. It then introduces the agile manifesto and some core agile principles. Several agile frameworks are described at a high level, including scrum, kanban, extreme programming, and others. Key practices of scrum and extreme programming like iterations, user stories, stand-up meetings, and test-driven development are defined. The document aims to give the reader a broad understanding of agile concepts and some of the most commonly used agile frameworks and practices.
Gradle is an open-source build automation tool focused on flexibility, build reproducibility and performance. Over the years, this tool has evolved and introduced new concepts and features around dependency management, publication and other aspects on build and release of artifacts for the Java platform.
Keeping up to date with all these features across several projects can be challenging. How do you make sure that all your projects can be upgraded to the latest version of Gradle? What if you have thousands of projects and hundreds of engineers? How can you abstract common tasks for them and make sure that new releases work as expected?
At Netflix, we built Nebula, a collection of Gradle plugins that helps engineers remove boilerplate in Gradle build files, and makes building software the Netflix way easy. This reduces the cognitive load on developers, allowing them to focus on writing code.
In this talk, I’ll share with you our philosophy on how to build JVM artifacts and the pieces that help us boost the productivity of engineers at Netflix. I’ll talk about:
- What is Nebula
- What are the common problems we face and try to solve
- How we distribute it to every JVM engineer
- How we ensure that Nebula/Gradle changes do not break builds so we can ship new features with confidence at Netflix
Making software development processes to work for youAmbientia
Mikko Paukkila discusses optimizing software development processes to balance bureaucracy and flexibility. He advocates for continuous integration to find errors early and speed up feedback loops. Tools like Git, Jenkins, Gerrit enable CI by automating builds, testing and code reviews. Process optimizations include reducing time from change to product, automating more tests, and ensuring developers have easy environments and fast feedback. The goal is enabling smooth development flows from needs to requirements to changes to high quality products.
Top 7 react developer tools to use in 2021WrapPixel
Whether you are just starting to learn React or you’re already full-time working professionally in it there is a huge count of tools (both free and paid) that you can use in your personal or professional projects. They are always beneficial as they help speed up the workflow or get things done easily.
For React developers to take full advantage of the library so that coding with it becomes easier and faster, here are 7 of the best tools out there which you as a React dev should bookmark and use as a reference whenever needed.
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
From 0 to DevOps in 80 Days
Link to the webinar replay: https://info.dynatrace.com/apm_dtm_ops_17q3_wc_from_enterprise_tocloud_native_na_registration.html
“Innovate or die” may sound extreme, but it’s the only way to thrive in today’s ever competitive market. Bernd Greifeneder, CTO of Dynatrace, wanted to ensure that the company was relevant 5 years from now so he formed an internal incubator with one goal: transform Dynatrace into a Cloud Native DevOps organization.
The incubator focused on what the company needed to do in order to integrate nascent cloud technologies so that they wouldn’t be left in the dust when the inevitable tipping point to cloud arrives. Transforming into a cloud native company would allow for rapid release cycles and provide an embedded feedback loop.
The Results: Dynatrace now has a 99.998% availability of SaaS Service and can deploy changes within an hour if necessary. In parallel, a new SaaS and managed offering is released every 2 weeks with 170 production updates per day.
Watch this recorded webinar as Bernd Greifeneder shares the lessons learned moving Dynatrace from an on-prem company to one that is cloud native.
Bernd discusses:
• The driving factors that led to the transformation
• The goals that were set back in 2011 towards the engineering team
• How to sell such a transformation project in a large enterprise organization
• How to support this multi-year project from top down without impacting regular operations
• What's next on the innovator's mind
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
Keynote for eBay Classifieds TechCon 2013, Tues June 25, 2013.
This is a variation on previous lean engineering talks but focuses on 8 principles for enabling build/measure/learn.
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
This document introduces automated testing and provides guidance on how to implement it. It discusses:
1) The benefits of unit tests such as finding bugs quickly, preventing regressions, and improving design.
2) The different types of automated tests including unit, system, and performance tests. Unit tests are fast and robust while system tests test entire systems.
3) How to set up an automated testing environment including tools for different languages, integrating tests into development workflows, and using build servers to run tests on commits.
Similar to Bulletproof design systems using storybook (20)
Advanced control scheme of doubly fed induction generator for wind turbine us...IJECEIAES
This paper describes a speed control device for generating electrical energy on an electricity network based on the doubly fed induction generator (DFIG) used for wind power conversion systems. At first, a double-fed induction generator model was constructed. A control law is formulated to govern the flow of energy between the stator of a DFIG and the energy network using three types of controllers: proportional integral (PI), sliding mode controller (SMC) and second order sliding mode controller (SOSMC). Their different results in terms of power reference tracking, reaction to unexpected speed fluctuations, sensitivity to perturbations, and resilience against machine parameter alterations are compared. MATLAB/Simulink was used to conduct the simulations for the preceding study. Multiple simulations have shown very satisfying results, and the investigations demonstrate the efficacy and power-enhancing capabilities of the suggested control system.
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMHODECEDSIET
Time Division Multiplexing (TDM) is a method of transmitting multiple signals over a single communication channel by dividing the signal into many segments, each having a very short duration of time. These time slots are then allocated to different data streams, allowing multiple signals to share the same transmission medium efficiently. TDM is widely used in telecommunications and data communication systems.
### How TDM Works
1. **Time Slots Allocation**: The core principle of TDM is to assign distinct time slots to each signal. During each time slot, the respective signal is transmitted, and then the process repeats cyclically. For example, if there are four signals to be transmitted, the TDM cycle will divide time into four slots, each assigned to one signal.
2. **Synchronization**: Synchronization is crucial in TDM systems to ensure that the signals are correctly aligned with their respective time slots. Both the transmitter and receiver must be synchronized to avoid any overlap or loss of data. This synchronization is typically maintained by a clock signal that ensures time slots are accurately aligned.
3. **Frame Structure**: TDM data is organized into frames, where each frame consists of a set of time slots. Each frame is repeated at regular intervals, ensuring continuous transmission of data streams. The frame structure helps in managing the data streams and maintaining the synchronization between the transmitter and receiver.
4. **Multiplexer and Demultiplexer**: At the transmitting end, a multiplexer combines multiple input signals into a single composite signal by assigning each signal to a specific time slot. At the receiving end, a demultiplexer separates the composite signal back into individual signals based on their respective time slots.
### Types of TDM
1. **Synchronous TDM**: In synchronous TDM, time slots are pre-assigned to each signal, regardless of whether the signal has data to transmit or not. This can lead to inefficiencies if some time slots remain empty due to the absence of data.
2. **Asynchronous TDM (or Statistical TDM)**: Asynchronous TDM addresses the inefficiencies of synchronous TDM by allocating time slots dynamically based on the presence of data. Time slots are assigned only when there is data to transmit, which optimizes the use of the communication channel.
### Applications of TDM
- **Telecommunications**: TDM is extensively used in telecommunication systems, such as in T1 and E1 lines, where multiple telephone calls are transmitted over a single line by assigning each call to a specific time slot.
- **Digital Audio and Video Broadcasting**: TDM is used in broadcasting systems to transmit multiple audio or video streams over a single channel, ensuring efficient use of bandwidth.
- **Computer Networks**: TDM is used in network protocols and systems to manage the transmission of data from multiple sources over a single network medium.
### Advantages of TDM
- **Efficient Use of Bandwidth**: TDM all
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
International Conference on NLP, Artificial Intelligence, Machine Learning an...gerogepatton
International Conference on NLP, Artificial Intelligence, Machine Learning and Applications (NLAIM 2024) offers a premier global platform for exchanging insights and findings in the theory, methodology, and applications of NLP, Artificial Intelligence, Machine Learning, and their applications. The conference seeks substantial contributions across all key domains of NLP, Artificial Intelligence, Machine Learning, and their practical applications, aiming to foster both theoretical advancements and real-world implementations. With a focus on facilitating collaboration between researchers and practitioners from academia and industry, the conference serves as a nexus for sharing the latest developments in the field.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...IJECEIAES
Climate change's impact on the planet forced the United Nations and governments to promote green energies and electric transportation. The deployments of photovoltaic (PV) and electric vehicle (EV) systems gained stronger momentum due to their numerous advantages over fossil fuel types. The advantages go beyond sustainability to reach financial support and stability. The work in this paper introduces the hybrid system between PV and EV to support industrial and commercial plants. This paper covers the theoretical framework of the proposed hybrid system including the required equation to complete the cost analysis when PV and EV are present. In addition, the proposed design diagram which sets the priorities and requirements of the system is presented. The proposed approach allows setup to advance their power stability, especially during power outages. The presented information supports researchers and plant owners to complete the necessary analysis while promoting the deployment of clean energy. The result of a case study that represents a dairy milk farmer supports the theoretical works and highlights its advanced benefits to existing plants. The short return on investment of the proposed approach supports the paper's novelty approach for the sustainable electrical system. In addition, the proposed system allows for an isolated power setup without the need for a transmission line which enhances the safety of the electrical network
4. Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
5. Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
6. Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
20. ● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
21. ● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
22. ● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
24. CDD - Background
● Being a front end developer became more complex
● Several apps with the same design language
● More business logic => code can become a spaghetti
● Components Driven Development is not a new idea generally but it is new
in the front end development ecosystem
25. CDD - Background
“...Components enable interchangeability by isolating
state from application business logic. That way, you can
decompose complex screens into simple components.
Each component has a well-defined API and fixed series
of states that are mocked. This allows components to be
taken apart and recomposed to build different UIs....”
33. How It Helps
● Efficient - collaboration and feedback loop
● Faster - reusing components which are isolated and easy to use
● Easy to find bugs/failure points - tested so I can find the issue without
wasting too much time
● Scalability - app grows or adding more products without any issue since we
have one source of truth
34. Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
35. Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
36. Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
37. Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
38. Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
40. Design System
● Working with CDD is one step forward
● When things get more complex there is a need for clear and smooth
workflow
● The design system serves as a bridge between disciplines. It is also the
“source of truth” for an organization’s common components.
42. Design System - Background
“...A design system consolidates common UI components
in a central well-maintained repository that gets
distributed via a package manager. Developers import
standardized UI components instead of pasting the same
UI code in multiple projects.....”
43. Design System - Background
“...Most design systems aren’t built from scratch. Instead,
they’re assembled from tried-and-true UI components
used across a company which are repackaged as a
design system......”
56. Chromatic - Review and Feedback
● Chromatic is a tool developed by Storybook maintainers
● It integrates with Github and your deployment process
● Code Review - But for the UI
60. Test to prevent UI bugs
● Design systems are a single source of truth and a single point of failure.
Minor UI bugs in basic components can snowball into company-wide
incidents.
● Automate tests helps you mitigate the inevitable bugs to ship durable,
accessible UI components with confidence
63. Testing strategy
● Coverage of enough cases
● Accuracy which means make sure we test the most important
functionalities
● Maintainability - we need to make sure it is easy to understand and
maintain our tests. In addition, to avoid creating and maintaining tests that
are not worth it
66. CSF - Component Story Format
● Stories and component metadata are defined as ES Modules
● Every component story file consists of a required default export and one or
more named exports
● Basically, by using CSF, we already think about all the states of the
components and preparing the data and relevant args
74. Unit
● Unit tests helps us test a functionality of an isolated component we created
● If it is hard for us to test it , it might be a clue that it is not isolated enough
76. What not to test?
● Snapshot tests (on complex components) - can cause many false-
positives when UI acts as expected but some data changes. It can be hard
to maintain
● E2E - Choose it carefully and avoid creating them as part of storybook
unless it really gives you some clear benefits
84. Takeaways
Build it with
layers.
Start with small
success
Collaboration
process.
Not only for
developers!
Coverage,
Accurate and
Maintainable!
Adopted by
huge companies
Learn from their
resources!
85. Thank You!
We are hiring!
(PM me or https://www.gong.io/careers/)
@chenfeldmn
@chenosfeldman
www.ranlevi.com/software
https://github.com/ChenFeldman
https://www.linkedin.com/in/chen-feldman-2404682a/
In cases of
Image processing
Heavy calculations and logic that are done in the client side
Running algorithms in the main js thread
Or even any client operation that is done there and takes 500 milliseconds
The user will still feel the legging.
Developer
Getting some brief from the above and planning the components or building the page directly. Depends on the way the company decided to work
While working/planning sending some feedback or question to product/design
Developer - finish building the feature
Code review from another developer
UI feedback? kind of a code review from product/design
Many possible failure points in this process (every company build its own workflow)
Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature.
How many time do we ask the above Q and answering No? if it is too much it should make you think
How do we communicate faster with design and product through one path?
Figma comments? not working perfectly. Where do I document those comments as tasks?
Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback
Bugs - what is the source? the components or the page?
If the components were isolated and tested, it would be faster to find bugs since the is one point of failure
Damn .. this component is almost generic..I think I will just write my own one
It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
Many possible failure points in this process (every company build its own workflow)
Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature.
How many time do we ask the above Q and answering No? if it is too much it should make you think
How do we communicate faster with design and product through one path?
Figma comments? not working perfectly. Where do I document those comments as tasks?
Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback
Bugs - what is the source? the components or the page?
If the components were isolated and tested, it would be faster to find bugs since the is one point of failure
Damn .. this component is almost generic..I think I will just write my own one
It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
Many possible failure points in this process (every company build its own workflow)
Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature.
How many time do we ask the above Q and answering No? if it is too much it should make you think
How do we communicate faster with design and product through one path?
Figma comments? not working perfectly. Where do I document those comments as tasks?
Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback
Bugs - what is the source? the components or the page?
If the components were isolated and tested, it would be faster to find bugs since the is one point of failure
Damn .. this component is almost generic..I think I will just write my own one
It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
Let’s see a live demo I made specially for you to better understand what pain do we have in js as a single-threaded language.
We see here a race between frameworks which is controlled by the js main thread to move them forward
While they race we have a code editor above the we can write anything we want
Each keyup event our text is being analyzed and the results are shown below the text area
The analyzed can take up to a second so I created a blocking code that demonstrate this heavy calculation that can be done on the text each time
As you see, when we type something and the analysis runs, all the other actions in our program are stuck
Cannot click button or hover. UI is blocked
The animations are not moving since the code which is responsible for them is waiting for our analysis to finish executing
Being a front end developer became more complex in the last years.
App is build cross-platform and some companies builds several apps with the same design language
It requires more business logic and when an app grows the code can become a spaggethi with many bugs and hard to navigate and control
Components Driven Development is not a new idea generally but it is new in the front end development eco-system. React framework was one of the first to adopt it in it core.
We can find kind of a similar concepts in other worlds : micro-services and containers which modularise our app services (but this is not part of our lecture)
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth
Efficient - collaboration and feedback loop
Faster - re-using components which are isolated and easy to use
Easy to find bugs/failure points - tested so I can find the issue without wasting too much time
Scalability - app grows or adding more products without any issue since we have one source of truth