My consulting work is dedicated to making developer teams more productive. The focus is to increase the velocity of the team, while simultaneously increasing the quality of the software they produce.
This is done by focusing on three key areas. The amount of time spent in each of the areas is dependent on the needs of each customer.
There are four approaches under my consulting arm that address these goals. An engagement may include any or all of these, based on customer goals.
Successful companies recognize that talent is an asset. They hire the smartest people they can, and then invest in those people.
Investing in your team is a sure-fire investment. On top of having a team that can deliver the skills a business needs, that team is able to deliver the best products and services to the market.
Bill’s classes are designed to let your team learn from an expert in a way that’s convenient and sure to return results for your business.
All classes share a common format that is designed to engage all of your brain. Participants get a high level overview and learn background on the topic followed by Bill demonstrating with live examples.
After that, the class becomes a guided lab where participants can put the knowledge into practice.
Finally, participants are given a couple problems to try on their own, where they put their new knowledge into practice.
This course takes students on a guided tour of many of the recommendations in Effective C# and More Effective C#. I'll discuss the motivations behind the recommendations, and why they represent the habits used by successful C# developers worldwide.
This course covers many recommendations that the best developers follow in all their development.
This course presents the fundamentals of async programming. You'll learn what the async and await keywords do in C#. You'll learn how to use the Task class to create well behaved asynchronous APIs. You'll learn to use the utility classes that make asynchronous programming easier in C# 5, or later. Most importantly, you'll learn to spot many of the common mistakes developers make when using asynchronous programming techniques and what you should do instead.
LINQ and the associated language features changed C# programming drastically. This course will give you deep knowledge of how LINQ works, and how you can use it to solve many of your everyday coding challenges. I'll cover practical LINQ tips and tricks, common pitfalls, and how to get great performance from LINQ based algorithms. You'll learn to create your own LINQ based methods that are consistent with the LINQ execution paradigm.
Developers that have been exposed to LINQ, but are not sure they are using to its fullest potential. This is an intermediate course, and at least 6 months programming with C# is expected of developers attending this class.
This course provides a survey of the new features in Visual Studio 2013. You'll get an overview of the language features added in C# 6. The majority of the content will explain the new language features, and how you can be more productive. You'll learn to use the new productivity improvement features in Visual Studio 2015. Finally, you'll learn to use the new team centric features in Visual Studio 2015.
Developers with some experience using a previous version of Visual Studio who are adopting or soon to adopt Visual Studio 2015 and C# 6.0. This course will be particularly useful to developers that want to convince their organizations that they should be adopting C# 6.0.
This course explores the TypeScript features that lead to increased productivity in client side web development. We'll explore TypeScript features and how those features make it easier to create correct programs more quickly.
Developers and teams that are exploring options for large scale web development.
Teams that are looking at using TypeScript to make their client side development teams more productive.
This course provides an introduction to modern web programming using ASP.NET. It covers the major components of ASP.NET, without assuming prior knowledge of .NET web programming. You'll learn to work with all the major ASP.NET components. You'll have the knowledge and practice needed to build modern, professional websites using ASP.NET. You'll learn the different strengths of different components that are part of ASP.NET and you'll have all knowledge to pick the best tool from the ASP.NET offerings.
This course is currently being re-designed for ASP.NET vNext. Expect major updates to the agenda and the topics by Spring 2016.
This course is designed for developers that are new to web programming, or new to ASP.NET and C#. Minimal prior knowledge of ASP.NET is assumed.
The agenda that follows was developed for Visual Studio 2013. A new version is under development and will be released for Spring 2016. The new version will cover major topics in ASP.NET vNext.
We will explore software strategy in this one day workshop and apply it to your business and technical objectives. The goal is to provide you with working strategies for future software development and analyze current issues that may be ipdeding your team's progress. You will need to be engaged heavily – this is an active working session! Bring a challenge that is impeding your team’s progress. We will dig deep into the issue to design the right solution for your business.
Workshop Objective Examples:
This course is designed for technical leaders. Typical attendees have titles of CTOs, architects, principal software engineers.
What's unique about this offering is that you set the agenda. Bring your most important challenges and we'll tackle them together.