Later today I’ll be speaking at the C# Corner 2022 .NET Conference. This is a 3-day FREE online conference with a great set of speakers. I’ve been really impressed with the quality of production and how the C# Corner team is really building a community with their articles, events and how they are encouraging people to get involved.

Slides | Sample Code

I’ll be speaking on unit testing strategies with my “Coding Naked – Unit Testing those hard to reach places” talk. I need to update the slides on SlideShare, these ones are a bit dated by now, if you watch the live steam or recording, you’ll see I’ve updated this talk quite a bit since I first put it together (in 2012!).

In addition to TDD fundamentals, I dig into a few strategies for better TDD and test coverage.

One area I address is working with extension methods. Extension methods can be hard to mock, or at least, they often get in the way. Extension methods that are “functionally pure” (input, output, no side effects) are pretty easy to unit test, the challenge are extension methods that return void, or that do a lot of work under the hood.

The three strategies I discuss for dealing with extension methods are:

  1. Wrapping Extensions with an Interface (my preferred approach)
  2. Mocking around Extension Methods (creates dev cognitive load, and leaky abstractions)
  3. Using Fakes, Pose or Isolator (I don’t recommend these)

You can download or fork the sample code on githuib.

One thing I recently added to the sample code, is a new method for mocking around a common extension method. The Microsoft.Logging.Extensions! I’m really glad that Microsoft has created a common logging interface. There are a lot of great .NET loggers.. but often moving from project to project the nuanced api differences can be really annoying. I’ve used the Common.Logging interface several times, but it never really took off the way I hoped it would. I think the Microsoft logging abstractions will have a much higher adoption. 🤞

Here’s the thing though. There is only 1 logging method in the Microsoft.Logg Interface, and you’ll likely never use it! Instead, you’ll end up using one of the many logging extension methods. So now you might try and mock around it since the source code is all available. This will lead you to a massive deep dive where you finally realize that all of the Microsoft Extensions, end up using a method call that takes an internal class as a parameter! Ugh. That makes it really hard to mock around!

That being said, MOQ recently added a parameter option for It.IsAnyType – huzzah! Adam Storr has a much more extensive write up on this challenge and the solution that he came up with (go read it!) to Mock Around the Microsoft Logging Abstractions. I extended his solution in my code, and am planning on publishing this as a reusable nuget package soon.

Happy Coding!

Detroit Code – 3 Days of Awesome.

July 7, 2017    Category: Blog, Events   1 Comment »

 

TL;DR:

Detroit.Code() is a 3 Day conference I’ll be giving two talks at in Detroit next week. You can register now and save 10% by using code CalebJenkins10

detroitcode

The rest..

Earlier this year I spoke twice at our internal Software Craftsmanship Community at Quicken Loans. Next week, I’ll be giving two more talks in Detroit. Coding Naked and Scaling Scrum.

I’m really looking forward to this “local” conference. It’s local for me since I started working in Detroit every day. Well, “in Detroit” is relative, my commute involves walking to my standing desk in Texas – more on that in a future post! OK, I really am excited to experience this conference. The speaker line up is amazing. The hardest part will be some of the time slots where there are way too many good speakers and topics I want to hear at the same time. Where else can you go spend a whole day learning about ASP.NET CORE directly from Microsoft’s Jeffrey Fritz or Do Architecture Kata’s with Ted Neward or spend a day learning directly from Ted X Speaker Christina Aldan? Seriously, here’s me trying to decide which session to attend in one slot

image

Too many good talks to decide.

The only thing that made this one easy to pick, is that one of them I have to be at..

image

You get the idea.. so much great content, learning, growing – mind stretching will be going on next week.

I’m also looking forward to seeing how the people from Amegala run a conference. They do a number of conferences that I’ve never been at before.

image

This feels like a notch up from a TechFest, but not quite at the VS Live sort of level. In other words: just perfect.

Quicken Loans

imageI should also mention how awesome it is to work for a company that not only gives time off for attending a speaking at conferences.. but actively encourages broader community participation. Not only is Quicken Loans officially sponsoring Detroit Code, 6 of the speakers are from QL, many of us are from out of town, and QL is paying for our travel and hotel for the week. Awesome!

  • Keith Elder – will be flying up from Mississippi, and is talking about the highly scalable encryption platform that we built and use at Quicken Loans
  • Mike Eaton – is giving two talks, one on Becoming a Remote Worker Pro, and other on making the transition from individual contributor to  Team Leader (Manager outside of QL)
  • Peter Ritchie – 2 talks: Introduction to Microsoft Service Fabric, and Moving Towards Elastic Scalability
  • Jason Follas -  2 talks: Bit Coin: What makes it secure, and Lightweight Pub/Sub for Web Applications using MQTT
  • Eric Helin – Adventures with TDD and Paired Programming

 

I’ll be giving two talks:

Coding Naked – Unit Testing those hard to reach places.

image

This is an updated version of this talk that I’ve given many times. The new version (updated slides coming soon) is much more focused on code examples and working through various scenarios that people run in to while at the same time delivering on the principles behind those examples to really help people get better at navigating the world of automated unit testing. Original slides: https://www.slideshare.net/calebjenkins/coding-naked

 

Scaling Scrum to the Enterprise

image

Scrum is awesome.. just incomplete. (by design) – this talk goes through some of the patterns and practices that we used to scale scrum at Sabre to help people increase their over all agility and deliver better software.

 

There’s still time to register.

The full day workshops are on Monday with the rest of the conference taking place Tuesday and Wednesday. If you use the discount code CalebJenkins10, you’ll save 10% off of your registration.

 

Hope to see you there!

Dallas Tech Fest this Friday!

June 2, 2017    Category: Events   No Comments »

This Friday I’ll be speaking at the Dallas Tech Fest.
image

My talk is called “Coding Naked – Unit Testing those hard to reach places!” – it’s all about better unit testing and strategies for tackling some of those not so obvious scenarios.

Hope you can make it!

I’ll be posting the updates to my slides here shortly after the conference.

Last Friday I was privileged to give the closing keynote at the Tulsa Tech Fest. In the past I’ve spoken about things like building a great culture, 10 practices that all developers should be doing – even talks specifically about dependency injection and refactoring code. This year it was more about Why all of this stuff matters.

As a developer, it’s easy to think about how big the universe is, how much there is to do, and wonder if these things really matter. So we take a look at some examples in our industry on why UX matters, Clean Code, Secure Coding, Engineering Practices, Building a Culture, Continuous Learning.. and finally, being a Professional. These things matter.

 

If you were there – hope you enjoyed it!

 

I also gave 2 other talks that day.

 

Scaling Scrum

image

Prototyping, Innovate Collaborate

image

 

In addition, several people from my new job found out that I was speaking in Tulsa, and pulled together to create an entirely new track this year! So cool. More about Linux Academy and my new job coming soon!

 

image

Thursday April, 14th, I’ll be speaking at the Dallas .NET User Group.

This talk introduces the concepts of factories, strategy pattern, Inversion of Control, dependency injection and several of the available frameworks.  We’ll also look at common dependency injection patterns and various IoC/DI frameworks, the pros & cons, practical steps and guidance as well some of the real world scenarios with impact to unit testing and application architecture.

The single greatest thing that you can do to make your code more testable and healthy is to start taking a Dependency Injection approach to writing software

image17

Real World .NET, C# and Silverlight
Wrox Press 2012

I gave this talk last month at the Ft. Worth .NET User Group, and this was one of my favorite comments from there:

image20

If you’d like a preview, here are the slides on Slideshare, and the demo code on Github.

Be sure to RSVP – Hope to see you there!

image

Tomorrow night I’ll be speaking at the Ft. Worth .NET Users Group.  I’m really looking forward to this talk, this is an updated talk to something I first did over 8 years ago! I guess good software practices really do endure.  This is one of the talks that I was going to give at the Dallas Tech Fest (if one of my daughter’s birthday wasn’t on the same day).

The Ft. Worth Group is a great community – and BONUS: Looks like they’re meeting at an awesome resteraunt tomorrow near the 7th street district – the fun starts at 6 – if you are in the DFW area you should make the drive out! Be sure to RSVP so they know you’ll be there.

 

I’ll be updating my slides here soon.. but nothing is going to compare to the live experience. 😉

Update (3/16/16): Here are my slides, code should be on GitHub later this week!

Update: (3/20/2016): Code posted to GitHub – Enjoy!

Update: If you missed this talk, I’ll be giving an updated version at the next Dallas .NET User Group – Hope you can make it!

Last Friday I had the privilege of attending and speaking at the 10th annual Tulsa Tech Fest. #ttf2015

Here are my slides to the closing keynote: Get Your Hero Groove On. This is where I try to inspire people to take advantage of the super powers that we have as developers to shape our world, influence our culture and chose the practices and processes to make that happen!

image

Embedded image permalink

This was a fun talk – I hope I get the chance to do this again and really dig in to some of these concepts.

I’m glad people seemed to have a good time!

image image

This was Tulsa’s 10th TechFest… I presented at the 1st one 10 years ago, at the following one and at least 3 other Tech Fests.. including doing the lunch time keynote 3 years ago.

 

Morning Keynote: 10 Reasons Your Software Sucks

I was originally only going to do the closing keynote, but 2 weeks ago, the morning keynote presenter had to drop out. I was bummed about that (since he’s a friend of mine, and I was looking forward to catch up). When David asked if I could cover the morning session, I was glad to had this talk ready to go!

image

image image image image image

 

Twitter

image image

Things have changed a lot in 10 years.. twitter was a lot of fun to follow through out the day!

image image

image

 

Although the hashtag was being used by another event in Europe at the same time.. so this came up right after the closing keynote.. I have to admit, this is about how I felt.

Embedded image permalink

Extra huge thanks goes out to David for organizing this great event 10 years in a row.. and to the whole Tulsa community for making it happen!

image

Last week I got to announce an upcoming talk that I will be giving in Denver, 10 Reasons your software sucks Denver Road Trip Edition! Well my Denver road trip has now turned in to a Colorado road trip as I will be speaking the very next night at the Boulder .NET User Group. This will be a fun night. We’ll be digging in to a very different skill set than most developer talks – looking at tools to help Prototype, Collaborate and Innovate using sketches, prototyping tools and Innovation games.

image

Slides

Some of the resources we’ll be digging in to are:

Todd Zaki Warfel’s Prototyping book – go get it! Between his book, the Innovation Games, and Designing the Conversation (Awesome workshop guide by my friend Russ Unger)  you’ll get the meat that I’ll have to leave out of my *relatively* short talk.

image image image

 

If you’re in the area – come check it out both talks!

In my ongoing efforts to get my blog up to date

image

Earlier this year (April 15th, 2014 – Tax Day!) I was invited to speak at the Ft. Worth .NET Users Group – it’s a great group and a fun community, if you’re in or around the Ft. Worth area you should really check out their upcoming meetings!  Here is a link to the slides that go along with this talk

Enjoy!

image

Two years ago I gave the key note at the Tulsa Tech Fest – it was a lot of fun and I’m excited to be presenting there again this year!

This year I’ll be giving 3 talks.

image

Scaling Scrum with UX and other Key Players

Scrum is the most popular Agile framework in the world for effective team collaboration on complex projects. Scrum provides a small set of rules that create just enough structure for teams to be able to focus their innovation. Scrum is optimized for teams for teams of 5 to 9 people. Making Scrum work with larger teams or in large enterprise environments brings its own set of challenges. This talk presents 3 patterns used on enterprise teams to scale Scrum effectively with global teams.

Update: The Slides are now on slide share.

image

Modern Web Development: Testable WebForms with Model View Presenter Pattern (MVP)

The world is moving towards ASP.NET MVC.. but what about your legacy WebForms development. What are the things you can do today to make your WebForms more testable, reliable and even increase the SEO and usability of your WebForms. This talk will walk through applying the Model View Presenter pattern to your ASP.NET WebForm applications and introduce you to some additional enhancements that Microsoft has made to WebForms recently to make your site and life that much better!

Update: The slides are now on slideshare.

image

Prototype, Collaborate, Innovate

A UX Story from the worlds most used white labeled travel site. How we use Sketches, Prototyping and Innovation Games to collaborate with our customers and experience innovation breakthroughs.

Update: The slides are on slideshare!

 

Hope to see you there!



Search

Subscribe

Enter your email address: