Simple Systems
Diverse Teams
“Share our love for creating incredible internet things”
– SitePoint
“We should be able to hire anyone who shares our love for creating incredible internet things”
– My Boss
“We should be able to hire anyone who shares our love for creating incredible internet things”
– My Boss
As lead frontend developer making that happen is my job.
The Business Value
- Seniors are hard to find
- Juniors cost less in salary
- Diversity + perspectives
- A system optimized for
juniors is also optimized
for seniors
Right, Okay... What now?
Well, we have learned
some lessons
Well, we have learned
some lessons
A good code base is the responsibility of everyone
A concept of correctness is extremely important
Correctness
----------------------
Convention
----------------------
Configuration
The correct way needs to
be the easiest way
Violations of correctness should teach the developer how to implement the things correctly
Composition
----------------------
Inheritance
Composition is the
key to simplicity
Declarative
----------------------Imperative
Immutability
----------------------
Mutability
Treat everything as a snowflake
Until you have done the same thing enough times to hate it
Truly truly truly hate it
Fast feedback loops
Invariants
x === reverse(reverse(x));
Generative testing
testcheck.check(testcheck.property(
[ gen.array(gen.any) ],
function checkReverse(x) {
return x === reverse(reverse(x));
}
));Mistakes are only bad if they make it to production
Small incremental steps in a positive direction
Qualitative A/B test
code implementations
Encourage experimentation
and innovation
Links
- Slides: http://slides.com/jameshunter/deck-5
- Book: http://learnyouahaskell.com/
- Simple Made Easy: http://www.infoq.com/presentations/Simple-Made-Easy
- Generative testing: https://wiki.haskell.org/Introduction_to_QuickCheck2
- Generative testing: https://github.com/leebyron/testcheck-js
- Immutable-js: https://github.com/facebook/immutable-js
- Immutable-js: https://www.youtube.com/watch?v=I7IdS-PbEgI
- Twitter: James Hunter @cccc00
deck
By James Hunter
deck
- 875