SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
HOW TO BUILD
SUSTAINABLE DEV TEAMS
INCLUSIVE ARCHITECTURE
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
INCLUSIVE
ARCHITECTURE
ENABLES
● Less project maintenance
● Less stress
● Cooperative teams
● Decrease project costs
● Greater diversity
TRACY LEE
@ladyleet
Lead, This Dot Labs, JS consulting (Angular, React, Vue, Node, Polymer)
RxJS Core Team
Google Developer Expert, Angular
Microsoft MVP
Community Rel, Node.js @ OpenJS Foundation
Women Techmakers, GDG Silicon Valley & Triangle
Modern Web Podcast
WHY AREN’T JUNIORS
SUCCESSFUL ON OUR
TEAMS?
People believe that the reason
juniors don’t succeed is due to a
deficiency of the juniors.
They don’t realize it may be a fault
of the the teams.
How non-inclusive projects hurt juniors:
● Poor onboarding documentation
● Rely on individual excellence
● Unnecessarily complex codebase
● No review or mentorship
How non-inclusivity actually hurts everyone
● Harder to onboard and hire
● “Hit by a bus” fears
● Productivity delays
● Lack of advancement & stagnant careers
Individuals succeed and are enabled by teamwork and collaboration
Decrease unnecessary complexity and focus on important features
More innovation, more excitement, more learning
A wider and more diverse set of engineers and skills on your team
THE INCLUSIVE VISION
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
Process doesn’t have to be...
“Processes are usually ad hoc and chaotic.
The organization usually does not provide a
stable environment to support processes...”
“... Success in these organizations depends
on the competence and heroics of the
people in the organization and not on the
use of proven processes...”
“...These organizations are characterized by
a tendency to overcommit, abandon their
processes in a time of crisis, and be unable
to repeat their successes.”
● Clear expectations
● Greater team engagement and cooperation
● No single-points-of-failure
● Less stress during the crazy
● Reduced conflicts and fewer power struggles
THE BENEFITS OF
PROCESS DONE RIGHT
● What needs to be done?
● Who will do those things?
● How should it be done?
● When should it be done?
HOW TO CREATE PLANS
The purpose of code peer review is to ensure
that changes to source code Verification Items
are correct, appropriate and follow style
guidelines.
The goal of the code peer review process is to
discover and correct defects in code before they
can be observed by testers or customers.
CODE PEER REVIEW
Once all Peer Reviewers have
completed the review, the author
responds to comments and
corrects defects.
If there is a disagreement about how
to resolve an issue, the parties
involved should work together to
reach compromise. If an agreement
is not reached, the Development
Manager will arbitrate the dispute.
If a review defect cannot be resolved in the
scope of the peer review, it will be marked
as Track Externally and a defect will be
created in the Quality Center for the issue
and the defect number is added on the
peer review for traceability.
The person who makes the initial changes to the code, makes the review in
CodeCollaborator and revises the Verification Items based on the results of the peer
review.
Responsible for reviewing Verification Items. Can be any developer except the
author. At least one Peer Reviewer is required.
Responsible for reviewing code. Can be any Project 4 team member. Unlike Peer
Reviewers, they are not required to approve a review before it concludes. Having an
observer is not required either.
They take the role of Authors, Peer Reviewers or Observers.
AUTHOR
PEER REVIEWERS
OBSERVERS
DEVELOPERS
ROLES AND RESPONSIBILITIES
● Minimize errors
● Teach new team members
● Reduce cognitive load
CREATE CHECKLISTS
TYPES OF REVIEWS
● Meeting Notes
● Designs
● Requirements
● Tests
● Code
● Plans
● Email to Clients
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WEB DEVELOPMENT IS HARD
Performance
Security
Accessibility
Responsive Design
Progressive Enhancement
Browser Compatibility
Progressive Web Apps
FRAMEWORKS CAN HELP!
THEY MAKE IT EASY TO DO THE RIGHT THING
LET A FRAMEWORK
DEAL WITH BASIC
PERFORMANCE & SCALABILITY
Tools
● Angular CLI
● Angular Console
● Nx
● Prettier
● Great docs
Architecture & Code
● Component based
● Code reusability
● Libraries
● TypeScript
● Angular Material
& the community!
● Goal is to isolate the construction of the interface from the
business logic and the complicated tech integrations
● This could be done by separating the application into layers
● The senior engineers can implement the most critical sections
and provide hooks for juniors to wire the interface together
ARCHITECTURE
● Strongly typed methods, variables, services
● Easier to understand functionality
● Stricter rules come with less bugs and growing need to
understand the purpose of each method
● Know what to expect and plan accordingly
● Better error handling, spotting the root of the problem
TYPESCRIPT
QUICK START DEVELOPMENT -
CLIS FTW!
● Scaffolding a new project
● Zero-config environment
● Smart defaults
● Out of the box performance using
automatic differential serving, lazy
loading, tree shaking, AoT
compilation
● Actively maintained and kept
up-to-date with core libraries
CLIS FTW!
● Reduce the risk of defects due to
out-of-date or misconfigured
technologies
● Easy migration between major
versions of libraries
● Documentation readily available
● Low risk - ejecting always a
possibility
FRAMEWORK GUIS
STATE MANAGEMENT
STATE MANAGEMENT
STATE MACHINES
DESIGN AND USER EXPERIENCE
● Shared visual language for your team
● Focus and constrain the set of options when building interfaces
● Contain:
○ Design purpose and guidelines
○ Designer resources (ex: Sketch files)
○ Content guidelines
○ Patterns
○ CSS Classes
DESIGN SYSTEMS
● Set of basic reusable components
● Implement the requirements of a design system
● Help tackle accessibility, responsiveness, etc.
● API is usually more complete and thoughtful
COMPONENT LIBRARIES
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
HIRING IS EXPENSIVE FOR YOUR TEAM -
KEEP YOUR PEOPLE
● Accelerates learning & growth
● Increases confidence
● Decreases fear of contribution/collaboration/idea sharing
● Increases communication skills
● Mentees feel more invested-in and valued
● Improves upward mobility (5x more likely to be promoted)
● Mentees become mentors and pass all these benefits on
Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
WHAT’S IN IT FOR MENTEES
● Great perk for recruiting
● Increases developer productivity & retention (~70% more likely)
● Reduces knowledge silos
● Improves the bus factor — reduces succession risks
● Creates a more positive, helpful, collaborative team culture
● Increases loyalty
● Increases employee engagement and motivation
● Improves leader identification and promotion pipeline — mentors
are 6 times more likely to be promoted (Sun Microsystems)
WHAT’S IN IT FOR OTHERS
Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
● Fostering a culture of teaching and sharing
● Formal 1:1 Sessions
● Code Reviews
● Pair Programming
● “Tech Talks”
● Chat Channels
SHIFTING THE ROLE
OF THE SENIOR DEV
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
HOW JUNIORS CAN HELP THEIR
TEAM USE THE PAMSTACK
● Bootstrap process by writing things down, sharing with the team
● Mentor and help your peers who are being onboarded
● Ask questions about the project, code, or process. Document the
answers and share with others.
● Do and ask for code reviews proactively as a way to understand,
get feedback, and create a culture of mentorship.
● If team loves your process or ideas, ask for it to be formally
incorporated into process
Upcoming Events
Angular Online - 1st Thursdays
React Online - 2nd Thursdays
Vue Online - 3rd Thursdays
Cloud Functions & Firebase Training - October 8
If you’re interested in
JavaScript Consulting
let me know!
Also, we’re hiring!
hi@thisdot.co
THANK YOU!

Contenu connexe

Tendances

BA World - BA in AGILE Projects
BA World - BA in AGILE ProjectsBA World - BA in AGILE Projects
BA World - BA in AGILE ProjectsMethodgroup
 
Team maturity scale: How old is your team?
Team maturity scale: How old is your team?Team maturity scale: How old is your team?
Team maturity scale: How old is your team?Tanya Ivanova
 
Agile project inception workshop
Agile project inception workshopAgile project inception workshop
Agile project inception workshopBill Bourne
 
Rapid Project Inception
Rapid Project InceptionRapid Project Inception
Rapid Project Inceptionudairaj
 
Lean/Agile/DevOps 2016 part 1
Lean/Agile/DevOps 2016  part 1Lean/Agile/DevOps 2016  part 1
Lean/Agile/DevOps 2016 part 1Diego Pacheco
 
ScottKellyresume3-24-2016
ScottKellyresume3-24-2016ScottKellyresume3-24-2016
ScottKellyresume3-24-2016Scott Kelly
 
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015Lucas Lima
 
Developer relations KPIs
Developer relations KPIsDeveloper relations KPIs
Developer relations KPIsTessa Mero
 
Webinar on Distributed Agile Development - what works and why
Webinar on Distributed Agile Development - what works and why  Webinar on Distributed Agile Development - what works and why
Webinar on Distributed Agile Development - what works and why Impetus Technologies
 
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyHP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyAliza Carpio
 
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019Pedro Teixeira
 
Lean/Agile/DevOps 2016 part 2
Lean/Agile/DevOps 2016 part 2Lean/Agile/DevOps 2016 part 2
Lean/Agile/DevOps 2016 part 2Diego Pacheco
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookSven Peters
 
Main presentation slides Developer Student Clubs GEC Bilaspur
Main presentation slides Developer Student Clubs GEC BilaspurMain presentation slides Developer Student Clubs GEC Bilaspur
Main presentation slides Developer Student Clubs GEC BilaspurDomendra Sahu
 
Let's Work Together!
Let's Work Together!Let's Work Together!
Let's Work Together!Brad Frost
 
Agile For Life : Becoming Agile Family
Agile For Life : Becoming Agile FamilyAgile For Life : Becoming Agile Family
Agile For Life : Becoming Agile FamilyYoungjin Kim
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017Aliza Carpio
 

Tendances (19)

Introducing techsharp
Introducing techsharpIntroducing techsharp
Introducing techsharp
 
BA World - BA in AGILE Projects
BA World - BA in AGILE ProjectsBA World - BA in AGILE Projects
BA World - BA in AGILE Projects
 
Team maturity scale: How old is your team?
Team maturity scale: How old is your team?Team maturity scale: How old is your team?
Team maturity scale: How old is your team?
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Agile project inception workshop
Agile project inception workshopAgile project inception workshop
Agile project inception workshop
 
Rapid Project Inception
Rapid Project InceptionRapid Project Inception
Rapid Project Inception
 
Lean/Agile/DevOps 2016 part 1
Lean/Agile/DevOps 2016  part 1Lean/Agile/DevOps 2016  part 1
Lean/Agile/DevOps 2016 part 1
 
ScottKellyresume3-24-2016
ScottKellyresume3-24-2016ScottKellyresume3-24-2016
ScottKellyresume3-24-2016
 
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015
(( Lucas lima )) Managing WordPress Projects - STL Meetup August 2015
 
Developer relations KPIs
Developer relations KPIsDeveloper relations KPIs
Developer relations KPIs
 
Webinar on Distributed Agile Development - what works and why
Webinar on Distributed Agile Development - what works and why  Webinar on Distributed Agile Development - what works and why
Webinar on Distributed Agile Development - what works and why
 
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyHP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
 
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
 
Lean/Agile/DevOps 2016 part 2
Lean/Agile/DevOps 2016 part 2Lean/Agile/DevOps 2016 part 2
Lean/Agile/DevOps 2016 part 2
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team Playbook
 
Main presentation slides Developer Student Clubs GEC Bilaspur
Main presentation slides Developer Student Clubs GEC BilaspurMain presentation slides Developer Student Clubs GEC Bilaspur
Main presentation slides Developer Student Clubs GEC Bilaspur
 
Let's Work Together!
Let's Work Together!Let's Work Together!
Let's Work Together!
 
Agile For Life : Becoming Agile Family
Agile For Life : Becoming Agile FamilyAgile For Life : Becoming Agile Family
Agile For Life : Becoming Agile Family
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017
 

Similaire à ChicagoJS's JSCAMP 2019 Keynote - Inclusive Architecture - Building Sustainable Dev Teams with the PAMstack

The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumAgile ME
 
Agile software development
Agile software development Agile software development
Agile software development saurabh goel
 
Software Engineer's Career Management Toolkit
Software Engineer's Career Management ToolkitSoftware Engineer's Career Management Toolkit
Software Engineer's Career Management Toolkitozgengungor1
 
PMI-ACP Training Deck
PMI-ACP Training DeckPMI-ACP Training Deck
PMI-ACP Training Deckwjperez0629
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveColin Domoney
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 
Process and flows of an IT Project - presentation.pdf
Process and flows of an IT Project - presentation.pdfProcess and flows of an IT Project - presentation.pdf
Process and flows of an IT Project - presentation.pdfCasey Ordoña
 
Career Talk Series Web Developer
Career Talk Series Web DeveloperCareer Talk Series Web Developer
Career Talk Series Web DeveloperRajwaAthoriq
 
Advancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organizationAdvancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organizationRamkumar Ravichandran
 
IT Consultant
IT ConsultantIT Consultant
IT ConsultantM Wahab
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)Andrew Barickman
 
User Stories from Scenarios
User Stories from ScenariosUser Stories from Scenarios
User Stories from ScenariosRavikanth-BA
 
Discovery 101
Discovery 101Discovery 101
Discovery 101creed
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesNoam Kfir
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антонsolit
 

Similaire à ChicagoJS's JSCAMP 2019 Keynote - Inclusive Architecture - Building Sustainable Dev Teams with the PAMstack (20)

The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van Bennekum
 
Agile software development
Agile software development Agile software development
Agile software development
 
Software Engineer's Career Management Toolkit
Software Engineer's Career Management ToolkitSoftware Engineer's Career Management Toolkit
Software Engineer's Career Management Toolkit
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
PMI-ACP Training Deck
PMI-ACP Training DeckPMI-ACP Training Deck
PMI-ACP Training Deck
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspective
 
English digital business 2.1.pptx
English digital business 2.1.pptxEnglish digital business 2.1.pptx
English digital business 2.1.pptx
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
Process and flows of an IT Project - presentation.pdf
Process and flows of an IT Project - presentation.pdfProcess and flows of an IT Project - presentation.pdf
Process and flows of an IT Project - presentation.pdf
 
14.1 features
14.1 features14.1 features
14.1 features
 
Career Talk Series Web Developer
Career Talk Series Web DeveloperCareer Talk Series Web Developer
Career Talk Series Web Developer
 
Scrum methodology
Scrum methodologyScrum methodology
Scrum methodology
 
Advancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organizationAdvancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organization
 
IT Consultant
IT ConsultantIT Consultant
IT Consultant
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)
 
User Stories from Scenarios
User Stories from ScenariosUser Stories from Scenarios
User Stories from Scenarios
 
Discovery 101
Discovery 101Discovery 101
Discovery 101
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the Lines
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
 

Plus de Tracy Lee

Contributing to Open Source - Angular World Tour
Contributing to Open Source - Angular World TourContributing to Open Source - Angular World Tour
Contributing to Open Source - Angular World TourTracy Lee
 
Angular Girls Kansas City - The Power of Open Source and Social Media
Angular Girls Kansas City - The Power of Open Source and Social MediaAngular Girls Kansas City - The Power of Open Source and Social Media
Angular Girls Kansas City - The Power of Open Source and Social MediaTracy Lee
 
Diversity & Inclusion Conference Talk - Refactr
Diversity & Inclusion Conference Talk - RefactrDiversity & Inclusion Conference Talk - Refactr
Diversity & Inclusion Conference Talk - RefactrTracy Lee
 
RxJS Operators - Real World Use Cases (FULL VERSION)
RxJS Operators - Real World Use Cases (FULL VERSION)RxJS Operators - Real World Use Cases (FULL VERSION)
RxJS Operators - Real World Use Cases (FULL VERSION)Tracy Lee
 
RxJS Operators - Real World Use Cases - AngularMix
RxJS Operators - Real World Use Cases - AngularMixRxJS Operators - Real World Use Cases - AngularMix
RxJS Operators - Real World Use Cases - AngularMixTracy Lee
 
Diversity, Inclusive Mindsets, and Architecture
Diversity, Inclusive Mindsets, and ArchitectureDiversity, Inclusive Mindsets, and Architecture
Diversity, Inclusive Mindsets, and ArchitectureTracy Lee
 
Diversity & Inclusion Keynote at Open Source 101
Diversity & Inclusion Keynote at Open Source 101Diversity & Inclusion Keynote at Open Source 101
Diversity & Inclusion Keynote at Open Source 101Tracy Lee
 
Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Tracy Lee
 
A Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceA Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceTracy Lee
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularTracy Lee
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting StartedTracy Lee
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The FutureTracy Lee
 
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017Tracy Lee
 
An Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material DesignAn Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material DesignTracy Lee
 
The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017Tracy Lee
 
Angular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConfAngular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConfTracy Lee
 
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 MinutesUsing Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 MinutesTracy Lee
 
A Tale of 3 CLIs - Angular 2, Ember, and React
A Tale of 3 CLIs - Angular 2, Ember, and ReactA Tale of 3 CLIs - Angular 2, Ember, and React
A Tale of 3 CLIs - Angular 2, Ember, and ReactTracy Lee
 
Learning the New Tech Lingua Franca: Social Media
Learning the New Tech Lingua Franca: Social MediaLearning the New Tech Lingua Franca: Social Media
Learning the New Tech Lingua Franca: Social MediaTracy Lee
 
From 0 to Developer - Silicon Valley Code Camp
From 0 to Developer - Silicon Valley Code CampFrom 0 to Developer - Silicon Valley Code Camp
From 0 to Developer - Silicon Valley Code CampTracy Lee
 

Plus de Tracy Lee (20)

Contributing to Open Source - Angular World Tour
Contributing to Open Source - Angular World TourContributing to Open Source - Angular World Tour
Contributing to Open Source - Angular World Tour
 
Angular Girls Kansas City - The Power of Open Source and Social Media
Angular Girls Kansas City - The Power of Open Source and Social MediaAngular Girls Kansas City - The Power of Open Source and Social Media
Angular Girls Kansas City - The Power of Open Source and Social Media
 
Diversity & Inclusion Conference Talk - Refactr
Diversity & Inclusion Conference Talk - RefactrDiversity & Inclusion Conference Talk - Refactr
Diversity & Inclusion Conference Talk - Refactr
 
RxJS Operators - Real World Use Cases (FULL VERSION)
RxJS Operators - Real World Use Cases (FULL VERSION)RxJS Operators - Real World Use Cases (FULL VERSION)
RxJS Operators - Real World Use Cases (FULL VERSION)
 
RxJS Operators - Real World Use Cases - AngularMix
RxJS Operators - Real World Use Cases - AngularMixRxJS Operators - Real World Use Cases - AngularMix
RxJS Operators - Real World Use Cases - AngularMix
 
Diversity, Inclusive Mindsets, and Architecture
Diversity, Inclusive Mindsets, and ArchitectureDiversity, Inclusive Mindsets, and Architecture
Diversity, Inclusive Mindsets, and Architecture
 
Diversity & Inclusion Keynote at Open Source 101
Diversity & Inclusion Keynote at Open Source 101Diversity & Inclusion Keynote at Open Source 101
Diversity & Inclusion Keynote at Open Source 101
 
Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018
 
A Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceA Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open Conference
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + Angular
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting Started
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The Future
 
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
 
An Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material DesignAn Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material Design
 
The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017
 
Angular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConfAngular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConf
 
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 MinutesUsing Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
 
A Tale of 3 CLIs - Angular 2, Ember, and React
A Tale of 3 CLIs - Angular 2, Ember, and ReactA Tale of 3 CLIs - Angular 2, Ember, and React
A Tale of 3 CLIs - Angular 2, Ember, and React
 
Learning the New Tech Lingua Franca: Social Media
Learning the New Tech Lingua Franca: Social MediaLearning the New Tech Lingua Franca: Social Media
Learning the New Tech Lingua Franca: Social Media
 
From 0 to Developer - Silicon Valley Code Camp
From 0 to Developer - Silicon Valley Code CampFrom 0 to Developer - Silicon Valley Code Camp
From 0 to Developer - Silicon Valley Code Camp
 

Dernier

Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
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
 
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
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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中 央社
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...SOFTTECHHUB
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governanceWSO2
 
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
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 

Dernier (20)

Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
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
 
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
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
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
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 

ChicagoJS's JSCAMP 2019 Keynote - Inclusive Architecture - Building Sustainable Dev Teams with the PAMstack

  • 1. HOW TO BUILD SUSTAINABLE DEV TEAMS INCLUSIVE ARCHITECTURE
  • 2. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 3. INCLUSIVE ARCHITECTURE ENABLES ● Less project maintenance ● Less stress ● Cooperative teams ● Decrease project costs ● Greater diversity
  • 4. TRACY LEE @ladyleet Lead, This Dot Labs, JS consulting (Angular, React, Vue, Node, Polymer) RxJS Core Team Google Developer Expert, Angular Microsoft MVP Community Rel, Node.js @ OpenJS Foundation Women Techmakers, GDG Silicon Valley & Triangle Modern Web Podcast
  • 6. People believe that the reason juniors don’t succeed is due to a deficiency of the juniors. They don’t realize it may be a fault of the the teams.
  • 7. How non-inclusive projects hurt juniors: ● Poor onboarding documentation ● Rely on individual excellence ● Unnecessarily complex codebase ● No review or mentorship
  • 8. How non-inclusivity actually hurts everyone ● Harder to onboard and hire ● “Hit by a bus” fears ● Productivity delays ● Lack of advancement & stagnant careers
  • 9. Individuals succeed and are enabled by teamwork and collaboration Decrease unnecessary complexity and focus on important features More innovation, more excitement, more learning A wider and more diverse set of engineers and skills on your team THE INCLUSIVE VISION
  • 10. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 11. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 13. “Processes are usually ad hoc and chaotic. The organization usually does not provide a stable environment to support processes...”
  • 14. “... Success in these organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes...”
  • 15. “...These organizations are characterized by a tendency to overcommit, abandon their processes in a time of crisis, and be unable to repeat their successes.”
  • 16. ● Clear expectations ● Greater team engagement and cooperation ● No single-points-of-failure ● Less stress during the crazy ● Reduced conflicts and fewer power struggles THE BENEFITS OF PROCESS DONE RIGHT
  • 17. ● What needs to be done? ● Who will do those things? ● How should it be done? ● When should it be done? HOW TO CREATE PLANS
  • 18. The purpose of code peer review is to ensure that changes to source code Verification Items are correct, appropriate and follow style guidelines. The goal of the code peer review process is to discover and correct defects in code before they can be observed by testers or customers. CODE PEER REVIEW Once all Peer Reviewers have completed the review, the author responds to comments and corrects defects. If there is a disagreement about how to resolve an issue, the parties involved should work together to reach compromise. If an agreement is not reached, the Development Manager will arbitrate the dispute. If a review defect cannot be resolved in the scope of the peer review, it will be marked as Track Externally and a defect will be created in the Quality Center for the issue and the defect number is added on the peer review for traceability.
  • 19. The person who makes the initial changes to the code, makes the review in CodeCollaborator and revises the Verification Items based on the results of the peer review. Responsible for reviewing Verification Items. Can be any developer except the author. At least one Peer Reviewer is required. Responsible for reviewing code. Can be any Project 4 team member. Unlike Peer Reviewers, they are not required to approve a review before it concludes. Having an observer is not required either. They take the role of Authors, Peer Reviewers or Observers. AUTHOR PEER REVIEWERS OBSERVERS DEVELOPERS ROLES AND RESPONSIBILITIES
  • 20. ● Minimize errors ● Teach new team members ● Reduce cognitive load CREATE CHECKLISTS
  • 21. TYPES OF REVIEWS ● Meeting Notes ● Designs ● Requirements ● Tests ● Code ● Plans ● Email to Clients
  • 22. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 23. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 24. WEB DEVELOPMENT IS HARD Performance Security Accessibility Responsive Design Progressive Enhancement Browser Compatibility Progressive Web Apps
  • 25. FRAMEWORKS CAN HELP! THEY MAKE IT EASY TO DO THE RIGHT THING
  • 26. LET A FRAMEWORK DEAL WITH BASIC PERFORMANCE & SCALABILITY
  • 27. Tools ● Angular CLI ● Angular Console ● Nx ● Prettier ● Great docs Architecture & Code ● Component based ● Code reusability ● Libraries ● TypeScript ● Angular Material & the community!
  • 28. ● Goal is to isolate the construction of the interface from the business logic and the complicated tech integrations ● This could be done by separating the application into layers ● The senior engineers can implement the most critical sections and provide hooks for juniors to wire the interface together ARCHITECTURE
  • 29. ● Strongly typed methods, variables, services ● Easier to understand functionality ● Stricter rules come with less bugs and growing need to understand the purpose of each method ● Know what to expect and plan accordingly ● Better error handling, spotting the root of the problem TYPESCRIPT
  • 30. QUICK START DEVELOPMENT - CLIS FTW!
  • 31. ● Scaffolding a new project ● Zero-config environment ● Smart defaults ● Out of the box performance using automatic differential serving, lazy loading, tree shaking, AoT compilation ● Actively maintained and kept up-to-date with core libraries CLIS FTW! ● Reduce the risk of defects due to out-of-date or misconfigured technologies ● Easy migration between major versions of libraries ● Documentation readily available ● Low risk - ejecting always a possibility
  • 36.
  • 37. DESIGN AND USER EXPERIENCE
  • 38. ● Shared visual language for your team ● Focus and constrain the set of options when building interfaces ● Contain: ○ Design purpose and guidelines ○ Designer resources (ex: Sketch files) ○ Content guidelines ○ Patterns ○ CSS Classes DESIGN SYSTEMS
  • 39. ● Set of basic reusable components ● Implement the requirements of a design system ● Help tackle accessibility, responsiveness, etc. ● API is usually more complete and thoughtful COMPONENT LIBRARIES
  • 40. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 41. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 42.
  • 43. HIRING IS EXPENSIVE FOR YOUR TEAM - KEEP YOUR PEOPLE
  • 44. ● Accelerates learning & growth ● Increases confidence ● Decreases fear of contribution/collaboration/idea sharing ● Increases communication skills ● Mentees feel more invested-in and valued ● Improves upward mobility (5x more likely to be promoted) ● Mentees become mentors and pass all these benefits on Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb WHAT’S IN IT FOR MENTEES
  • 45. ● Great perk for recruiting ● Increases developer productivity & retention (~70% more likely) ● Reduces knowledge silos ● Improves the bus factor — reduces succession risks ● Creates a more positive, helpful, collaborative team culture ● Increases loyalty ● Increases employee engagement and motivation ● Improves leader identification and promotion pipeline — mentors are 6 times more likely to be promoted (Sun Microsystems) WHAT’S IN IT FOR OTHERS Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
  • 46. ● Fostering a culture of teaching and sharing ● Formal 1:1 Sessions ● Code Reviews ● Pair Programming ● “Tech Talks” ● Chat Channels SHIFTING THE ROLE OF THE SENIOR DEV
  • 47. WHAT IS THE PAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 48. HOW JUNIORS CAN HELP THEIR TEAM USE THE PAMSTACK ● Bootstrap process by writing things down, sharing with the team ● Mentor and help your peers who are being onboarded ● Ask questions about the project, code, or process. Document the answers and share with others. ● Do and ask for code reviews proactively as a way to understand, get feedback, and create a culture of mentorship. ● If team loves your process or ideas, ask for it to be formally incorporated into process
  • 49. Upcoming Events Angular Online - 1st Thursdays React Online - 2nd Thursdays Vue Online - 3rd Thursdays Cloud Functions & Firebase Training - October 8
  • 50. If you’re interested in JavaScript Consulting let me know! Also, we’re hiring!