Full Stacker
Being a Full Stack Developer
— What does that mean?…
Slide 2
Slide 2 text
About myself
Currently - cofounder
Building the graph of products and builders
Iteration on:
Slide 3
Slide 3 text
Graph of:
products
and
product builders
Slide 4
Slide 4 text
Work history
Backend @ Totango
Backend @ Outbrain
Frontend @ Outbrain
Frontend @ Google
Frontend @ RawSugar
Security @ Microsoft
Slide 5
Slide 5 text
Work history
Backend @ Totango
Backend @ Outbrain
Frontend @ Outbrain
Frontend @ Google
Frontend @ RawSugar
Security @ Microsoft
And now:
Everything @ Yodas
Slide 6
Slide 6 text
Work history
OSS
Backend @ Hector
Infra @ FRS
Frontend @ Meteor
BE/FE @ devdev
Slide 7
Slide 7 text
Extra curricular
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
The names
Full stack developer
Generalist
Polyglot programmer
Jack of all trades
Even - devops…
Slide 10
Slide 10 text
The names
Full stack developer
Generalist
Polyglot programmer
Jack of all trades
Even - devops…
Did
you hear
other names?
Slide 11
Slide 11 text
The Questions
Slide 12
Slide 12 text
The Questions
Am I a Full Stack developer?
Slide 13
Slide 13 text
The Questions
Am I a Full Stack developer?
Do I need to be a full stack developer?
Slide 14
Slide 14 text
The Questions
Am I a Full Stack developer?
Do I need to be a full stack developer?
What does it take to become one?
Slide 15
Slide 15 text
The Other Questions
Slide 16
Slide 16 text
The Other Questions
Who needs Full Stackers?
Slide 17
Slide 17 text
The Other Questions
Who needs Full Stackers?
why not Domain Experts?
Slide 18
Slide 18 text
The Other Questions
Who needs Full Stackers?
why not Domain Experts?
How do I recognize a fullstacker when I see one?
Slide 19
Slide 19 text
Questions to YOU
What do you want to do when you grow up?
Slide 20
Slide 20 text
About ME
On average day I deal with:
CSS
Javascript. In the browser. And on the server
Bits and compression in the database
Deployment automation
Monitoring and alerting
From bits in the DB
to bits in PNGs
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
Things I Like
Understanding the whole picture
Shipping
Shipping Code
Shipping Products that work
Getting recognized for my work
Slide 25
Slide 25 text
Things I Like
Understanding the whole picture
Shipping
Shipping Code
Shipping Products that work
Getting recognized for my work
Hint: That’s why I do Yodas
Slide 26
Slide 26 text
Things I Dislike
Throwing code at someone else to run it
Having heard from someone else that:
Hey dude, your code just fucked up
Being a small component in a large machine
Slide 27
Slide 27 text
Being a Full Stacker
Slide 28
Slide 28 text
Being a Full Stacker
You understand the whole picture
From user entering text in a box
To server transacting on a DB
To browser rendering back the response
*** To some extent of depth ***
Slide 29
Slide 29 text
Being a Full Stacker
You understand the whole picture
From user entering text in a box
To server transacting on a DB
To browser rendering back the response
*** To some extent of depth ***
And you love it!
Slide 30
Slide 30 text
Being a Full Stacker
You understand the whole picture
From user entering text in a box
To server transacting on a DB
To browser rendering back the response
*** To some extent of depth ***
And you love it!
Example: what-happens-when
Slide 31
Slide 31 text
What happens when you
type google.com
Slide 32
Slide 32 text
What happens when you
type google.com
The "g" key is pressed
Slide 33
Slide 33 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Slide 34
Slide 34 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
Slide 35
Slide 35 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
Slide 36
Slide 36 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
Slide 37
Slide 37 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Slide 38
Slide 38 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Slide 39
Slide 39 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Slide 40
Slide 40 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Slide 41
Slide 41 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
Slide 42
Slide 42 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
Slide 43
Slide 43 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Slide 44
Slide 44 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
Slide 45
Slide 45 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
Slide 46
Slide 46 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
Slide 47
Slide 47 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Slide 48
Slide 48 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Slide 49
Slide 49 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
Slide 50
Slide 50 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
Slide 51
Slide 51 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
CSS interpretation
Slide 52
Slide 52 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
CSS interpretation
Page Rendering
Slide 53
Slide 53 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
CSS interpretation
Page Rendering
GPU Rendering
Slide 54
Slide 54 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
CSS interpretation
Page Rendering
GPU Rendering
Window Server
Slide 55
Slide 55 text
What happens when you
type google.com
The "g" key is pressed
The "enter" key bottoms out
Interrupt fires [NOT for USB keyboards]
(On Windows) A WM_KEYDOWN message is sent to the app
(On OS X) A KeyDown NSEvent is sent to the app
(On GNU/Linux) the Xorg server listens for keycodes
Parse URL
Is it a URL or a search term?
Check HSTS list
Convert non-ASCII Unicode characters in hostname
DNS lookup
ARP process
Opening of a socket
TLS handshake
HTTP protocol
HTTP Server Request Handle
Behind the scenes of the Browser
Browser
HTML parsing
CSS interpretation
Page Rendering
GPU Rendering
Window Server
Post-rendering and user-induced execution
Slide 56
Slide 56 text
How to be a fullstacker?
Slide 57
Slide 57 text
What does it take?
Slide 58
Slide 58 text
How to be a fullstacker?
Step 1:
Be an expert in one domain
Slide 59
Slide 59 text
How to be a fullstacker?
Step 1:
Be an expert in one domain
(DNS)
Slide 60
Slide 60 text
How to be a fullstacker?
Step 2:
Be an expert in one more domain
Slide 61
Slide 61 text
How to be a fullstacker?
Step 2:
Be an expert in one more domain
JSF
Slide 62
Slide 62 text
How to be a fullstacker?
Step 3:
Be an expert in yet one more domain
Slide 63
Slide 63 text
How to be a fullstacker?
Step 3:
Be an expert in yet one more domain
Prototype.js
Slide 64
Slide 64 text
How to be a fullstacker?
Step 4:
Do a few things casually.
Not expert level
Different domains
Different expertise
Step out of your comfort zone
Slide 65
Slide 65 text
How to be a fullstacker?
Step 5:
Profit. You’re now a fullstack motherfucker
Slide 66
Slide 66 text
How to be a fullstacker?
Tools and techniques
Participate in several out of band projects
OSS is best
Deliberately step out of your comfort zone, again
and again. On the job and out of band
Read, read, and more read
Slide 67
Slide 67 text
Example: My reading list
Devops Weekly
JavaScript weekly
NoSQL weekly
Webdesigner depot
Web Operations weekly
HTML5 weekly
Software Lead weekly
Hacker Newsletter
Github Explore
StackShare weekly
Meteor forums digest
Slide 68
Slide 68 text
I even sum it up publicly
Bumpers
Slide 69
Slide 69 text
Learn, learn and more learn
Slide 70
Slide 70 text
Becoming a Full Stacker
You can be expert at one or two fields. Maybe three.
Accept it
You cannot be an expert in all
Remember the saying:
Jack of all trades, master of none.
Disclaimer
Slide 71
Slide 71 text
Are you a Raccoon or a Koala?
Raccoon eats everything
yes, even garbage
Koala eats only eucalyptus
Fullstack is not for everyone
Slide 72
Slide 72 text
It is challenging
Slide 73
Slide 73 text
Why you might want to
become fullstacker?
Teams tend to be smaller and smaller
Many startups just need generalists to get things done.
OTOH if you work for larger companies, you might
benefit from specialization.
Slide 74
Slide 74 text
Characterizing fullstackers
By nature full stackers are seniors
They just had to do so many things before
Slide 75
Slide 75 text
Characterizing fullstackers
They are curious
They want to step out of their comfort zone
They might have a listening disorder...
This might just even be an advantage...
Slide 76
Slide 76 text
My personal story
Desktop dev @ low-tech (boxes factory)
Web dev @ a startup
Security @ Microsoft
Web frontend @ a startup
Web frontend @ google. And backend...
Backend @ outbrain. And frontend
Infrastructure @ outbrain
Then infrastructure. And dev. All sorts. In many companies...
Slide 77
Slide 77 text
So I asked myself:
What am I?
Am I a frontend dev?
A backend dev?
Both?
That tends to get HR and project managers really confused,
BTW…
My manager even said: You have to decide!
The term fullstack didn’t exist yet
So what am I?
Slide 78
Slide 78 text
What am I?
Me: I am both a fronted and a backend. And Infra.
Why can’t I be both?
Slide 79
Slide 79 text
Back to the questions
Slide 80
Slide 80 text
Back to the questions
Am I a Full Stack developer?
Slide 81
Slide 81 text
Back to the questions
Am I a Full Stack developer?
Do I need (or want) to be a full stack developer?
Slide 82
Slide 82 text
Back to the questions
Am I a Full Stack developer?
Do I need (or want) to be a full stack developer?
What does it take to become one?
Slide 83
Slide 83 text
Back to the questions
Am I a Full Stack developer?
Do I need (or want) to be a full stack developer?
What does it take to become one?
Can you answer them now?
Slide 84
Slide 84 text
Across industry
Originally the term meant: Full stack Web dev
But now we see:
Fullstack Product Manager
Fullstack Designer
Fullstack Devops
Fullstack Marketer
Fullstack Motherfucker
Slide 85
Slide 85 text
Proportions
Is fullstack
Web FE-BE?
Web FE, BE + ops?
Web FE, BE, ops + mobile?
Web FE, BE, ops, mobile + design?
Web FE, BE, ops, mobile, design + hardware?…
Slide 86
Slide 86 text
Proportions
https://xkcd.com/435/
Slide 87
Slide 87 text
Another way to look at it
Basically when people are asking for a full-
stack programmer they're looking for the
all-singing, all-dancing technical wizard.
Or at least someone who won't
complain too much when asked to do
some work outside their normal
comfort zone.
http://qr.ae/RHhys9
Slide 88
Slide 88 text
Inspiration
A true full stack developer must be able to mine silicon
from raw ore & also pilot a quadcopter to deliver a taco
a mile away / @complex
Slide 89
Slide 89 text
Inspiration
If you are having fun, enjoy technology and building
new things, there is really no expiration date on
software engineers. (Jeff Nelson)
Slide 90
Slide 90 text
This presentation
https://speakerdeck.com/rantav/fullstack-1