Weeks two and three were largely uneventful. I spent most of my time emailing recruiters, mentors, managers, and skips (manager’s manager) to get my internship mixup sorted out. By the end of Week 2 it was finally (mostly) resolved with a new manager and a new project. Finally – I have a project!
My Project: Securing Customer Data
My project involves an encryption feature that secures traffic internal to Azure that crosses public fiber. Microsoft’s commitment to securing customer traffic in the wake of Snowden’s NSA revelations was solidified in public comment by Brad Smith, general counsel for Microsoft, in 2013, so I feel comfortable disclosing what is already publicly known, though I won’t be able to go too far into detail (however, since the feature is slated for an August launch soon enough it will become publicly available).
My role is an interesting one. On the one hand I get to exercise my business chops by defining the go to market strategy for the feature, a future roadmap for the next 6-12 mo., and thoughts on how the feature/a premium version of the feature should (or should not) be monetized. I also get to do a competitive landscape analysis with regards to other cloud providers and data security (e.g. in-transit encryption). On the technical side of things I am tasked with creating an engineering project plan to organize development on the feature and both internal and external support/user documentation explaining how the feature functions, what value it adds, and how best to use it.
Half of the feature is close to being declared done already, but a major component involving certificates remains to be architected. I’m excited to dig in and get some hands-on experience here.
What It’s Like to Get Up To Speed…
My feature area is itself complex. Security is all about implementation, and given the many layers of virtualization in a large cloud the implementation gets tricky very fast. On top of that my feature touches a lot of other, complex areas (e.g. VM provisioning) that we definitely do not want to break.
It’s been great talking with devs on different teams to get up to speed on how their portion of Azure functions. It’s amazing how well my MS in Computer Science, particularly the coursework on SDN and distributed systems, has prepared me for these discussions. Thinking about distributed state, hypervisor layers, software-defined virtual switches, etc. has all been simplified by virtue of my education. Equally amazing is that I finally have a clear, concise view of how the smallest element, a VM running on a single blade, maps to the largest element (the entire Azure cloud). Having a handle on the logical/physical hierarchy of systems feels great. It’s also beautiful
My biggest current area for technical growth is in understanding the security specific concerns. Learning about cipher suites, which physical NIC’s support crypto offloading (and what crypto in specific), certificate rollout and revocation, threat models, etc. is a lot to take on at once, but I’m glad for the challenge.
Closing Thoughts on My Role
I am constantly being told that Microsoft prides itself on impressive intern projects. Projects with a tangible impact and a structured learning opportunity for the intern. I’m not sure how well my project will end up fitting this mold, especially since it was something that had to be invented after the fact when I discovered that they had mistakenly assigned me to the incorrect position (dev instead of PM – after I had signed a PM offer!). Despite the fact that I discovered the mix up on my first day, it wasn’t until roughly 25% of the way through my internship (third week) that I got a new project and actually began getting spun up on it. To say that I am disappointed and feeling hamstrung before the race even begins would not be an underestimate.
At the same time disorder brings opportunity. I am lucky to have a role on a feature that will actually ship (and soon!). I am lucky to participate in a complex feature (virtualized encryption) that interacts with other complex features (the rest of the Azure cloud and networking backend) in a technological area that is new for me (security). I am lucky that I am joining the work process part way through, as I can learn from professionals who have architected portions of the project before me. I am lucky that the feature does not have a dedicated team, but instead requires devs from multiple distinct backend teams to cross-collaborate, since it increases my exposure to interlocking technical areas of concern (though it does increase how challenging it is to get spun up, since everyone is overloaded with little time to invest in an intern who will be gone in another two months).
I am receiving a crash course in navigating large technical structures (Azure) and business organizations (MSFT) adroitly and intelligently. This internship is also an exercise in initiative – how to find an area to contribute that yields tangible business impact but is otherwise under-resourced or too much of a pain for a full time employee to be dedicated to it? I will continue to increase my own education as much as possible by talking to as many people as possible, all while keeping my eyes peeled for an opportunity to strike.