This is the full interview from my discussion with Shahed Chowdhuri in my weekly (free!) newsletter, The .NET Stacks. Consider subscribing today to get this content right away!
As a huge fan of the Marvel universe, Microsoft’s Shahed Chowdhuri must feel like Captain America after publishing the last post of his ASP.NET Core A-Z blog series this week. In these posts, he wrote 26 ASP.NET Core posts in 26 weeks, from A-Z (Authentication & Authorization to Zero-Downtime Web Apps). This was all using a single sample project!
I talked with Shahed about his path to Microsoft, the evolution of the blog series, his side projects and interests and, of course, which Marvel character sums him up best.
What got you into software development, and Microsoft? What are you doing for Microsoft these days?
Although I took two and a half years to complete a four-year degree in Civil and Environmental Engineering, I also taught myself how to build websites and software applications while in college. I worked on my personal website and also additional websites for the Civil Engineering department, the International Students Association, and my dorm.
I realized that I could build something, see results instantly, fix issues, and then see my changes right away. I got an internship as a web application developer during my second (and final) summer vacation, and then got a full-time job offer upon graduation.
I joined Microsoft as a Tech Evangelist 6+ years ago, as I was already using my spare time for public speaking on various topics. My role has changed in recent years, and I’m currently working with our enterprise customers to collaborate on software development projects and solve real-world business problems.
What made you take on the original ASP.NET Core A-Z blog series in 2019?
During my evangelism days, I would mostly use my site to publish my PowerPoint slides after a meetup or conference. But I wouldn’t get a lot of traffic on the site, because I didn’t have many recent articles. As my role changed within Microsoft, I really wanted to give something back to the community again, in the form of technical writing and code samples.
In the fall of 2018, I was helping a colleague with some .NET code for a customer project (file upload into Azure Blob Storage) during a company hackathon. Instead of emailing him the code sample with an explanation, I decided to write a blog post and publish the code in a GitHub repository. To lead into this blog post, I also worked on a “Hello World” article, that was appropriately titled “Hello, ASP.NET Core!” so that I could help new developers get started with ASP.NET Core.
As a result, this was the birth of a mini series to end 2018 with a bang. As you can see in the list of article titles below, the first letter of each post spells out Happy New Year.
- Hello, ASP .NET Core!
- Azure Blob Storage from ASP .NET Core File Upload
- Pages in ASP .NET Core: Razor, Blazor and MVC Views
- Protocols in ASP .NET Core: HTTPS and HTTP/2
- Your Web App Secrets in ASP .NET Core
- NetLearner – ASP .NET Core Internet Learning Helper
- EF Core Migrations in ASP .NET Core
- Watching for File Changes in ASP .NET Core
- Your First Razor UI Library with ASP .NET Core
- Exploring .NET Core 3.0 and the Future of C# with ASP .NET Core
- API Controllers in ASP .NET Core
- Real-time ASP .NET Core Web Apps with SignalR
Over a span of 12 weeks from October to December 2018, I published these seemingly randomly-selected topics on ASP.NET Core. Eventually, I revealed the hidden message “HAPPY NEW YEAR” just before the new year. Knowing that I couldn’t pull off the same trick twice, I decided go with a new series in 2019.
There are 52 weeks in a year, 26 weeks in half a year. This was the perfect opportunity to cover 26 different topics from A-Z in 2019, since there are also 26 letters in the alphabet.
As you kicked off a new version of the series with an approach to feature everything in a single project, did you come across anything unexpected or interesting?
Before 2019, I wasn’t sure if I could pick a topic for each letter if I stuck to ASP.NET Core. I was debating whether I should cover HoloLens, Bot Framework, Machine Learning and various other topics throughout the series. But I narrowed it down to topics that would be relevant to an ASP.NET Core developer, and also reviewed my list with Jon Galloway. (Jon is a a Sr. PM on the Visual Studio Mac team who was formerly on the .NET Team, and still continues to run the .NET Community Standup livestream broadcast.)
The 2019 series included code snippets that were all over the place. For the 2020 series, I decided to start with a real-world open-source web app (NetLearner) and build upon it week after week. I made sure that the web app included similar functionality across multiple web projects (MVC, Razor Pages, Blazor) with a shared library for core/infrastructure code. I realized that I needed to provided some context for the NetLearner repository, so I also published a “2020 Prelude” series in late 2019. This mini-series provided some information on how to share code across multiple web apps, how to get started with the latest stable version of ASP .NET Core (v3.1) and what NetLearner is all about.
- ASP.NET Core code sharing between Blazor, MVC and Razor Pages
- Hello ASP.NET Core v3.1!
- NetLearner on ASP.NET Core 3.1
Other than ASP.NET Core, what other Microsoft technologies excite you/do you like to tinker with?
There are so many! Before joining Microsoft, I had used Visual Studio and C# paired with XNA to build video games for Windows and XBox 360 in my spare time.
I also used my ASP.NET skills to publish a free Sales Data Analyzer tool to help other indie developers better understand their worldwide sales data.
Do you have any other specific projects you’ve been working on that you want to show off?
Yes! I’ve been working on some early concepts for a cinematic universe visualizer. The goal is to connect the dots between all the various movies, shows, cast and crew that are a part of each cinematic universe, starting with Marvel’s MCU.
What kind of Marvel character are you?
I am Groot.
(Ed. Note: I am hereby required to show off Baby Groot.)
What is your one piece of programming advice?
One piece of advice I would give anyone is to always keep learning. That doesn’t necessarily mean that you should learn every new programming language or framework that pops up on your radar. It could mean that you may want to dig deeper into a language you’ve already been working with. It could be some business skills that you want to pick up, to run your own software business or work as a consultant to help others run theirs.