SlideShare a Scribd company logo
1 of 71
Download to read offline
1 • 8-November-23
2 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
3 • 8-November-23
Picnic
4 • 8-November-23
Code quality
5 • 8-November-23
Excellent code quality
Good architecture
Review process
Bugs and uniformity
Automation
6 • 8-November-23
Parkinson's law of triviality
7 • 8-November-23
Code reviews and discussions
8 • 8-November-23
Tools
Google/google-java-format
Reformats Java source code to comply
with Google Java Style.
checkstyle/checkstyle
Helps programmers write Java code
that adheres to a coding standard.
spotbugs/spotbugs
A tool for static analysis to look
for bugs in Java code.
SonarSource/sonarqube
Continuous Inspection.
9 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
10 • 8-November-23
Open-source static analysis
Compiler plugin
Powerful
500+ Error Prone checks
Complex
Error Prone
Google/error-prone
Catch common Java mistakes
as compile-time errors
11 • 8-November-23
Refaster
Define refactorings with templates.
becomes
12 • 8-November-23
Demo
Let’s demonstrate!
https://github.com/rickie/error-prone-demo
13 • 8-November-23
Maven profile 1
https://errorprone.info/docs/flags
14 • 8-November-23
Maven profile 2
15 • 8-November-23
Demo
Let’s demonstrate!
https://github.com/rickie/error-prone-demo
16 • 8-November-23
Bug patterns
https://errorprone.info/bugpatterns
17 • 8-November-23
Error Prone as superpower
18 • 8-November-23
Error Prone as superpower
Input:
Output:
19 • 8-November-23
Workshop planning
1. Setting up the project
2. Refaster rules
3. Error Prone checks
20 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
21 • 8-November-23
At Picnic we take it one step further!
22 • 8-November-23
Picnic open-sourced: Error Prone Support!
800+ Refaster rules
40+ Error Prone bug checks
https://error-prone.picnic.tech
23 • 8-November-23
Error Prone BugPattern
24 • 8-November-23
Error Prone BugPattern
25 • 8-November-23
Picnic’s Error Prone Support
Run Refaster rules from classpath
Test support for Refaster rules
Improved reporting of Refaster rules
Documentation website
https://error-prone.picnic.tech
26 • 8-November-23
Error Prone Support website
https://error-prone.picnic.tech
27 • 8-November-23
Let’s start with the setup!
PicnicSupermarket
error-prone-support
Error Prone extensions:
extra bug checkers and a large battery of
Refaster rules.
branch: workshop
28 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
29 • 8-November-23
Deep dive Refaster
- Background information
- Goals
- How does Refaster work?
- Advanced features
30 • 8-November-23
Refaster
- 2015 - Louis Wasserman (source)
- Two tools
- Closed source
31 • 8-November-23
Refaster rules availability
32 • 8-November-23
Deep dive Refaster
Goals of Refaster (source):
- Scalability
- Expressiveness
- Usability
When to use Refaster? (docs)
- Method A to method B.
- Migrate a fluent sequence of method invocations to some other
pattern.
- Migrate a sequence of consecutive statements to an alternative.
33 • 8-November-23
Running Refaster
34 • 8-November-23
Running Refaster - The Picnic Way
Link to an example configuration in Error Prone Support
35 • 8-November-23
Running Refaster - The Picnic Way
Refaster runner - `pom.xml` in Error Prone Support
36 • 8-November-23
Refaster @ Picnic
37 • 8-November-23
Refaster @ Picnic
38 • 8-November-23
Advanced Refaster features
39 • 8-November-23
Multiple
`@BeforeTemplate`s
40 • 8-November-23
Refaster#anyOf
41 • 8-November-23
@AlsoNegation
42 • 8-November-23
Import policies
IMPORT_TOP_LEVEL
IMPORT_CLASS_DIRECTLY
STATIC_IMPORT_ALWAYS
43 • 8-November-23
Block Template
44 • 8-November-23
@Placeholder
45 • 8-November-23
Argument types
46 • 8-November-23
Workshop part 2 - Refaster
30 minutes
Workshop README
Live demo!
Tip: use the slides
Once you are done: commit + push
47 • 8-November-23
Let’s inspect the changes!
48 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
49 • 8-November-23
Deep dive Error Prone
- Background
- How to write a BugPattern?
- Automatically fixing code
- How to test a BugPattern?
50 • 8-November-23
Error Prone background
- 2012 - Edward Aftandilian
- Code review and unit testing
- Subclass JavaCompiler
- CompilationUnit level
Source: Error Prone paper
OpenRewrite docs
51 • 8-November-23
Rules for an Error Prone check
1. The bug should be easy to understand.
2. The fix should be easy to make.
3. No false positives.
4. The bug should represent a correctness issue.
5. The bug should occur with a small but noticeable frequency.
https://errorprone.info/docs/criteria
52 • 8-November-23
How does Error Prone work?
Java code Abstract Syntax Tree Tree Node
53 • 8-November-23
Abstract Syntax Tree
54 • 8-November-23
Abstract Syntax Tree
55 • 8-November-23
Creating a BugChecker
56 • 8-November-23
Automatically fixing code!
Flagging vs. Fixing
57 • 8-November-23
Automatically fixing code!
58 • 8-November-23
Testing our BugChecker
59 • 8-November-23
Testing our
BugChecker
60 • 8-November-23
Refaster vs. Error Prone
Easy: work with
concrete syntax
Complex: AST
manipulation code
Limited
expressiveness
Full AST available
Refactoring only Also flags
without suggestions
61 • 8-November-23
Workshop part 3 - Error Prone
45 minutes
Live demo
5 assignments
Workshop README
62 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
63 • 8-November-23
Error Prone @ Picnic
Common configuration
./patch.sh
Continuous Integration
64 • 8-November-23
Applying Error Prone Support @ Picnic
Introducing:
- all Refaster rules
- all Error Prone checks
Approach
Perspective
https://error-prone.picnic.tech
65 • 8-November-23
Applying Error Prone Support @ Picnic
60+ PRs spread over 40+ Java repositories
33.665 insertions (+) 31.281 deletions (-)
66 • 8-November-23
Applying Error Prone Support @ Picnic
67 • 8-November-23
Applying Error Prone Support @ Picnic
68 • 8-November-23
Current state of Error Prone Support
People contributing ideas (from reviews)
40+ contributors
Stickers
Contributions?
Adoption
69 • 8-November-23
In summary
Two perspectives:
- Happy developers!
- Platform team or configuration
maintainers.
Automatically fix
One bug at a time
join.picnic.app
blog.picnic.nl
71 • 8-November-23
Unsure about next steps?
Feel free to reach out!
- https://error-prone.picnic.tech
- https://github.com/rickie/error-prone-demo - Demo code
Stephan Schroevers - stephan.schroevers@teampicnic.com
GitHub: https://github.com/Stephan202
Rick Ossendrijver - rick.ossendrijver@teampicnic.com
GitHub: https://github.com/rickie
Twitter: rick_ossies
We’re open to PRs ;)

More Related Content

Similar to EPS Workshop JFall - 1.0

Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?Pooja Rani
 
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptxMuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptxBrianFraser29
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux Neotys
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Puppet
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet codeJulien Pivotto
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Android asynchronous programming
Android asynchronous programmingAndroid asynchronous programming
Android asynchronous programmingNhan Cao
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automationElias Nogueira
 
Building Awesome APIs with Lumen
Building Awesome APIs with LumenBuilding Awesome APIs with Lumen
Building Awesome APIs with LumenKit Brennan
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkinswalkerchang
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorialgarrett honeycutt
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern JavaMiro Cupak
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia VoulibasiISSEL
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...SmartBear
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R OpenRevolution Analytics
 

Similar to EPS Workshop JFall - 1.0 (20)

Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?
 
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptxMuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet code
 
Bug zillatestopiajenkins
Bug zillatestopiajenkinsBug zillatestopiajenkins
Bug zillatestopiajenkins
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Android asynchronous programming
Android asynchronous programmingAndroid asynchronous programming
Android asynchronous programming
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Building Awesome APIs with Lumen
Building Awesome APIs with LumenBuilding Awesome APIs with Lumen
Building Awesome APIs with Lumen
 
Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkins
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia Voulibasi
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R Open
 

Recently uploaded

Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 

Recently uploaded (20)

Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 

EPS Workshop JFall - 1.0