 I'm trying to make sure I get the right angle. There we go. What is going on everyone? Welcome to my channel. My name is Jossi Linge and I've been managing this hair as much as I possibly could. I did cut my hair or attempt to cut my hair one time. I did a pretty good job. The only problem is that I didn't blend at all. So it was literally just like bald and then, you know, a bowl. So it almost looked like I had a bowl kind of hairstyle. I'm not a barber obviously so I did the best I could and honestly I felt like that looked a lot better than an afro. Anyways, in this video I want to talk about the different types of career paths you have in software development. What I mean by in software development is think of more like an agile approach to software development where you have a dev team that has developers, quality assurance, aka software testers, a scrum master, talk more about that position a little bit later, a product owner, basically the person who owns the product that the dev team is creating and management. So before we get into the different positions, let's define what agile is. And I know you've probably heard that buzzword before, if you are a software developer or if you've been applying a software development jobs and seeing that within some of the basic qualifications or expectations they have for you if you join the team. Agile is basically the way you create and respond to change. It's a way of dealing with and ultimately succeeding in uncertain, turbulent environment. So that's like a summary of what agilealliance.org says what agile is. So instead of just working on an application and not doing any planning for the foreseeable future, you're actually planning your sprints. Two weeks of work where you're working on an iterable part of an application that could be released. It doesn't have to be released. You know what? I'm just going to put this phone down because I'm not good at the whole giving you all definitions. I'm just going to give you an example. So when I worked in Scrum, we had a Scrum master and they were in charge of making sure that our Jira board is up to date and we had stories in the right place. So they basically collaborated with the manager, senior software developer and a product owner to make sure that we're going in the right direction along with keeping track of our burn down, aka how much work we're getting done, our velocity, how much work we should get done within a specific amount of time. That way we can meet our deadline for release. Since we are on the topic of getting new skill sets and finding new career paths within software development, let's hear a word from the sponsor of this video and video series about software development and engineering Skillshare. Skillshare is an online learning community where millions of people from around the world come together to take the next step in their creative journey. With thousands of creative classes for creative and curious people on topics including software development, illustration, Scrum, project management, real estate, and the list goes on. The nice thing about Skillshare classes is that they are a combination of video lessons and a class project. So instead of just learning about something, you're going to take the skill sets that you learn and apply them to a project. Most classes are under 60 minutes with short lessons to fit any schedule. For example, if you want to learn DevOps, software engineering, Scrum, there are hundreds of scripts that thousands of courses that will help you get the skill sets you need to launch your tech career. One class I recommend to everyone that's interested in software development is JavaScript Toolkit. A cleaner, faster, and better code by Chris Hellman who is a senior developer at Microsoft. In this class you'll learn about the fundamentals of JavaScript, how JavaScript has evolved, and how to choose what kind of JavaScript developer or development you're interested in pursuing. The first thousand people that select this link in the description box will get two free months of Skillshare premium. For those of you all who want to take it to the next step, you can get an annual membership for less than $10 a month which is a great value considering the fact that Skillshare offers thousands and thousands of courses that will help you launch your next creative career. Once again, thanks to Skillshare for sponsoring this video. Now let's actually talk about the different software development positions you have. Okay, for those of you all who know you want to become a software developer, my recommendation is to figure out what part of the stack you enjoy the most. And there are really three different stacks. There's front end, there's back end, and then there's full stack. And the quicker you figure out which stack you enjoy programming in the most, the better programmer you'll probably become because you'll actually enjoy your programming projects and you'll feel fulfilled and purposeful in your job. Also, you're probably wondering why the scenery is different from the rest of the video and it's because I hated the software development edit that I had in this video so I decided to do that over because this is a very, very important part of the video because most of you all probably want to become software developers. If you find that you enjoy the visual aspect of software development, so you like building the UI, the front end, you have experience and HTML and CSS, you feel very confident in those skill sets or you feel that out of all the programming skill sets you have, you think those are the best that you have to offer to a company, then I would recommend pursuing a front end role. Front end development is the part of the website or application that the user interacts with. Everything that you see when you're navigating an application or a website from fonts to colors to navigations to menus and sliders, these are all combinations of HTML, CSS and JavaScript being controlled by your computer's browser. As a front end developer, it's a lot of fun, you get a chance to work with designers. I've also had experience working one-on-one with my product owner because they have like this product vision with these business requirements and then it's really nice to be able to turn or translate those business requirements and vision into a prototype because then you can easily talk to the developers about what the app should look like and how it should function because believe it or not, the user experience will play a huge role in how you build the architecture of the application. Front end developers are responsible for the website or applications, user facing code and architecture of the user experience. In addition to being fluent in HTML, CSS and JavaScript, you also should be familiar with languages like ReactJS, AngularJS, View or jQuery and there are a lot of front end jobs that require experience and knowledge in Ajax. This is a widely used technique for using JavaScript that lets the page dynamically load by downloading server data in the background. To learn more about front end development, I have a video that I posted about a month ago and if you select this link, it'll take you to that video. So if you're asking questions like how is it possible to build a website or an application, where's the data come from, how's the data stored. This is where a back end developer role comes into play. The back end is consists of an application, a server and a database. The back end developer codes and maintains the technology that powers those components that I just mentioned, which enables the user interface of the website to even exist. Python, Java, C++, C sharp are all programming languages that I make the server application and database communicate with each other. Along with .NET, you can use those languages to build an application and use tools like MySQL, OJS, Oracle and SQL to change or save data and serve it back to the user or the front end of the application. So if you enjoy manipulating data, you find yourself on leak code a lot or you enjoyed your computer science program or even if you enjoy object oriented programming or you just want to understand how on Earth a website works, back end development is a great route. And when it comes to full stack development, you kind of just merged the two together. I plan on making a video soon where I dedicate it to full stack development. You also have quality assurance and QA is a position for those who are interested in testing software. Quality assurance is more of a generic term. You have more specialized software testers. So you have penetration testers and you have test engineers. And test engineers are kind of like a hybrid QA and software developer. Quality assurance is a great way to get into the software development world. And the reason being is because there's no dedicated major to quality assurance. And I worked in Scrum. I didn't really meet too many engineers who were software testers. I really met people who just had random majors that had absolutely nothing to do with software development like physical therapy. If you are interested in software development, you feel like you're quite not ready, not ready. You're not quite ready to become a software developer. Software testing is a great way to get exposed to software development and to get your foot in the door of a company. I know people who have transitioned from quality assurance to software development and quality assurance to technical consulting. So it is something that's worthwhile. And for those of you all who are interested in coding, then you obviously have the software development route. If you want to be a software developer forever, that's definitely an option. You can become a senior developer and you can stay there. The nice thing about software development is you don't have to continue to go up the ladder. That's the cool thing about software development. There are a lot of people who have zero desire to manage people. And I'm one of them. Really, if you have zero desire to manage people and you want to just have your head down and write code and become the best engineer possible, that is a route where you can stay as a senior developer and you can either progress as a senior developer or you can, once you get to maybe an associate or let's just give them levels and let's say the level goes up to five. Let's say you're at like level four and you're happy with your salary and you're happy with your responsibility, you can stay there. Software developers make more than enough money so there's really no need to climb that ladder if you don't want to. I will say though, if you are a senior developer, you're not gonna necessarily be managing people but you will be managing the technical architecture of a product. And you won't be coding as much when you're a senior developer because that just wouldn't be fair. And for those of you all who are interested and maybe being a project manager and maybe you like software development but you know what, at some point in time you want to manage a project. You want to be the one that they ask, hey, where's this product going? What do customers want five years from now, two years from now? Or you're that person that wants to interact with the customers and you want to translate their needs into an application that meets their needs. Within Scrum, you can become a product owner. Scrum teams typically have one product owner and they have this iron fist and sometimes they abuse it. So don't have an iron fist, your team won't like you. By iron fist, I mean we need this now or we need this by tomorrow without even consulting with your dev team. That's very unfair to do to your team especially if you don't even understand or have the technical aptitude. I don't know if that's how you pronounce it but if you don't have the technical knowledge to know how fast that technical requirement should be complete. So you want to be firm in what needs to be done based on the deadlines you have but you don't want to be a jerk. Anyways, that went left really fast but for those of you all who are interested and interacting with people and not necessarily wanting to manage a team but you want to manage or own a product and help lead that development team into building the best application they can then product ownership is a great career path. And some companies call them project managers or product managers. The names vary. Sometimes a project manager can actually be the product owner's boss because they're managing multiple projects opposed to just one. And the next position which is a great position to get is called a Scrum Master. And I know some of you all are probably thinking like what the heck Scrum Master? I know these buzzwords and software development sometimes just make no sense. I have no idea where they come from but Scrum Master is a great position for those of you all who want to help optimize a software development team. Like maybe you see that your team is really unorganized and things are all over the place and there's no centralized location to view the stories that your software development team needs to finish or there's no organized way to complete work in a timely manner and you're still doing the waterfall approach for some odd reason. No idea why you would do that unless you're releasing every day but even then there's really no excuse. Scrum Master is a great position and in order to become a Scrum Master you need a license that costs about $1,000. And that might be a lot of money it's worth it because Scrum Masters get paid a lot of money and their position that's needed badly within the software development world, the tech world because most developers have zero desire to interact with other people let alone kind of be like a team psychologist. Not a team psychologist but you make sure that whatever smoke is going on between two different people or their smoke that someone wants with someone else you want to make sure that you blow that smoke out the room, out the team environment. Scrum Masters are actually great because if your product owner doesn't get along with your development team it's given you an example of product ownership not necessarily getting along with software development which is pretty common because they can bump heads a lot. Scrum Master can communicate to the product owner that you can't come in here with this iron fist with these crazy unrealistic deadlines because this is our capacity and our capacity will not change unless we get more resources or more developers or quality assurance testers. Scrum Masters also are the ones who schedule the stand up meetings that you have every day to keep in so the team can communicate what they're working on what challenges they might be facing or some roadblocks that they might be having and it's a good way to actually look at the board the JIRA board for example or Trello board and see what work needs to be done and they also schedule the sprint reviews which is a great, great meeting to have because you get a chance to discuss what went well in your, oh that's retrospective. Sprint review is more so used to show like what work you got done and you also demo some of the work you've done to your stakeholders but they also schedule retrospective meetings which are great because you get a chance to talk about what you wanna continue doing what you wanna start doing and what you wanna stop doing. They also schedule anything scrum related so you have like your sprint planning and you also have like your program incremental planning and all that stuff that also helps the team become more organized and aware of any vulnerabilities that could arise within the quarter. Another position is DevOps. The most boring position in software development or you know what maybe the most hated position in software development not that they hate the people who do it because the people who do it are prey and put on a pedestal but the job itself is just give me a second I just need to see what DevOps does because I hate it so much. I act like I'm oblivious to what they actually do so just give me a second. DevOps engineers work with IT so software development teams can release their software they work on the Jenkins pipeline so teams can really release whenever they want to and build microservices and Docker containers and all that stuff that just like goes way over my head. Think of the DevOps engineer as a deployment expert. They work with technologies like Git and GitHub, Jenkins, Docker, Kubernetes and other technologies that create automated development pipelines. So as a DevOps engineer you need to understand software development lifecycle and you understand automation and development tools that help software development teams release their product. All right so let's revisit the different software development jobs that are available. So it can be crystal clear as to which job as to what the functions are for each job and the responsibilities are for each job. You have the software developers who write the code. You have the QA testers who test the code. You have the product owners who own the product. They work with the customers and the stakeholders and the development team to build a solution that solves the problems that the customers and stakeholders have. And then you have the manager who basically oversees the team making sure everyone is happy and making sure that people are on the right career path. You have the scrum master who is the facilitator of the agile team making sure that the team is self organized being track of their Jira board and they manage the process of how information is exchanged. Last but not least you have a DevOps engineer that is in charge of releasing the software. They're the release chief and sometimes you don't even have a DevOps engineer on the team. They're usually a very limited role and there's usually like probably 10 DevOps engineers per hundred software, 300 software developers. So they usually disperse in different places but you will have a DevOps engineer dedicated to releasing your product. I hope this video was helpful and it brought clarity to the software development lifecycle and the different jobs that are available within software development. I'm just trying to expose you all to different jobs that are out there within tech because your computer science program is probably not going to do that because you're focusing on sorting. Hope this video was helpful. As always, give this video a like if you enjoyed it at all. Comment down below some of your thoughts or if you want clarity on other positions I can make videos about specific positions to give you even more clarity as to what they do and what you should do and what skill sets you need to become a DevOps engineer, a full stack dev, front end developer. Actually, I already have a video on that. A scrum master, a product owner and so on. Share with someone who you think might benefit from it and subscribe to the channel. If you haven't already, I would really appreciate that. As always, have a blessed rest of your week. I'm praying that your families and friends are staying safe and healthy. I'll see you all soon. Peace.