SlideShare a Scribd company logo
1 of 33
Download to read offline
Do Reinvent the Wheel!
Hamidreza Soleimani
Software Engineer, Architect @ Spotify
Nov. 2021
Reinventing the Wheel:
“to waste time trying
to create something
that someone else has
already created”
- Cambridge Dictionary
There is NO wheel
There is NO one-size, ready-made solution that solves your specific problem
It might be
too much!
... or too little!
Current wheels are NOT perfect
The High Wheel bike was the first machine
to be called a "bicycle".
It was popular in the 1870s and 1880s,
with its large front wheel
providing high speeds and comfort.
… but , is it really “comfortable”?
- Wikipedia
20 years of suffering and NOT reinventing the wheel!
The REAL evolution of wheel
Stone Wheel iPod Wheel
Let’s call software a “wheel” for now!
In today’s word most of the softwares are really bad!
iPhone X
4 GB RAM
2490 MHz CPU
IBM System/360 Model 75
256 KB RAM
0.043 MHz CPU
Your iPhone is
X 1,000,00 more RAM
X 100,000 faster CPU
than Apollo 11
“Same same, but difference!”
vs.
Macbook Pro:
CPU: 16-Core 3.3GHz Intel Xeon
RAM: 32GB
Playstation 4:
CPU: 8-Cores 2.75GHz AMD
RAM: 8GB
Hardware
speeds
doubles every
two years, but
NOT the
softwares!
Wheel is the solution,
you should first focus on your problem
We should not move away
from problem solving to just googling
Googling = minimum effort + maximum result
Bad wheels is the
result of shifting
focus from
problem solving
to just googling!
… should we reinvent all the wheels?
We should NOT!
Unless ...
1. We need to learn how the wheel works
2. We understand the problem and the wheel that being handed to us
Technology keep evolving by reinventing itself!
Linux
is a reinvention of
Unix
Professor Andrew S. Tanenbaum
- Computer Scientist
- Creator of Minix
Linus Torvalds
- Creator of Linux
Tanenbaum to Torvalds:
“Be thankful you are not my
student. You would not get a
high grade for such a design”
… but Professor Tanenbaum was wrong!
Server Operating System Worldwide (2020)
However,
market share
is NOT always
the right metric!
Messenger Apps Market Share Worldwide (2021)
… same with the programming languages.
Mostly used Programming Languages Worldwide (2021)
vs.
Quicksort Algorithm
in
Quicksort Algorithm
in
So, should we reinvent the Java?
Yes, we should, with Kotlin, because:
- Kotlin comes from industry, not academia
- Kotlin works existing Java frameworks and libraries
- Kotlin can be learned in a few hours
- Kotlin enforces no particular philosophy of programming
- Google adopted Kotlin as the first choice for Android
Yes, we should, with Scala, because:
- Scala combines oop and functional
- Scala is concise and high-level
- Scala’s static types help avoid bugs in complex apps
- Scala has access to huge ecosystems of Java libraries
- Big Data ecosystem adopted Scala as the first choice
What about JSON / YAML?
Filter: filename:*.json size:>10KB => Result: 66,602
Filter: filename:*.yaml size:>10KB => Result: 4,124
Number of large json and yaml files in a Spotify open-source repositories
JSON / YAML Problems:
- Not Modular
- No Type System
- No Prototyping System
- No Bitwise / Arithmetic Operation
- No Variable
Confee notation files can be compiled
to JSON, YAML or other config
notation files.
data-type.confee
data-info.confee
data-info.yaml
Confee
Compiler
Closer look at Confee!
Every value can be
reused like a
variable
Custom-typed objects can
be reused as a prototype
Primitive types such as String,
Integer and Boolean supports basic
operations by + - * / % & |
operators
data-type.confee
data-info.confee
Confee files can be imported
like a module
Types should be defined for
every value
Question?
@hmdrezs
Next NexTalk: Artificial Intelligence is a reinvention of the way we Invent

More Related Content

Similar to Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf

6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
 
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JSFestUA
 
GC @ jmaghreb2014
GC @ jmaghreb2014GC @ jmaghreb2014
GC @ jmaghreb2014Ivan Krylov
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Shivam Prajapati
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applicationsX.commerce
 
OLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 MeetingOLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 MeetingMike Lee
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allMarc Dutoo
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware
 
TiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTim Poulsen
 
The future of technology
The future of technologyThe future of technology
The future of technologymike_henderson
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?Kasra Khosravi
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Balanced Team
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
 
The FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyThe FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyC4Media
 

Similar to Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf (20)

6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Scilabpdf
ScilabpdfScilabpdf
Scilabpdf
 
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
 
GC @ jmaghreb2014
GC @ jmaghreb2014GC @ jmaghreb2014
GC @ jmaghreb2014
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
OSGI,
OSGI,OSGI,
OSGI,
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applications
 
Open Racing
Open RacingOpen Racing
Open Racing
 
OLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 MeetingOLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 Meeting
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
TiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium apps
 
Dato Keynote
Dato KeynoteDato Keynote
Dato Keynote
 
The future of technology
The future of technologyThe future of technology
The future of technology
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
The FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyThe FT Web App: Coding Responsively
The FT Web App: Coding Responsively
 
How AI connect dots for IoT
How AI connect dots for IoTHow AI connect dots for IoT
How AI connect dots for IoT
 

More from Hamidreza Soleimani

Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext AcademyPrinciples of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext AcademyHamidreza Soleimani
 
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...Hamidreza Soleimani
 
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext AcademyHow to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext AcademyHamidreza Soleimani
 
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext AcademyThe World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext AcademyHamidreza Soleimani
 
Technology Companies Development Story
Technology Companies Development StoryTechnology Companies Development Story
Technology Companies Development StoryHamidreza Soleimani
 
BEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformBEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformHamidreza Soleimani
 
Nanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryNanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryHamidreza Soleimani
 
Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2Hamidreza Soleimani
 
Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1Hamidreza Soleimani
 
Nodejs Applications in Production
Nodejs Applications in ProductionNodejs Applications in Production
Nodejs Applications in ProductionHamidreza Soleimani
 

More from Hamidreza Soleimani (13)

Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext AcademyPrinciples of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
 
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
 
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext AcademyHow to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
 
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext AcademyThe World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
 
Technology Companies Development Story
Technology Companies Development StoryTechnology Companies Development Story
Technology Companies Development Story
 
BEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformBEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time Platform
 
Nanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryNanomsg - Scalable Networking Library
Nanomsg - Scalable Networking Library
 
Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2
 
Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1
 
Nodejs Applications in Production
Nodejs Applications in ProductionNodejs Applications in Production
Nodejs Applications in Production
 
Practical Look at Erlang
Practical Look at ErlangPractical Look at Erlang
Practical Look at Erlang
 
What is XMPP Protocol
What is XMPP ProtocolWhat is XMPP Protocol
What is XMPP Protocol
 
Create Your Own Language
Create Your Own LanguageCreate Your Own Language
Create Your Own Language
 

Recently uploaded

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
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.pdfFIDO Alliance
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoUXDXConf
 
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
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
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. StartupsStefano
 

Recently uploaded (20)

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
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
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
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
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
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
 

Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf

  • 1. Do Reinvent the Wheel! Hamidreza Soleimani Software Engineer, Architect @ Spotify Nov. 2021
  • 2. Reinventing the Wheel: “to waste time trying to create something that someone else has already created” - Cambridge Dictionary
  • 3. There is NO wheel There is NO one-size, ready-made solution that solves your specific problem
  • 4. It might be too much! ... or too little!
  • 5. Current wheels are NOT perfect
  • 6. The High Wheel bike was the first machine to be called a "bicycle". It was popular in the 1870s and 1880s, with its large front wheel providing high speeds and comfort. … but , is it really “comfortable”? - Wikipedia
  • 7. 20 years of suffering and NOT reinventing the wheel!
  • 8. The REAL evolution of wheel Stone Wheel iPod Wheel Let’s call software a “wheel” for now!
  • 9. In today’s word most of the softwares are really bad! iPhone X 4 GB RAM 2490 MHz CPU IBM System/360 Model 75 256 KB RAM 0.043 MHz CPU
  • 10. Your iPhone is X 1,000,00 more RAM X 100,000 faster CPU than Apollo 11
  • 11. “Same same, but difference!” vs. Macbook Pro: CPU: 16-Core 3.3GHz Intel Xeon RAM: 32GB Playstation 4: CPU: 8-Cores 2.75GHz AMD RAM: 8GB
  • 13. Wheel is the solution, you should first focus on your problem
  • 14. We should not move away from problem solving to just googling
  • 15. Googling = minimum effort + maximum result
  • 16. Bad wheels is the result of shifting focus from problem solving to just googling!
  • 17. … should we reinvent all the wheels?
  • 19. Unless ... 1. We need to learn how the wheel works 2. We understand the problem and the wheel that being handed to us
  • 20. Technology keep evolving by reinventing itself!
  • 22. Professor Andrew S. Tanenbaum - Computer Scientist - Creator of Minix Linus Torvalds - Creator of Linux Tanenbaum to Torvalds: “Be thankful you are not my student. You would not get a high grade for such a design”
  • 23. … but Professor Tanenbaum was wrong! Server Operating System Worldwide (2020)
  • 24. However, market share is NOT always the right metric! Messenger Apps Market Share Worldwide (2021)
  • 25. … same with the programming languages. Mostly used Programming Languages Worldwide (2021)
  • 28. So, should we reinvent the Java? Yes, we should, with Kotlin, because: - Kotlin comes from industry, not academia - Kotlin works existing Java frameworks and libraries - Kotlin can be learned in a few hours - Kotlin enforces no particular philosophy of programming - Google adopted Kotlin as the first choice for Android Yes, we should, with Scala, because: - Scala combines oop and functional - Scala is concise and high-level - Scala’s static types help avoid bugs in complex apps - Scala has access to huge ecosystems of Java libraries - Big Data ecosystem adopted Scala as the first choice
  • 29. What about JSON / YAML? Filter: filename:*.json size:>10KB => Result: 66,602 Filter: filename:*.yaml size:>10KB => Result: 4,124 Number of large json and yaml files in a Spotify open-source repositories
  • 30. JSON / YAML Problems: - Not Modular - No Type System - No Prototyping System - No Bitwise / Arithmetic Operation - No Variable
  • 31. Confee notation files can be compiled to JSON, YAML or other config notation files. data-type.confee data-info.confee data-info.yaml Confee Compiler
  • 32. Closer look at Confee! Every value can be reused like a variable Custom-typed objects can be reused as a prototype Primitive types such as String, Integer and Boolean supports basic operations by + - * / % & | operators data-type.confee data-info.confee Confee files can be imported like a module Types should be defined for every value
  • 33. Question? @hmdrezs Next NexTalk: Artificial Intelligence is a reinvention of the way we Invent