May 2, 2020

A year at Microsoft

A lot has changed in the last couple of years for me. I did my first internship at Microsoft in 2016, which led to two more internships at Microsoft and one at Google. After that, roughly in mid 2018, I received my full time offer with Microsoft. This led to a race to graduate: I was missing a couple of final exams and my thesis, all of which had to be completed by March 2019, when I was to start my work at Microsoft.

I was pretty lost about graduating in 2018: I didn’t have neither an advisor nor topic to work on, or the slightest hint of where I might find them. Hence, I did what I what usually do when I don’t want to face something that will take a lot of emotional work: procrastinate.

I joined the recommender systems team at Mercado Libre a couple of months after I received my full time offer. It was a very short stint, but to be honest it was really nice: I met a lot of great people, learnt a lot, and the salary was great for the market. This all culminated with my presentation at PyData Córdoba 2018 in September, and that’s about the time I noticed I wasn’t much closer to graduate than I had been when I joined: the long hours were way too much for me to concentrate on finishing my thesis. Hence, I quit my job.

The time I’d been working wasn’t completely in vain though: I had finished almost all my remaining finals, and had made contact with Francisco. At this point, I panicked: it was October 2019, and I had to graduate by March 2019. Hence I sat down, finished my remaining finals, ramped up in the basics of 3D surface reconstruction, and wrote my thesis.

My thesis defense was on March 15th, 2019, in Buenos Aires. I was scheduled for orientation at Microsoft on March 18th, so I had a 2 days to make my bags, say goodbye to family and friends, and fly here to Canada. I think I’ve never been as stressed in my life. My first couple of weeks in Vancouver I was honestly lost; fortunately, though, the weather was pretty nice and I’d been blessed with corporate housing that had a view of the water.

My first day at Microsoft was mostly a disappointment. I went to the building, had my orientation, and was shown to my desk along with a piece of paper holding my credentials and email of my manager. This was great, except the person on the paper wasn’t really my manager; he also didn’t know who my manager was supposed to be. I wish I could say this was my first time in this situation.

Days later, I finally actually met my manager. When I did, I was honestly relieved: my job offer was a blanket offer, all I knew is that I would join the Cloud + AI division, but had no idea what I’d be working on. Luckily, I was made part of the BuildXL Combined Engine team. I have no idea who made the team allocation, but I really owe them a beer.

This kickstarted a time of mixed feelings for me. On the one hand, I was still feeling homesick: I’d spend pretty much all my afternoons walking through the waterfront, listening to Mayaewk’s Konbini and missing my family and friends. On the other hand, I had a really interesting job and was learning more than I’d ever learnt in my life.

A picture of the waterfront, from my first days in Vancouver
A picture of the waterfront, from my first days in Vancouver

It took a couple of months until I “outgrew” the full-time homesickness. Through this time, I was working in the Combined Engine team, working on integrating BuildXL with other build engines and migrating repositories to build with it, which was starting to feel dull. I think this was mostly because expectations for level 59 are approximately zero, hence you receive relatively uninteresting work. Roughly at the same time I received an offer to move to the Build Cache team. I took it quickly.

I joined the Cache team roughly two weeks after that, and it was great. Basically, whenever we need to compile something, all intermediate and final build artifacts need to be cached for subsequent builds to benefit from that work. When you are building at scale -several thousand machines, several petabytes of data to cache, thousands of builds a day-, this becomes an art form rather than a problem. All I have to say for now is that it’s basically what you’ll hear everyone say about scale: everything is failing all the time, small differences matter a lot, something will depend on every weird corner case in your code, among other classic slogans.

I’m still working in the cache, and this last year has been great: I’ve met great people, my colleagues are really smart, I’ve learnt and grown a lot, took lots of trainings, Microsoft paid for me to go to conferences, and I got promoted. I’m pretty sure jobs don’t really get better than that. Overall, I think my moving to Vancouver was clearly a good move, homesickness aside.


For comments and discussion, feel free to reach out via email or

© Julian Bayardo Spadafora 2015-2020

Back to Top