SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
When and how to explore: an
engineer’s guide
Julie Pitt (@yakticus)
Chapter I
The Founding
Julie
Pitt
Greg
Orzell
Christian
Kaiser
Order of Magnitude Labs founding team
intelligent
machines
the
frontier
https://flickr.com/photo/13547802@N05/8907414305/
1. emerging
approaches
2. scale
3. profit
the business hypothesis
why prototype in Scala?
● functional
● immutable
● type system
● industrial scale libraries
prototype #1
● distributed, async neural net
● actor = “neuron”
● message passing between
neurons
Just because
you can do it
doesn’t mean
you should.
prototype
#2
● embarrassingly
simple
● immutable
classes
● pure functions
● single threadded
https://flickr.com/photo/13547802@N05/8907414305/
perception reality
Chapter II
Crossroads
exploitation exploration
value
exploitation
explorationit works
why exploration is hard
Chapter III
(Re)learning to explore
engineering best practices
● building to spec
● shipping code
● operations
● minimizing tech
debt
I was optimizing for...
● formulating hypotheses
● ...testing them
● ...rejecting bad ones
● repeat!
I should have optimized for...
lessons learned about hypothesis
testing
1. facts can change
2. equip your laboratory
3. merge ideas, fork code
1. facts can change
truth
facts
In order to grasp the
truth, one must let go
of many failed
hypotheses
experimental insight app
server
data
collection
framework
experiments
low-tech compromise
experiments
The more you’ve
built, the harder it
is to admit you’re
wrong.
When being right
means adding
complexity, apply
Occam’s razor.
2. equip your laboratory
When all you
have is a
hammer,
everything looks
like a nail.
tools
hypotheses
experiments
● tools = knowledge index
○ unused tools != dead code
● make tools versatile
○ reuse across experiments
● don’t over-engineer
○ when in doubt, print to console
building your library of tools
● primitives = pure functions
● types define what’s possible
● types ensure tools used
correctly
types as instruction manual
● make tools accessible
● minimal setup
● distraction-free
workspace requirements
hierarchy of environments
type of test
import
tools?
type of environment our choice
quick & dirty
(<90 seconds)
✅ REPL
Ammonite REPL
(Scala)
lightweight, reusable
(<60 minutes)
✅ script
Scala scripts
(Ammonite)
ongoing, collaborative ✅
full-blown
project
SBT, Gradle build
system
3. merge ideas, fork code
ambiguity
means several
hypotheses
seem equally
plausible
requiring a
single
codebase
downplays
ambiguity
with a single
codebase,
discussions
center on
“how”
● hypotheses
○ divide & conquer
● tools
● requirements*
○ *as they become clear
what to share
Chapter IV
Exploration & Creativity
https://flickr.com/photo/9136641@N07/2177935073/
executioncreativity
https://flickr.com/photo/9136641@N07/2177935073/
test hypotheses
build tools
(execution mode)
formulate hypotheses
(creative mode)
perspiration inspiration
creativity
creativity can’t be managed
creativity doesn’t stick to a schedule
you can’t manufacture creativity...
...but you can cultivate it
cultivating creativity
nourishment
exercise
rest
Julie’s ideal creative mode day
distractionswalk outside
focus (green)
breaks (blue)
KTLO
(keeping the
lights on)
sleep
exercise (pomodoro technique)
● time-based, not outcome-based
● permission to rest
● avoid distraction
● daily quitting time
focus
25 minutes
break
5 minutes
https://www.coursera.org/learn/learning-how-to-learn
diffuse modefocused mode
https://www.coursera.org/learn/learning-how-to-learn
outdoor exercise
pops you into diffuse
mode, which can get
you unstuck.
exercise outside
short term memory
(high complexity)
sleep
insight
(low complexity)
rest
too much distraction creates a complexity
reduction bottleneck during sleep
limit distractions
nutrition
Chapter V
Conclusion
at the beginning, act like a beginner
● build the embarrassingly simple
version first
● just because you can do it doesn’t
mean you should
optimize for hypothesis testing
● facts can change
● equip your laboratory
● merge ideas, fork code
cultivate creativity
● creativity and execution are
modal
● creativity requires nutrition,
exercise and rest
https://flickr.com/photo/69793885@N00/7874464932/
When and how to explore:  an engineer's guide

Mais conteúdo relacionado

Semelhante a When and how to explore: an engineer's guide

Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
Carlos Ble
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Applitools
 

Semelhante a When and how to explore: an engineer's guide (20)

Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
 
Day 2 (Lecture 5): A Practitioner's Perspective on Building Machine Product i...
Day 2 (Lecture 5): A Practitioner's Perspective on Building Machine Product i...Day 2 (Lecture 5): A Practitioner's Perspective on Building Machine Product i...
Day 2 (Lecture 5): A Practitioner's Perspective on Building Machine Product i...
 
cf.Objective() 2017 - Design patterns - Brad Wood
cf.Objective() 2017 - Design patterns - Brad Woodcf.Objective() 2017 - Design patterns - Brad Wood
cf.Objective() 2017 - Design patterns - Brad Wood
 
Unleash The Monkeys
Unleash The MonkeysUnleash The Monkeys
Unleash The Monkeys
 
Don't be a zombie reading your stories - Learn the exciting parts of analysis...
Don't be a zombie reading your stories - Learn the exciting parts of analysis...Don't be a zombie reading your stories - Learn the exciting parts of analysis...
Don't be a zombie reading your stories - Learn the exciting parts of analysis...
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development Tools
 
TypeScript and Angular workshop
TypeScript and Angular workshopTypeScript and Angular workshop
TypeScript and Angular workshop
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
 
Docker and Go: why did we decide to write Docker in Go?
Docker and Go: why did we decide to write Docker in Go?Docker and Go: why did we decide to write Docker in Go?
Docker and Go: why did we decide to write Docker in Go?
 
2013-04-02-the_fog_of_spa
2013-04-02-the_fog_of_spa2013-04-02-the_fog_of_spa
2013-04-02-the_fog_of_spa
 
TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
 
Azure Machine Learning - A Full Journey
Azure Machine Learning - A Full JourneyAzure Machine Learning - A Full Journey
Azure Machine Learning - A Full Journey
 
Agile
AgileAgile
Agile
 
[부스트캠프 Tech Talk] 고지형_내 자식 하나쯤은 있어야죠
[부스트캠프 Tech Talk] 고지형_내 자식 하나쯤은 있어야죠[부스트캠프 Tech Talk] 고지형_내 자식 하나쯤은 있어야죠
[부스트캠프 Tech Talk] 고지형_내 자식 하나쯤은 있어야죠
 
Best practices for structuring Machine Learning code
Best practices for structuring Machine Learning codeBest practices for structuring Machine Learning code
Best practices for structuring Machine Learning code
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
What is xp
What is xpWhat is xp
What is xp
 
Applying the paradigms of core.async in Clojure and ClojureScript
Applying the paradigms of core.async in Clojure and ClojureScriptApplying the paradigms of core.async in Clojure and ClojureScript
Applying the paradigms of core.async in Clojure and ClojureScript
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

When and how to explore: an engineer's guide