Lessons learned from my time at Instructure
Take some time to be reflective, see what life has taught you.
2020-02-06
Today is my last day at Instructure. Over the last week, I have reflected many times on what I have learned through the last 5 years. The company has done a lot to enable me and my family to accomplish many goals. We were able to move back to Vermont to be near my wife's family, we were able to get debt free besides our mortgage, I gained invaluable experience working on many different projects, and I got to work with some of the most intelligent and great people I have met.
General Learnings
I have had the opportunity to work on a lot of different projects, with a lot of different people while at Instructure. I've also been there for the transition from a private VC funded company, to a publicly-traded company, and now the transition to a private-equity owned company. While reflecting on my experiences, there are 4 major learnings I have taken away; Take chances to learn new things, Work with great people, Trust can be hard to win, and easy to lose, and Asking for feedback
Take chances to learn new things
Prior to coming to work at Instructure, I had done an internship doing front end web development, worked for the university as a lead student engineer, and done some freelance web work, but Instructure has really been the first job of my career. When I started I was put on a team working on a project in Node.js and React. I had some experience with node but no experience in React. But not only was I now required to learn a new technology stack, but I also needed to learn how work was done at the company, the project management methodology and how to work with others to release new features. The learning curve was huge, but the speed at which I learned matched that curve. But after about a year I decided that I needed a change. I saw some things happening at the company and realized that our project was likely to be put into maintenance mode. With change inevitable, this would be a great opportunity to explore other teams and projects at the company. So I made a change.
I went to work on Canvas itself, which is a behemoth of a Rails application. I had never done Rails before, but I was eager to learn something new. This pattern repeated itself when after about 6 months of working on Canvas, I changed teams again building a mobile-specific backend.
Then an interesting opportunity arose, the iOS team, who I now worked very closely with, wanted to give React Native a try. They wanted me and my coworker, having had experience with React on the web, to help get the team up to speed on Javascript and React. React Native was a new technology at this time, and I knew I wouldn't get another opportunity like this one to learn it. So I joined the iOS team.
We built an app using React Native and started putting it in other parts of our app, and then the team decided that they wanted to move away from React Native and go back to native Swift development. The option was given to me to stay on the team and learn Swift and native development, or I could join another team. But knowing that I wouldn't have many opportunities such as this one to be paid to learn something new, I took that opportunity as well.
In every case, I jumped on the opportunity to learn something new. I was new in the industry, I wasn't sure what technologies I enjoyed working in yet, and being willing to constantly try and learn new things really helped me find what I enjoyed quickly, and to pick up many skills along the way. It ultimately helped me make the decision to go back to doing full-stack development in Node and React. Sometimes we need experiences trying new things, going down different paths, to recognize that we prefer what we were doing before.
Work with great people
As mentioned above, I have worked on many different teams, alongside many different people. One of the great parts of changing teams is working with new people. It helps to refine yourself and how you work, as you discover what works with one team and not others, but also what works across the board.
One of my moves at Instructure was primarily focused on wanting to work with a particular individual. I had worked with this individual previously on a hack week project and enjoyed it a lot. So when an opportunity to join his team opened I jumped on it. This resulted in a great working relationship as well as a great friendship. We worked well together and were able to accomplish a lot while we worked together.
When I moved to work with the mobile teams, I discovered how a great team dynamic can really make working on difficult problems, really exciting. They played hard but worked hard as well. After working with them for a few months I remarked how great of a team mobile was and how much I enjoyed working with them, and the response I got was that because many of them had worked with each other for several years, they had built up a great relationship, and had really found a groove for how to work well with one another.
After working in Swift for some time, I started to realize that I was not enjoying it, and had some desire to move back to a web team. But I recognized that sometimes, working with great people is more important than working in a technology stack that was more comfortable.
Trust can be hard to win, and easy to lose
Anyone who is familiar with Instructure, and especially with the process that has been the last few months of transitioning from a public company, back to a private company, knows that things have been a bit crazy. When all this happened, I already knew I was on my way out. But the drama that ensued internally was hard to not be involved with. It seemed almost every week some new article was coming out about this or that surrounding the acquisition. The response internally was interesting to watch, as employees began to question senior leadership, and the trust in their decisions and actions was deteriorating. The response was always, "trust us, not them" but it did not do much to calm the tense emotions many felt. While senior leadership has tried over the last year to establish a relationship of trust with the employees, all it took was this event, and the bad press that came with it, to cause that trust to crumble. It can be hard to win over someone's trust, and it's very easy to lose it.
Asking for Feedback
I am a fairly introspective individual, which many times results in being overly critical of myself. But I enjoy change (for the most part) and am always trying to find ways of becoming a better individual and progress towards my goals. I was not afraid to ask my managers for feedback, in hopes of finding my blind spots and seeing things from a different perspective. But for the most part the feedback I would get was "Keep doing what you are doing. You are doing great". For a while, this frustrated me because I wanted to get feedback that I could take action on. The kind of feedback that would help me be better, not the same.
A few weeks ago I had a one on one with my manager and mentioned how I did not feel very productive in native Swift development, and how that frustrated me a lot. I worried about not pulling my weight on the team. He gave me great feedback, not only assuring me that he felt I was in a good place but also provided some ideas on things I could do differently.
This last week I asked to have a one-on-one with one of our senior leaders at the organization. He had been the one constant "manager" I had over the years and wanted to ask him for some career advice before I left. I again asked him for any feedback he might be able to give me. He gave me feedback on how to ask for feedback. When asking for feedback, you should first do a self-assessment, find a particular thing you would like to solicit feedback on and go to your manager to ask for feedback about that specific thing. This resonated with me and it immediately clicked in my mind because of the conversation I had just had with my manager a few weeks prior.
Personal Learnings
Over the last 5 years, I have discovered a lot about myself that have helped me see where I want to be in the future. These personal learning are far more valuable to me than almost anything else I've learned at Instructure.
Remote
For the last year of my employment at Instructure, I have been working remotely. Prior to this, I would work from the office a couple of days a week and then work from home the other days. It took me a while to really figure out how to work well from home. I struggled with getting enough social interaction since prior to this going into the office was sufficient. There were days that I didn't go outside, especially during the winter months. But I figured it out eventually. I found that walks at lunch, and getting up early to mountain bike, were great times to think and get outside. I also found that just rolling out of bed and immediately starting to work didn't work for me. I needed the time in the mornings to do a morning routine to really feel ready for work.
But despite having figured out how to make it work for me, I still would prefer to work out of an office. Something about working alongside others to accomplish a goal is very motivating for me. But you need experiences such as what I have had in order to know these things.
Product Engineer
Having worked with many different engineers, I have made a very important discovery about myself. That I care way more about building things than I do about how they are built. Of course, part of being able to build great products is about working in a technology that you feel comfortable and productive in. But questions surrounding how best to architect a solution are not my favorite. I get so much more fulfillment out of building great products that people actually find useful. It is also one reason I greatly dislike interview questions that are more of a puzzle than they are an exercise in solving a problem and building a solution.
Mission-Driven Work
I have been lucky, and grateful that I had the chance to work at Instructure building education software. Education is so important, and being able to play a part in helping make education better for others is so fulfilling. Not just education though, any truly mission-driven company, is building software for others who are driven by the same motives. When you build solutions that help others accomplish their mission, you develop loyal customers and advocates. I want to be a part of solving problems for people who are mission-driven. While I recognize that for some, helping companies make more money can be a satisfying mission, it just is not for me.
Thanks Instructure
If you made it this far, great! My last point to make is that I'm incredibly grateful for the time I got to spend at Instructure. They have been good to me and they enabled me to learn so much. So Thanks!