Lessons Learned in Decade 0
The year 2022 was the year I completed my first decade in the tech industry. The day I realized that not only had I made a decade in industry but I still enjoyed it immensely was a special one for me. I am not a classically trained engineer, I don't have a computer science degree from a top university. In fact, I have two certificates from a community college that I acquired while working full time attempting to survive the 2008 economic collapse in the United States while working as a general building contractor. Most of my skill set has been acquired through many hours of extra time spent trying to understand how things work and why they work. The reason I bring this up is not to point out accomplishments, but rather to point out that everything is contextual. Furthermore I'd like to say that you tend to get out what you put into something. The following image sums up the progress of the first decade.
I had been trying to take time to collect the lessons that I've learned and what nuggets of wisdom I wish were given to me when I was starting out.
Work with great leaders who believe in you and make investments to help you develop your potential. I would not be where I am today if I didn't work for great people, if you ever get a chance to work for David Levinger, Gautam Jayaprakash, Ben Rockwood, or Amrish Kapoor do it! The value of having a good leader helping you develop your craft and teaching you to lead by example will afford you the opportunity to become greater than you would be on your own. If you get this, other things will fall into place.
Equally important to working with great people is learning how to spot toxic managers/co-workers. Being able to spot a toxic environment puts you in a position where you can set expectations while you plan your exit strategy. Life is way too short to work for a great company but with toxic people that make you feel any less than the rockstar you are.
A lesson that Gautam taught me, whenever having conversations with people use proper nouns. The tech industry is a global amalgamation of people, culture, skills, and languages. By using proper nouns when talking about something it allows you to be explicit in what you are discussing, this helps remove ambiguity and affords the opportunity for people to ask questions if topics are unclear. This is a lesson I wish I had learned much sooner than I did.
Imposture syndrome is real. Much like the point above, the entire tech industry has folks with all interests, backgrounds, and skill sets. In every technology, system, methods, businesses there is an abundance of opportunities to learn something new. Because of this, it is not unusual to meet someone who is just as talented if not more so at something you're currently working on. You are only competing with yourself, when you come across someone who is immensely talented, learn from them. Mutually learning from each other is one of the best things you can do with your colleagues. You bring something to the table, and so do others that's why you're both there!
Nothing is perfect, so stop looking for perfection! Company's typically don't hire you for perfection or innovation (most of the time), you are hired to solve a problem that the company has at a particular point in time. Solving said problem produces value, that is produced can fit in multiple categories but ultimately the value you produce helps the company charge for relieving a source of pain for a customer.
This can be difficult to grok because you're always chasing the pain point to solve. For example, take a continuous integration and continuous delivery system. If you're at a startup of 10 people with less than 10 million dollars in annual recurring revenue, your pain point is how do I build, test, and ship software as quickly as possible to put product and features in front of people that will buy as soon as possible? At a 100 million dollar annual recurring revenue company, how do I complete the same task but at an order of magnitude faster, in a distributed fashion, and in a way that meets a certification process such as System and Organization Controls or HIPAA? Both are important, but the solution for one isn't the perfect solution for another. Don't try to be perfect, you're always chasing a moving target.
Being able to understand the arcane dialect of computer languages, ones and zeros is very important. But really, the people, the process, and continuous improvement is the key to success. Work to be an excellent communicator both in written form and through verbal conversations. Being able to effectively articulate and reason thoughts and processes through written word does several things. First and foremost it provides a history of the how and why things were done. Secondly in written form you have the ability to think about your audience and customize your communication specifically to your audience. Third, it allows you to expand on what the downsides are at that particular time.*
Asking why often is important! The reason the why about something is important, is because the why can change regularly. In all economies businesses are working to solve a problems for customers. Your work helps support solving this problem directly or indirectly, but it is important that you understand how your task fits into the objectives and key results for the company. By understanding the why of what you're being asked to do and how it maps to the goals of your organization it shows how much impact you have on the company's success. Furthermore, if you're not able to map the why to the company's objectives it makes the conversation easier when you need to say no. The five whys is a very good way to gain context and understanding on what you're working on at any given time.
Do things that are not work related. By taking time to do things that you enjoy, you can recharge your batteries, improve your mood and focus. Those items alone are great, but taking it a step further and trying new things or traveling can broaden your experiences. This is unique in the sense that it helps you gain different perspectives which can lead to better performance and a more enjoyable work experience.
Servant Leadership. Servant leadership is a leadership style that focuses on serving the needs of others, rather than on achieving personal goals. By adopting this leadership style, you can create a positive and supportive work environment, which can lead to better performance and a more enjoyable work experience. That sounds super generic and it is in many ways. But by putting the needs and desires of your team ahead of your own, you become the lever that can lead to organizational change.
Those are some of the items I learned in my first decade in the tech industry. I know that many more lessons are coming and I look forward to adding to this list then. Hope some of this viewpoint is helpful!