{"id":6840,"date":"2022-01-15T22:07:57","date_gmt":"2022-01-15T14:07:57","guid":{"rendered":"https:\/\/slash.bravefactor.com\/?post_type=resources&#038;p=6840"},"modified":"2024-02-21T10:45:42","modified_gmt":"2024-02-21T02:45:42","slug":"our-developer-path-at-slash-self-directed-career-growth-for-engineers","status":"publish","type":"resources","link":"https:\/\/slash.co\/articles\/our-developer-path-at-slash-self-directed-career-growth-for-engineers\/","title":{"rendered":"Our developer path at Slash: self-directed career growth for engineers"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Since 2018, Slash has been practicing a new approach to enhance the professional growth of our engineers. The Developer Path at our venture studio is a comprehensive framework, where software engineers progress in career by improving and expanding their skill set. As they get better at the skills, they move further on the Developer Path and reap the benefits &#8211; financial benefits, time flexibility, job satisfaction.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As individual engineers become more upskilled, we at Slash gain on three levels: the engineers\u2019 confidence grows, giving them both job and personal satisfaction; from the business standpoint, we get more work done; and frankly, it is more fun to do things if the team is effective. Motivation &#8211; check, results &#8211; check!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As Slash CEO Andries De Vos notes, the Developer Path at Slash is <\/span><i><span style=\"font-weight: 400;\">\u201cself-directed and holistic\u201d<\/span><\/i><span style=\"font-weight: 400;\">. What that means is that people get to choose how they want to direct their growth, and we provide different options for the engineers so that people are not all doing the same things. We accommodate for different levels of specialty and proficiency.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our framework has 4 major categories of skills: <\/span><b>Productivity<\/b><span style=\"font-weight: 400;\">, <\/span><b>Engineering<\/b><span style=\"font-weight: 400;\">, <\/span><b>Programming<\/b><span style=\"font-weight: 400;\">, and <\/span><b>Team Work<\/b><span style=\"font-weight: 400;\">. Each of them includes a number of <\/span><b>skills <\/b><span style=\"font-weight: 400;\">(competences), and each competence has 4 <\/span><b>levels of proficiency<\/b><span style=\"font-weight: 400;\">: <\/span><b>Apprentice<\/b><span style=\"font-weight: 400;\">, <\/span><b>Developer<\/b><span style=\"font-weight: 400;\">, <\/span><b>Senior<\/b><span style=\"font-weight: 400;\">, <\/span><b>Lead<\/b><span style=\"font-weight: 400;\">. When engineers first enter the framework, they become an Apprentice, and after acquiring all the required skills, they are considered experts and given the Lead level of proficiency.<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-5970 size-full aligncenter\" src=\"https:\/\/slash.co\/wp-content\/uploads\/2022\/01\/image3-1.png\" alt=\"Image3\" width=\"577\" height=\"348\" title=\"\"><\/p>\n<h2>Productivity<\/h2>\n<p><span style=\"font-weight: 400;\">We have 4 skills in this category:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>IDE &amp; Terminal <\/b><span style=\"font-weight: 400;\">&#8211; a development environment, which allows you to work effectively with command lines to get your work done. Apprentice can work with VIM + CLI Basics, Lead has VIM + CLI Level 3 down.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Using Git <\/b><span style=\"font-weight: 400;\">&#8211; Gits are version control solutions, and depending on the level of proficiency, the engineer will need to learn commands. The level of proficiency goes from simpler commands like clone, commit, pull and push to more complex ones like merge, checkout, and release version management.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>CI\/CD<\/b><span style=\"font-weight: 400;\"> &#8211; Think of it as a pipeline of continuous code development. Here, proficiency starts with understanding what it is and why it is needed. Developer is able to use the pipeline, Senior can modify it, and Lead can create a pipeline.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ability to focus<\/b><span style=\"font-weight: 400;\"> &#8211; A concept that is easy to understand and hard to implement. The ability to focus is a mental practice that helps developers stay concentrated on their work for long periods of time. Apprentices usually get distracted every 15 minutes or so, Developers are better able to focus but still need more than 10 breaks to talk and check their phones. Leads are a bit of mythical creatures in our age of distractions: they not only focus for very long periods, but bring other people back into focus too.\u00a0<\/span><\/li>\n<\/ul>\n<h2>Engineering<\/h2>\n<p><span style=\"font-weight: 400;\">We have been going by fours so far, but this category actually includes 5 competences:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>API <\/b><span style=\"font-weight: 400;\">&#8211; This is the competence of working with information exchange. Senior developers can create APIs and documentation, and Leads are able to design advanced types of APIs and testing solutions.<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone wp-image-5967 size-full lazyload\" data-src=\"https:\/\/slash.co\/wp-content\/uploads\/2022\/01\/image2.png\" alt=\"Image2\" width=\"834\" height=\"590\" title=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 834px; --smush-placeholder-aspect-ratio: 834\/590;\"><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Architecture <\/b><span style=\"font-weight: 400;\">&#8211; This skill is about understanding our frameworks and using them comfortably. At higher levels of proficiency, the developers are able to design architecture advice on common and complex systems (website, CRM) and infrastructures like cloud computing.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Data <\/b><span style=\"font-weight: 400;\">&#8211; The skills of understanding major databases (there are around 200 of those in the world). The level of complexity of data structures increases as the developer moves further on the path, from simple and complex MySQL\/NoSQL queries to mastering 3-5 of the 7 data structures (arrays, stacks, queues, linked lists, trees, graphs, hash tables).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Requirements<\/b><span style=\"font-weight: 400;\"> &#8211; In this category, Developers are expected to be able to easily understand technical requirements, Seniors can translate business requirements into technical ones, and Lead engineers support clients, provide advice, and elaborate acceptance criteria.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Security <\/b><span style=\"font-weight: 400;\">&#8211; This skill is a prerequisite starting from the Senior level. Senior engineers can translate security requirements into technical solutions, and the Leads are able to translate risk analysis into security requirements, and analyze the consequences of potential threats.<\/span><\/li>\n<\/ul>\n<h2>Programming<\/h2>\n<p><span style=\"font-weight: 400;\">Programming is what is usually called software development. It is a functional skill, while engineering is a more advanced skill as it typically requires more education. Programming is something you can learn, for instance, in a month or two in the case of JavaScript . Engineering is about conceptualizing and designing systems, not just writing code.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Coding paradigms <\/b><span style=\"font-weight: 400;\">&#8211; They range from markup (HTML\/CSS), required at the Apprentice level, to imperative\/declarative, object-oriented programming, and functional programming. Depending on the skill level, the engineer can work with 1, 2, 3 or all 4 of them.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Refactoring <\/b><span style=\"font-weight: 400;\">&#8211; This is the skill of cleaning code (via test automation, for example) and rewriting it when we think it has met its purpose and we need to refracture it to accomodate for the required architectural depth. Here, Apprentice is only required to understand what refactoring is. The competence levels of Developer to Lead are able to identify 1 to all 5 of bad practices in need of fixing. We call them code smells: bloaters, object orientation abusers, change preventers, dispensables, and couplers.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Testing <\/b><span style=\"font-weight: 400;\">&#8211; From the very beginning, our developers should be able to do basic code debugging and quality testing. Further on the Path, they learn to write unit tests, coach on code testability improvement, and design and implement high-level testing solutions like integration testing. These are all skills they can acquire at Slash within our Developer Path framework.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Algorithmic <\/b><span style=\"font-weight: 400;\">&#8211; This is a competence encompassing 8 techniques: conditions, loops, nested loops; sorting; searching; simple recursive; backtracking; divide and conquer; dynamic programming; and greedy. The Developer level is where you can use 3 of these techniques, and our Leads can use 7.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Programming languages <\/b><span style=\"font-weight: 400;\">&#8211; Here, it is about choosing the right programming language. As usual, we ask the minimum from our aspiring Apprentices, and more upskilled developers should be able to do HTML5\/CSS3, Python, Java, Javascript, and PHP.<\/span><\/li>\n<\/ul>\n<h2>Team work<\/h2>\n<p><span style=\"font-weight: 400;\">This category is more about personal development, although it does include skills necessary for professional growth.\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>English <\/b><span style=\"font-weight: 400;\">&#8211; We require proficiency in English, measured by the internationally accepted certificates. The starting point is TOEIC 650, and our Leads are expected to score 7 average in IELTS.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Agile development <\/b><span style=\"font-weight: 400;\">&#8211; Slash does not require prior knowledge of agile development methodology. You can learn it with us! It becomes a matter of practice to learn how to break down tasks and estimate their duration, secure team members&#8217; participation in the ceremonies. In the later stage of progress in this competence, you will be able to coach the team and help the others to improve the quality and efficiency of their work.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Leadership <\/b><span style=\"font-weight: 400;\">&#8211; You do not have to be a born leader. Leadership is not only about personal traits, it is about attitudes and practices that enable you to take care of your team. We provide guidance for our Apprentices, and when they reach the level of Developer, they are able to understand tasks on their own and take\u00a0 responsibility for delivering the tasks. Our Senior developers are able to provide personal guidance to team members, and the Lead developers take the responsibility for entire projects and mentorship and empowerment of whole teams.\u00a0<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone wp-image-5968 size-full lazyload\" data-src=\"https:\/\/slash.co\/wp-content\/uploads\/2022\/01\/image1.png\" alt=\"Image1\" width=\"836\" height=\"588\" title=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 836px; --smush-placeholder-aspect-ratio: 836\/588;\"><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Communication <\/b><span style=\"font-weight: 400;\">&#8211; No one can argue against the importance of this skill. From pitching your ideas to fully engaging in discussions, this competence is something we help to build. The Slash framework focuses on enabling developers to explain ideas and opinions clearly, make sure they are understood correctly, and explain projects of any complexity to stakeholders in a comprehensible way.<\/span><\/li>\n<\/ul>\n<h2>How do we measure progress?<\/h2>\n<p><span style=\"font-weight: 400;\">We have internal assessment, of course, external tests, and we get extensive feedback from our clients. All across the four categories, we follow the development of our Apprentices and learn from them what they think about the experience.<\/span><\/p>\n<h2>Do I have to stay at Slash forever if I start the path?<\/h2>\n<p><span style=\"font-weight: 400;\">Absolutely! And you sign the contract in blood (haha). On a serious note, as we provide resources and mentoring, as well as more job satisfaction and productivity thanks to our development framework, it is very beneficial career-wise and for personal development, even if developers choose to move away from Slash. Besides, our framework is organized in a clear and structured way, so developers can measure their progress themselves and have a good understanding of how much they have grown.\u00a0<\/span><\/p>\n<h2>What\u2019s next?<\/h2>\n<p><span style=\"font-weight: 400;\">Currently our team is willing to move from software engineering to <\/span><b>software craftsmanship. <\/b><span style=\"font-weight: 400;\">Software craftsmen are people that are really best in class. We will evolve this framework to enhance our ability to become craftsmen, and that means adding more dimensions, more skills, and an extra level of proficiency. We are big supporters of the learning culture &#8211; the <\/span><i><span style=\"font-weight: 400;\">\u201ccan do, can learn, can share<\/span><\/i><span style=\"font-weight: 400;\">\u201d attitude. We want our developers to grow while they are at Slash.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We hope this has been informative for anyone who considers becoming a developer and starting their career at Slash. Let us know what you think!<\/span><\/p>\n","protected":false},"featured_media":11658,"parent":0,"template":"","resource-topic":[62],"resource-type":[43],"class_list":["post-6840","resources","type-resources","status-publish","has-post-thumbnail","hentry","resource-topic-team-performance","resource-type-articles"],"_links":{"self":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resources\/6840","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\/11658"}],"wp:attachment":[{"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/media?parent=6840"}],"wp:term":[{"taxonomy":"resource-topic","embeddable":true,"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resource-topic?post=6840"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/slash.co\/wp-json\/wp\/v2\/resource-type?post=6840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}