At Amazon and other tech companies, interview candidates get a lunch break in between their on-site interviews, and a lunch buddy gets assigned to accompany them. This way they can ask any questions they have about the team, the position they are applying to, or anything else that might help them relax. I love acting as lunch buddy because I feel energized interacting with candidates in such an informal setting. This past week, one candidate asked me a very interesting question during our lunch: what do you think makes a good engineering manager?Continue reading “Do you have a terrible software development manager or a great one?”
Looking for a new opportunity? Are you considering switching to a different tech company? Maybe a different team inside your current company? The following tips will help you decide whether a certain position or offer is right for you.Continue reading “How to land your dream job in tech”
I joined Microsoft right after college, and during these 9 years I’ve learnt a great deal about technology, the tech industry and about myself. I worked on several iterations of Windows and Bing, using a myriad of frameworks and languages. Nonetheless, the people who I worked with are the highlight of this almost-a-decade, and today I want to share the biggest takeaways I got from them.Continue reading “I’m leaving Microsoft after 9 years. This is what I learned.”
Last April I decided to take a big jump from building enterprise software to building consumer products. I am very grateful to have found a place that would allow me to learn the ropes of the consumer business without sacrificing any of the internal goals. This past year has been a great learning experience with big learnings and here are my key takeaways.
Enterprise vs Consumer? What’s the big deal?
Building enterprise software is a different beast than building it for consumers. They share several core components such as requiring a secure, reliable infrastructure and following best software practices including sprint models. However, I see three key differences.
Difference 1: Knowing what your customers want
In the enterprise world you go out and talk to your customers and it’s fairly clear what they need. Even building roadmaps is fairly easy. In the consumer world it’s not as easy. Because you are building software for millions of customers you can’t talk to all of them, so you have to find proxies to it. Unfortunately, many times these proxies are not perfect hence you require to test a lot (and I do mean a lot). On the good side, because consumer software is used right away you get instant feedback and know if you have a success or a fail.
‘The recruiter will call you back soon’ told me the fourth (and last) interviewer I spoke with after a long day interviewing at the Microsoft campus.
I was pretty psyched about getting an offer and moving to Redmond. I wasn’t desperate (I think) but I definitely was a Microsoft fanboy willing to change his entire world to work there. I had decided to tell the recruiter that although I preferred a position related to developing Word’s ultimate new feature, I was willing to take pretty much any job there.
‘Let’s go straight to the point – I accept your offer’, I practiced many times with a mirror. You can imagine my disappointment when the recruiter didn’t call me back, didn’t pick up my calls and didn’t reply to my emails.
Though I am not a black belt at interviewing in big tech companies, I have had my share of reality checks:
You had me at ‘hello’. I found that getting an interview with the Tech titans requires a lot more than building a nice resume and submitting it through their careers web page. I don’t think I am overstating when I say that this worked for me once in a hundred times. On the other hand, having someone internally refer me worked more often than not and reaching out to recruiters through LinkedIn also turned out to be a pretty good option. But by far the best way to get these companies’ attention is to be already in the club – once I joined Microsoft, other companies started poaching me.
What is a leader? What traits do I want to make sure I have as a leader? What has my experience taught me so far? I’ve been trying to answer these questions and have been thinking about what leadership means to me.
Even though the dictionary defines a leader as “the person who leads or commands a group”, I do not believe that this simple definition is the same thing as being a true leader. A person that merely uses their “power” to intimidate others into getting things done is not a leader. Likewise, a person who uses fear to motivate people into getting things done, or walks over people in a selfish attempt to achieve a goal, is also not a leader.
So, what qualifies someone as a great leader? Let’s start with a fact, and one that many leaders refuse to acknowledge; there are no perfect leaders. We are human and we have weaknesses. We are human and we have strengths. The key is to spot the differences between the two, understand the pros and cons of both, and be a leader that is balanced.
“I wish they would lay me off so I can take time off”, “I would love to live abroad but it’s just too much of a change”, “I thought of that idea first, I wish I had done it myself” and “That seems too hard” are some of the things I’ve heard friends and myself say so many times. Changing is hard, I know it, but why do we live “hoping” and “going with the flow” rather than doing? What are we afraid of? I don’t claim to know the answer but this blog post has some of my thoughts on how I try to approach taking risks.
The first thing is that each of us live in a comfort zone. It’s easier to deal with the known than with the unknown. It is easier to just go with the flow and let chance and others take decisions for us. This begs the question, why do we let this happen though?
We are afraid of failure. Failing is hard, and when you fail, you KNOW you fail. In Silicon Valley, failure is part of life and it’s encouraged. Only by failing we get better. People always talk about trying things and failing. However, there is still a big stigma in failing. In particular this is very strong in cultures like mine (I’m Mexican) where failure is synonym for loser.
Before I start, I apologize for not writing in the past almost two years. I’ve been on a pretty busy adventure and I promise to make up for it. This post will be one of the first of a series of posts not on technology itself but more on my thoughts about how to live in the world of technology.
The technology world only has one constant: change. In the past ten years though, change has accelerated at an incredible pace thanks to the Internet, crowd sourcing collaboration (aka open source) and an economic system that has allowed engineers to take risks. Even though this rapid change is amazing, it’s really hard to keep up with the rate of change but change we must.
Ever since I was a child I’ve been curious about things. I like to explore new things and learn about them. Either learning how to make computers do things, how to make a mercury thermometer or how wine is made. Reflecting about this topic I even found it interesting how I am more interested on the making-of movie add-ons than the movie. My curiosity is broad and has led me to continuously challenge myself to understand the world as a whole rather than its parts. We usually live in a bubble and learning things outside our bubble helps us be better every day.