Restful API

Back to my core

I’ve spent a large part of the last two years playing the role of a technical marketeer.  Call it developer advocate, API Evangelist, or my favourite title, API Concierge, my role was to engage with developers and help them, in any way I could, to build better HTTP APIs.  I have really enjoyed the experience and had the opportunity to meet many great people.  However, the more you hear yourself talk about what people should do, the more you are reminded that you aren’t actually doing the stuff you are talking about any more.  The time has come for me to stop just talking about building production systems and start doing it again.

Restful API

Code is the answer

Starting this month, I am joining Microsoft as a full time software developer.   I am rejoining the Azure API Management team, this time to actually help build the product.  I am happy to be working on a product that is all about helping people build better HTTP based applications in a shorter amount of time.  I’m also really happy to being on a team that really cares about how HTTP should be used and are determined to make these capabilities available to the widest possible audience.

API Management is one of those dreadfully named product categories that actually save developers real time and money when building APIs.  Do you really want to implement rate limiting, API token issuing and geolocated  HTTP caching?

As a platform for middleware, API Management products can help you solve all kinds of challenges related to security, deployment, scaling and versioning of HTTP based systems.  It’s definitely my cup of tea.

I am hoping to still have chance to do a few conferences a year and I definitely want to keep on blogging.  Perhaps you’ll see some deeper technical content from me in the near future.  It’s time to recharge those technical batteries and demonstrate that I can still walk the walk.

Interviews

Having just gone through the process of interviewing, I have some thoughts on the whole process.  I think it is fair to say that Microsoft have a fairly traditional interview process.  You spend a day taking to people from the hiring team and related teams.  You get the usual personal questions and questions about past experiences. When applying for a developer role you get a bunch of technical questions that usually require whiteboard coding on topics that are covered in college level courses.  I haven’t been in university for a very long time.  I can count the number of times I have had to reverse a linked list professionally on one hand.

These types of interview questions are typically met with scorn by experienced developers.  I have heard numerous people suggest alternative interview techniques that I believe would be more effective at determining if someone is a competent developer.

However, these are the hoops that candidates are asked to jump through.  It isn’t a surprise.  It is easy to find this out.  It is fairly easy to practice doing whiteboard coding and there are plenty of resources out there that demonstrate how to achieve many of these comp sci challenges.

I’ve heard developers say that if they were asked to perform such an irrelevant challenge on an interview that they would walk out.  I don’t look at it that way.  I consider it an arbitrary challenge and if I can do the necessary prep work to pass, then it is a reflection on my ability to deal with other challenges I may face.  Maybe these interviews are an artificial test, but I would argue so was university. I certainly didn’t learn how to write code while doing an engineering degree.

Remote Work

I’m not going to be moving to Redmond.  I’m going to continue living in Montreal and working for a Redmond based team.  We have one other developer who is remote, but is on the same timezone as the team.  It would be easier to do the job if I were in Redmond, but I can’t move for family reasons.  I’m actually glad that I can’t move, because I honestly think that remote work is the future for the tech industry.  Once a team gets used to working with remote team members, there really isn’t a downside and there are lots of upsides.

The tech industry has a major shortage of talent and a ridiculous tendancy to congregate in certain geographic locations, which causes significant economic problems.  Tech people don’t have any need to be physically close to collaborate.  We should take advantage of that.

But Microsoft?

There is lots of doom and gloom commentary around Microsoft in the circles that I frequent.  Lots of it is related to the issues around ASP.Net Core and .Net Core.  If you look a little into Microsoft’s history you will see whenever they attempt to make major changes that allow the next generation of products they get beaten up for it.  Windows Vista is a classic example.  It was perceived as huge failure, but it made the big changes that allowed Windows 7 to be successful. 

The Core stuff is attempting to do a major reset on 15 years of history.  Grumpiness is guaranteed.  It doesn’t worry me particularly.  Could they have done stuff better?  Sure.  Did I ever think that a few teams in Microsoft could have instigated such a radical amount of change? Nope, never. But it is going to take time.  Way more time than those who like living on the bleeding edge are going to be happy about.

There is a whole lot of change happening at Microsoft.  The majority of what I see is really encouraging.  The employees I have met so far are consistently enthusiastic about the company and many of the employees who have left the company will describe their time there very favourably.

Historically, Microsoft was notorious for its hated stack ranking performance review system.  I had heard that the system had been abolished but I had no idea what the replacement system was until last week.  Only time will tell whether the new system will actually work, but my initial impression is that it is going to have an extremely positive impact on Microsoft culture.  The essense of the system is that you are measured on your contributions to your team, the impact you have had on helping other employees succeed and how you have built on the work of others.  The system, as I understand it, is designed to reward collaboration within the company.  If that doesn’t have an impact on the infamous Microsoft org chart comic, I don’t know what will.

Building stuff is fun

I got hooked on the creative endevour of writing code 34 years ago and I hope to still be doing it for many more to come.

Related Blog