We worked closely for a couple of years. The most vivid memory I have of Fiel is that even though we didn’t always see eye to eye, we always had good discussions and were able to overcome obstacles.
I learned a lot with him and at this day I still look up to him for advices and mentoring.
Hey Fiel, can you introduce yourself and talk a bit about what you do at Microsoft?
Sure. I’m based in Lisbon, currently working for Microsoft as a Cloud Solution Architect for partners in Western Europe. Which translates to helping partners envision the art of the possible and build awesome solutions on our Azure platform using whatever tools and processes they currently have. My day is usually lots of skype calls, workshops and coding sessions. While I was hired with a focus on infrastructure, I’m actually now doing more devops, containers, webdev and even leading a small, unofficial, team around disruptive scenarios with AI. Outside MS, I’m a dad of 2, rock n roller, really into personal development and everything about breaking rules and patterns.
What rules and patterns do you think are essential for your success? And how will you break them? :)
Ah, good and tricky question :) The thing is… I’m not a rules person, never was. One of my favorite things is breaking whatever rules are preventing people from achieving great things. Back in the day, I was doing college while recording albums for major labels and playing hundreds of gigs. This was an engineering course and I never considered myself and engineer, I hate processes and detail. Yet I was honored to be awarded best student in that year’s class. There was a lot of rule breaking during that period. :)
I’d rather have strong values. When our set of values are strong and clear, all decisions are simpler. We know what guides us. We know what we stand for. The same for a company. We see companies all over the place trying to enforce strict rules around processes, working hours and behaviours, among other things, yet employees feel disengaged and unmotivated. If we have a strong set of shared values, then rules become less necessary.
As for patterns, I’d rather call them habits. Since a couple of years ago I started practicing rituals around gratitude and time management. That was a game changer. Gratitude is immensely powerful. I became less fearful of failure. I don’t mind confronting anyone about any topic and always in a non-violent way. I don’t complain and I believe things are great and getting better. And I think big. I ask myself the question “how can this have more impact?” often.
Sometimes we do see companies pushing for values, but employees actually don’t follow them. What could companies do to actually change that in an effective way?
Yes, that’s true and, unfortunately, quite common. I believe it starts with hiring. How many people actually understand what a company stands for before joining? And, on the other end of the spectrum, how many companies dig deep into what a person stands for? Not that many. Hiring for the so called “cultural fit” should be more about finding people that share some, if not all, of your core values and live those values naturally, regardless of which company they work for. Ideally, you want to get people that do the extra mile and actually promote changes to the company culture in way that builds upon its core values.
Then, it’s very different in a small vs a large company. With a small number of people, it’s easy to take a couple of days and have the team discover the values the company stands for, together with the CEO and management. In a large one, usually it requires constant feedback from the filed to upper management on how the company’s values and culture are impacting, in good and bad ways, their daily work. And good companies will listen and promote changes as they see fit.
The one thing I believe most companies could do better is to promote honest feedback and actually listen to their employees.
I really liked the way you talked about values and habits. You already talked about hiring, but what would be your approach to disseminate those concepts in an already existing team?
It must be driven by behaviors from everyone. I’m going to use a concrete example from Microsoft because 1) I believe it’s very good 2) I see it in action every single day. One of our main values is innovation. And innovation cannot happen if people are afraid to take risks and fail. Some years ago Microsoft publicly launched the Tay bot and had to take it offline after a short while, as the bot was not behaving properly due to racist comments it learned in Twitter. Satya, our CEO, apparently (I hadn’t joined yet) sent this to the team: “Keep pushing, and know that I am with you”. His behavior fully aligned with our culture of innovation. It makes me feel safe to constantly try new things and learn.
The way you talked about approaching problems seems very powerful. Could you give an example where using those practices gave you a positive edge to solve a problem? And an example where it didn’t work, and how you addressed it?
Gratitude and non-violent communication are key. Countless times, and for very diverse topics, I have been in situations of conflict with someone where it would be easy to let emotions and ego run wild. Before I learned how to use these tools, if I really wanted something to happen or didn’t agree with a course of action, I’d probably be more aggressive and, most likely, wouldn’t reach an optimal solution. Nowadays, I always listen to people understanding that whatever course of action they want to take, even if I don’t agree, is what they believe to be right. And what each of us believes to be right or wrong cannot be judged by someone else who doesn’t have the same context and didn’t have the same experiences. I make sure I understand the context behind an opinion that I may disagree with before. I’m having a very hard time remembering a time where this didn’t work.
As far as time management goes, I’m a huge fan of 2 ways of thinking - Tony Robbins’ RPM methodology and Ricardo Semlers’ 7 day weekend. The first because I always believed outcomes are important, tasks are irrelevant. The latter because that’s how I mostly managed to play 400+ rock gigs while working full time. I think society is greatly impacted in a bad way by having most people working Mon-Fri and it’s refreshing to see how technology has helped us move away from that more and more. Just think of the number of hours saved in commute if more and more people could choose when and where to work.
I did have some bad experiences with RPM over the years as sometimes I was so focused on the larger goal, on the outcomes, that I actually stopped taking notes of small things I needed to do (eg: renew some saas service, pay kid’s school, etc…). Which means I may have screwed up some times with that :) Nowadays I keep a list of small must-do’s and I schedule outcomes. So far it’s working very well.
Great to hear that, it does seem to be powerful habits. Going back to your day to day work at Microsoft, you said that you do a lot of consulting around infrastructure and devops. What guidelines would you give a company without any processes around that?
It starts with the end in mind - to ship better, higher quality software, faster. In a time where companies are moving very fast, shipping dozens or hundreds of deployments a day, it’s dangerous for a company not to be in the same mindset. We’ve all seen well known examples of companies who vanished because they couldn’t move innovate and move fast enough. And to be able to innovate and move fast, companies need to embrace a culture of agility, devops and automation.
I stopped doing slide-based sessions of these topics. Nowadays I find it brings more value to have whiteboard (physical or virtual) conversations around how companies are building and shipping software, what are they good at and where are they struggling. It’s a better and more meaningful conversation to use their own challenges and show how Azure can help improving the pain points without massively changing everything they do. So I may talk a bit about how it all starts with culture, with the right mindset. Then the kind of improvements their process can have (and sometimes I learn a lot from them here), and finally how some available tooling is a great fit for their scenario. Every conversation is different, but definitely these topics are common.
Automation and telemetry are topics I like to spend a good deal of time on, as specially the latter is sometimes ignored. Everything should be automated, either by using something native like ARM templates or a 3rd party tool like Chef, Puppet, Ansible, Terraform, etc.. Every human interaction is a potential mistake. Also, it must be straightforward to redeploy every bit of the infrastructure and you can’t do that without automation.
I’m also glad to see more and more the conversations around serverless. Wether it’s around containers (we have a serverless container offer - Azure Container Instances), web applications, integrations and workflows and even AI, companies are realising how these kinds of services can help tremendously in innovating faster.
Could you elaborate on the telemetry topic? What’s the impact, why is it sometimes ignored, and what can we do about it?
There’s a common belief that work is done when an app is deployed. But if that was true, how would teams know how the application is performing? How their users are using the app? What kind of problems are dormant? I push a lot for telemetry as part of the CI/CD process to answer these questions. Given the excellent tooling around today, it’s usually less than a minute to set it up. As an example, Azure has Application Insights which can be automatically deployed with an app by checking one box. Just by doing that, we’ll give you insights not only on an app’s performance (including server and browser), dependencies and errors but also the behavior the users are having in the app, including checkout funnels, session analytics and much much more (and it’s free). On top of that, we can setup alerting and be notified of challenges before they become problems.
Having this kind of info continuously available is what makes it possible to really understand if an app is successful or not. Some examples of questions that can be answered with this: how did the last deploy impact the site (performance, errors and usage)? What is the cpu/mem/disk usage trend and are we expecting problems soon? If so, exactly where in the app? Do we need to (auto)scale? Are we oversizing (and overpaying) our infrastructure? Where are the users abandoning a checkout process? Why? Is the app having errors or performance issues in that process?
I think it’s ignored mostly because of what I said in the beginning - what it means to be done. Ask teams questions around their app and users behavior and a lot of the times the answers are wild guesses. Presenting insights at this stage usually is a good 1st step, and once teams start adopting good devops practices this becomes part of the journey and they realize the immense value of telemetry. From what I’ve seen, it’s the fastest way to adoption.
That’s very interesting. Is the AI part you’re doing related with infra/telemetry /devops or it’s another field? Can you talk a bit about what you’re doing related with AI?
While we do apply ML and AI on services like Application Insights, my journey into AI is not related to that. On the team I belong, we were encouraged to lead initiatives out of our comfort zone - so AI was the one that pushed me more out of my comfort zone and that’s he one I took - assembling a small virtual team and leading that team into discovering AI scenarios in unexplored territory.
Maybe it’s my rock n roll background, but I love everything that has to do with disruption and I believe AI will be responsible for the biggest society disruption in history. Projects like AI for good are an inspiration and showcase the immense potential we have in our hands right now to create a better world through the use of tech. Have you seen what incredible people with disabilities are doing? Projects like the Seeing AI and the excellent Hanselman demo on using tech for diabetes are just small examples of how the cloud, ML and AI can be leveraged.
Also, I’m not that excellent with math, so becoming a Data Scientist is probably not going to happen. And from what I’ve seen, not every company has the required knowledge to build custom AI apps. That’s where pre-built services like Cognitive Services come in by allowing you add AI capabilities to an existing app with a single REST call. I have a ton of fun with this and it’s accessible to anyone.
That will be very interesting to try out. :) Well, this interview was great. Thanks of your time. As a closing note: what subjects would you expect to see on a blog like mine? And would you be so kind to point someone else for me to interview? :)
Thank you for the invitation and your contribution for the community! As for topics, I believe you are covering most of what I’d like to see (sometime ago I was actually looking for this kind of info on 1:1’s, recognition and a good focus on the people side of tech and I couldn’t find much. So please keep that up! At some point, you could probably write a great step by step for new engineering managers - like a 6 month plan template. I don’t think there’s something like that out there.
As for a future interview, I’d recommend Marco Cecconi (sklivvz).
Author Pedro Pereira Santos
License CC BY-NC-ND 4.0