Skip to content

Presentations

Tech talk checklist

When you do a software related talk at a conference or a meetup, there are lots of things to consider.

This is a checklist so that next time I do a talk, I have something to reference.

My target audience is technical folks at meetups and conferences where the audience size is 5ish to 100ish. I’m sure things change as audience size and content types do.

Slide content

  • Have a QR code for slides
  • Have a QR code for any other action you want
    • “Apply for a job with us”
    • “Try our software”
    • “Read our content”
  • End on QR code slides and include “thanks” and contact info
  • Have a resources slide with more info
  • Display your twitter/social handle on every slide in the corner
  • The infamous about me slide
    • Make it quick (> 1 min)
    • Even “who cares”
  • Have a conclusion slide just before the QR code/Thanks slide
  • Ranking of content (all other things being equal)
    • Fewer words is better than more words
    • Pictures or memes are better than words
    • Animated diagrams are better than pictures
      • Easy implementation: have multiple slides that you arrow through
    • Demos are better than animated diagrams
  • Audiences are forgiving of demos, but you can always record a video for backup if the stakes are too high
  • Make code big enough to read
    • Including if you are displaying it from your IDE
  • Highlight important code bits with color
  • Add code to liberally licensed repo
    • Include on the resources slide
  • If presentation is long, break into sections and have section nav on the main section pages to orient audience
  • Don’t be afraid of too many slides
    • Be afraid of people reading your slides
    • Be afraid of boring people

Delivery

  • Sections of audience won’t be paying attention
    • Focus on those who are
  • Remember that you are the expert and people want you to succeed
  • Pause for questions
    • Include a slide or time at the end
    • Incorporate answers into talk if you get them regularly
  • Be good about time limit
    • Practice
    • Cut stuff in the middle (questions, other sections) to get to conclusion

Prep/Followup

  • Promote on socials (schedule it)
    • 2-3 weeks out
    • 2-3 days out
    • same day
    • after (include slides)
    • Tag the organizer or conference/meetup if you can
  • Don’t plan on doing anything intense the hour or so before your talk
  • Download a PDF of your presentation in case you don’t have internet
  • Get to the presentation room at least 15 minutes ahead of time
  • Test AV connections including mic if needed
  • Bring your power cord for your computer
  • Connect to people who attended talk if they send a request
  • After talk, hang out for a bit if you have time, to chat with folks. Many won’t ask questions during talk, but will after.

I’ll plan to add more to this as I think of it, but this is a good starting checklist for me.

The meetup opportunity

I’ve been presenting at a lot of meetups recently. With the move to virtual, if you want to spread the word about your project or company, you can speak to between five and 50 interested developers pretty easily. As a co-organizer of the Boulder Ruby Meetup, I can also tell you that I am always on the hunt for interesting speakers. Zoom makes it possible for speakers from around the world to talk to meetup attendees.

Why might you be interested in doing this? Well, if your product is aimed at developers, speaking at meetups is a great way to display that you and your company “get it” as well as get some brand awareness. It’s definitely retail rather than wholesale, but you’re still getting your name out there.

Organizers look for topics related to their meetup, from speakers who are responsive and know what they’re doing. As an organizer I’m looking for diversity and local representation, but am also happy to have folks from around the world present. We’re pretty open about the talk topic. Some of the talks are about ruby and rails, others are about generic technologies (machine learning, networking) and others are about the tech industry (ethics, interviewing).

Create a presentation

You want this to be on a topic that is technical, and related to your product, but not about your product. For FusionAuth, I present on JSON Web Tokens. If I was working for the Duckbill Group, I’d focus on the top 3 most expensive part of your AWS bill. For TimescaleDB, I’d talk about generic performance optimizations for PostgreSQL.

Do not hit the audience over their head with your product. Instead, display your awesomeness by teaching them something you’ve learned in a field adjacent to your product. Don’t worry, you’ll have your product name on every slide, and you can put in a slide or two about your company, but the focus should be on teaching something, not a pitch.

This is going to be time intensive, and the most effort, so see if you can spin off other useful artifacts. Can you make a screen cast on a similar topic? A blog post? Submit an article to Hackernoon?

You can also pitch a presentation to a meetup without fully writing it, but I’d suggest at least outlining it before reaching out to any organizers.

If possible, I like my presentation to be technology agnostic. Topics like authentication, databases, logging, etc all cut across different languages. Your presentation will be applicable to more meetups if the bulk of the explanatory slides be language agnostic. Feel free to tweak it by including a couple of slides or code examples in a particular language.

Find meetups

The meetup search tool is crap (most of the meetup UI needs some help, to be honest). I ended up creating a spreadsheet with the names of big cities in the USA in the left hand column and the names of various technologies (Ruby, JavaScript, etc) across the top. Then I built a URL searching for <city name>+<technology name>+meetup. Running this query on google was invariably better than trying to use meetup’s search tool.

Once you find a meetup, look at past events to see what kind of topics they cover, if they have online events, how big it was, and how active the meetup is. If it makes sense, send a message to the organizers. This is a good task to batch up and do weekly.

Reach out to organizers

Reach out to organizers via a meetup message. Some organizers aren’t doing meetups right now. You can scout their meetup page and see if they have online meetups. Sometimes I’ll ping an organizer even if they don’t because sometimes organizers will be interested in restarting a meetup or aren’t aware of the possibilities of remote speakers.

When you reach out, explain that you have a talk about such and such a subject and that you’re interested in doing a zoom meetup. If you’ve done it before, mention it, as that may make them more comfortable with you. Also, mention that you are interested in presenting to their meetup: “I’d like to present to the Boulder Ruby Group about JWTs”.

This serves two purposes. It shows that you aren’t a spammer because you took the time to customize the message at least a bit. And, when they reply to you (which can take days or weeks), you’ll know which meetup they run. There’s no way to go from a message to a meetup organizer to the home page of the meetup they help with. What? Yes, as mentioned, meetup has some UI flaws.

Follow up in a few weeks if they don’t respond. Messages get lost or forgotten. I also often ask if it is ok to take the conversation to email, because that’s less likely to be ignored or missed than meetup messages.

If they are interested, nail down the exact date and time (including timezone). Provide them with your bio, talk title, talk description and duration. Ask if they need anything else (pronouns, headshot, social media, the presentation for their review). I can tell you as a meetup organizer that it is quite nice to have these provided.

What you need from them is:

  • how you will connect to the meetup (zoom link, streamyard account, something else)
  • the length of the presentation
  • whether you can give anything away (electronic stuff is good, t-shirts cost a lot of money to ship but are good too)

I had one organizer want to review my talk, and a few others were happy to look at other presentations I’ve given, but other than that, the bar is pretty low. I also have a pretty extensive online presence; if you have less of one, you might need more proof that you will be a good speaker.

Remember, meetup organizers are volunteers and are looking to provide fun, useful content to their peers. Make it as easy for them as possible.

Conclusion

You won’t reach thousands of people when you do the Zoom meetup circuit, but you will get some great feedback on your presentation and help educate folks.

The largest audience I presented to was around 50 and the smallest was around five. I also got some great questions that led to additional slides and helped round out my presentation, which I was also able to submit to more traditional conferences.

My Ignite Presentation

Now for something completely different…

I participated in Ignite Boulder 40 in December 2019. I gave a talk about perennial vegetables.

It was a blast because it was largely out of my comfort zone. Yes, I’d spoken in public a couple of times, but in front of the entire Boulder theater? Yes, I’d given talks, but remembering everything and having no speaker notes? Yes, I’d talked for a fixed period of time, but communicating a cohesive argument in 5 minutes, with the slides advancing every 15 seconds?

It was a definite challenge and I was happy to be selected. I have no idea if every cohort works this way, but we built our talks over just 4 weeks.

Week 1: Come to a group session with only a rough topic idea (what you applied with) and talk about it for 3-7 minutes while being recorded. Feedback was given about the points that resonated for you to expand on.

Week 2: Write down your talk in 20 points and read it out loud. More feedback about timing and content.

Week 3: Put your talk in front of slides and give it to the group. I missed this one as I was out of town.

Week 4: Deliver the talk!

Of course, I practiced a lot during the weeks leading up to it. I was giving it in the shower, before I went to work, after I got home. Frankly, I was sick of it at the end.

But I’m glad I did it now.

Here’s the talk:

Excited to be speaking at Develop Denver

Coffee break at a conferenceI’m excited to be speaking at Develop Denver. This is a local conference with a wide variety of topics of interest to developers, designers and in general anyone who works in the interactive industry. From their website, they want to:

[bring] together developers, designers, strategists, and those looking to dive deeper into the interactive world for two days of hands on code & design talks.

I’ll be doing two presentations. The first is my talk on Amazon Machine Learning, which I’ve presented previously. The second is a lightning talk on the awk programming language. I’m excited to be presenting, but I’m also looking forward to interesting talks from other speakers, covering topics such as IoT, software development for the developing world, web scraping, APIs, oauth, software development, and hiring practices. (That list is tilted toward my interest in development–there’s plenty for everyone.)

If you’re able to join, it’s happening in about two weeks in downtown Denver (Oct 18-19 in the RiNo district). Here’s the link for tickets, and here’s the agenda.

What makes you a better developer, working at an early stage startup or working in a team?

Bike courierI gave a presentation at Boulder.rb last night about my experience being the technical co-founder of a startup for two years. After the presentation, someone asked a really interesting question. Between working as a solo co-founder of a startup or working in a larger team at an established company, which experience makes you a better developer?

First, a digression. I often commute around town by bike. There are many benefits to doing so, but one of the ones I think about a lot is being on a bike gives you the ability to move through streets more freely. Specifically, you can switch between acting like a car (riding on the road) and acting like a pedestrian (riding on the sidewalk). Used judiciously, this ability can get you places faster than either (hence, bike messengers).

In my mind, a true developer is like that. They can bounce between the world of software (and across the domains within it) and the world of business to solve problems in an efficient manner.

Back to the question at hand. I think that the answer is based on what you mean by better. Are you looking to gain:

  • customer empathy
  • ability to get stuff done through barriers of ignorance and resource constraint
  • a wide set of experience across a lot of different software related domains (security, operations, ux, data modelling, requirements gathering, planning, bug fixing, etc)

If getting these skills make you into the better kind of developer you want to be, you will be well served by being a technical co-founder or founding engineer (more thoughts about the distinction here).

If on the other hand, you are looking for:

  • deep knowledge of a smaller subset of the software world
  • the ability to design software for long term maintainability and performance
  • experience working with a team of stakeholders, each with a different perspective on the problem you are solving

then you are seeking a place on a team, with process, code reviews, conference attendance and free snacks (most likely).

Who is a better developer? The person with experience working with (possibly leading) a team and deep knowledge of a subset of technology? Or the person who can be a jack of all trades and take a product from an idea to something customers will pay for?

I’m going to leave you with the canonical consultant’s answer: “It depends.” The former I’d call an expert programmer and the latter a true developer. They are both extremely valuable, but are good in different companies situations.

Hipster Hosting at BSW, Tomorrow Only

Lady with computer mouse
She doesn’t look like she needs hosting, does she?

I’m doing a short presentation with a few other people at Boulder Startup Week on hosting. Tomorrow, Thur, at 10am MT.

Would love to see you there. Feel free to heckle.

If you can’t make it, here is the salient point of my presentation: startups are hard, so you should host your code and infrastructure at the highest level of abstraction that you can, so that your developers can focus on delivering business value through new features rather than doing ops. In practice, prefer hosting options in this order:

  • serverless
  • platform specific hosting (wpengine, etc)
  • general purpose PAAS (heroku, elastic beanstalk)
  • cloud VMs
  • colo
  • server in the closet

Of course, all advice is context dependent; my advice is aimed at small startups and the more flexibility your developers need around aspects of technology the lower on the list you’ll have to go.

Anyway, looking forward to a good discussion.

Boulder Startup Week Begineth!

Thumb upBoulder Startup Week is this week. If you haven’t been, it’s a great opportunity for a number of reasons. You can get a flavor of the Boulder tech community (though it’s worth remembering that there are numerous firms that don’t play in the startup world that are in Boulder). You can learn a lot about startups from folks who are actively building one, or have built one in the past. You can learn about new technologies and trends that are up and coming, including data science, blockchain and cannibis. And you can meet a lot of great folks.

I’m a bit burned out on startups at the moment, but am still planning to attend a few sessions, mostly on the development track. I’m especially excited for the Boulder Ruby Meetup on Wednesday, where experts will speak about interviewing. I’m also speaking at a session on hosting.

My tips for Boulder Startup Week:

  • go to at least one session in a different area of focus than you normally would.
  • arrive 5-10 minutes early and plan to stay 5-10 minutes after. Use this time to chat with folks. (This is hard for me, but I’ve found that having a canned opening line like “what interesting talks have you seen” or “is this your first time at BSW” is a good way to break the ice.)
  • the above tip will prevent you from trying to attend too many sessions back to back to back. This is a Good Thing(tm).
  • bring business cards, or prepare to exchange emails.
  • thank a volunteer and/or sponsor when you see them. There’s a tremendous amount of effort that goes into this week.
  • be prepared to help someone you meet out, with an intro, feedback on an idea, or even just an interesting article.
  • if a session is full, I’d get on the waitlist and then I’d show up anyway. Because every session is free, I’ve found that oftentimes folks are … over committed and there’s often space for other people.

If your interest has been piqued, please check out the schedule. Hope to see you out there.

Online teaching tips for synchronous classrooms

I’ve been teaching AWS courses for the past year or so.  Many have been with an online teaching environment.  This opens up the class to more people–there’s less cost in taking a course from your office or living room, as compared to flying an instructor out for an on-site.  However, this learning environment does have challenges.  Below is my set of best practices, some suggested by other instructors.

Pre class:

  • Set up your physical environment.  This includes making sure you have a fast internet connection, a room with no noise, and that your computer and audio equipment are set up.
  • Set up the virtual room.  Load the materials, set up any links or other notes.  I like to run virtual courses entirely with chat (audio conferences are really hard with 20 people) so I make a note about that.
  • Test your sound.  This includes having a friend login and listen to you beforehand.  This run through can help make sure your voice (which is your primary engagement tool) is accessible to your students.
  • Email a welcome message to all the students, 2-3 days before class starts.  Include when the class is happening, how to get materials, etc.  I’ve definitely had interactions with students from these emails that led to a better outcome for everyone.

During class:

  • Calculate your latency.  Ask an initial question that requires a response as soon as the question is asked.  Something easy like “where are you from?” or “how many years of AWS experience do you have?”  Note the latency and add it into the time you wait before asking for questions.
  • Ask for questions.   How often can vary based on previous AWS experience, but every 5-10 slides is a good place to start.
  • Answer questions honestly.  If you don’t know, say so.  But then say, “I’ll find out for you.”  (And then, of course, find out.)
  • Allow time for students to read the slide.  At least 15 seconds for each slide.
  • You, however, should not read the slide.
  • Draw or use the pointer tool to help engage the students and pull them into the material.
  • Find out what students want out of the class.  Try to angle some of the content toward those desires.  You may be constrained by knowledge or time or presentation material, but you can at least try.
  • Engage your students.  I like to make corny jokes (“have you heard the one about the two hard problems in computers science?“), refer back to technologies they mention having familiarity with, and talk about internet kitten pictures.
  • Remember your voice and energy are the only things keeping these students engaged.

After class:

  • Follow up on any loose ends.  This could be questions you didn’t get answered or more mundane items like how they can get a certificate of completion.  I had one student who couldn’t get access to the materials and it took a few weeks of bugging customer service reps across organizations before he did.  Not a lot of time on my end, but a big deal for him.

Note that I didn’t cover the content or particular technology at all.  They aren’t really relevant.

 

Railsconf Call For Proposals

Railsconf, a conference focused on, well, Ruby on Rails, is happening in Pittsburgh in April this year.  I attended last year and it was a fantastic experience.  I enjoyed the people I met, the problems I saw discussed, and the size and content of the presentations and workshops.  It definitely had a vendor experience (thank you, Heroku, for the t-shirts), but wasn’t too explicit.

Railsconf organizers are now accepting proposals for workshops, panels and speaking.  For some reason the CFP isn’t on the website, but I noticed it was announced via twitter.  I just submitted, so I can’t speak to the entire process, but the initial submission was pretty painless, just few sections on what you’re interested in presenting and why you might be a good fit.

They actually have a blind submission format, so I had to edit my initial submission to remove any reference to my identity.  Seems like a good idea.

So, go forth and submit!