SlideShare a Scribd company logo
1 of 14
Download to read offline
When juniors fail.
Roman & Dmytro
Project “S.”
Google Spreadsheet API.Story #1.
=if(query(FinalOutput!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{Openness}} WHERE {{Name}} = ‘Alex Mot’ AND {{department}}
= ‘Sales’“, “{{Openness}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“Openness”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{Name}}“,
REGEXEXTRACT(ADDRESS(1, MATCH(“Name”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1,
MATCH(“department”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1) <> “”, ((query(FinalOutput!$A$2:$AZ$1000,
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{Openness}} WHERE {{Name}} = ‘Todd Weiland’ AND {{department}} = ‘Sales’“, “{{Openness}}“,
REGEXEXTRACT(ADDRESS(1, MATCH(“Openness”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{Name}}“, REGEXEXTRACT(ADDRESS(1,
MATCH(“Name”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”,
FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)) - (query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{mean}}
WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“, “{{mean}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“mean”, Params1!$A$1:$AZ$1, 0), 4,
TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1),
“{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1))) /
(query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{sd}} WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“,
“{{sd}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“sd”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1,
MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”,
Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)) * (query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{beta}}
WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“, “{{beta}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“beta”, Params1!$A$1:$AZ$1, 0), 4,
TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1),
“{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)), “”)
- Batch delete.
- Bulk save.
- Circular calculations.
- Query builder.
- CRUD limited for cols/rows.
- Novice architecture.
- Questions to community.
- Google-solution.
- Incomplete input validation.
- Not ready to scale.
Architecture.Story #2.
Story #3.
IBM Watson API.
- Public API with limitations.
- Caching.
- Input limitations.
- Performance.
- Fat builds.
- Updates mechanism.
- Security.
Electron.js.
Story #4.
- Estimates.
- Deployment & Delivery.
- Code-review process.
- Communication.
Approach.
Story #5.
- Quick fixes (wrong problems).
- Googling.
- Scenarios.
- Freedom!
Experience. Qualitative growth.
Story #6.
Experience matters.

More Related Content

Similar to When juniors fail. (event `Look At My JS` at Lviv)

Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
jhchabran
 

Similar to When juniors fail. (event `Look At My JS` at Lviv) (20)

Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
 
20160227 Granma
20160227 Granma20160227 Granma
20160227 Granma
 
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
 
An Introduction to Scala (2014)
An Introduction to Scala (2014)An Introduction to Scala (2014)
An Introduction to Scala (2014)
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
 
Quill + Spark = Better Together
Quill + Spark = Better TogetherQuill + Spark = Better Together
Quill + Spark = Better Together
 
Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)
 
Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)
 
Climbing the Abstract Syntax Tree (PHP UK 2018)
Climbing the Abstract Syntax Tree (PHP UK 2018)Climbing the Abstract Syntax Tree (PHP UK 2018)
Climbing the Abstract Syntax Tree (PHP UK 2018)
 
Climbing the Abstract Syntax Tree (PHP Russia 2019)
Climbing the Abstract Syntax Tree (PHP Russia 2019)Climbing the Abstract Syntax Tree (PHP Russia 2019)
Climbing the Abstract Syntax Tree (PHP Russia 2019)
 
Climbing the Abstract Syntax Tree (Southeast PHP 2018)
Climbing the Abstract Syntax Tree (Southeast PHP 2018)Climbing the Abstract Syntax Tree (Southeast PHP 2018)
Climbing the Abstract Syntax Tree (Southeast PHP 2018)
 
Climbing the Abstract Syntax Tree (Bulgaria PHP 2016)
Climbing the Abstract Syntax Tree (Bulgaria PHP 2016)Climbing the Abstract Syntax Tree (Bulgaria PHP 2016)
Climbing the Abstract Syntax Tree (Bulgaria PHP 2016)
 
Hitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional ProgrammingHitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional Programming
 
Climbing the Abstract Syntax Tree (Forum PHP 2017)
Climbing the Abstract Syntax Tree (Forum PHP 2017)Climbing the Abstract Syntax Tree (Forum PHP 2017)
Climbing the Abstract Syntax Tree (Forum PHP 2017)
 
PHP for Python Developers
PHP for Python DevelopersPHP for Python Developers
PHP for Python Developers
 
Interpret this... (PHPem 2016)
Interpret this... (PHPem 2016)Interpret this... (PHPem 2016)
Interpret this... (PHPem 2016)
 
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
MongoDB World 2019: Aggregation Pipeline Power++: How MongoDB 4.2 Pipeline Em...
 
Elegant objects
Elegant objectsElegant objects
Elegant objects
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
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
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
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...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
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
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 

When juniors fail. (event `Look At My JS` at Lviv)

  • 3.
  • 5.
  • 6. Google Spreadsheet API.Story #1. =if(query(FinalOutput!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{Openness}} WHERE {{Name}} = ‘Alex Mot’ AND {{department}} = ‘Sales’“, “{{Openness}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“Openness”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{Name}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“Name”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1) <> “”, ((query(FinalOutput!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{Openness}} WHERE {{Name}} = ‘Todd Weiland’ AND {{department}} = ‘Sales’“, “{{Openness}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“Openness”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{Name}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“Name”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, FinalOutput!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)) - (query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{mean}} WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“, “{{mean}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“mean”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1))) / (query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{sd}} WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“, “{{sd}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“sd”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)) * (query(Params1!$A$2:$AZ$1000, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“SELECT {{beta}} WHERE {{variable}} = ‘Openness’ AND {{department}} = ‘Sales’“, “{{beta}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“beta”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{variable}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“variable”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), “{{department}}“, REGEXEXTRACT(ADDRESS(1, MATCH(“department”, Params1!$A$1:$AZ$1, 0), 4, TRUE), “[a-zA-Z]+“), 1), -1)), “”) - Batch delete. - Bulk save. - Circular calculations. - Query builder. - CRUD limited for cols/rows.
  • 7.
  • 8.
  • 9. - Novice architecture. - Questions to community. - Google-solution. - Incomplete input validation. - Not ready to scale. Architecture.Story #2.
  • 10. Story #3. IBM Watson API. - Public API with limitations. - Caching. - Input limitations.
  • 11. - Performance. - Fat builds. - Updates mechanism. - Security. Electron.js. Story #4.
  • 12. - Estimates. - Deployment & Delivery. - Code-review process. - Communication. Approach. Story #5.
  • 13. - Quick fixes (wrong problems). - Googling. - Scenarios. - Freedom! Experience. Qualitative growth. Story #6.