I blogged about my experience interviewing with Microsoft roughly 8 months ago. Even though it was a tough decision, I decided to give up the freedoms of Corp to Corp life and join Microsoft. I joined Microsoft about 6 months ago and I want to take some time to write about some of my experiences.
My Org!
The organization I work for within Microsoft is called Commercial Software Engineering (CSE). Microsoft is a company of companies and each organization tends to have a different culture, so my thoughts and observations are mainly based upon CSE, in particular CSE Dev Crews.
Misconceptions!
When I first joined Microsoft, I had several preconceived notions about the Microsoft Culture and the people who work here.
Arrogance! - When I joined Microsoft, one of my biggest preconceived notions was that there were a lot of arrogant Type-A personalities. As stated in my previous blog My Interview with Microsoft, I had interviewed with Microsoft in the past and I felt the interviewers were a little arrogant.
Also stated in my blog about interviewing with Microsoft, this belief started to be dispelled very early in the process. In my first six months at Microsoft, I have not encountered a ton of arrogance. Are there people here who have strong opinions and personalities? Yes, but I haven’t really come across anyone who I felt just thought they were better than everyone.
To be fair, every company on earth has people that are arrogant and Microsoft is definitely not the exception (and I have been assured by co-workers they exist ), I just haven’t come across a lot of it, like I thought I would before joining.
Flaming! - Another preconceived notion that I had about Microsoft when I first joined is that they had a culture of flaming. At first, I was very hesitant to reach out to co-workers outside of my team (Dev Crews Dallas) if I had a question because I was worried that I would be flamed, derided and told that my question was stupid.
I think about a month in, after being encouraged to do so by one of my team mates (Rick R.), I finally had the courage to ask a question on Microsoft Teams and something very interesting happened. Not only did I not get flamed, but my biggest problem quickly became having too many responses . Once you ask a question, you will get a bunch of responses and people will tend to say “I know how to do this, feel free to get on my calendar and I can walk you through it”.
Burning the Candle at Both Ends! - Another major preconceived notion that I had about Microsoft is that working 60+ hours a week and having the “whip” cracked on you to meet tight deadlines was the norm. I remember being in our Las Colinas Office until around 7 PM one day as I waited for traffic to settle down and being surprised that it was a ghost town around 6 PM.
Although I do know that there are organizations that probably work under constant tight deadlines, my experience has been the opposite. Because of my consulting background and personality, I have a habit of “upskilling” on technology on weekends and after work hours. I have been told on several occasions that this isn’t necessary and even warned on a few occasions while on the road, not to go to the hotel and work .
In CSE, they don’t want you to work a lot of long hours because they don’t want you to get burned out. Also, technology is constantly changes and they realize you don’t know everything, so when we start to engage with our clients, time for “upskilling” on a new technology is expected and accounted for when estimates are given.
Adjustments!
I’ve been doing IT Consulting for the last 8 years (most of it 100% remote) and I was an independent contractor for about 2 of those 8 years, so naturally, I have had to make adjustments and at times, it has not been easy.
Coming into an Office! - On our team, we come in 3 times a week, Tuesday through Thursday. I actually live quite far from our office in Uptown Dallas, so it has been hard to adjust to having to come into an office when I had been 100% remote the last 5 or 6 years.
Even though I still prefer having a office but going in is optional and the commute is still really tough, I have started to get use to coming in and on some weeks, I come in on days when we are not expected to be in the office.
Structure! - As an independent consultant, you are your own boss and you tend to be able to just focus on the project you are working on. As a full time employee of Microsoft, I not only have to focus on doing a good job but I have to also focus on Career Development, All-Hand’s Meetings, Networking and 1 on 1s with Mentors and Managers.
Even when you are at a consulting company, you tended to only focus on your client and you only dealt with your consulting company if you were trying to move up the ladder or there were mandatory company-wide meetings (which are very few).
Manager! - Prior to joining Microsoft, for roughly 8 years, I was working as either a independent consultant or as a consultant for a firm. Similar to my thoughts about Structure, as a consultant, I had very little interaction with my direct manager and obviously, as an independent consultant, I didn’t have a manager. In most cases, the only time you had interaction with your manager is if you were asking for a raise, promotion or there were some major issues with your client.
At Microsoft, this is completely 100% not the case. You and your manager will have 1 on 1s every other week, your manager may be leading your project, pairing with you, sitting next to you (at work or on a plane), having impromptu meetings to provide continued feedback, going over their house for Christmas and of course, preparing your reviews (in Microsoft, manager reviews are called Connects, they are extremely important as they literally stay with you until you die , even if you leave Microsoft and come back).
I don’t think this is necessarily a bad thing because Microsoft has 100k plus employees and you have to have some kind of structured system to help employees progress in their career and to make sure an employee doesn’t easily fall through the cracks as this system provides a constant feedback loop.
To be completely transparent, for someone who comes from an environment where you don’t see your manager that much, who is a self-starter, has led projects, knows how to build their brand and shape their career, this has been a major adjustment.
Pace! - In consulting, the name of the game generally is to stay at a client for an extended period of time. So if a consultant doesn’t quite have a handle on most of the tech stack for a consulting engagement, they will have plenty of time to get up to speed and of course, this should lead to expertise and the ability to write production quality code over time.
In CSE Dev Crews, we will typically do projects that last about 2-3 months and in my experience, you are expected to create production quality software because they are backed by very strong engineering processes, well documented and a major part of our job is to demonstrate these concepts and practices to our Client Partners. To be fair, my manager has always told me that “upskilling” on an unfamiliar technology is something that is baked into the project estimates and you are not expected to upskill outside of work.
This really wasn’t that big of an issue on my first project at Microsoft as I probably knew roughly 80% of the tech stack for the portion of the project I worked on. However, on my second project at Microsoft (my current project), I would say I was only familiar with roughly 20% of the tech stack. To be fair, even though I feel like I have contributed to my 2nd project, I am considered a “learner” but me being me, I have high expectations for myself and this tends to lead to putting a lot of pressure on myself to learn the tech stack as fast as possible to be in a strong position to support the team and not be the weak link.
So for someone like myself, this tends to lead to tinkering with the project tech stack after hours at home or in hotels (also partially due to the fact that I really like learning new things), which is fine in the consulting world because it is part of the “ramp up” phase and of course, you will be at the client for an extended period of time, so as time progresses, working after hours is not necessary.
However, if you have this mentality and you are in CSE Dev Crews, where you are ramping up on 4-5 projects a year this could likely lead to some problems (burnout, stress, nervousness, unrealistic expectations etc etc) and at Microsoft, they really love to get out front of things before they become major issues.
I remember we were heading into a 4 day weekend and my manager told me, “I don’t want to see any PRs (Pull Requests) from you any earlier than Tuesday” ie no working on the weekend. And recently while onsite in Boston, he jokingly told me, “I am going to go re-edit your Connect and put, Working too many hours!”.
I never really argue with my manager over these types of things because he has been at Microsoft for about 14 years and knows ALL the Microsoft initiatives, so when I asked him why is this a bad thing, he will say, “You know how Microsoft is trying to do [INSERT MICROSOFT INITIATIVE HERE]?, your actions are not quite aligned with that!”, in this case, work/life balance.
Not being in constant “ramp up” mode after hours is another area where I consider my adjustment to be a work in progress and at times, has been a major struggle.
Misc. Observations!
Diversity & Inclusion! - When you first join Microsoft, one of the first things you will learn is that Microsoft talks about diversity and inclusion a lot, maybe as much as Azure Consumption Rate and that is saying something . Currently, Microsoft (and other Tech companies) is trying to be more diverse and inclusive and they are constantly having internal conversations on what is the best way to go about being more diverse and inclusive.
Travel Days! - Typically at most companies, you will travel on Sunday and work 10 hour days to leave on Thursday (gotta get those 40 hours in!) or leave late Friday night. In CSE, Monday and Friday are considered travel days. On these days, the only expectation is that you are traveling as Microsoft does not expect that you will travel on weekends except in very rare circumstances. Personal time is very important.
Polls Polls Polls! - Similar to their love of Developers, Developers, Developers, one thing I have learned about Microsoft is they really love to do Polls. You will have a poll for on-boarding, you will have polls when you do Off-site Events, there is the annual company-wide MSPoll Poll and team-specific polls like Core Service Engineering (Internal IT for Microsoft). What this tells me is that Microsoft seems to really care about what their employees think, this is why they are always collecting data.
Mentors! - Microsoft is very big on employees having mentors. I myself, currently have 2 mentors with a combined years of service at Microsoft of roughly 27 years. I meet with one of my mentors (Nick D.) roughly every 2 weeks and my latest mentor (Darryl H.),roughly once a month. These individuals have been great (and very patient with me) because you can bounce a lot of things off of them, get career advice and they tend to keep you grounded.
When you are meeting with mentors 3 times a month, coupled with meeting with your manager several times a month, there is a lot of structure there but also, it puts Microsoft (ie people) in a position to track how someone is doing to make sure that person is being put in the best position to succeed.
Final Words!
My short career at Microsoft has been interesting, bumpy, exciting, strange and at times a struggle. When I reach my 1 year anniversary, I am sure I will have a lot more observations to share!