Techie Coder Dad Fullstack .NET Software Developer & Family Man

“Going” to a Tech Conference (Online)

Recently, I attended my first professional conference in a long while. I attended it for professional development as part of my return-to-career journey. I found it while reading up about Microsoft technologies. It was the Microsoft Build Conference 2021, held online in late May and focused heavily on Azure, Microsoft’s cloud hosting service. This is a reflection about acquired lessons and what to look out for when you attend tech conferences online.

How was it? 

It’s interesting that the conference was held midweek, on a Tuesday, Wednesday and Thursday. I remember conferences usually occurring during the weekend. There were several pros and cons. On the positive side, it was cool to see lots of attendees from around the world. There were 310 sessions in total. Most of the sessions had well over 100 live attendees, I noticed some had over 500. Attending the live sessions was better than watching recordings because you could ask questions in chat and it was really motivating to watch the videos while they were live. No putting it off. Another positive of the conference was learning a lot about Azure services. I understood the concept, but haven’t used Azure before so I had a lot to learn. Another strong positive was that the conference was free! 

On the “needs improvement” side, the live sessions were barely better than watching recordings. Pretty much the only interaction was through asking questions in chat. Sometimes your question got answered in chat, sometimes the speaker would answer it in the video, and sometimes you just never got an answer. It just wasn’t worth stressing over watching the recordings live when you can get nearly the same experience by watching the recordings 2 days later. Though many people were in attendance at the same time, there was not really any networking. I didn’t actually interact with any other attendees.

Another drawback is that, in my experience, Microsoft conferences and events have a strong marketing goal. This time, they were promoting Azure, Microsoft’s cloud services. Almost everything was about how great Azure was and how moving our apps to the cloud will solve our problems. I agree that sessions should be positive, and are too short to get into depth on the topic — however it would be nice to get a more balanced approach and more practical tips.    

How good are the “new” technologies? 

After saying all that, the marketing worked because now I want to take a serious look at building my project with Azure technologies. Before, my plan was to build a monolithic app with a SQL Server database, building it on my laptop and deploying it to a cheap shared hosting company. Now, I am considering building a (1) stateless (2) minimal API with a (3) Azure CosmosDB database and some (4) Azure Bot Service and (5) Azure AI features, deploying it (6) in kubernetes containers with (7) Github Actions to the (8 )Azure Apps cloud hosting service. Ha-ha, that’s 8 big changes! Seriously though, I’m not actually going that far! But, I should be open minded to some of those services being a great fit for my app.

My project is a greenfield app (that means building a new app), written with custom code and put together with a custom-designed database.  

For my purposes, I learned that “Low Code” and the “Microsoft Power Platform” do not apply to my project. They are strong tools for a larger company that allow non-programmer employees (citizen developers) greater access to line-of-business data. In those situations, professional developers would create the APIs and components that are used by Power Platform. Same with Fusion.  

I’m also not building anything with Microsoft Teams. It can be a great platform for collaborating and holding meetings, but neither of those things are central to my app.  

I’m also not considering MAUI yet. It stands for .NET Multiplatform App UI. MAUI is the successor of Xamarin. You can use MAUI to make IOS, Android, Windows and Mac native apps. In the start, I am planning on my app being a website (made with React) not a “native app” that you install through an app store. I’ll want to do that down the line, and create an app store version of my product. Further, MAUI is brand new and I’ve learned to take a “wait and see” approach with new Microsoft technologies. I’ll let MAUI mature a while first before I start using it.  

Developer Velocity was another big topic of the conference.  Basically, it boils down to: happy developers write more code and better code — and provide the company with more revenue and more innovation. On a practical level, they talked about making it easier to set up the dev environment on your computer, writing code anywhere, hot reloads, and open source adoption. I agree! It takes hours-to-days to set up a new dev computer from scratch. It’s a pain to have an A-HA moment away from your desk and not be able to tinker with the code. Constantly stopping the app, editing code, hitting F5, and waiting for it to load takes a lot of time. Finally, adopting open source projects can save a lot of time in not reinventing the wheel.  

Other conferences for .NET developers

Of course, this isn’t the only Microsoft conference in 2021. Other conference options include:

  • .NET Conf (free) is in November and will showcase the official release of .NET 6. I’ll plan on attending that one. For review, the 2020 .NET Conf sessions are available online (that’s when .NET 5 was released).  
  • Ignite (free and the topics seem to be more developer focused than Build) happened in March and the sessions are available online. To watch recordings, check out the Ignite YouTube Channel.
  • Inspire (free) is a conference for Microsoft Partners, and will be in July.  
  • Dev Intersection (also SQL Server + Azure + AI conference) will be in Florida, in June, and costs $1,700 – $3,200 for in person registration or $700 for virtual access.  

What sessions did I “attend”?

For fun, out of 310 sessions, here are the 21 plus sessions that I chose to attend over two days. I spent a few hours planning my time to get a breadth of information. Here’s how I did it: 

  1. Tue, 9, Build Opening
  2. Tue, 9:30, Get started with app development on the Microsoft Stack
  3. Tue, 10, Supercharging Developer Velocity with Dr. Nicole Forsgren, Erika Ehrli
  4. Tue, 10:30, Core tools for a dev career: an introduction to Visual Studio Code and GitHub
  5. Tue, 11:15, Increase Developer Velocity with Microsoft’s end-to-end developer platform (R2)
  6. Tue, 12, Harness the power of data in your applications with Azure (R3)
  7. Tue, 12:45, Build cloud-native applications that run anywhere (R4)
  8. Tue, 1:15, Build differentiated SaaS apps with the Microsoft Cloud
  9. Tue, 1:30, Ask the Experts: Building Scalable Startups with Microsoft Azure and Microsoft Teams

 ** I watched 1- minutes of this and switched to another session

  1. Tue, 1:30, How the community and certifications can help you achieve more
  2. Tue, 2:30, Build intelligent applications infused with world-class AI
  3. Tue, 3:30, Ask the Experts: Build cloud native apps of any scale with Azure Cosmos DB
  4. Tue, 3:30, Build serverless, full stack applications with Azure Static Web Apps and Azure SQL Database  ** I watched the second half of this session, it was longer than the CosmosDB one
  5. Wed, 8:30, Microsoft: Into Focus with Scott Guthrie, Scott Hanselman, Rajesh Jha and Kevin Scott
  6. Wed, 10:30, Ask the Experts: Build consistent hybrid and multicloud applications with Azure Arc
  7. Wed, 11, Insights on Streaming Real-Time Kafka Data with Confluent and Azure Cosmos DB
  8. Wed, 12, Build Zero Trust ready applications starting with the Microsoft identity platform
  9. Wed, 12, The future of modern application development with .NET  ** I watched a recording of this session later in the afternoon 
  10. Wed, 1, Ask the Experts: The future of modern application development with .NET
  11. Wed, 1:50, Hear how you can use feature flags at scale to ship faster, reduce risk, and reclaim your nights and weekends
  12. Wed, 2, Modernize applications using containers
  13. I also watched a few of the recorded, “on-demand” sessions
  14. There are more interesting sessions I couldn’t attend due to timing, and I might watch the recordings later

Meaningful conference notes

Here are notes I took during the conference. They include:

  • Performance
    • I am surprised to see a claim that ASP.NET Core has better performance than Go, Node.js, and Java… and almost as good as Rust
  • Security
    • Use Azure Key Vault to keep secrets out of your codebase 
    • For using Microsoft Identity, AADB2C allows full branding, AAD allows some branding
    • DevOps should perhaps be called DevSecOps 
    • Some security notes: Github Dependabot, Code QL, Advanced Security, and Actions.  Azure Security Center, Monitor, Policy, and Key Vault.
  • Data
    • When to use CosbosDB vs SQL Database 
    • CosmosDB stored procedures are written in JS with the Node SDK
    • ORMs, like Entity Framework, are not typically needed with Document/NoSQL options, like CosmosDB.  There’s just less impedance between the object models and what’s stored in the database.  You can likely just use the CosmosDB SDK directly and skip the ORM.  
    • CosmosDB has been used by some really big projects 
    • Develop CosmosDB cloud apps locally using an emulator 
    • Azure SQL Ledger allows for auditing data and making sure it hasn’t been tampered with 
  • Career
    • For Azure, learn Linux, kubernetes, arcbox
    • Azure certification paths 
    • Check out Founders Hub (and the Hunt Club article about Microsoft for Startups)
    • In the “Get started with app development” session, one speaker recommended learning html, css, javascript, react, and powershell.  Another memorable comment was, “You have to write code to build your skills, and one way to do it is volunteering.”  PMI takes volunteers.  Another place to volunteer is at hackathons.  
    • Tip: look for APIs or SDKs to solve your problem before writing custom code
    • Check out C# learning paths 
  • Future Versions
    • .NET 6 minimal API is really cool because it removes a lot of boilerplate code 
    • Cloud-native means that an app is built from the start, to be deployed to cloud hosting, instead of apps that are hosted on your own servers or with a hosting company. 
  • AI/ML
    • Check out Lobe to train machine learning models 
    • The OpenAI Fund has $100,000,000 to invest in AI projects, especially those that address healthcare, climate change, education, and empower people or address equity.  
  • Testing
    • Playwright is a new JS tool that launches headless browsers for automating acceptance testing. 
  • Developer Velocity
  • VS Code
    • LiveShare is a VSCode extension for collaborating in real time 
    • CodeTour is a VS Code extension for making an interactive walkthrough of your codebase
    • Check out VS Code Dev Containers 
  • Github
    • Create a repository with the same name as your username, it will become your profile page
    • Learn markdown 
    • Learn github 
    • Open source projects should have a contributing guide.  One good idea for new developers is to volunteer on open source projects.  After reading the guide, look through the project files, readme.md, issues and pull requests.  Often there are “easy but tedious” issues with documentation that make good starting contributions. 
    • Github Codespaces allow you to write code in the browser

Final thoughts

Conferences are about exposure to ideas and building relationships. Attending the Build 2021 Conference was a positive experience for me.

As far as technical learning, it was typical for a conference. Expect to get overviews and introductions to topics that you will need to spend time learning later. You don’t just attend a conference over a weekend and magically become a professional programmer.

As for networking (building relationships with other professionals), this conference wasn’t worth it. The few opportunities to communicate with other attendees were extremely short and transient.

Leave a comment

Your email address will not be published. Required fields are marked *