I have always enjoyed public speaking, but in 2017, I started applying to speak at technology conferences. Since then, I've spoken at many conferences around the country as well as a variety of Chicago-area meetups and coding bootcamps.

As I started speaking, I realized that it was a pain to keep up with the hundreds of Calls for Proposals available every year, so I started CFP Land to help solve this problem for myself and other speakers. If you want to start speaking, I also wrote a free 17,000 word guide on the topic.

Below is a list of the conference talks I'm currently giving:

Stop Writing Code and Start Solving Problems

Solving problems is a complex, multi-disciplinary art, but as software developers, we tend to jump straight into writing code. While that may be your strength, there are times when you'd be better served by stopping to ask, "What's the real problem here?"

In this talk, we'll hear several true stories of how engineering teams I've been on have solved problems without writing code. We'll explore the tradeoffs that were made, tools they used, and the lessons learned by these teams so that you can step away from the keyboard and start solving real problems.

Building Your First Application with Docker

Whether you're just starting out or an expert software developer, you've probably heard the dreaded line, "Works on my machine." Docker is quickly becoming the industry-accepted answer to this problem by making virtualization faster and more flexible than ever before.

In this walk-through, we'll take a step-by-step look at exactly how to set up a web application using Docker. Along the way we'll explore how Docker works, why containers are an improvement over virtual machines, and how this setup can minimize the differences between local and production environments.

Note: I also have a 4-hour workshop on this topic for Javascript developers.

Testing APIs and Microservices

Modern web applications often rely on internal APIs, multiple frontend applications, several third-party services, and dozens of vendor libraries. With complex distributed systems like this, how can developers create a comprehensive test plan that covers everything without slowing development down to a crawl?

In this talk we'll learn how to create test plans for complex, service-oriented applications as well as some best practices for testing across a distributed architecture. We'll see how layers of unit, integration, acceptance, and end-to-end tests can greatly improve the reliability of our applications and make maintaining them much easier in the long-run.

I've also written about this topic here on my blog.

Improving Your PHP with Static Types

As PHP incorporates more features typical of statically typed languages (class properties, function parameters, return types), developers will need to adjust to a completely new style of programming in PHP. While many applaud these features, PHP's implementation isn't quite the same as many traditionally statically typed languages, so there are limitations and pitfalls to be aware of.

In this talk, we'll dive into several examples of how statically typed PHP can improve developer experience and code quality while eliminating the need for a whole class of unit tests. Developers will see some of the "weaknesses" in PHP's strong typing, and get a hint as to where static typing in PHP might be going given the right community support.

Build Small: MVPs for Non-Technical Founders

Too many startup founders get "stuck" because they don't have a technical co-founder. The tools available to entrepreneurs today allow anyone to test and validate their ideas if they're willing to get creative and roll up their sleeves.

In this talk, we'll explore several real-world examples of how startups I've worked for have validated and built software products without extensive engineering effort. We'll compare different approaches to building minimum viable products, explore some of the tools you can use to build them, and learn how you can avoid hiring full-time engineers for as long as reasonable in your startup.

Software Engineering at Startups

There's a lot of buzz around software startups, but it's sometimes hard to imagine what working at one is really like. Is it worth taking a lower salary to get equity? How do startups get funding? What are some of the advantages to working at a startup? How big can a company be and still be called a "startup"?

In this talk, we'll explore all of the questions above and more as we look at what life for software engineers is like in a startup.

Practical People Skills: Networking and Communication for Software Engineers

Software engineers aren't always known for their people skills, but developing them is one of the easiest ways to separate yourself in the job market today.

In this talk, we'll cover some basic tactics for improving your communication, networking, and public speaking skills in order to maximize your potential in the job market and become a more successful software engineer.

If you're running a conference or meetup and would like to explore having me come give a talk, let me know via email or Twitter