Codemash Prime 2024

Codemash is THE conference to attend in January. Today, I review the Midwest's best conference

Written by Jonathan "JD" Danylko • Last Updated: • Reviews •

Codemash Screen

Codemash happens around this time every year in January. It always brings together amazing sessions about technology, programming, soft skills, and career ideas. Living in Columbus, OH, Codemash delivers so much value while being so close to attend.

As mentioned in past reviews, I consider this "tuition" for learning new technologies and staying current in a specific field of interest.

This year, I signed up for the Thursday/Friday sessions (I DO miss those pre-compiler days).

For those wondering what's so special about the Tuesday/Wednesday sessions, these are considered the "pre-compiler" days where every session is hands-on. This requires a laptop and, depending on the session you attend, a list of prerequisites to install before you attend the sessions so you can hit the ground running. 

The Thursday/Friday sessions don't require any specific hardware except some writing device to take notes. Some consider laptops and tablets writing devices, but I always keep a journal or notepad handy just in case.

Wednesday January 10th

To prepare this year, I started packing Tuesday/Wednesday-ish (ok, you caught me...Wednesday afternoon). Anybody else pack on the day they leave?

I packed what I could and headed to Sandusky, OH.

I arrived early evening, checked into the hotel, and headed over to the Kalahari. While there, I registered and walked around seeing what changed in the past year.

I was even greeted by the disapproving Gorilla!

Kalahari's Disapproving Gorilla

Then I went into the grand hall. It was the "calm before the storm." This is where the Lightning Talks were being held...but I was early.

Codemash's 'calm before the storm'

The first person I ran into was this guy.

If he looks familiar, he's Kyle Jenner and he gave a pre-compiler talk about "What is your Working Genius?"

I've said in the past Codemash is a reunion of past and present friends, co-workers, and peers and is always great to catch up and discuss what's new in their "neck of the woods."

After watching the Lightning Talks, it was time to turn in and get ready for a FAST two days.

Thursday January 11th

If you've been to a Codemash before with friends, the path to the congregated table/location is always a familiar place and it definitely brings you back. It's almost like you never left.

In the grand hall, I sat down in a general vicinity and, soon, I was joined by a number of good friends. We had breakfast, shared stories, and asked which sessions each person wanted to attend today.

Simplifying Microservices with DAPR - 8:00a

Matthew Sheehan / LinkedIn / Slides

Screenshot of Matt Sheehan's session

Recently, I started working on a project using DAPR (no, not Dapper) and thought this would be a good introduction as to how DAPR works.

DAPR is defined as a Distributed APplication Runtime and was created by Microsoft. It provides language-neutral capabilities, decreases your API surface area, and codifies best patterns and practices to name a few.

Matt mentioned the building blocks of DAPR including configuration and secrets, service-to-service invocation, state management, pub/sub, resource bindings, and how actors worked. He also focused on some of the patterns used with DAPR like the Retry & Circuit Breaker pattern.

As he walked through each building block, Matt also reviewed the YAML-like files associated with the concept and how they work.

At the end of his session, he recommended further reading including three DAPR books using .NET and two Github repositories.

Overall, I felt his talk gave me enough to start tinkering further w/ DAPR on my own.

Not Your Mother or Father's C# - 9:15a

Brendan Enrick / Twitter / Blog / Slides

Screenshot of Brendan Enrick's session

Brendan's talks are always edutaining (educational and entertaining). His latest talk was no different. He gave a brief (REALLY brief) history of what C# had and didn't have at the beginning and how drastically its changed since 2001.

He covers many C# myths and debunks most of them. Brendan also reviewed a good chunk of the latest features in C#. He injects a bit of humor into his talks to keep his audience on their toes.

This talk was no exception. He always keeps his audience updated as to the latest C# enhancements and is always entertaining.

Absolutely a great talk!

Async/Await from the ground up - 10:30a

Stephen Cleary / Twitter / LinkedIn / Blog

Screenshot of Stephen Cleary's first session

Mr. Cleary is no stranger to the speaker circuit and I've seen him numerous times before (like Codemash 2015 here). His specialty is asynchronous C# programming.

While I've seen asynchronous talks before, Stephen always breaks down the asynchronous process so well and describes things in a very easy way.

It's always good to refresh yourself with the basics which is why I wanted to attend the talk.

Lunch - 11:30a - 1:00p

I thought this would be a good time to grab something quick to eat and head back to the hotel to charge some equipment. I left the hotel around 12:40p.

Rebuild your APIs Better, Stronger, Faster with Minimal APIs - 1:00p

Jonathan "J" Tower / Twitter / LinkedIn / Blog

Screenshot of Jonathan Tower's session

I saw Mr. Tower last year at Stir Trek with his talk about using YARP and loved it. I figured this would be a great presentation as well. I wasn't disappointed.

Jonathan "J" Tower took us down a brief history of communications over the Internet before diving into the APIs. He mentioned DCOM, SOAP with WCF, ASP.NET MVC Controllers, and finally, where we're currently at with Minimal APIs.

Then Jonathan started comparing the difference between Minimal APIs and ASP.NET Core Controllers.

Screenshot of Jonathan Tower's session describing the difference between minimal APIs and Controller APIs

The comparison chart above is great for those new to ASP.NET and wondering which API to use.

Personally, I would use Minimal APIs regardless, but as they say, it depends on your scenario as to which one is easier to integrate. My reasoning for using minimal APIs is because it has a very short startup time as opposed to a controller-based API (as shown above).

I feel Jonathan's talk gave the audience a thorough enough demonstration of which API approach to use based on the advantages and disadvantages.

It's Just a Login Page, Right? - 2:15p (sponsor session: Okta)

Kevin Hansen

Screenshot of Kevin Hansen's session

With this Okta sponsor session, Kevin's presentation was tongue-in-cheek and very entertaining as to what a login screen is comprised of with a number of funny examples.

He mentioned how far we came in terms of security and provided a security chronology of past and present security methods.

  • 1960's - Mainframes
  • 1970's - Hashing Algorithms
  • 1980's - TLM
  • 1990's - Public Key Infrastructure
  • 2000's - MFA (something you know; something you have; and something you are)
  • 2010's - Biometrics
  • 2020's - Passwordless

After the security review, he proceeded to demonstrate real-world UI login examples. Some of them I couldn't believe were in production and in the wild.

Overall, Kevin gave a very entertaining and informative sponsor session.

Scaling .NET Apps w/ Azure - 3:30p

Callum Whyte / Twitter

Screenshot of Callum Whyte's session

Callum's talk reviewed a number of components to use when scaling an application in Azure. The following were mentioned:

  • Compute
    • VMs
    • App Service
    • Kubernetes
  • Persistence
    • Disks
    • Blob Storage
    • Azure SQL
    • Cosmos DB
  • State
  • Observability
    • Azure Monitoring
    • Application Insights

Callum reviewed each category and where to make changes to scale your application while giving some great insights on how and when to scale using the components above.

Using Azure on a daily basis, I felt this was a good session in case your project turns into a Netflix.

Alerts don't suck, YOUR alerts suck! - 4:45p

Leon Adato / Twitter / LinkedIn / Blog / Slides (PDF)

Screenshot of Leon Adato's session

I was skeptical going into this session, but as soon as Leon started talking, I knew this was going to be an entertaining talk.

For example, he mentioned 3 important rules to keep in mind when in comes to alerts:

  • Alerts <> Monitoring
  • Alerts != Monitoring
  • Alerts DOES NOT EQUAL Monitoring

Leon was definitely animated the entire time making it more interesting.

This was one of my favorite talks throughout the two days at Codemash.

Dinner - 6:00p

Dinner is always great at the Kalahari for Codemash.

Old and new friends congregated at a dinner table and discussed their talks and sessions with everyone.

What was the best session?

What was the worst session?

What's happening tonight and where are the happening places tonight? (ya know...."get-togethers" like Cards Against Humanity and Disrupt Cards).

After chatting for supper and Mr. Prince gave his announcements of events for the evening, he mentioned something about a dessert bar!

Screenshot of Dessert Bar thanks to Kalahari

Oh my!

Soooo basically, if you didn't want a sugar rush, stay at least 6-feet away from the table. 

Everything the Kalahari provided was spectacular! Think of the Bacon Bar, but better! Definitely awesome!

Friday January 12th

Usually breakfast starts a little later on Friday than Thursday because of the late night activities.

Thank goodness!

After breakfast, everyone drank their coffee and orange juice and headed off to the final day of Codemash.

Application Architecture Patterns - 8:30a

Joe Guadagno / Twitter / LinkedIn / Blog / Slides

Screenshot of Joe Guardagno's session

I've seen Mr. Guadagno at StirTrek and love his presentations. He's definitely a great speaker.

This year, his session focused on Application Architecture Patterns. I attended to find out if I was missing any from my repertoire.

His list of application architecture patterns included:

  • Layered (or N-tier)
  • Model, View, * (which includes Model-View-Controller, Model-View-ViewModel, and Model-View-Presenter)
  • Event-Driven
  • CQRS (Command & Query Responsibility Segregation)
    • CQRS & Event-Driven
  • Plug-in
  • Service-oriented (SOA, Microservices)
  • Common Microservice Patterns
    • Ambassador
    • Anti-corruption layer
    • Backend for Frontends (BFF)
    • Bulkhead
    • Gateway Aggregation
    • Gateway Offloading
    • Gateway Routing
    • Sidecar
    • Strangler Fig
  • Serverless (cloud)

His explanation of each one was thorough and provided context for when to use each one. Some patterns aren't as common as others (i.e. plug-in), but a majority are used today.

This was a great session and was very informative. Loved it!

Understanding CSS Layout: The Concepts Under Your (Least) Favorite Language - 9:45a

Kilian Valkhof / Twitter / LinkedIn / Blog

Screenshot of Kilian Valkhof's session

Mr. Valkhof is the founder of the Polypane developer's browser. So I'm guessing he knows a thing about CSS and CSS Layouts.

I wasn't wrong! His coverage of CSS layouts was exceptional.

He explained the concepts of baselines, margins, inline-block, positions, and bounding boxes. I especially liked how he depicted each concept with a visual.

I would also recommend looking into his Polypane browser for developers/designers.

I've also scheduled a follow-up to the "4 Browsers You've Never Heard Of" post where I'll include the Polypane browser. Stay tuned!

@Kilian: Great presentation. I thought it was fantastic!

Async Masterclass - 11:00a

Stephen Cleary / Twitter / LinkedIn / Blog

Screenshot of Stephen Cleary's second session

Yes, I had to go another async/await session with Mr. Cleary.

Stephen even mentioned how this was an advanced talk where the previous session was for beginners/intermediate developers.

He covered the latest async/await improvements like what is a ValueTask (ref) and how to use it, IAsyncDisposables, Async Streams, AsyncLocal, Channels, and PauseTokenSource.

As I said, VERY high level and a great session overall. I learned a lot...

...but realized I need to learn more.

MultiThreaded Income: How Developers can Achieve Parallel Success - 12:15p

Kevin Griffin / Twitter / LinkedIn / Blog / Slides

Screenshot of Kevin Griffin's session

Yeah...dating myself, but I remember watching Mr. Griffin back in 2015 talk about ASP.NET Performance tips and tricks and thought it was a great session.

Since I just published a book, I thought this would be a good session to see if there were other avenues for me to travel down.

When Kevin explained his rough times with one particular job, I kept flashing back to my career moment when I was out of a job for six months. It was an extremely hard time for me and my family.

Like Kevin, I tried some side-hustles while continuing to look for a position. Some of my side-hustles are still in play today.

His story resonated with me because I felt like I was looking in a mirror.

For side-hustles, he focused on the following ideas for developers:

  • Products - Possibly sell your Software-As-A-Service (SaaS) using subscriptions?
  • Courses - Create a course once and sell it multiple times.
  • Books - Write a book and sell it multiple times.
  • Freelance Gigs - Help others with programming projects

Kevin's list for developers is a great way to make extra income on the side while working the 9-to-5.

But did you notice something about the first three topics?

It's about writing it once and having it generate income without any intervention.

I mentally mapped out these four types of income streams in my head a while back, but it was great to see how my ideas ran parallel to Kevin.

If you wish to continue down this multithreaded income path, Kevin also has a podcast called Multithreaded Income with various developers discussing their own income streams.

@Kevin: Great session and it was extremely helpful.

Teaching Skills for Technical Experts - 2:45p

Tori Brenneison / Twitter / LinkedIn / Blog / Slides

Screenshot of Tori Brenneison's session

Coming off of Kevin's session on creating a course to make extra income made me look at Tori's session about teaching (this couldn't have been planned, could it?)

Tori explained Bloom's Taxonomy of Remembering, Understanding, Creation, and Analysis of learning concepts.

She also mentioned Gardner's Theory of Multiple Intelligences and how someone can apply "multiple intelligences" to associate to other concepts making it easier to learn.

Tori gave solid examples of lesson preparation, how to structure the lessons, and implementing information chunking. The ability to "information chunk" lessons into 15-20min plans (5-10min for kids) is better for retaining the information.

I especially like how Tori gave tips and tricks on how to read a room when on a Zoom call, ahead-of-time considerations for group training, and how empathy is important.

Her final tips as an instructor was to act like a leader by:

  • Being patient
  • Stay Positive
  • No "passing the buck"; If you don't know something, learn with the student

She also explained in her slides how this slide deck was a toolkit and should be used as such. Tori also included a list of links in the deck for her audience for further research.

I was impressed with everything she broke down into simple concepts and thought it was presented VERY well.

Visual Storytelling: How to be a Superhuman Communicator - 4:00p

David Neal / Twitter / LinkedIn / Blog / Slides

Screenshot of David Neal's session

What better way to end Codemash than to attend David Neal's session.

Mr. Neal is a local conference favorite (Codemash AND StirTrek) and I've seen him so many times over the years (here and here).

David recommended using your own drawing style when creating slide decks for presenting your ideas. He also recommended the book called "Show and Tell" by Dan Roam was a good read.

He mentioned various ways to become a superhuman communicator by using the following:

  • Public speaking
  • Blog posts
  • Tutorials
  • Documentation
  • Videos
  • Webinars
  • Open-source
  • Social Media

David also said if you aren't a good drawer, you can at least draw shapes. To proof the point, he had a simple drawing of a bicycle which used very simple shapes.

While you can't be a Davinci overnight, David gave three recommendations for drawing:

  • Determination
  • Practice
  • Patience

Whether it's digital or analog, do what makes you feel comfortable when drawing.

While pen and paper is definitely encouraged, David referred to other drawing tools like an iPad Pro, Apple pencil, and ProCreate App.

I remember a while back, he mentioned he used Affinity. I decided to ask whether he still uses the Affinity Suite. He said he does. For those who use Photoshop, Affinity is a bit easier on the wallet and can do just about anything Photoshop can do (based on what I've seen). I use Affinity for a LOT of projects using graphics and PDFs.

Again, a great session overall. In the words of David Neal, "You don't need permission to be awesome!"

"Closing Time" - 5:00p

It never fails and I find it funny.

Around Thursday/Friday, Sandusky always seems to experience a snowstorm/blizzard before the closing ceremonies. It makes sense to leave early before the weather gets too bad.

I feel this years' Codemash was a success even though the Zambezi hallway didn't have sessions or sponsors.

I had some great meals with friends to celebrate the release of my new book, played some games with old (and new friends), and enjoyed seeing a lot of acquaintances from past jobs.  

As everything winded down and everyone was leaving, I started feeling that old feeling again.

It's always the same every year.

I travel home exhausted from the conference (which is a good exhaustion). The amount of sessions, technologies, and umm...games can be a lot to digest and retain. I usually need the weekend to rest up before I start writing about what happened at Codemash this year.

Thank You's

To the conference organizers, speakers, Kalahari staff, and volunteers, thank you again for such a great time.

Based on what's on tap for next year, I can't wait to break out the Vans, shorts, and Hawaiian shirts for the Beach Party in 2025!

Codemash 2024 Links

Did you like this content? Show your support by buying me a coffee.

Buy me a coffee  Buy me a coffee
Picture of Jonathan "JD" Danylko

Jonathan Danylko is a web architect and entrepreneur who's been programming for over 25 years. He's developed websites for small, medium, and Fortune 500 companies since 1996.

He currently works at Insight Enterprises as an Principal Software Engineer Architect.

When asked what he likes to do in his spare time, he replies, "I like to write and I like to code. I also like to write about code."

comments powered by Disqus