Interview with an Azure Development Ninja - Andreas Helland
Welcome to another Azure Development Community Interview! You can find all our interviews here.
This interview is with...
- 325 Forum Answers
- 1,301 Forum Replies
- Long-time contributor to Azure Advisors, directly impacting the Azure services
I've known Andreas for quite awhile, as we've worked together in Azure Advisors, getting feedback for our product teams.
Let's get to the interview!
Q: Who are you, and what do you do? What are your specialty technologies?
A: My name is Andreas Helland. I live in Norway, and I currently work as a solution architect focusing on the Microsoft stack. Off the clock I try to have a couple pet projects going on while sharing learnings made with the community. An important part of my (day) job is trying to maintain a bird's eye view of the services on offer in Azure, so I'm able to have an idea of what components could be used for different parts of a project, or how to get started using a given service. If there is a proof-of-concept with pre-release software in the pipeline, you can usually count on me being interested.
I have a varied background having done both things like Microsoft exams back in the Windows NT 4.0 days, and the Web Applications developer exams more recently. Along the way I have had roles allowing me to use both mindsets - installing server solutions for customers, implementing (coding) the OMA/DM protocol for managing Windows devices, building out virtual machines in Azure ++. Installing servers and writing code are both activities able to give me a blissful feeling when I get into "the zone".
My favorite/specialty would probably be Azure Active Directory though. Figuring out the pieces of the identity puzzle is intriguing, and a topic where there's always more to learn. It's also a great technology because it allows me to play both to the developer, and the "server guy" part of me. If I need a break from the code, there are other things to do with it as well. Not to mention that Azure AD is a very important piece in getting everything else on Azure, and Office 365 for that matter, running as they should.
The past year I have gotten into Azure Functions, and the concept of "serverless" computing, as well. The complexity involved in getting started is fairly low friction, and it can solve a lot of the small things you often need to do to glue other components together.
Q: What are your big projects right now?
A: For some time now I have been prodding into the SSO parts of Azure AD, and how it fits into different business segments as an Identity Provider (IdP). If you have a Windows 10 device, joined to Azure AD, using primarily Office 365 it's a great product, and a seamless experience. But what if you have non-Microsoft apps, running on non-Microsoft devices, accessing non-Microsoft back-ends, and want this to be as seamless as possible too using Azure AD? I know, it sounds fluffy, and I don't want to do a sales pitch that this is now a solved problem. (There are more moving parts here than you'd think.) Let's just say it's a complicated problem space which is what makes it an interesting project to work on.
Outside my day job I have shelved my plans of building an Azure Stack deployment to run my home lab after I ran it through the calculator :) I have however been digging into, (and thinking a lot about), Azure Functions, and how to build on it to solve things like prototyping APIs or make my infrastructure at home run smoothly. Perhaps not so much a "big" project as it is a long-running one.
Photo: Fun with Mobile Device Management - appearing on Norwegian TV where we tracked a "lost" telephone to see what the "finder" would do with it.
Q: How do you contribute to the community?
A: I blog. (Currently at https://contos.io. I left some "old stuff" behind at my previous blog.) I have been doing that for a long time now, and it's something that fits into how I like putting together writings where you can alternate between trying to create entertaining reading and useful how-to instructions. I try to put all the accompanying code into GitHub as well unless it's self-contained pieces not requiring Visual Studio. (Fun fact: I started the old blog not long before I was doing a presentation at a Sybase event in Las Vegas, since I wanted to "properly" share to the greater Windows Mobile audience. Little by little Microsoft technology became the star of the blog, and now it's mostly Azure being covered.)
For a while now I have had a wiki-like site dedicated to Azure AD (https://aadguide.azurewebsites.net). Though after the revamp of https://docs.microsoft.com the official documentation and code samples have been getting better week by week, so I'm unsure of what I will do with this endeavor in the future. The format lends itself better to looking up instructions than a blog, but that also means you have to maintain it in a different way.
I also run by the forums every now and then, though I must admit it's not as frequent as it used to be. Unless I happen to come up with an answer within thirty minutes there's usually someone who beats me to it anyways :)
Q: How long have you been answering questions on MSDN Forums? What have you learned from that experience?
A: I got started back in 2008 on the Microsoft forums. I primarily spent my time in the forum for System Center Mobile Device Manager, and preaching about mobility. (Back then the TechNet and MSDN parts of the forums were almost like separate camps, and the name "Visual Studio" should only be mentioned on MSDN, while "Windows Server" belonged on TechNet.) SCMDM wasn't the most successful product launched by Microsoft, so it sort of faded out over time. Some of the technology lives on in Intune though, so it wasn't a wasted experience.
After that I spent time hanging around in the Windows Mobile and Exchange ActiveSync forums as that was an interest of mine at the time. I created a troubleshooting utility for ActiveSync, but while it implemented the basics of the EAS protocol I never took it to the step of building a fully featured client. Learned a lot from it though, and the source is on GitHub.
You really get to sharpen your analytical skills from trying to come up with answers all day, so it was helpful for me as a way to get deeper into Microsoft products. Sure, you learn from reading a book preparing you for a certification exam on the product, but the real-world workings don't always come from those books.
The real beauty comes when you get a good dialogue going in a thread, and several people contribute to solve a complex problem. That way it's not just the person raising the question learning; you as one of the answerers also pick up new bits of knowledge. Not to mention that's how you run into clever people who know more than you do, or have the connections needed to sort out something else you're working on.
Also, as a non-native English speaker I have really been getting practice writing, and improving my fluency this way. I probably write more in English than in Norwegian these days, and while it still falls short of what would impress an English major, I perceive this as an added bonus that help augment other skills than the raw technical minutiae does.
Photo: San Francisco has more to offer than hosting Build. Taking a break amongst the trees in Muir Woods.
Q: Tell me about your involvement with Azure Advisors. How do you give feedback and impact Azure tools and services?
The Azure Advisors has been described as a co-engineering initiative, and it is a small community for having engaged discussions about where Microsoft is going with Azure services & features.
A thing that I think is good, but others might find less desirable, is that it is definitely not "sit back and let Microsoft run the show". If you want to get value out of the community you need to put in an effort and contribute. I wouldn't say I'm online 24x7 monitoring new posts, but I usually always have a browser tab open in the background to check when there's a free moment. There's weekly Skype sessions as well where a topic and/or feature is discussed in detail. As you build your "reputation", and find the areas you like to focus on, there's also 1:1 sessions where you can give very targeted feedback based on what you experience in the real world.
This enables the engineering teams to float their ideas to a group of people outside the Microsoft campus, and the group will chime in with their opinions. Anything goes with regards to the feedback; if you think the feature is useless, the UI for configuration is unintelligible, or something else is wrong, you are allowed/expected to say so. And if everyone says the current plans are on the wrong path the product teams will listen, and re-think their approach.
On the high level discussions it's difficult to trace back changes to any one individual. But I have personally submitted bugs in AAD and related tools, as well as errors in documentation/code samples, that have been fixed within 24 hours.
Q: Where can the Azure development community publish their articles?
A: It depends on what type of content you want to get out there I guess. The TechNet Wiki is good for wiki-style articles, (quelle surprise), and getting your feet wet. Maybe you want to try out editing an article or two first. Maybe you want to try writing an entry on something you know really well without needing to set up an ambitious schedule for producing new content. Maybe you already write your answers in the forums so well that it's a three-minute job copy-pasting it to the Wiki, and do a minor cleanup of formatting.
If you want to run with a more personal narrative, and have total freedom, setting up a blog of your own is probably the way to go. (This doesn't mean you need to spin up your own site instance and maintain every bit and byte - signing up on a blog platform is entirely valid for this purpose.) The obvious downside to this is that you are less likely to have people actually reading your articles unless you already have a Twitter following, or manage to sneak into the front page of the search engines. Getting noticed is downright hard.
Working with an existing crowd versus serving as your own editor-in-chief? No fixed answer there unfortunately.
Photo: Computers, monitors, action figures and Lego - it's a geek dream office! Shame we had to relocate…
Q: Do you have any tips for new community members?
A: Don't give up.
I know, it sounds like a cliché, but it's important nonetheless. You often start with great enthusiasm whether it's answering in the forums, or cranking out blog posts. You spend hours a day, and have all the energy needed to keep you going. And then comes the days when you write a detailed answer to a question on the forums, and the guy asking the question doesn't even acknowledge your answer. Or you have invested a lot of time and effort in writing a super entry on your blog, and pushing the accompanying sample to GitHub entirely free of bugs (as if). A week later you have three views, and the Internet seems to show no interest in what you are doing.
These things happen unfortunately, but you can't let them get to you. If you learned something new from what you did, that's the net gain, not the page views. Focus on doing what you want to do, not what you think might attract crowds, or you'll burn yourself out. You should feel perfectly happy taking on the effort of writing even if you are only writing for yourself. (I don't remember everything I do, or every line of code I have written, but if I know I have blogged about it I can refer back to my own articles in the future when I need it.)
We've probably all heard about the three stages of learning: having someone teach you, doing it yourself, and eventually teaching others. While receiving feedback when you're in the teaching phase is vital, you go through a lot of the motions even if the crowd isn't there. Ever felt after preparing for a big presentation that you know the subject better already before actually presenting, and fielding questions from the audience? Ever over-prepared and double checked your code for fear of failing? Contributing to a community will do that to you, and it's not a bad thing!
You will most likely have a feeling of grinding to a halt every now and then. If so there is no shame in taking a break. I have taken long breaks when I felt I had nothing to contribute, and it felt like too much of an effort. Relax, do some other things, and get back in the game afterwards.
Wow. Big thanks to Andreas for such well thought-out answers!
And thank you for such a huge variety of community contributions!
Please join me in thanking Andreas in the comments!
Remember to keep your head in the cloud!
- Ninja Ed