PRESENTING
ON
WHAT WE WILL BE COVERING
• Speaking
• Ideas
• Opportunities
• Slides
SPEAKING
ON
LET’S ADDRESS THE ELEPHANT IN THE ROOM
YOU’LL HAVE TO SPEAK IN FRONT OF PEOPLE
FEAR
— Jerry Seinfeld
“TO THE AVERAGE PERSON,
IF YOU HAVE TO GO TO A
FUNERAL, YOU’RE BETTER
OFF IN THE CASKET THAN
DOING THE EULOGY.”
”
“
FEAR OF
REJECTION
LACK OF
KNOWLEDGE
LACK OF
PERCEIVED EXPERTISE
WHAT MAKES AN
EXPERT SPEAKER?
THE DIFFERENCE BETWEEN
A SPEAKER AND A NON SPEAKER
SPEAKER
Decides to 

share something they know.
NON-SPEAKER
Decides to not 

share something they know.
THE DIFFERENCE BETWEEN
A SPEAKER AND A NON SPEAKER
SPEAKER
Decides to 

share something they learned.
NON-SPEAKER
Decides to not 

share something they learned.
LEARNING IS
IMPORTANT
PRIOR TO LEARNING
SOMETHING NEW, YOU
DID NOT KNOW IT.
THE DIFFERENCE BETWEEN AN EXPERT AND A NON-EXPERT
EXPERT
Knows something you don’t.
You’ve learned it from them.
NON-EXPERT
Knows something you don’t.
You just don’t know it.
SO WHAT MAKES
AN EXPERT SPEAKER?
WHAT MAKES AN EXPERT SPEAKER?
EXPERT
Knows something others don’t.
SPEAKER
Shares that knowledge.
LACK OF
“SPEAKING” SKILL
SPEAKING WELL
REQUIRES PRACTICE
YOU HAVE MANY
OPPORTUNITIES TO SPEAK
INSTEAD OF HIPCHAT,
ASK TO SPEAK
WITH THE PERSON
OFFER TO PRESENT
THINGS YOU DID AT THE
ENGINEERING MEETING
GIVE AN INTERNAL
TALK HERE
SPEAK AT A
LOCAL MEETUP
TREAT EVERY
OPPORTUNITY AS A
CHANCE TO REALLY SPEAK
TOASTMASTERS
— Joe Namath
WHEN YOU HAVE
CONFIDENCE, YOU CAN
HAVE A LOT OF FUN. AND
WHEN YOU HAVE FUN, YOU
CAN DO AMAZING THINGS.
”
“
SPEAK LOUDER
IDEAS
ON
CHOOSE IDEAS
YOU WANT TO BE
AN EXPERT IN
REMEMBER:
AN EXPERT SHARES
LET’S SEE A WAY
I WORK THROUGH IDEAS
WHAT DO I WANT TO SHARE?
WHAT DO YOU KNOW?
I KNOW HOW TO PROGRAM!
WHAT DO YOU KNOW?
PROGRAMMING
I KNOW HOW TO USE DIFFERENT TOOLS!
WHAT DO YOU KNOW ABOUT PROGRAMMING?
TMUXRABBITMQPHPNODE.JSIOSPROGRAMMING
I KNOW HOW TO USE DIFFERENT TOOLS!
WHAT DO YOU KNOW ABOUT PROGRAMMING?
TMUX
RABBITMQPHP
LOAD

TESTING
IOS
PROGRAMMING
YEAH, SOME ARE MUCH BIGGER THAN OTHERS.
ARE SOME TOPICS BROAD?
TMUX
RABBITMQPHP
LOAD

TESTING
IOS
PROGRAMMING
WELL, I COULD DO DIFFERENT TYPES OF TALKS
WOW, THOSE FIRST THREE ARE REALLY BROAD
TMUX
RABBITMQ
PHP
LOAD TESTING
IOS
OVERVIEWS, INTRODUCTION, AND WORKSHOPS
LET’S SEE
TMUX
RABBITMQ
PHP
LOAD

TESTING
IOS
TUTORIALS
WORK
SHOP
XP
SURE! CUT DOWN ON WHAT YOU ARE COVERING IN EACH
TOPIC TO ONLY THE MOST IMPORTANT PIECES
COULD I DO THINGS DIFFERENTLY?
TMUX
RABBITMQ
PHP
LOAD

TESTING
IOS
TUTORIALS
WORK
SHOP
XP
WHAT SPECIFIC THINGS COULD WE TALK ABOUT
LET’S LOOK AT JUST LOAD TESTING
LOAD

TESTING
TUTORIAL: HOW TO LOAD TEST
EXPERIENCES: LESSONS IN LOAD TESTING
IDEA: LOAD TESTING IS MORE IMPORTANT THAN OTHER TESTING
EDUCATION: WHAT IS LOAD TESTING?
WHAT SPECIFIC THINGS COULD WE TALK ABOUT
LET’S LOOK AT JUST LOAD TESTING
LESSONS IN LOAD TESTING
WHAT SPECIFIC THINGS COULD WE TALK ABOUT
LET’S LOOK AT JUST LOAD TESTING
LESSONS IN LOAD TESTING
MAKE SURE YOU UNDERSTAND HOW THE APP IS BEING USED
USE A PRODUCTION ENVIRONMENT
FINISH WHEN YOU KNOW WHAT YOUR NEXT BOTTLENECK IS
DON’T MAKE ASSUMPTIONS
GET EVERYONE INVOLVED
WHAT SPECIFIC THINGS COULD WE TALK ABOUT
LET’S LOOK AT JUST LOAD TESTING
PRESENTATIONS
SPEAKING
IDEAS
OPPORTUNITIES
SLIDES
DON’T TAKE MY WORD FOR IT
FROM CONFOO.CA
DON’T TAKE MY WORD FOR IT
FROM CONFOO.CA
DON’T TAKE MY WORD FOR IT
FROM CONFOO.CA
DON’T TAKE MY WORD FOR IT
FROM CONFOO.CA
DON’T TAKE MY WORD FOR IT
FROM CONFOO.CA
REVIEW THE
CONFERENCE
SITE FOR TOPICS
HELP SITES SUCH AS
STACKOVERFLOW
OPPORTUNITIES
ON
CONFERENCES
CFP (CALL FOR PARTICIPATION/PAPERS)
OR
CFS (CALL FOR SPEAKERS)
FIRST, PERKS!
PROPOSING
GETTING
ACCEPTED
IN THE OFFICE
BLOG POSTS
ENGAGE ON
SOCIAL MEDIA
GET INVOLVED
MEETUPS
SMALLER
CONFERENCES
LANYRD.COM
JOIND.IN
FOLLOW TWITTER
ACCOUNTS FOR
CONFERENCES YOU ATTEND
SLIDES
ON
LEARN
YOUR
TOOLS
DESIGN
MATTERS
ONE SLIDE
IS
ONE IDEA
Learn your tools
Power Point
KeyNote
lynda.com
Design Matters
Designer? You need to design your entire slide deck as Masters.
Not a designer? Stick to pre-designed slides.
One Slide, One Idea
Each slide should have only one idea
Multiple ideas compete
Learn your tools
Power Point
KeyNote
lynda.com
Design Matters
Designer? You need to design your entire slide deck as Masters.
Not a designer? Stick to pre-designed slides.
One Slide, One Idea
Each slide should have only one idea
Multiple ideas compete
ANIMATIONS
ANIMATIONS
ARE NOT BAD
ANIMATIONS
SHOULD BE SIMPLE
ANIMATIONS
SHOULD DRAW ATTENTION
ANIMATIONS
SHOULD SHOW CHANGE
LET’S LOOK AT A
PREVIOUS EXAMPLE
• #!/usr/bin/env node



var program = require( 'commander' );

var request = require( 'request' );

var async = require( 'async' );

var fs = require( 'fs' );



program

.version( '0.0.1' )

.option( '-f, --from [from]', 'From which node e.g. node1' )

.option( '-t, --to [to]', 'To which node e.g. node8' )

.option( '-c, --cluster [cluster]', 'Cluster, eg. http://
rmq.example.com:15672/api' )

.option( '-d, --destination [destination]', 'Destination Cluster' )

.option( '-u, --username [username]', 'Username' )

.option( '-p, --password [password]', 'Password' )

.option( '--destructive <saveFile>', 'Destructive mode, deletes old
queues before creating new ones, include a save file to output
destroyed queues to' )

//.option( '--simulate', 'Simulate the transaction' )

.parse( process.argv );



function apiGet( url, cb ) {

request.get( url, {

auth: {

username: program.username,

password: program.password

• #!/usr/bin/env node



var program = require( 'commander' );

var request = require( 'request' );

var async = require( 'async' );

var fs = require( 'fs' );



program

.version( '0.0.1' )

.option( '-f, --from [from]', 'From which node e.g. node1' )

.option( '-t, --to [to]', 'To which node e.g. node8' )

.option( '-c, --cluster [cluster]', 'Cluster, eg. http://
rmq.example.com:15672/api' )

.option( '-d, --destination [destination]', 'Destination Cluster' )

.option( '-u, --username [username]', 'Username' )

.option( '-p, --password [password]', 'Password' )

.option( '--destructive <saveFile>', 'Destructive mode, deletes old
queues before creating new ones, include a save file to output
destroyed queues to' )

//.option( '--simulate', 'Simulate the transaction' )

.parse( process.argv );



function apiGet( url, cb ) {

request.get( url, {

auth: {

username: program.username,

password: program.password

.option( '-p, --password [password]', 'Password' )

.option( '--destructive <saveFile>', 'Destructive mode, deletes old
queues before creating new ones, include a save file to output
destroyed queues to' )

//.option( '--simulate', 'Simulate the transaction' )

.parse( process.argv );



function apiGet( url, cb ) {

request.get( url, {

auth: {

username: program.username,

password: program.password

}

}, function ( err, res ) {

if ( err ) {

console.error( err );

}



cb( err, res.body );

} );

}



function apiPut( url, body, cb ) {

request( {

url: url,

method: 'PUT',

json: body,

auth: {

ANIMATIONS
DON’T GO OVERBOARD.
ANIMATIONS SHOULD SERVE
A PURPOSE.
THAT’S RIGHT JASON.
YOU SHOULDN’T
RELY ON THEM
TO SPEAK FOR YOU.
SHAME!
LEARN
YOUR
TOOLS
TOASTMASTERS
SPEAKING
IDEAS
OPPORTUNITIES
SLIDES
DONE

A Presentation on Presenting