express indignation
admit incompetence
I feel ___________, but I
____________
. Maybe if I
Slide 181
Slide 181 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 182
Slide 182 text
⛳ ⛪
Incompetence
Slide 183
Slide 183 text
Book-learning
Slide 184
Slide 184 text
Book-learning
Slide 185
Slide 185 text
vs.
Book-learning
Slide 186
Slide 186 text
vs.
Capitalism
Book-learning
Slide 187
Slide 187 text
No content
Slide 188
Slide 188 text
We need a new
citation editor.
Slide 189
Slide 189 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 190
Slide 190 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I don't need CompSci
Slide 191
Slide 191 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I don't need CompSci
can't create an app either
Slide 192
Slide 192 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I don't need CompSci
can't create an app either
survive this profession
Slide 193
Slide 193 text
No content
Slide 194
Slide 194 text
I did it!
☺
Slide 195
Slide 195 text
Accomplishments:
Slide 196
Slide 196 text
Accomplishments:
• All 3 major style guides
Slide 197
Slide 197 text
Accomplishments:
• All 3 major style guides
• Dozens of types of sources
Slide 198
Slide 198 text
Accomplishments:
• All 3 major style guides
• Dozens of types of sources
• Complete account system
Slide 199
Slide 199 text
Accomplishments:
• All 3 major style guides
• Dozens of types of sources
• Complete account system
• Bibliography creation & export
Slide 200
Slide 200 text
Accomplishments:
• All 3 major style guides
• Dozens of types of sources
• Complete account system
• Bibliography creation & export
• Millions of users
Slide 201
Slide 201 text
I made it up as I went!
Slide 202
Slide 202 text
Very minor downsides:
Slide 203
Slide 203 text
Very minor downsides:
• Completely insecure
Slide 204
Slide 204 text
Very minor downsides:
• Completely insecure
• 100% manual testing
Slide 205
Slide 205 text
Very minor downsides:
• Completely insecure
• 100% manual testing
• GB's of daily server warnings
Slide 206
Slide 206 text
Very minor downsides:
• Completely insecure
• 100% manual testing
• GB's of daily server warnings
• A 16,000 line PHP file
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 247
Slide 247 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mobile web is a joke
Slide 248
Slide 248 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mobile web is a joke
keep failing to learn Cocoa
Slide 249
Slide 249 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mobile web is a joke
keep failing to learn Cocoa
learn how to learn
• 66% faster! Legible!
• Full-featured
• 1st OSS contribution
• 1st user group talk
Slide 264
Slide 264 text
• 66% faster! Legible!
• Full-featured
• 1st OSS contribution
• 1st user group talk
• Rejected by Apple
Slide 265
Slide 265 text
No content
Slide 266
Slide 266 text
No content
Slide 267
Slide 267 text
☺
Slide 268
Slide 268 text
Mission Accomplished
☺
Slide 269
Slide 269 text
Learning simple stuff is easy…
Slide 270
Slide 270 text
Learning simple stuff is easy…
…if you can fit
it inside a day
Slide 271
Slide 271 text
Learning something bigger?
Slide 272
Slide 272 text
Learning something bigger?
Slide 273
Slide 273 text
Learning something bigger?
Slide 274
Slide 274 text
Learning something bigger?
Slide 275
Slide 275 text
Learning something bigger?
Then you need a real purpose.
Slide 276
Slide 276 text
Learning something bigger?
Then you need a real purpose.
Slide 277
Slide 277 text
Learning something bigger?
Then you need a real purpose.
Slide 278
Slide 278 text
Find the smallest thing
you can caremad over
Slide 279
Slide 279 text
⛳ ⛪
Incompetence
Slide 280
Slide 280 text
⛳ ⛪
Incompetence
Slide 281
Slide 281 text
⛳ ⛪
Incompetence
Slide 282
Slide 282 text
Java kids be like
Slide 283
Slide 283 text
Java kids be like
Slide 284
Slide 284 text
Ruby kids be like
Slide 285
Slide 285 text
Ruby kids be like
Slide 286
Slide 286 text
No content
Slide 287
Slide 287 text
Java
Slide 288
Slide 288 text
Java
Slide 289
Slide 289 text
Ruby
Slide 290
Slide 290 text
Ruby
Slide 291
Slide 291 text
Programming
Slide 292
Slide 292 text
Dynamic Programming
Slide 293
Slide 293 text
Meta-programming
Slide 294
Slide 294 text
My first Ruby team
Slide 295
Slide 295 text
My first Ruby team
Slide 296
Slide 296 text
My first Ruby team's tests
Slide 297
Slide 297 text
My first Ruby team's tests
Slide 298
Slide 298 text
dog = double()
Slide 299
Slide 299 text
dog = double()
dog.should_receive(:wag)
Slide 300
Slide 300 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
Slide 301
Slide 301 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
subject.pet(dog)
Slide 302
Slide 302 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
subject.pet(dog)
Slide 303
Slide 303 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
subject.pet(dog)
No type awareness
Slide 304
Slide 304 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
subject.pet(dog)
Out of order
Slide 305
Slide 305 text
dog = double()
dog.should_receive(:wag)
.with(:tail)
subject.pet(dog)
Verbose API
Slide 306
Slide 306 text
No content
Slide 307
Slide 307 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 308
Slide 308 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mad at these mocks
Slide 309
Slide 309 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mad at these mocks
can't metaprogram Ruby
Slide 310
Slide 310 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
mad at these mocks
can't metaprogram Ruby
fit in with Rubyists
Slide 311
Slide 311 text
Java Ruby
Cargo-cult
Slide 312
Slide 312 text
Java Ruby
Slide 313
Slide 313 text
Java Ruby
Slide 314
Slide 314 text
Java Ruby
Slide 315
Slide 315 text
Learned Humility
Slide 316
Slide 316 text
Learned Humility
Slide 317
Slide 317 text
Learned Humility
Slide 318
Slide 318 text
Learned Humility
⏰
Slide 319
Slide 319 text
dog = gimme(Dog)
Slide 320
Slide 320 text
dog = gimme(Dog)
subject.pet(dog)
Slide 321
Slide 321 text
dog = gimme(Dog)
subject.pet(dog)
verify(dog).wag(:tail)
Slide 322
Slide 322 text
gimme
Slide 323
Slide 323 text
• Had type awareness
gimme
Slide 324
Slide 324 text
• Had type awareness
• Preserves test order
gimme
Slide 325
Slide 325 text
• Had type awareness
• Preserves test order
• Clever, terse APIs
gimme
Slide 326
Slide 326 text
• Had type awareness
• Preserves test order
• Clever, terse APIs
• Nobody adopted it
gimme
Slide 327
Slide 327 text
• Had type awareness
• Preserves test order
• Clever, terse APIs
• Nobody adopted it
• Influenced competitors
gimme
Slide 328
Slide 328 text
Getting out of
the line of fire
Slide 329
Slide 329 text
Working code
can sell ideas
Slide 330
Slide 330 text
Working code
can sell ideas
⌨
+
Slide 331
Slide 331 text
Working code
can sell ideas
=
⌨
+
Slide 332
Slide 332 text
Ideas require no
maintenance!
☎
Slide 333
Slide 333 text
⛳ ⛪
Incompetence
Slide 334
Slide 334 text
⛳ ⛪
Incompetence
Slide 335
Slide 335 text
⛳ ⛪
Incompetence
Slide 336
Slide 336 text
⛳ ⛪
Inadequacy
⛳
Slide 337
Slide 337 text
Midwestern
programming
Slide 338
Slide 338 text
No content
Slide 339
Slide 339 text
No content
Slide 340
Slide 340 text
No content
Slide 341
Slide 341 text
No content
Slide 342
Slide 342 text
No content
Slide 343
Slide 343 text
No content
Slide 344
Slide 344 text
No content
Slide 345
Slide 345 text
I'm not great at cocktail parties
Slide 346
Slide 346 text
I had some rockstar envy
Slide 347
Slide 347 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 348
Slide 348 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
my work isn't exciting
Slide 349
Slide 349 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
my work isn't exciting
only know how to Enterprise
Slide 350
Slide 350 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
my work isn't exciting
only know how to Enterprise
be more appreciated
Slide 351
Slide 351 text
mustachify.me
Slide 352
Slide 352 text
mustachify.me
Slide 353
Slide 353 text
mustachify.me
Slide 354
Slide 354 text
"Let's think bigger"
Slide 355
Slide 355 text
"Let's think bigger"
Slide 356
Slide 356 text
Must Stache
Slide 357
Slide 357 text
Must Stache
Cory
Slide 358
Slide 358 text
Must Stache
Cory
Slide 359
Slide 359 text
Must Stache
Cory
Slide 360
Slide 360 text
• Posted to a forum at 11pm
Slide 361
Slide 361 text
• Posted to a forum at 11pm
•
Slide 362
Slide 362 text
• Posted to a forum at 11pm
•
• 12,000 views (~3,000 installs)
Slide 363
Slide 363 text
• Posted to a forum at 11pm
•
• 12,000 views (~3,000 installs)
• 40 pages per user/hour
Slide 364
Slide 364 text
• Posted to a forum at 11pm
•
• 12,000 views (~3,000 installs)
• 40 pages per user/hour
• 42 images/page
Slide 365
Slide 365 text
• Posted to a forum at 11pm
•
• 12,000 views (~3,000 installs)
• 40 pages per user/hour
• 42 images/page
• 5 million requests per hour
Slide 366
Slide 366 text
No content
Slide 367
Slide 367 text
Serverless!
Slide 368
Slide 368 text
Must Stache
Cory
Slide 369
Slide 369 text
Must Stache
Cory
Slide 370
Slide 370 text
Must Stache
Cory
Cory
Slide 371
Slide 371 text
Must Stache
Cory
Cory
Slide 372
Slide 372 text
Must Stache
Cory
Cory
Slide 373
Slide 373 text
Many months later
Slide 374
Slide 374 text
No content
Slide 375
Slide 375 text
No content
Slide 376
Slide 376 text
No content
Slide 377
Slide 377 text
No content
Slide 378
Slide 378 text
No content
Slide 379
Slide 379 text
No content
Slide 380
Slide 380 text
☺
Slide 381
Slide 381 text
No content
Slide 382
Slide 382 text
✉
Slide 383
Slide 383 text
✉
✉ ✉
✉ ✉
✉ ✉
✉
✉
✉
✉
✉✉
✉
✉ ✉
✉
✉
✉
✉
✉
✉
Slide 384
Slide 384 text
This wasn't fan mail
Slide 385
Slide 385 text
No content
Slide 386
Slide 386 text
• Built a popular thing
Slide 387
Slide 387 text
• Built a popular thing
• Was unaware of that popularity
Slide 388
Slide 388 text
• Built a popular thing
• Was unaware of that popularity
• Made someone else millions
Slide 389
Slide 389 text
• Built a popular thing
• Was unaware of that popularity
• Made someone else millions (?)
Slide 390
Slide 390 text
• Built a popular thing
• Was unaware of that popularity
• Made someone else millions
• Made thousands of users angry
(?)
Slide 391
Slide 391 text
• Built a popular thing
• Was unaware of that popularity
• Made someone else millions
• Made thousands of users angry
• Left with no recourse
(?)
Slide 392
Slide 392 text
Serverless isn't
Slide 393
Slide 393 text
Popularity without
purpose is toxic
☢
Slide 394
Slide 394 text
⛳ ⛪
Inadequacy
⛳
Slide 395
Slide 395 text
⛳ ⛪
Inadequacy
⛳
Slide 396
Slide 396 text
⛳ ⛪
Inadequacy
⛳
Slide 397
Slide 397 text
I was on a legacy
rescue project
Slide 398
Slide 398 text
I was on a legacy
rescue project
I was on a legacy
rescue project
Slide 399
Slide 399 text
I was on a legacy
rescue project
I was on a legacy
rescue project
My kids will inherit it
Slide 400
Slide 400 text
I was on a legacy
rescue project
I was on a legacy
rescue project
Slide 401
Slide 401 text
I was on a legacy
rescue project
I was on a legacy
rescue project
I wanted to be rescued
Slide 402
Slide 402 text
☹
Slide 403
Slide 403 text
☹
Slide 404
Slide 404 text
☹
Slide 405
Slide 405 text
Can I program anything useful
in under 2 months anymore?
Slide 406
Slide 406 text
to-do apps
✅
Slide 407
Slide 407 text
Project:
Plaintext to-dos
Slide 408
Slide 408 text
Project:
- Task A
Plaintext to-dos
Slide 409
Slide 409 text
Project:
- Task A
- Task B
Plaintext to-dos
Slide 410
Slide 410 text
Project:
- Task A
- Task B
- Task C
Plaintext to-dos
Slide 411
Slide 411 text
Project:
/ Task A
- Task B
- Task C
Plaintext to-dos
Slide 412
Slide 412 text
Project:
/ Task A
# Task B
- Task C
Plaintext to-dos
Slide 413
Slide 413 text
Project:
/ Task A
# Task B
- Task C {6/10/2011}
Plaintext to-dos
Slide 414
Slide 414 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 415
Slide 415 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I hate all to-do apps
Slide 416
Slide 416 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I hate all to-do apps
forgot how to code
Slide 417
Slide 417 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
I hate all to-do apps
forgot how to code
restore my pride
Slide 418
Slide 418 text
A quest!
Slide 419
Slide 419 text
Build a great to-do app…
✅
Slide 420
Slide 420 text
…in under 24 hours
⏲
Slide 421
Slide 421 text
doing-it:
doing-it app
Slide 422
Slide 422 text
doing-it:
- make a div contenteditable
doing-it app
Slide 423
Slide 423 text
doing-it:
- make a div contenteditable
- dump it in localStorage
doing-it app
Slide 424
Slide 424 text
doing-it:
- make a div contenteditable
- dump it in localStorage
- read from localStorage
doing-it app
Slide 425
Slide 425 text
doing-it:
- make a div contenteditable
- dump it in localStorage
- read from localStorage
- use it to track the rest
doing-it app
Slide 426
Slide 426 text
I did it!
Slide 427
Slide 427 text
No content
Slide 428
Slide 428 text
No content
Slide 429
Slide 429 text
✅
doing-it
Slide 430
Slide 430 text
• Finished within 1 day ✅
doing-it
Slide 431
Slide 431 text
• Finished within 1 day
• Renewed confidence
✅
doing-it
Slide 432
Slide 432 text
• Finished within 1 day
• Renewed confidence
• Still works ( Heroku!)
✅
doing-it
Slide 433
Slide 433 text
• Finished within 1 day
• Renewed confidence
• Still works ( Heroku!)
• No users ➡ no e-mail
✅
doing-it
Slide 434
Slide 434 text
• Finished within 1 day
• Renewed confidence
• Still works ( Heroku!)
• No users ➡ no e-mail
• Threw it on GitHub
✅
doing-it
Slide 435
Slide 435 text
Self-validation
Slide 436
Slide 436 text
"How do I open-source?"
⭐
⭐
Slide 437
Slide 437 text
No content
Slide 438
Slide 438 text
Write (me)
some docs,
my child.
Slide 439
Slide 439 text
Send (me) a
pull request
Slide 440
Slide 440 text
⭐
⭐
Slide 441
Slide 441 text
⭐
⭐
Slide 442
Slide 442 text
⭐
⭐
Slide 443
Slide 443 text
⭐
⭐
Rejected! This is
not how I'd do it.
Slide 444
Slide 444 text
Do you want
another boss?
Slide 445
Slide 445 text
No content
Slide 446
Slide 446 text
I made what I
wanted, then
flung it online
Slide 447
Slide 447 text
Can't predict
what'll stick
Slide 448
Slide 448 text
⛳ ⛪
Inadequacy
⛳
Slide 449
Slide 449 text
⛳ ⛪
Inadequacy
⛳
Slide 450
Slide 450 text
⛳ ⛪
Inadequacy
⛳
Slide 451
Slide 451 text
The Thoughtleader's Dilemma
Slide 452
Slide 452 text
The Thoughtleader's Dilemma
• Do interesting work
Slide 453
Slide 453 text
The Thoughtleader's Dilemma
• Do interesting work
• Share insights with others
Slide 454
Slide 454 text
The Thoughtleader's Dilemma
• Do interesting work
• Share insights with others
• Stop doing the work
Slide 455
Slide 455 text
The Thoughtleader's Dilemma
• Do interesting work
• Share insights with others
• Stop doing the work
• Thoughtlead others off a cliff
Slide 456
Slide 456 text
Test-Driven Development
Slide 457
Slide 457 text
One day, I started
leading thoughts…
Slide 458
Slide 458 text
google "tdd failure"
Slide 459
Slide 459 text
No content
Slide 460
Slide 460 text
No content
Slide 461
Slide 461 text
This is "London-
school" TDD
Slide 462
Slide 462 text
☝
This is "London-
school" TDD
Slide 463
Slide 463 text
☝
This is "London-
school" TDD
It isn't, really
Slide 464
Slide 464 text
No content
Slide 465
Slide 465 text
No content
Slide 466
Slide 466 text
Discovery Testing
Slide 467
Slide 467 text
No content
Slide 468
Slide 468 text
No content
Slide 469
Slide 469 text
No content
Slide 470
Slide 470 text
No content
Slide 471
Slide 471 text
No content
Slide 472
Slide 472 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 473
Slide 473 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
TDD isn't understood
Slide 474
Slide 474 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
TDD isn't understood
am a talking head
Slide 475
Slide 475 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
TDD isn't understood
am a talking head
validate my ideas
Slide 476
Slide 476 text
Simplisafe™ alarm system
Slide 477
Slide 477 text
Simplisafe™ alarm system
Slide 478
Slide 478 text
Simplisafe™ alarm system
Slide 479
Slide 479 text
No content
Slide 480
Slide 480 text
homebridge
Slide 481
Slide 481 text
homebridge
❓
Slide 482
Slide 482 text
homebridge
❓
Slide 483
Slide 483 text
homebridge
❓
Hey Siri, turn on my alarm
Slide 484
Slide 484 text
❓
Slide 485
Slide 485 text
Does my TDD
process work?
Slide 486
Slide 486 text
Several hours later…
⏲
Slide 487
Slide 487 text
Whew!
Slide 488
Slide 488 text
npm install simplisafe
Slide 489
Slide 489 text
var simplisafe = require('simplisafe')
Slide 490
Slide 490 text
var simplisafe = require('simplisafe')
simplisafe({
Slide 491
Slide 491 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
Slide 492
Slide 492 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
password: '1234'
Slide 493
Slide 493 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
password: '1234'
}, function (er, client) {
Slide 494
Slide 494 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
password: '1234'
}, function (er, client) {
client.setState('away')
Slide 495
Slide 495 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
password: '1234'
}, function (er, client) {
client.setState('away')
})
Slide 496
Slide 496 text
var simplisafe = require('simplisafe')
simplisafe({
user: '[email protected]',
password: '1234'
}, function (er, client) {
client.setState('away')
})
Slide 497
Slide 497 text
simplisafe
Slide 498
Slide 498 text
• Followed my own advice
simplisafe
Slide 499
Slide 499 text
• Followed my own advice
• It actually went really well!
simplisafe
Slide 500
Slide 500 text
• Followed my own advice
• It actually went really well!
• I went too long without
validating my ideas
simplisafe
Slide 501
Slide 501 text
• Followed my own advice
• It actually went really well!
• I went too long without
validating my ideas
simplisafe
Slide 502
Slide 502 text
Dear technical managers,
Slide 503
Slide 503 text
Dear former developers,
Slide 504
Slide 504 text
Everything seems
simple at a distance
Slide 505
Slide 505 text
Pattern recognition
yields generic advice
Slide 506
Slide 506 text
Trust the people
closest to the work
Slide 507
Slide 507 text
⛳ ⛪
Inadequacy
⛳
Slide 508
Slide 508 text
⛳ ⛪
Inadequacy
⛳
Slide 509
Slide 509 text
⛳ ⛪
Inadequacy
⛳
Slide 510
Slide 510 text
⛳ ⛪
Indignation
⛪
Slide 511
Slide 511 text
I'm a worrier
Slide 512
Slide 512 text
No content
Slide 513
Slide 513 text
No content
Slide 514
Slide 514 text
No content
Slide 515
Slide 515 text
No content
Slide 516
Slide 516 text
No content
Slide 517
Slide 517 text
No content
Slide 518
Slide 518 text
No content
Slide 519
Slide 519 text
No content
Slide 520
Slide 520 text
☺
Slide 521
Slide 521 text
Six years pass…
Slide 522
Slide 522 text
No content
Slide 523
Slide 523 text
No content
Slide 524
Slide 524 text
No content
Slide 525
Slide 525 text
❓
Slide 526
Slide 526 text
No content
Slide 527
Slide 527 text
No content
Slide 528
Slide 528 text
SPoFaaS
Slide 529
Slide 529 text
SPoFaaS
(single point of failure as a service)
Slide 530
Slide 530 text
No content
Slide 531
Slide 531 text
No content
Slide 532
Slide 532 text
No content
Slide 533
Slide 533 text
No content
Slide 534
Slide 534 text
No content
Slide 535
Slide 535 text
No content
Slide 536
Slide 536 text
No content
Slide 537
Slide 537 text
No content
Slide 538
Slide 538 text
No content
Slide 539
Slide 539 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 540
Slide 540 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
security matters
Slide 541
Slide 541 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
security matters
am not an expert
Slide 542
Slide 542 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
security matters
am not an expert
feel a little safer
• I (almost) have a dashboard
• Locally encrypted
fine_ants
Slide 562
Slide 562 text
• I (almost) have a dashboard
• Locally encrypted
• Put Selenium to good use
fine_ants
Slide 563
Slide 563 text
• I (almost) have a dashboard
• Locally encrypted
• Put Selenium to good use
• Not a generalizable app
fine_ants
Slide 564
Slide 564 text
No shame in
"hobby-grade"
Slide 565
Slide 565 text
Selfish little toy apps
inspired many of us
Slide 566
Slide 566 text
⛳ ⛪
Indignation
⛪
Slide 567
Slide 567 text
⛳ ⛪
Indignation
⛪
Slide 568
Slide 568 text
⛳ ⛪
Indignation
⛪
Slide 569
Slide 569 text
No content
Slide 570
Slide 570 text
gimme
Slide 571
Slide 571 text
like stunt doubles
Test doubles are
Slide 572
Slide 572 text
like stunt doubles
Test doubles are
Slide 573
Slide 573 text
like stunt doubles
Test doubles are
Slide 574
Slide 574 text
like stunt doubles
Test doubles are
☁
Slide 575
Slide 575 text
like stunt doubles
Test doubles are
☁
Slide 576
Slide 576 text
like stunt doubles
Test doubles are
☁
✅
Slide 577
Slide 577 text
No content
Slide 578
Slide 578 text
☁
Slide 579
Slide 579 text
☁
Slide 580
Slide 580 text
☁
Slide 581
Slide 581 text
☁
Slide 582
Slide 582 text
☁
Slide 583
Slide 583 text
☁
Slide 584
Slide 584 text
☁
Slide 585
Slide 585 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 586
Slide 586 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
users are in pain
Slide 587
Slide 587 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
users are in pain
can't beat Sinon
Slide 588
Slide 588 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
users are in pain
can't beat Sinon
be less grouchy
Slide 589
Slide 589 text
My entire career may hinge
on two or three concepts
Slide 590
Slide 590 text
No content
Slide 591
Slide 591 text
No content
Slide 592
Slide 592 text
No content
Slide 593
Slide 593 text
No content
Slide 594
Slide 594 text
∞
Slide 595
Slide 595 text
No content
Slide 596
Slide 596 text
.js
Slide 597
Slide 597 text
npm install testdouble
Slide 598
Slide 598 text
http://is.gd/happytdd
Slide 599
Slide 599 text
https://is.gd/td_vs_sinon
Slide 600
Slide 600 text
testdouble.js
Slide 601
Slide 601 text
• Works pretty well
testdouble.js
Slide 602
Slide 602 text
• Works pretty well
• Shares what we've
learned clearly
testdouble.js
Slide 603
Slide 603 text
• Works pretty well
• Shares what we've
learned clearly
• Better than cynicism
testdouble.js
Slide 604
Slide 604 text
Not getting through?
Tweak your message
Slide 605
Slide 605 text
Not winning !=
Not worthwhile
Slide 606
Slide 606 text
Criticism is easier
than contribution
Slide 607
Slide 607 text
⛳ ⛪
Indignation
⛪
Slide 608
Slide 608 text
⛳ ⛪
Indignation
⛪
Slide 609
Slide 609 text
⛳ ⛪
Indignation
⛪
Slide 610
Slide 610 text
I emoji
Slide 611
Slide 611 text
Creativity is serious work
Slide 612
Slide 612 text
Open source:
Slide 613
Slide 613 text
You create,
Open source:
Slide 614
Slide 614 text
You create,
we depend
Open source:
Slide 615
Slide 615 text
No content
Slide 616
Slide 616 text
No content
Slide 617
Slide 617 text
❤
Slide 618
Slide 618 text
❤
Slide 619
Slide 619 text
❤
Slide 620
Slide 620 text
❤
Slide 621
Slide 621 text
❤
Slide 622
Slide 622 text
Hating your own creations
Slide 623
Slide 623 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
Slide 624
Slide 624 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
exploited & exhausted
Slide 625
Slide 625 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
exploited & exhausted
can't escape it
Slide 626
Slide 626 text
express indignation
admit incompetence
lessen inadequacy
I feel ___________, but I
____________
. Maybe if I
build it, I'll _____________
.
exploited & exhausted
can't escape it
find a fresh start
Slide 627
Slide 627 text
Build something no
business would want
Slide 628
Slide 628 text
…or just license
everything GPL
Slide 629
Slide 629 text
…or just license
everything GPL
Slide 630
Slide 630 text
emoruby
Slide 631
Slide 631 text
❤
Slide 632
Slide 632 text
❤
Slide 633
Slide 633 text
❤
Slide 634
Slide 634 text
❤
Slide 635
Slide 635 text
❤
Slide 636
Slide 636 text
❤
Slide 637
Slide 637 text
❤
Slide 638
Slide 638 text
❤
Slide 639
Slide 639 text
❤
❤▪▪
Slide 640
Slide 640 text
❤
❤▪▪
Slide 641
Slide 641 text
class Heart
def wave
puts "smiley earth_asia"
end
end
Heart.new.wave
Slide 642
Slide 642 text
emoruby
❤
Slide 643
Slide 643 text
• It's real dumb
emoruby
❤
Slide 644
Slide 644 text
• It's real dumb
• Brought me joy
emoruby
❤
Slide 645
Slide 645 text
• It's real dumb
• Brought me joy
• Zero issues this year
emoruby
❤
Slide 646
Slide 646 text
It's okay to build
things for yourself
Slide 647
Slide 647 text
No content
Slide 648
Slide 648 text
No content
Slide 649
Slide 649 text
No content
Slide 650
Slide 650 text
It's okay to build
things for yourself
Slide 651
Slide 651 text
It's okay to build
things for yourself
fun
Slide 652
Slide 652 text
⛳ ⛪
Indignation
⛪
Slide 653
Slide 653 text
⛳ ⛪
Indignation
⛪
Slide 654
Slide 654 text
⛳ ⛪
Indignation
⛪
Slide 655
Slide 655 text
⛳
⛪
Inadequacy Indignation
Incompetence
Slide 656
Slide 656 text
⛳
⛪
Inadequacy Indignation
Incompetence
Slide 657
Slide 657 text
I s you
Slide 658
Slide 658 text
No content
Slide 659
Slide 659 text
No content
Slide 660
Slide 660 text
No content
Slide 661
Slide 661 text
No content
Slide 662
Slide 662 text
No content
Slide 663
Slide 663 text
No content
Slide 664
Slide 664 text
No content
Slide 665
Slide 665 text
fine_ants
Slide 666
Slide 666 text
fine_ants
Slide 667
Slide 667 text
No content
Slide 668
Slide 668 text
Maybe you're right
Slide 669
Slide 669 text
Creativity isn't
for everyone
Slide 670
Slide 670 text
If you're ,
Slide 671
Slide 671 text
perfectly content
If you're ,
Slide 672
Slide 672 text
totally fulfilled
If you're ,
Slide 673
Slide 673 text
OK with status quo
If you're ,
Slide 674
Slide 674 text
OK with status quo
If you're
why change things?
,
Slide 675
Slide 675 text
OK with status quo
If you're
why change things?
,
⛱
Slide 676
Slide 676 text
Negative feels are a symptom
Slide 677
Slide 677 text
Root cause analysis
Slide 678
Slide 678 text
Root cause analysis
• Wrong tool for the job?
Slide 679
Slide 679 text
Root cause analysis
• Wrong tool for the job?
• Technology-to-practice friction?
Slide 680
Slide 680 text
Root cause analysis
• Wrong tool for the job?
• Technology-to-practice friction?
• Work can't offer what you need?
Slide 681
Slide 681 text
Root cause analysis
• Wrong tool for the job?
• Technology-to-practice friction?
• Work can't offer what you need?
• Internal baggage to get over?
Slide 682
Slide 682 text
Reflect on your feels
Slide 683
Slide 683 text
Reflect on your feels
Slide 684
Slide 684 text
Your async brain
Slide 685
Slide 685 text
Your async brain
Slide 686
Slide 686 text
Your async brain
Slide 687
Slide 687 text
Your async brain
Slide 688
Slide 688 text
Your async brain
Slide 689
Slide 689 text
Your async brain
Slide 690
Slide 690 text
No content
Slide 691
Slide 691 text
❓
Slide 692
Slide 692 text
❓
Slide 693
Slide 693 text
No content
Slide 694
Slide 694 text
No content
Slide 695
Slide 695 text
No content
Slide 696
Slide 696 text
No content
Slide 697
Slide 697 text
No content
Slide 698
Slide 698 text
No content
Slide 699
Slide 699 text
No content
Slide 700
Slide 700 text
No content
Slide 701
Slide 701 text
✅
Slide 702
Slide 702 text
Find your outlet
Slide 703
Slide 703 text
Find your outlet
*
Slide 704
Slide 704 text
Find your outlet
*
*it may not involve software
Slide 705
Slide 705 text
Tomorrow!
Slide 706
Slide 706 text
⛱
Tomorrow!
Slide 707
Slide 707 text
Tomorrow!
Slide 708
Slide 708 text
Test Smells
Tomorrow!
Slide 709
Slide 709 text
I'm @searls—tell me
what you think
!
Slide 710
Slide 710 text
We need creative types to
help improve the industry.
[email protected]
Credits:
Pole Vault by Mister Pixel from the Noun Project
Thought Bubble by Tim Smith from the Noun Project
Brain by Guillaume Bahri from the Noun Project