Slide 1

Slide 1 text

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