Showing posts with label Self Improvement. Show all posts
Showing posts with label Self Improvement. Show all posts

Sunday, August 7, 2016

How I Used the Career Triforce to Change my Job

When I was leaving Microsoft, on my last day, I got a lot of questions around why I was leaving. I was a lynch pin of sorts in the team. I was positioned very well to get impactful work. Highly networked. Very happy with my day to day. Reporting to one of the best managers/mentors on the planet.

I was on a career trajectory for Microsoft that was almost unreal. Averaging better than a promotion every 2 years with no slow down just because I was cross bands eventually ending up at the top of the Principal ladder. Compensation was great when compared relatively across other MS employees (will not be discussing this further). Everything seemed to be going amazingly well.

What did I say to everyone? Well, I said there are three areas (these are not my own, but taken from a book on career advice that I found exceptionally relevant) on which you should judge your current career. You should start by looking at your Job. Do you love it? Are you able to make an impact? Are you passionate about what you are doing? All off my answers here would be positive. The first part of my TriForce is complete

Next you look at your Manager. This is the singular individual who has the most control over your happiness and your career path in most companies. Ask yourself questions like, are you aligned with your boss? Does your support you when you are about to fail? Does your boss accentuate your good qualities and help you improve on your bad qualities? Can your boss act as your manager, your friend, a leader and a mentor? Well, #FML, it turns out I just found the second part of my TriForce.

Lastly I said you look at your Team. For me, at my level this meant looking at my immediate team, the entire Edge WPT team and then finally up to the Windows organization as a whole. Those are the scales at which I had impact at Microsoft. When looking at all levels of the team you ask questions like, do I like working with these people? Are the politics manageable or are they over the top? Does the team exercise trust? Does the team exercise transparency? As I worked from my local team up to Windows the third component in my TriForce starts to crack a little bit, maybe it has a little bit less luster.

However, when I consider the most stress I faced while making my decision to change jobs, it came down to the people. I loved the people and I felt like we created an almost extended family like support system for one another. I wasn't concerned about my projects that wouldn't get done if I left. Instead I was worried about the people that I worked with on a daily basis that I could see growing and becoming amazing engineers in their own rights. I was worried there wouldn't be enough people left infusing positive energy into the team on a daily basis to keep the morale up. I was worried that I was failing my team by leaving. That's when you realize, yeah, you have a great team. There may be some scuffs on that TriForce shard, but its still shining just as brightly as the other 2. My TriForce was complete.

My Answer

Okay, so if I already had the TriForce what kind of answer could I give everyone then? Why was I leaving? This is when I learned something that I had learned earlier in my career, but it took another 11 and a half years to discover it again. Once you've built a TriForce there isn't as much exponential growth in your future and mostly you just end up making incremental improvements. You spend more time doing the things you know, rather than learning new things. Your awesomeness starts to atrophy. You rarely feel the stress of a complicated and new situation. You rarely push your boundaries.

That isn't to say there aren't still moments like that. There certainly are. They just aren't as often and so growth tends to become linear and plateau increasingly frequently.

You also don't know if you have the skills to build another TriForce. I spend a lot of time mentoring and I often reach out for new mentees. My dream is that they too can achieve their TriForce and that I'm an enabler for that. I provide experience and strategies for working with difficult situations and to figure out why some aspect of their career is not shining or working well with the rest. Are my recommendations good? Do I have enough experience to offer the types of career advice that they need? If I put myself in their shoes, with their knowledge, and took on their risk would I be able to replicate my experience?

That is an important question for me. Doing something once can be dumb luck. It doesn't mean you can make it happen. It means it happened and perhaps it has something to do with you. But perhaps you are unaware of the actual forces of nature that brought it into being and it turns out it had nothing to do with you. That is a scary thought. Am I successful because of me? Or am I successful because of a random set of circumstances that I only manipulated superficially.

This led me to my answer to the team, paraphrasing a bit I finally said, "When you make a career change you should look at your job, boss and team. If they are all great then you are probably on the right track. When I look at myself, I have a TriForce in these three areas. Everything is amazing. So I had to use other measures to figure out my future. Specifically to follow my passions in VR and to see if I can build my second TriForce."

Maybe everyone thinks that is bullshit and will point to other factors in my decision making. I had a lot. Compensation, family, location and friends were all additional complications. However, I can say after tons of cross comparison Excel tables, almost everything zero'ed out between Oculus and Microsoft. I was only left with a very real and pressing question, one that Brendan Iribe asked me during my process. Do you want to think about VR all day, every day? That was his pitch to me. An offer to work on a technology that would change the future with all of my insight and passion. And when my answer to that simpler question is, "Fuck Yeah!" you can see how my explanation to my former team was given in honesty.

Passion

Passion isn't on the TriForce, but it is part of how you feel about your Job, how you are supported by your Boss (does he let you run with your wacky ideas?) and how your Team adapts to a changing society and marketplace. That makes it is an integral component in all of them. When you are passionate you'll find that you can't sleep because you are still solving problems. You spring out of bed every morning to rush to work. You let everyone know what you are working on and why they should care. You see clearly how what you are doing is going to change the future, improve lives, connect you more closely to your friends/family and make the world a better place for everyone to live.

When I saw the opportunity to lend my passion and devote all of my ability to launching the VR revolution I couldn't pass it up. VR has to potential to change the way that we think about education, jobs and entertainment. It literally allows us to redefine space itself and transform a living room into an anything room. I didn't jump ship to VR in the beginning because my expertise wasn't needed yet. But now is the time to scale and build platforms for VR that extend to millions. This is where I thrive as a developer. This is where the web thrives as a platform for scale and accessibility. This is the time to deeply investment my time and effort and build my second career TriForce. With news like the HTC VR alliance offering 10 billion in VC capital to development of VR content and experiences, I think I'm in good company thinking this way.

My Final Advice

Most people in their careers I find are working on some aspect of building their TriForce, probably for the first time. I know because I mentor some amazing developers and almost always they have some sort of hang-up in one of these areas and they haven't yet figured out how to completely self-diagnose themselves when things are going wrong.

For this reason I think evaluating your job, boss and team is a great way for you to figure out two things. For instance, do you need to improve something in your current career in order to elevate yourself to the next level. You may find that your job sucks for some reason, but it is within your control to make it not suck. You should do that. The easiest thing to change is yourself.

If you evaluate these and find that there are things outside of your control that you don't see are going to change then you can use it as a way to figure out how you are going to change your career. Not everything is within your control and often times your happiness or passion requires an environmental change. Perhaps your current job would get you there, but in a time period that is longer than you would like. I always recommended being open and honest during this period just in case you've misread your situation. If you did, then making your situation apparent to your team can sometimes result in the change that you were going to switch jobs for.

If you are sitting on your TriForce though and you are happy with all three you shouldn't close your eyes off to the opportunities that might present themselves. Maintain your marketability and interview skills. From time to time, reach out and do an interview or two and see what else is available both in terms of unique job roles, but also life changing compensation. When an opportunity comes along and you do have to make the big decision, know that it will be stressful. Then calm down, evaluate everything objectively and if it looks like another opportunity to build your next TriForce then perhaps you should go for it!

Saturday, January 16, 2016

Looking to 2016 with New Years Resolutions that Stick!

I can't believe its already 2 weeks into the New Year and I'm just settling on my resolutions. It isn't that they haven't been done, but I've been trying quite hard to marry them with the mentoring recommendations that I supply to people throughout the year. After all, how can I give people advice on how to achieve their goals when I myself am not following and helping to prove out the advice!

The advice I tend to give comes down to very basic time management. You have 168 hours in a week, 1/3rd of which is taken up by sleep and another quarter which is taken up by work. If you consider your time at work well spent and accomplished, then you are left with approximately two more work like things that you can deal with and make significant progress on. You'll also find that the majority of the time you can commit is on the weekends. The following graphs hopefully break this down by showing an average day, a 5 day work week and finally a breakdown with the weekends included. If your week doesn't look like this, great, build your own graphs for your commitments and you'll likely find a variation of the "Big 3" pattern falls out.


Looking at this graph you clearly can't see any way for 2 things to compete with work. We have a decent sized commute, a big chunk of sleep, a big chunk of work with little buffer. That buffer is your family time, exercise, decompression, etc... You have to figure out how to make functional for you to fit in time for your big accomplishments since it does represent a hefty chunk of your overall weekly buffer. Here is the same graph, but expanded to show the 5 day work week.


That buffer has now grown to 20 hours. This is now competitive with the 40 hours we spend at work assuming that the 20 hours is very focused. We are constantly bombarded with interruptions at work that we can avoid when working on our own projects during our buffer time. But we can do even better. Let's grow the buffer by adding in our weekend time.


We now have 50 hours (55 if you take away your fun time, which I consider playing games or watching movies or something like that). You could do one HUGE thing in that time or you could split the time and do 2 big things. I like to split this down into 40 (work), 30 (a big project), 20 (smaller projects). As an example, blogging on the weekends I roll up into my social, networking and mentoring projects which I try to fit into about 20 hours a week.

Some people will point out that you don't need 20 hours to accomplish something. That 20 hours a week for many months is a huge time sink. Remember I'm comparing the accomplishments you want to achieve to something akin to your work. Your work fuels your entire lifestyle and is hopefully something you really enjoy doing. I'm not preaching on how to be a better multi-tasker, I'm instead coaching on how to increase the probability of achieving a goal.

One more realization is that work is a constant. Its something you show up to 48+ weeks out of the year. Not every accomplishment will take a year of your time. I'm focusing you on achieving 2 additional goals AT A TIME since its better to have a 2 accomplished goals after 3 months with 6 more to go than coming up on the end of the year and trying to land 8 that you spread too thin. This means that you'll schedule more than 2 goals for the year and that each goal will probably have a duration less than a year in length. Examples might be buying a house or committing yourself for 3 months to a sports team in the spring.

This provides the frame of reference for understanding my resolutions breakdown.

My Resolutions


I'm choosing Health and Exercise, Work and Social Networking as my big 3 commitments for the year. Within these I have some breakdowns or sub-goals that make up the overall commitment. I want to go a step further though and make sure I haven't overbooked myself, that my goals are able to be accomplished. Given the 50 hour week buffer I should be able further break that down.

I also have some personal goals that have very fixed time constraints as well as some educational goals to keep my mind focused and fresh. Welcome to my 2016 New Years Resolutions!

  • Work
    • Make Significant Design and Implementation Progress on an HTML 5 Event Loop for EdgeHTML - See my blog on Promises.
    • Deep Dive into Telemetry Collection and Visualization for Web Browsers - See my progress in my blog on API Telemetry.
    • Accelerate the Identification and Removal of Legacy Code in EdgeHTML
    • Contribute 3 Articles to the IE Team Blog
    • Make Significant Contributions to WebVR and VR for the Web in general - See my thoughts in my blog on our WebVR Hackathon.
  • Health and Exercise
  • Social, Networking, Blogging, Mentorship
    • Achieve my Goals for Mentoring Diversity
    • Establish Consistent Mentors for Myself (Shooting for 4)
    • Mentor More Startup Entrepreneurs (Shooting for 3)
    • Do One Seattle Meetup per Month (JS, Indie Game Devs, etc...)
    • Do One Hackathon Quarterly (Ludum Dare?)
    • Try to Blog Once per Week (Consistency is King!)
    • Try to Kick Off One HTML 5 Focused Blog (Variety)
      • Maybe Make it a Video Streaming Channel?
Just because those are my 3 major areas doesn't make the next set of personal and educational goals any less important. It just means that the above 3 will trump many other things and that their activation energy is higher. I want to increase my changes of being successful and time (combined with effort) is a surefire way of doing that. Here are my more constrained resolutions!
  • Personal Goals
    • My Wife and I will Buy our Next House
    • Plan and Take our Japan Trip
    • Spend a Week and Visit New York!
  • Education
    • Natural Language Study through Duo Lingo and Other Gamification Based Applications
    • Read 1 Fiction and 1 Non-Fiction Book per Month and set up a Book List Page
    • Take a Data Science Course through Coursera or Udacity
    • Learn the R Programming Language
This is a mostly complete list of my publicly shareable goals. I still value some level of privacy so I can't be completely transparent. Keep that in mind, since you'll see me leaving some buffer in my year and will probably wonder, "What is he going to do with that?". Mostly the answer is, account for all of my mistakes, but some of it will be used for things I'm unable to share at this time.

Broad Strokes


To take a first stab, try to see what it looks like to fit your goals into a single weeks buffer. This is not what your final scheduling would look like, but it will help to give you an understanding of whether or not you might be over budgeted. It also helps you to realize what is the relative cost of this commitment versus your already existing sleep, food and work. If this is your first time breaking things down this way it will be enlightening. Here is my basic breakdown of the 50 hour budget based on overall goals (no sub-goal breakdown).


This is a moment to validate the data. For instance, is 6 hours a week proper for exercise? What about 5 hours for reading? I've added in 8 hours each weekend for games, television, hiking, etc... (though hiking may at some point overlap with my exercise goals instead ;-) To me the initial data looks pretty good and I have a nice buffer of 15 hours, or 30% of my original buffer time. This gives me a lot of flexibility. Once you are happy with your weekly breakdown, just scale it up to a full year.


Now is the opportunity to see if anything leaps out as absurd. For instance, does 250 hours of reading allow us to meet our goal? We want to read 24 books, at 10 hours average per book (I read big, technical books :-) then we can do 25. Okay, so those numbers hold water. Language learning might be a bit high, since it seems like more than I spent in high school learning Spanish. Then again, I want to kick my younger self's butt, so that seems pretty solid too.

These are all yearly goals for me. Things I'm going to continue doing throughout and not things that will be done in say 3 months and then replaced. So overall the numbers here look good. This also accounts for all but my personal goals around travel and a house purchase, which should easily fit blocks like More Fun (if buying a house can be considered fun) or the rather large 750 hour buffer.

From here I like to do one more breakdown, which I won't graph, but I'll fit it into a table instead. What if we took the sub-goals, decided on some metric and then computed our accomplishment? We could then compare that against the accomplishment we want to achieve. I'll do one example and then just leave you with the chart.

Let's take the 365 Mile Challenge from Zuckerberg. If I assume that I run 6mi/h on average and I have 300 hours of exercise available to me, then I end up running 1800 miles. That is way further than I need to go. In fact it is ~5x farther. Some more math tells me that I need to run 1 mile per day, 7 miles per week. That means I need a bit more than 1 hour (1 hour and 10 minutes) each week of running to achieve the goal. Using these figures I can then layer in swimming (1 hour weekly) and stairs (maybe 2 hours weekly) and determine that I'm well buffered for exercise and in fact that is good. I have time to stretch ;-) Let's see how this pans out for everything that isn't Work.


Resolutions Metrics Totals Achievements
Exercise 300 Exercise is well buffered!
Miles\h 6 1800 ~ 5x the 365 Challenge
Swims 1 300 ~ 6x the swims needed
Stairs\h 100 30000 ~ 300 Empire State Buildings
Reading 250 Reading is very tight
Books\h 0.1 25 ~ 10/h book average
Language 300 Language is extremely well buffered!
Duo Lingo Lessons\h 4 1200 ~ 3 Languages at 1200-1800 words
Social 500 Social is potentially overbooked
Blogs per Hour 0.25 125 ~ 2.25 times goal of 1 per week!
Mentor Sessions/h 1 300 ~ 2/wk for a 100 sessions target
Hours per Hackathon 32 15.625 ~ 4/yr is the target
Hours per Meetup 4 125 ~ 12/yr is target

There are some fun metrics in here. For instance, 300 Empire state buildings would be climbed over the course of 100 hours. Its okay since I'll be splitting that 6 hours of time between several different exercise resolutions. It does tell me that even once I break it down I'll be doing a lot of each of those. Which is good! I want to maximize my chances of success in my major goals. Health is an issue for me at this time and so to get in better health you have to not just do what an average, healthier person would do. You have to do a bit more, take a bit more time, avoid injury and build a sustainable plan.

At this level I start to show weakness in my initial plans as well. Look at my language learning. I doubt that I'll learn 3 languages in one year, but based on the lessons present in a Duo Lingo course, I would end up maybe doing a language every 4 months. That might mean that I can manage that goal more carefully, reduce the time and assign to somewhere else. It may also mean that I'm underestimating the relative complexity of the lessons so its better to look at this after 1, 2, and 3 months and see how things are going and adapt as appropriate.

We also see that Social is where I'm both putting a lot of my time, but its potentially still not enough. I have to ask myself, am I doing too much? Or do I need to allocate more time. Remember this is one of my major 3 commitments and that education was not. I am very likely to focus more time and more energy on this area. It is also one of the most complicated areas (it comprises many components and sub-goals) and so my estimates are more likely to be incorrect and there are things that I'm likely not accounting for. I'll certainly be reviewing this one very closely to see how I'm able to stick to the commitments I laid forth.

Conclusion


If you can take away one bit of information in this article, please take away the concept of the "Big 3". If you want to really make a dent in something you have to treat it with the same level of priority as you do your job or career. That commitment will present itself in both time, effort and accountability. You want to over buffer and leave yourself room to succeed. Don't expect that because this is something you are driven to do that it'll be any easier.

When fitting your resolutions into your schedule always use "primary time" and not "overlapped time". You could listen to books on your drive for instance and try to "double up", but you are really only cheating yourself. You should value focused and committed time over all else. You are free to double up, overlap and otherwise multi-task. Just don't do it for the things you want to make huge improvements on.

Simple math is often the best math. You can gain many insights with just a few sums and extrapolating over time. This kind of math is most often defeated by poor estimates but poor estimates can be countered by sufficient buffer.

Once you have a basic plan in place, set up time to retrospect and make sure your estimates were accurate. Time trumps all and the more time you have available to you the easier it is to correct a mistake. If you are off in the first month but can average the mistake over 11 months that is much better than figuring out in December that your 40 hour commitment is actually 80.

Finally, make plans to be done. If you have 8 accomplishments you want over the course of the year it is better to bank a couple in the early months than to try to sprint at the end to finish all 8. This is a classic multi-tasking mistake that people make once they become comfortable with their plan and estimates. Its probably the number one cause in software engineering when a features misses the check-in deadlines by just a couple of days. Buffers are built into plans so you finish early, not so that you can consume the buffer up front and then fit the last 2 days of programming into the last 2 days of the milestone. It almost never works out!

I'm putting it all out there for you guys, so if you see me slacking off let me know. There is no greater motivator for performance than a critical audience. I'm quite happy this year to have this set of goals, of varying diversity and to have confidence that I can achieve them all.

Thursday, December 31, 2015

Retrospective for 2015: The year of Blogging, Mentoring and EdgeHTML

Almost a year ago, on January 3rd, I made a commitment to myself to start sharing my experiences in software, mentoring and self-improvement through gamification through my blog. You can review that first post to see how my year started!

It was a lofty set of goals at the time. I remember the desire to write a blog entry per week and starting out very strong. I remember the feeling of ending my vacation having just re-read Jane McGonigal's Reality is Broken and really wanting to change my work place through principles of gamification. Most importantly I remember how my mentees were super charging my insights into how to find and fix problems in your personal and work life.

To that end my year is going to be about Career, Blogging, Mentoring and other Random Stuff. Lets combine everything I learned to self-reflect and hopefully come up with a new improve strategy for the year to come. My first post in the New Year then will be about the year to come and this, my last post of the year, will be about what I've accomplished.

Blogging


I actually started the year with 3 blogs. Two where I hoped to be purely technical and share technical shorts. They were for HTML 5 gaming and a parallel to the Perl Blackbook I was calling the HTML 5 Black Book. However, everything I wanted to write about fit into my personal blog instead, Continuous Integration, the one you are reading here. While I did contribute an article or two to those others blogs, I don't consider them launched yet. I still like the concepts they represent and I hope to improve my contributions to those in the coming year.

For my primary blog, including this posting, I was able to push out 33 articles over the course of the year. Nothing tells the story like a graph so you can see the months where I did very well and the months where I feel short, even disappearing for some time. I'll talk a bit about those, because they become real opportunities for improvement in the new year.


First thing to note is that trend line. I lack consistency for sure and the trend line would be even worse if I hadn't pulled it together in May and then again in November/December. So what happened during those extended periods of time?

March and April both coincide with some major bug fixing work to get Windows 10 ready for general release. This relaxed for a bit in May as we were doing more planning work for the next Windows 10 Update Release which most people should have by now and mostly got pushed out in November.

Starting in late June through end of August, that was the major planning and coding milestones for the update release. If a feature wasn't done during that period, it probably didn't make it into the November update. Then September and October, bug fixing for that release.

Are you seeing the problem? I sure am. I can't chew bubble gum and walk at the same time. That's not quite true, I'm actually quite good at context switching and balancing things. But the reality of faster releases of Windows is that everyone needed to figure out HOW to do it. I think I have the right recipes figured out to fix this so we'll see how next year goes since we are likely to make this release cycle and cadence the norm.

We can also pivot by our topics or tags. I didn't start my blog tagging and I didn't go back and really tag everything properly, so there are some things underrepresented. However, the tags that I was hoping to see were Gamfication and Mentoring. While I did some of that through my blog, it doesn't show up in my tags as you'll see. Another great thing to fix!


What I did really well on was an area I wasn't even thinking about when I started the blog. I've been able to build an information channel for the IE and now Microsoft Edge product. A channel which is maybe a bit more raw than it should be, but so far so good. More importantly a channel which can help the developers gain a voice when talking to the community and customers about problems, features and directions for the EdgeHTML component and the Microsoft Edge browser. I'm pretty proud of that.

I've also gotten a chance to really show how we are building our script engine integration in the FastDOM posts. That has been a great series and it drills into the intricate details of JavaScript and how the "Host" part of the specification works, which is a place only Browser vendors tend to dabble.

Starting in August I've also been ramping up on how our telemetry works in EdgeHTML and telemetry and data gathering in general. No reason that all of these findings have to be specific to our uses cases. In these posts I've started to find vital connections between how the engineering system (data used to create the browser) is then used to build and validate the telemetry which is used to build and validate future features and finally used to build tests and perform security analysis. I'll certainly talk more about how this positive feedback systems works in the coming year.

A year ago blogging was something I had done in the past. I remembered it being fun, In fact I wrote somewhere between 330-370 articles on .NET features and performance on the old weblogs.asp.net system. That ended when I joined Microsoft in 2005. It took me then 10 years to regain my writing itch and its one of the most positive improvements I made this year!

Mentoring


I've already written this part of the retrospective as a break-out. That's how important mentoring is to me. It really does drive a lot of my more major initiatives. Even the blog writing was the outcome of some mentoring suggestions I had provided to others. I was trying to get them to use it as an outlet for improving communication, building a network and generally putting into writing their mastery of some subject.

When mentoring, be very careful recommending something you aren't currently doing. Next thing you know you'll be doing it. Its hard to sell advice you yourself are not taking. In my case I felt it was a great idea for others, but that I didn't have the time. Well, I found that time and it turned out great. That means one great passion, mentoring, led to the revival of a previous passion, blogging!

One story not in my mentoring article though, which deserves to be called out, is the mentoring I've been able to provide for my wife, Ning, who also worked at Microsoft until quite recently. It is through our daily conversations that I get to learn the differences between being a male vs a female in tech. I also get to learn how many things I take for granted or how many strategies I'm able to use which simply don't work for her. There is no reason they shouldn't work, but they don't. So I get to see first hand some of the imbalance and some of the gender bias that our industry holds.

But this is a positive story, about career mentoring, not a sad story about inequality. Over the course of several months I worked with her to help navigate her career at Microsoft, but at some point it became very clear that the glass ceiling for her was different than my own. Instead of looking purely internally we started to look externally, at other opportunities.

This is where I'm really on my a-game. When it comes to interviewing and programming problems, I find them more fun than stressful so we also spent quite a bit of time in coffee shops on weekends preparing and studying the various technologies that you get rusty on as a line programmer at a major company.

I won't go into the details, but this took a few months, since we both had day jobs, but at the end, she has now catapulted her career and is now happy as a Noogler (how long can I call her that?). I usually get a chance to congratulate at least one mentee per year on a career promotion, but I don't always get a chance to watch my wife overcome all opposition and adversity and claim the career she wants. I'm super proud of her and couldn't be happier.

Career


What about my own career? How do I feel about the "New Microsoft?" Am I good with my 10 years on the IE team or am I ready for a change? What does my team think of me? Well these are all very critical questions. Some are also very personal and if answered in a public forum might make some of my co-workers uncomfortable. This is my retrospective though, so I'll try to address what I can while still ensuring the comfort and privacy of the people I work with.

First, what do I think about the "New Microsoft?" Let me start by saying I've always viewed Microsoft as the largest, most capable software engineering machine on the planet. There is so much capability in the people I work with. You point them at hard problems and you get great solutions, on time and on budget. You DO have to throw them at the right hard problems and you DO have to avoid putting too much process in their way.

The "New Microsoft" is basically executing to change these two components of how the company does business. It is changing the problems and picking problems that are both business savvy, marketable, engaging to customers, etc... That means we have a customer for all of our great solutions rather than trying to make markets from thin air. We are also working very hard to get out of the way of the engineers and improve the engineering process.

I'm liking the "New Microsoft". I definitely like the stock price. I like even more that they need people like me to help execute the change and that they are engaging me to figure out how I want to work and then enabling me to work the way that I want. Its really increasing the velocity with which we can solve problems and I appreciate even more the renewed focus on problems that matter.

Microsoft is huge though so how am I feeling about the IE team and my 10 years on the same team? After working on the team long enough I stopped working for IE and I started working for the Web. A year ago I might not have been very comfortable saying that out loud. Now, with the new directions that Microsoft as a company is going, I'm completely comfortable saying that. I would be comfortable working at Mozilla or Google as well, as long as I'm moving the Web itself forward and there isn't a monopoly developing. A monopoly on the web, IMO, would be pretty damaging and I think we learned that from the early 2000's. We had to reinvent a lot of the same technologies over again because the IE 5-6 monopoly didn't create the right result.

Since the IE team is really focusing on interoperability and standards its quite aligned with my goals of moving the web forward and the team is very supportive of helping me do just that. I wouldn't take change off the table and there are some technologies that I'm really interested in such as VR but overall it would take a pretty convincing argument to make me move.

Does my team still want me around and what do they think of me? This is always a blind spot. I spend hours and hours helping my mentees determine this information by trying to provide objective, alternate viewpoints. They tell me what they think and then I ask them questions that hopefully allow them to change their viewpoints or be a little bit more accepting of how their team looks at them.

I've been on the team for a LOOOONG time and they are still giving me great reviews and great rewards. I think those speak for themselves. Sometimes my ideas are a bit too progressive and progressive ideas are scary. They are different from what you are used to and in the case of having to deliver on them, it might put your into an uncomfortable position where you don't know if you'll be able to succeed. My projects tend to succeed, they tend to get a lot of visibility and the people that get put on my projects also get rewarded well. Overall, I think team interactions are going great.

I can't currently find any major flaws in my career. If anything, I'd like to increase my impact, responsibility and accountability. As an IC or Individual Contributor at Microsoft, this part of the equation can be difficult. I don't command resources and I've exceeded the levels wherein I can accomplish everything myself. To this end having Microsoft be able to more directly acknowledge the role of a technical lead would be an excellent improvement. A technical lead is someone who does not manage people, but directs technical projects that have people working on them. At Microsoft we combine the lead/manager roles together and the technical lead is more informal. I know other companies have a different viewpoint and maintain technical leads. Overall I think technical leads just increase the number of simultaneous projects you can do as well as improve the agility of switching between different projects.

My next career jump is a challenging one at Microsoft. Just saying that probably gives it away for people familiar with the companies level systems. I'm ready for the challenge though and I have a lot of support. I've had a string of great bosses, but my current boss, Rico Mariani is truly exceptional. My direct team, the performance team (though we do much more as you can tell from all the random things I tweet about fixing), is fully of some of the strongest technical talent in the company, every person being a self-motivated bug fixing and feature producing machine.The broader team, Windows organization and the company as a whole is laser focused on the web as a platform for application development. I'm poised to make some great things happen in the coming year ;-)

Random Stuff


Let's start with my work accomplishments since those are now top of mind after thinking through the state of my career. This year was the year of Windows 10 and Windows 10 Update 1. I'm sure the code names have leaked by now so we called these things Threshold and Threshold 2. That brought to the world one of my major features, the EdgeHTML split. A brand new DLL without the compatibility burden of the legacy MSHTML which we would continue to service for business customers.

Along with this new DLL was a heightened focus on interoperability between Edge and the mobile web. People might say we were chasing the webkit web, but that isn't fair nor is it true. We were chasing mobile interoperability and site compat primarily. While doing so, we wound up finding corners of the web which had only been tested in iOS or Chrome for Android and so we had to come up with solutions and adapt. It was a major effort and we fix thousands of bugs (many of which were the sizes of features).

On my personal development, I was able to keep my interview skills fresh while helping my wife prepare for her new career adventures. A couple of rounds through LeetCode.com is a great bit of preparation if you haven't interviewed in a few years. Its also a great way to get fresh content for interviewing others. In 2014 I was able to do an interview training course for a group of employees that were let go in the layoffs and I was using LeetCode.com at that time as a source of inspiration. I went so far as to take an interview back in September and even got an offer!

I started the year on a tri-club and I'm sad to say I feel off the bike around May and didn't get back on. I also started running with a few co-workers and was doing well for about 3 months and then stopped due to a foot injury. This exercise thing is proving to be tough and is probably one of my low points for the year. There is a pretty strong link between exercise, stress and productivity and I'm ending this year feeling like I've given up a bit of comfort and productivity by not concentrating more on my exercise regime.

Well, if I don't wrap this up now it won't make it in this year (I'm using Seattle's New Year as a time frame even though I'm in Hawaii so I could technically claim 2 more hours). This should be enough reflection on the previous year for my next post in the New Year on what my next set of accomplishments should be. See you next year!