My First Year
I just celebrated my one year anniversary in my current position, which is a great opportunity to look back on the last year of work. This role has been unlike any other that I have had in my career starting from the interview.
When I was interviewing with my boss and we were discussing what I did in my previous role, I discussed the architecture that we had built. It was a traditional Spring application that was a monolith. It was a very well designed layered architecture. We were doing a mix Trunk Based Development and feature branch development depending on how large and invasive the feature was using git as the repository. We had a great unit test suite and did weekly deployments. We tried to commit early to master and use feature toggles to role out new features and mitigate risk. They were still largely a waterfall model though, just a company that moved faster on waterfall than any I have ever worked with.
In my interview I mentioned that what I was really interested in doing which was rolling out a micro service based architecture built around spring boot. It seemed to me at the time to be a great way to increase development velocity, and it allows experimenting with different patterns and techniques inside of a new project without necessarily committing to that in all of the code across the company. To my bosses credit he was also extremely excited about the concept and I was informed a few hours later that they wanted to move forward with an offer. This was the first time in my career that I went into an interview with a strong vision of what I wanted to do as opposed to just being interested in learning more about a company to see if it was the right fit for me. I think this is something that I would carry forward into the future as it has had great results for me.
I started in my new role and the first week was getting my development environment setup and learning the new process. We use agile which I had not yet done in my career, and we use the gitflow model. After 5 days on the job I was given my first real project. I was going to write the first micro service that they had done in Spring Boot the way I had outlined my interest in my interview. And we would have 2 sprints to complete it. I was given the opportunity to make all the design decisions and implement the service and the rest of the team implemented the code to integrate with my service from the main application.
I have noticed as you move up in your career you are handed more responsibility much sooner when you join a new company. When I joined people answers I had about a month of doing bug fixes on various parts of the software before I was thrown on a major 3 month project to roll out a huge game changing feature at the company (mobile support for pre screening questions in our application tracking system). This time around it was doing a whole new Authentication and Authorization service 5 days into the job and designing the initial architecture that we were going to use to roll these services out in the future. Nothing is as exciting as green field development especially when you get to call all the architectural shots. It was really an amazing project all around as it gave me a chance to prove myself right away that I could walk the talk so to speak, and it is exciting work. You are already energized joining a new role and getting to implement your vision of how to take things forward from nearly day one does even more to let you know that you have made the right move in your career.
As the year has gone on we rolled out 2 more services with a different engineer leading each one. We build and expand on our architecture with the requirements of each new service that we roll out. Another unique thing about this opportunity for me has been getting to look into the business model and begin to understand how the business works. I have been involved in startup type work for much of my career, but I have never gotten to see a working business model up close. That has been very refreshing. Our product people have an amazing understanding of the business and how we the engineers can build new features to drive more value to the business. If you ever want to feel rewarded implement some new feature in a system and have the business come back to you and tell you how much revenue it brought in during the previous quarter. Typically software engineers get very few opportunities to actually hear a dollars and cents version of the kind of value that you are creating, which is a shame as it is very empowering. Some day I may want to try a CTO type role as I love technology leadership and engineering. I don’t feel like you can move into that type of role until you can sort of bridge the technology side with the business side, so I am fortunate to work with such a talented business team that doesn’t mind answering my simple questions related to the business.
I guess in conclusion the biggest take away for me is if you are considering a different role, think about how you could bring value to the business if you are given that role and articulate during the interview the value that you can provide. It may just end up being the most interesting role of your career.