{"id":6517,"date":"2022-09-19T16:05:50","date_gmt":"2022-09-19T08:05:50","guid":{"rendered":"https:\/\/slash.bravefactor.com\/?post_type=resources&#038;p=6517"},"modified":"2024-02-15T12:51:19","modified_gmt":"2024-02-15T04:51:19","slug":"9-tips-to-become-a-tech-lead","status":"publish","type":"resources","link":"https:\/\/slash.co\/articles\/9-tips-to-become-a-tech-lead\/","title":{"rendered":"9 tips to become a tech lead"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Have you asked yourself recently, \u201cWhat drives me?\u201d We all have a desire to excel in our lives, and reach a level of success that our sights are locked onto. Though often, we may struggle to find the path that leads us there. In my career, I have grown from a junior developer to mid, senior software engineer and tech lead position. Along the way to my current position I also worked on QA automation, DevOps, and solution architecture in addition to being head of engineering and CTO. I would like to share my experience herein with the goal that perhaps you can learn from it and gain some insight as to your path to professional success.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this article you will find 3 types of advice:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Two advices on behavior and motivation (Growth Mindset and Passion)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Five advices on how to build a career path and skills to consider (IT Star path, Technical, Product, Agile, and Leadership)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Two advices on how to accelerate your journey (Don&#8217;t aim to be the smartest person in the room, and mentoring)\u00a0<\/span><\/li>\n<\/ul>\n<h2>Growth mindset<\/h2>\n<p><span style=\"font-weight: 400;\">It all starts with a growth mindset. This is akin to making a lifestyle choice to be healthy; though for example instead of a choice to exercise, it\u2019s a behavior set you want to target. Changing your mind, the way you act and approach things will get the ball rolling. You can understand this clearly through the writings of Carol Dweck who lays out her case for the growth vs fixed mindsets.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Essentially, the growth mindset is highlighted by a focus on success. For example, challenges for the growth mindset oriented individual are not something to run from, but rather embrace and take head on as they offer the chance to improve and grow. Failure is not something you want to avoid or shun, instead welcome the opportunity it presents. Ask yourself, \u201cWhy did I fail?\u201d, \u201cWhat went wrong?\u201d and \u201cWhat could I have done differently, better?\u201d Failure is simply another form of experience and experience allows you to learn and improve. (Fail fast, learn fast; F.A.I.L. = First Attempt In Learning)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Software development and technology are extremely broad. The field is continuously changing and adding new technologies that require learning. To reach for something more in your career, a greater level of success, the industry demands growth from you. I found in my career that meeting this challenge head on with passion and an earnest desire to succeed will lead you to greater success!<\/span><\/p>\n<h2>Be passionate<\/h2>\n<p><span style=\"font-weight: 400;\">From a growth mindset it\u2019s easy to smoothly transition into the need for passion in your career approach. As you know, nothing in life that is worth working for ever comes easy; there are no free lunches. If you strive to reach the level of technical lead, you have to be passionate about it and willing to put forth the effort it will take. Naturally coupled with passion, motivation is key and in my experience, more importantly intrinsic motivation. Your company may offer you some financial incentive to succeed, but this extrinsic motivator has a short life when compared to your own personal motivators.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It\u2019s good when you begin this journey, and even while your mid journey, to take some time and ask yourself key questions. Queries like: \u201cWhy do I want to become a software engineer?\u201d, \u201cWhat was it that sparked my interest?\u201d, \u201cWhy am I driven to continually increase my ability in this field?\u201d, \u201cIs it the development challenge?\u201d, \u201cPerhaps the feeling of success when a project is completed, no?\u201d and so on. Some effort put into self-discovery of your driving motivators will help you in reaching your stretch goals and ultimately become a tech lead and go further.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">From my own journey, I can tell you my passion in the digital world began with my first Nintendo game. I couldn\u2019t stop thinking about how amazing it must have been to create such a product and how hooked I was on video games. Then my dad bought our first home computer, which drove me to take some computer courses to understand better how to play with this little magical box; as well, it got me to write my first Excel VBA Macro.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I became passionate about building interactive commands where I could see the results with my own eyes; e.g. &#8211; click this, and voila with only a few lines of code I made a box appear! From there I was irreversibly hooked, and set out to become a software engineer. As such, I made a decision to continue my study in computer science and grow my passion to build things from simple algorithms and ASCII games, to an ambition to build a Startup SaaS product and become an entrepreneur.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I continued to explore the path of technical excellence and experimented with different roles in parallel needed for building a product as a software engineer (DevOps, Solution Architect, testing automation, etc.). In time I also understood how important the team and the way of working are to a successful product, and started to discover new passions to explore on these topics. My passion continues to evolve and drive me forward.\u00a0<\/span><\/p>\n<h2>Create your path: become an \u201cIT Star\u201d<\/h2>\n<p><span style=\"font-weight: 400;\">Now all puns aside, I\u2019m not saying this is like becoming a rock star. But I would like to use this play of words (Become an \u201cIT Star\u201d) to give you an easy framework to help you remember and set milestones and goals to your career growth.<\/span><\/p>\n<h3>I-shaped<\/h3>\n<p><span style=\"font-weight: 400;\">Becoming an I-shaped first, means you want to focus on the depth of your knowledge. In that, you want to become an expert in one area or thing initially. For example, focus on mastering one programming language and framework; not only how to write a working code, but also what it means to write good code for this language and framework. Moreover, understand how the programming language works behind the curtain, what the coding paradigm is for this language, and what are the design patterns applied for this framework. Mastering one language will set you on the path to mastering others more easily.<\/span><\/p>\n<h3>T-shaped<\/h3>\n<p><span style=\"font-weight: 400;\">Then becoming a T-shaped means focusing on the breadth. In other words, after mastering your first programming language (the vertical line on the T), turn your attention to learning multiple skills (the horizontal line on the T) and become a generalist in software engineering with at least one speciality. For example, become a full stack developer, learn more about best engineering practices, DevOps, Cloud Infrastructure, Testing Automation, Agile, Security, AI\/ML, data engineering, and so on. You may not master all of them right now but you will understand all the important areas needed to build good software and see the big picture.<\/span><\/p>\n<h3>Star shaped (*)<\/h3>\n<p><span style=\"font-weight: 400;\">Then become a Star Shape. Usually we refer to it as an E shape or M shape, but I prefer Star shaped! Now I\u2019m aware that an asterisk is not a star, but let me explain my thinking. Imagine the asterisk shape, you can see clearly the five points that almost serve as branches that represent your multiple areas of expertise. In this, your abilities are becoming akin to that star! Continue to grow your expertise in those areas that you are most passionate about or that are needed to be able to work with other people to build great end to end software.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this path of becoming an tech lead \u201cIT Star\u201d career path, consider 4 areas to grow:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Technical<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Product<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Agile<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Leadership<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">At the beginning your focus will naturally be more on the technical, along the way allot some focus for the other three, and find the balance to continue to grow in these four areas.<\/span><\/p>\n<h2>Technical: aim for software craftsmanship<\/h2>\n<p><span style=\"font-weight: 400;\">It\u2019s not difficult to build a working code and be a developer, but aiming for a higher level requires working on your foundation. As mentioned above in the T shape, learning best engineer practices is key to reaching the level of technical leadership. You must learn to build high quality software that is maintainable, scalable and testable. Software is not a generic manufactured product that\u2019s often replaced within a year or two of purchase. A good software engineer can build a program, for perhaps a complicated requirement, that even a junior developer can read, understand and think: \u201cI can do this!\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In order to do this, you need to have a good technical foundation and know best engineering practices. Example of skills and experience you should focus:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Git<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Coding practices (Clean code, SOLID, Single Responsibilities, DRY, etc.)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Programming<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Testing<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Algorithm<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Data structure<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">DB and Data Modeling<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Documentation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Programming paradigm<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Design pattern<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Security<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Architecture<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">DevOps<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cloud<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Technology trend<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">This list is a reference from my experience. Of course, there will be some variance in your path if you decide to grow into a more specific technology path like AI\/ML, Data Engineering, Web3, etc., but I believe these core categories are applicable in general.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As you grow, you should aim to become the embodiment of the manifesto for Software Craftsmanship (<\/span><a href=\"https:\/\/manifesto.softwarecraftsmanship.org\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/manifesto.softwarecraftsmanship.org\/<\/span><\/a><span style=\"font-weight: 400;\">). As you likely know, that is: well-crafted software, steadily adding value, a community of professionals, and productive partnerships. All of this will lead you along your journey to Tech Leadership.<\/span><\/p>\n<h2>Product: how to build a valuable product<\/h2>\n<p><span style=\"font-weight: 400;\">It may not be obvious for your focus initially as a software engineer, but product skills become more important as you grow to a senior software engineer and tech lead. The different areas\/skills to focus on are as follows:<\/span><\/p>\n<h3>Product ownership<\/h3>\n<p><span style=\"font-weight: 400;\">The best way to build the greatest product is to have ownership and work with the Product team.<\/span><\/p>\n<h3>Technical excellence (product quality)<\/h3>\n<p><span style=\"font-weight: 400;\">Be able to decide the level of technical excellence to adopt for your product and your team; this connects back to some of the technical skills mentioned earlier as you grow to T and Star shaped. Understand and Explain the value of technical excellence for your product which could be another full topic.<\/span><\/p>\n<h3>Architecture runway<\/h3>\n<p><span style=\"font-weight: 400;\">Understand what an architecture runway is. Strategize the architecture runway of your product with the product owner or product team. Be able to identify and explain technical feasibility, and plan for its implementation during the product life cycle.<\/span><\/p>\n<h3>Compliance<\/h3>\n<p><span style=\"font-weight: 400;\">Understand that building a product is not only about features, but also compliances (platform compliances, Security compliance, Data privacy compliance, Industry compliance).<\/span><\/p>\n<h3>Product strategy<\/h3>\n<p><span style=\"font-weight: 400;\">The ability to understand the vision and the goal of the product. To understand the business value of what we are building. Build trust with the product team, and the ability to influence and make decisions together with the product team.<\/span><\/p>\n<h2>Agile: the way of working to deliver value<\/h2>\n<p><span style=\"font-weight: 400;\">Agile is the future, like it or not, but all software development signs point in its direction. Therefore, knowing Agile, and learning to work in that product management environment is a must. Agile will naturally enter your journey to becoming a tech lead. When that happens it\u2019s alright to start by \u201cdoing Agile,\u201d applying the framework, but it is more important to learn how to \u201cbe Agile\u201d, assimilating the values and mindset of Agile into your team practices. We could also write another full article on it and there is already a lot of literature around it, but below is a quick summary as a Tech lead to learn and master.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">First, understand why Agile is needed in software engineering? For those familiar with the Cynefin framework, Agile helps to work in \u201cComplex\u201d situations\/products, meaning a situation where there are unknown unknowns and emergent complexity. Moreover, the reality is building software in the digital world falls into the complex category of Cynefin framework.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Second, understand and adopt Agile as a mindset first. What is the Agile mindset? The values and principles of Agile are clearly laid out in the Agile manifesto (<\/span><a href=\"https:\/\/agilemanifesto.org\/\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/agilemanifesto.org\/<\/span><\/a><span style=\"font-weight: 400;\">). In summary I like to put forward 5 key concepts to build the most valuable product possible in your project context:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Adaptation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Incremental and Iterative<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Team and Collaboration<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Continuous Improvement<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Technical Excellence<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Then lastly, make sure to master practices and different Frameworks. How do they apply Agile values and principles? Be able to guide your team on how to make the best of the frameworks, not just do a meeting because it is part of the framework. For example, if you are using Scrum, do you understand the 3 pillars of Scrum (transparency, inspection and adaptation)? Why do we have 3 roles, 4 ceremonies and 3 artifacts in Scrum? If you cannot answer these, then it\u2019s time to do some exploring: <\/span><a href=\"https:\/\/scrumguides.org\/scrum-guide.html\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/scrumguides.org\/scrum-guide.html<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<h2>Leadership: be a team player, lead the team<\/h2>\n<p><span style=\"font-weight: 400;\">It seems only natural that I follow Agile with the importance of being a team player, and ultimately leading the team. Though before you lead, you must learn to play with the team and become a core member who strengthens and lifts the team\u2019s abilities. Along your journey you will grow much, becoming a technical guru of sorts, but never overlook the significance of learning to work as a team with a group of individuals.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As I discover, starting simple seems the best approach; that is, focus on being a team player to begin with. Once you feel comfortable and confident in your team ability and perhaps your position within the team, take the next step. \u201cWhat is that next step?,\u201d you ask. Take initiative inside your team, and lead when the opportunity presents itself. This is also the time to improve your communication skills and sharing mindset. Many activities can aid in your growth here, such as:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Facilitate decision making process<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Technical sharing sessions<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Facilitating a technical workshop<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Doing a meetup presentation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Doing technical interviews<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Building a technical community with team members (e.g. AI community, etc.)<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">This is to name a handful as the list goes on and on. Seize these opportunities to grow yourself and lead your team, even helping in the growth of your team members.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By becoming a good tech lead you will have other skills to work on:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Team Building Leadership skills: motivate, mentor, coach, create engagement, be goal oriented, recognize, give feedback, etc.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Strategic Leadership<\/span> <span style=\"font-weight: 400;\">skills: analysis and problem solving, facilitation, creative and strategic thinking, negotiation, understanding the big picture, the \u201cwhy\u201d and the \u201cso what\u201d, etc.<\/span><\/li>\n<\/ul>\n<h2>Don&#8217;t \u201caim\u201d to be the smartest in the room<\/h2>\n<p><span style=\"font-weight: 400;\">Be smart, but perhaps it\u2019s more appropriate to say be mindful of the situation and your surroundings. Being intelligent and smart is of course important, but don\u2019t aim to be the smartest person in the room. On the contrary you want to work with people smarter than you in some area. If you\u2019re the smartest person in the room, consider carefully how this will help you grow.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Always having the answer is not what you should be aiming for, rather working with people who have more experience. You have the rare occasion to learn from their experience as it can lead to your own personal growth well beyond previous levels. In my career I can personally attest to this as it has helped me grow much and I owe a debt of gratitude to those individuals I was fortunate enough to work with and learn from.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Moreover, Surrounding yourself with people who are more experienced and smarter than you can challenge you to raise your game, strive for a higher level. This can be an excellent motivator to accelerate your learning.<\/span><\/p>\n<h2>Mentorship<\/h2>\n<p><span style=\"font-weight: 400;\">Finally as you grow, increasing your skills and knowledge, your journey will lead you in the direction of mentorship. You might be thinking, \u201cOkay, but how does this help me grow?\u201d A valid question, but have you not considered the individuals who mentored you along your journey? I have experienced having a number of mentors in my career, as I\u2019m sure you will as well. And if not yet, don&#8217;t wait, ask people you admire to mentor or at least give you guidance. Mentors can enrich your journey and growth from a young developer into the tech lead you want to become; reaching for those heights is made much easier when someone can offer you assistance.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Looking back on my journey, I\u2019m grateful to those mentors who helped me become who I am today. Now in my position, I enjoy being able to give back and mentor young developers who are hungry to develop their skills and push for a higher level in their career. Giving back may sound silly, but it\u2019s not as it will help you to continue to learn new skills or refine your existing\/previous skills. Take your developer black belt to even higher levels! All this without even mentioning the feeling of having a positive impact and seeing your mentee grow!<\/span><\/p>\n","protected":false},"featured_media":11006,"parent":0,"template":"","resource-topic":[54,59,62],"resource-type":[43],"class_list":["post-6517","resources","type-resources","status-publish","has-post-thumbnail","hentry","resource-topic-agile-development","resource-topic-quality-reliability-engineering","resource-topic-team-performance","resource-type-articles"],"_links":{"self":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resources\/6517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resources"}],"about":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/types\/resources"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/media\/11006"}],"wp:attachment":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/media?parent=6517"}],"wp:term":[{"taxonomy":"resource-topic","embeddable":true,"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resource-topic?post=6517"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resource-type?post=6517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}