About-Face
REFLECTIONS ON GROWING AN
OPEN-SOURCE MENTALITY
About-Face
HOW I SNUCK A CULTURE TALK INTO
NODEDAY AMSTERDAM
Self-Destruct
HOW TO WRITE A
SELF-DEFEATING TALK
PLEASE ALLOW MYSELF
TO PROPERLY
INTRODUCE MYSELF
Jean-Charles Sisk
twitter/@jcse • github/jasisk • jeancharles@paypal
▸ BOSTON, MA, USA
▸ ENGINEER
▸ PAYPAL
"I have hats older than your country."
— Europeans
Jean-Charles Sisk
twitter/@jcse • github/jasisk • jeancharles@paypal
▸ BOSTON, MA, USA
▸ ENGINEER
▸ PAYPAL
i said
YES
THE JOB
I HAVE
I work, primarily, on
OPEN SOURCE SOFTWARE
JOB I
WISH I HAD
MATCHING FAMILY
SWEATSHIRT MODEL
NODEJS
you're in luck,
I AM NOT GOING TO TALK ABOUT NODEJS
SINCE ADOPTING NODEJS IN 2012
▸ massive growth in app-engineer developed componentry
▸ greatly improved developer happiness
▸ significantly faster time to live
OUR APPLICATIONS
APPEAR TO HAVE BEEN
BUILT IN THE 21ST CENTURY
REMEMBER WHEN PAYPAL
LOOKED LIKE THIS?
Technology adoption checklist:
▸ TECHNOLOGY
▸ PROCESS
▸ CULTURE
don't worry,
I'M STILL NOT GOING TO
TALK ABOUT NODEJS
Technology adoption checklist:
▸ TECHNOLOGY
▸ PROCESS
▸ CULTURE
NODEJS WAS A
TROJAN HORSE
"If one sticks to the idea that once set,
a plan should not be changed, a business
cannot exist for long."
— Taiichi Ohno
But first:
A BRIEF HISTORY
OOPS
PAYPAL IN THE
MID-AUGHTS WAS
DRIVEN EXCLUSIVELY
BY RISK MITIGATION
SLOW BY DESIGN
Developers:
CREATURES OF HABIT
TRUST
NO ONE
nih(NOT INVENTED HERE)
GREAT FOR FARMS—NOT GREAT FOR YOU
UNLESS YOU FARM, IN WHICH CASE I'M IMPRESSED
"everything is a secret and
I trust no one."
— Developers
PAYPAL IN THE
MID-AUGHTS WAS
DRIVEN EXCLUSIVELY
BY RISK MITIGATION
!
THE CULTURE WAS THE REAL REASON FOR THE DECISION TO CHANGE
THE TECHNOLOGY WAS HOW WE SOLD IT
HOW?
start small
TEAR IT
DOWN
BUILD IT
BACK UP
TRANSPARENTLY?
CONSIDER EVERYTHING BUT
DON'T BE AFRAID TO SAY NO
TRANSPARENCY:
I lied.
ENJOY THE FOLLOWING NODEJS CODE
HOW TO WRITE AN EXPRESS APP
import Express from 'express';
const app = Express();
app.listen(8000);
HOW TO WRITE A KRAKEN APP
import Express from 'express';
import Kraken from 'kraken-js';
const app = Express();
app.use(Kraken());
app.listen(8000);
HOW TO WRITE A PAYPAL APP
import Express from 'express';
import Kraken from 'kraken-js';
import PayPal from 'paypalize';
const app = Express();
const opts = PayPal();
app.use(Kraken(opts));
app.listen(8000);
So …
WHAT DOES
THAT GIVE US?
dynamic service mapping, local secrets decryption,
service configuration, PayPal standard configuration
(csrf, x-frame, etc), central logging, central cookie
handling, central device-detection, central session
handling, central exception tracking, monitoring,
analytics, app heath-checks, infra-specific uncaught
exception handling, CDN awareness …
… you generally wouldn't know that unless you read the README.
RELY ON EXISTING
COMMUNITY CONVENTIONS
when you're not wasting time learning and fighting your internal
systems, you have time to accomplish the job you signed up for
Homework:SEE WHAT KATHY SIERRA HAS TO SAY
ABOUT DEPLETING COGNITIVE RESOURCES1
1
youtu.be/FKTxC9pl-WM
"Fine, but that's a lot of work for one
line. Isn't that too magical?"
— you
AbsolutelyBUT THERE'S A CATCH
EVERYTHING IS IN THE OPEN
WITH AN EMPHASIS ON
DOCUMENTATION AND
DISCOVERABILITY
"What about our process?
We can't make [custom-x]
an open process."
— you
K. DON'T.BUT FIND A WAY TO MAKE IT WORK
HOOK INTO COMMON PROCESSES
▸ Source Control
▸ Continuous Integration
▸ Distribution Service
▸ Deployment
consider optimism
ASSUME SUCCESS AND
GOOD INTENTIONS FOR NON-
CRITICAL SYSTEMS AND APPLICATIONS
ADOPTING COMMON CONVENTION
AND BUILDING IN THE OPEN
BUILDS TRUST
PROMOTING TRUST:
COMMUNITY
BUILDING COMMUNITY:
CULTURE
… big finish …
IT SHOULD COME AS NO SURPRISE THAT
THESE ARE PRECISELY THE WAYS LARGE-
SCALE OPEN-SOURCE PROJECTS WORK
… wall of text alert …
Building our projects as if they're open-source even with no intention of
ever opening them up has lead to better documentation, discoverability,
ownership, responsibility, code-quality, efficacy, etc.
By emulating practices we've seen and used in the open-source
community, we've seen tremendous growth from both seasoned
developers and new hires alike.
By simply adopting open principles,
PayPal is a measurably better place to work.
Thanks.
@JCSE

About- Face: Reflections on Growing an Open-Source Mentality