Thoughts on a year at Microsoft

It’s been a year (to the day) since I joined Microsoft. Having spent most of the time looking forward rather than reminiscing about my choices, this kind of crept up on me. And after the weeks leading up to Pixels Camp and all the craziness involved in trying to make a meaningful contribution, it also caught me in somewhat of a lull – I’ve been spending the past few days reading and catching up on stuff, so trying to put together a cogent summation of the past year wasn’t really on my mind.

Still, I think it’s well worth trying. And even if I can’t go into the specifics, there’s a lot to be said in general.

What I Do

My role’s still mostly the same: as a Cloud Solution Architect and focusing on Azure, I spend a lot of time with customers explaining how to design for (and move their solutions to) a cloud environment.

There’s the usual amount of Windows involved, but I’m making good use of my UNIX background (yes, you can discuss the finer points of debconf at Microsoft), and all the mental baggage I’ve accumulated over the years in systems and networking is a distinctive advantage – you can’t plan in the large without having experience of it, and even if the paradigms have shifted the scale has only increased, so there’s a good fit for my way of tackling problems.

There are good things and bad things about this, and the most important ones are about people. I have a few great customers – great in the sense that they get the cloud, their staff is both knowledgeable and proactive, and I relish the time spent there because there are often good opportunities to get my hands dirty whipping up prototypes and ironing out infrastructure kinks.

The good bit is that there’s no correlation between industry, company size and technological maturity – I’ve come across some great, innovative projects in every vertical and segment (including, for instance, finance and public sector), and they almost make up for all the rest.

Now, if you’re in the startup scene, you likely have a dim view of traditional IT – and the bad bit is that I’d probably call it justified for the most part based on my experiences so far.

That is, if it weren’t for the few people I know that get things and are trying to transform it from the inside. They’re going to succeed, too, but it’s going to be a hard slog (things like containers are decades away from reaching some of the places I visit) and, in the grand scheme of things (and the way businesses are run in Portugal) those knowledgeable folk are, sadly, pretty much invisible.

Fortunately, these days (after a little internal shift) I tend to deal mostly with partners, which alleviates a lot of the grind of dealing with the hard cases. The partners I meet with are mostly knowledgeable, motivated and, above all, independent, so it’s far more gratifying to work with them than the average IT lead.

What I’ve Learned

I’ve had no significant trouble with the technology stack, other than lacking an emotional connection to the lore of .NET and the SQL Server sagas. I haven’t written more than a few hundred lines of C# throughout the year (because what little I develop for work can be done in anything), I’ve waded through the swamps of PowerShell (Jeffrey Snover is an awesome guy and it works, but I have no love for it), and I’ve become quite the wizard at dealing with the Azure Resource Manager APIs.

I’ve had a lot of practical exposure to Microsoft‘s burgeoning analytics and machine learning stack (which is really great stuff, especially the cognitive service APIs), but despite a few highlights (Azure Data Warehouse is pretty amazing from the inside, and my background gives me a great head start into the IoT space), it’s just tech – it’s finding a use for it and building stuff that brings me joy, but the role I have isn’t project-oriented, and it smarts.

But the stuff I’ve been learning isn’t really about the tech. It’s about the business, and the market, and the scale of the company – on the whole, it feels a lot like Vodafone without the narrow-mindedness of tariff plans and, instead of the distraction of grandiose yet piddling WAP portals, a decent services and support business; the wide expanse of what Microsoft does touches just about every part of what a modern business is about, and that allows me a great deal of insight not just into how IT can work as a business, but also how it’s transforming itself.

Digital transformation is a great buzzword (and might be seen by many as just another way to fill bingo cards), but it’s real. And the money riding on it is all too real for those companies who’ve finally understood they have to reinvent themselves, or vanish.

Figuring out how to help out with that is well worth learning, and what little time I spend doing it is well spent. Having to re-learn how to deal with around twenty people playing calendar battleships with my Outlook inbox and never knowing where I’ll be the day after (or what I’ll be doing) seems like a minor trade-off.

What Has Changed

The biggest change for me has been being able to work from home, from my (hitherto somewhat underused) desk, and largely on my own clock. That does not happen every day (I need to go out and meet with customers at least three days a week), but it’s refreshing to not waste time, patience and money on commuting just for the sake of sitting down someplace where other people can see you’re “working”.

I work from home one or two days a week using my elderly Mac mini, Office 365 and the Lenovo X1 Carbon I was assigned, which still feels about as easy to carry about as a canteen tray but which works wonderfully on a shelf – I open a Remote Desktop session to it, another to my work machine on Azure, and make good use of my dual monitor setup that way; there’s nothing quite like walking in with a fresh mug of tea, reconnecting to my sessions and carrying on where I left off in the evening within a few minutes while the sun streams in from the balcony.

Work is a lot more fluid – I can just as likely be out first thing and back in the afternoon as spending the morning in the office doing conference calls and popping out for a meeting in the late afternoon. As a direct result of this, I’m less prone to being interrupted and far more productive than I’d be in a conventional office setting.

I go out with a purpose, and were it not for the constant barrage of meetings I would likely be able to plan my trips for maximum efficiency – that I hope to get the hang of eventually, to the point where I can find myself enjoying having lunch in a random part of the city in between meetings like some of my colleagues.

But that seems to be a state of zen only thoroughbred salespeople can attain, and I am only a lowly architect; such skills must surely require the ability to empty the mind of all technical concerns, and I am not worthy.

What Hasn’t Changed

My main personal computer is still an iPad (I’m typing this on it). I still use an iPhone and Apple hardware at home (although my faith has been wavering of late, I have zero interest in changing that). I haven’t felt any need to switch to Windows, although there is a lot more of it around these days since with the arrival of my work laptop the number of machines running Windows in the house increased by 100% (raising the overall share to… 8%).

I still use vim and code mostly in Python (with a little Go) and churn out custom builds of Android (building Nougat for the Raspberry Pi is a buggy, painful mess that I hope to master some day), as well as tinkering with hardware and porting things to ARM CPUs. There’s a little less Clojure and a little more Erlang in what I perceive as the ideal way to develop at scale, but that’s hardly significant because (sadly) I don’t develop full-time, and my hobbies mostly have no bearing on what I do at work (except for all the Docker stuff I keep tinkering with).

I still read The Economist on weekends and keep tabs on the local startup scene (and there are more startups using Azure than I originally expected – even a couple I helped onboard).

The Good Stuff

There’s a lot of business in the cloud these days. And I mean that in many ways, some of which are intellectually stimulating and others merely rewarding in a financial sense.

The people I work with directly are, by and large, professionally awesome. There’s a lot to learn from them in general (not necessarily in the technical spectrum), and I sorely missed the cultural diversity that you get in a large company like this.

I can get in touch with anybody in the Azure space and get information on anything at the drop of an e-mail, and get answers (and sometimes provide them, as well as feedback) within an hour; Skype for Business is the internal IM and much faster, but timezones seldom contrive to help, and most things do not warrant interrupting folk.

Comparatively, these days what I miss most is leading a team; but there’s a lot less overhead when you can ask a peer (or a superior) to do something for you and it just gets done without any griping, posturing or any of the usual Portuguese theatricals and procrastination techniques; I blame the American ethos that pervades the company, and the constant emphasis on having a growth mindset – which still feels funny and almost Orwellian to my British-reared business persona, but appears to work.

I find it hilarious that I might, in fact, have a knack for the corporate life, and in truth my design and Marketing skills are a good fit for all the non-technical stuff I have to do; but there is little opportunity for doing technical or business management, and that leads me to…

The Annoying Stuff

There are too many meetings. Far, far too many meetings, and conference calls, and syncing and reporting and ‘keeping in the loop’ and whatnot. Even with all the state of the art productivity tooling at our disposal, communication is still the biggest overhead, and I’m fascinated by the thought that, for once, everyone I work with also knows how to use Office properly.

And yet, we spend hours using it for internal tasks – that was something I did not miss from my days at Vodafone, but which I re-learned quickly enough.

Catching up with your immediate team by phone or IM works amazingly well, but the old maxim of meeting efficiency being inversely proportional to the number of people involved is true, and I’d forgotten how it could do so exponentially when you add in people with disparate world views. Triple bookings in Outlook are, alas, not uncommon.

Coordinating with customers and partners is very challenging, partly it’s my role to explain everything to them until they’re able to fend for themselves (which can take some time), and partly because everyone has their own distinct set of priorities, but it’s almost the easiest part because unlike most technical people, I genuinely like meeting people, talking to them and helping them out.

So Far…

It’s a roller coaster, and a mixed bag. I love the corporate angle, the scale and the scope of what Microsoft is trying to achieve with Azure, but I miss the breadth and depth of leading a team, building solutions and delivering them.

The work is crazy challenging (even if also in terms of patience), but (when dealing with the right people) also crazy exciting. I can’t fault the work ethos (other than a local over-emphasis on sales). I love the people and understand the extra effort to coordinate in a matrix organization. I like the new tooling and cross-platform tech but am constantly having to deal with the ‘traditional’ stack.

I love the flexible schedule but find myself working late on stuff that I can’t follow up as a project, and end up spending little time with my kids or reading as much as I used to read. And I recently realized that over Summer break I watched more internal videos than TV shows.

There’s a knack to making this even out, I’m sure, but I’ve yet to find the right balance.