In this video, I want to talk about solving rational inequalities. What happens if you have a rational function involved in your inequalities? How do you go about solving it? Turns out the strategy we're going to use is the strategy that we've been using throughout this entire series. If ever you have to solve the inequality f of x is, say, greater than zero, well, the idea is f of x just represents your y-coordinate, y is greater than zero, and so if y is greater than zero, you're looking for those points which are above the x-axis. That is, we're going to solve this using the graph of the function, and what's the function in play here? It's the left-hand side. When you're solving these inequalities, you want to compare the right-hand side to zero, whether that's greater than zero, greater than equal to zero, less than zero, doesn't matter. Compare the left hand side to zero on the right-hand side, and so then the left-hand side becomes the function in play here. So we have x plus 3 times 2 minus x over x minus 1 squared. We want to graph this function. So let's think about graphing this thing. So what do we know about this function? Well, we know that if you look at the numerator, it is a rational function. The numerator gives us x-intercepts. So we have an x-intercept at negative 3, and we have an x-intercept at positive 2. When we put those things together, x minus 3 and x plus 2, notice that both of these have odd powers. Therefore, we're going to cross the x-axis when we get to negative 3 and positive 2. We also have a vertical asymptote sitting here. It comes from the x minus 1 in the denominator. So that sits between negative 3 and 1. So I'm just going to put a dash strut line right here. x equals 1 here. So in the past, as we've been working with equation, in a clause, we often solve the equation. Basically, solving the equation means we're looking for the x-intercepts. When it comes to a rational function, we have to look for where does the function go to zero, thus the x-intercepts. But we have to also look for where is the function undefined, because it turns out that a function can switch at signs in one of two places. A function switches at signs when we're at an x-intercept, because you can cross the x-axis to go from one side to the other. But you can also take the back door through infinity. And so you can switch from negative infinity to positive infinity. So it's important we pay attention to all the places where the function is equal to zero, but we have to also look at all the places where the function is undefined. These are the points which are going to be critical to solving these inequalities here. All right. So when it comes to x-1, though, the multiplicity there is even. So this is an even multiplicity. This is going to tell us we're going to touch infinity, not cross it. So there's not going to be a sign change there. The last thing to focus here on would be, I'd say, the in behavior. If we let x approach plus or minus infinity, then our function will be approximately the same thing as just the leading terms. We get x from the x plus 3. We get a negative x from them, 2 minus x. And then we're going to get an x squared from the denominator. This simplifies just to be negative 1. And this gives us a horizontal asymptote. So we get something below the x-axis right here. Now, if I was looking for the best graph in the world, I would probably ask myself, does this function cross its horizontal asymptote? It turns out for inequalities, because my horizontal asymptote is not the x-axis, I really don't care.  So that's a little bit of details I don't need. So what we do know is that as you go to the far left, you're going to have to get close to negative 1, which is negative. So our graph's going to have to kind of do something like the following, right? We connect these dots. We're going to have to get a picture like this. So as we go to the far left, we have to be close to our asymptote negative 1. We have to cross the x-intercept negative 3 because it has odd multiplicity. And then we have to go off towards infinity. We can't turn around and go down because that would require an x-intercept we don't have. So we have to go off towards infinity. So as x approaches 1 from the left, that means that our y will approach positive infinity. That sign's important. But then, since the x-intercept has even multiplicity, we touch infinity. So we're going to come back from the other side, go through our x-intercept, and then approach the horizontal asymptote right there. As we're close to negative 1. Now, it turns out that if I were to look into a little bit more detail, it turns out my graph actually does cross its horizontal asymptote and it comes back around. But that little nuance, that little subtle down the graph, doesn't make any difference on the answer to this inequality. So if I skip that step, I would be perfectly fine. So it's probably not worth our time doing such a thing. We now have a picture of our graph. And what are we looking for? We're looking for where are we above? Where are we above the x-axis? Okay? Well, you'll notice that the function's above the x-axis when we're to the left of negative 3 before we hit the vertical asymptote because it went off to positive infinity. We're also above the x-axis when we're between the vertical asymptote and the x-intercept there. And so when we put this information together, we're going to be above the x-axis from negative 3 to 1, union 1 to 2, right? So notice that the inequality is greater than 0. It's not equal to 0. Greater than or equal to 0 is not allowed here. So we can't allow our x-intercepts inside of the solution set because the x-intercepts give us a point where the y-coordinate is 0. We need to be greater than 0. 0 is not greater than 0. So if you have x-intercepts, you do not include them if you're doing greater than 0 or less than 0. You need greater than or equal to or less than or equal to 0 to include an x-intercept. On the other hand, what about the vertical asymptote? Vertical asymptotes will never be part of the solution set because our function f is not defined at 1 and 1, you know, undefined is not greater than 0. So we can't include it inside of the solution set. The vertical asymptotes will never be part of the solution set. Let's look at another example here. This time we have x minus 1 over x squared minus 4 is less than or equal to 0. So some things I can see already. If we're looking for less than or equal to 0, then I want to find the points which are going to be below or on the x-axis when I graph this thing. But what are we graphing? We want to graph the function f of x equals x minus 1 over x squared minus 4. As we learned about when we graph these things, we want the numerator and denominator to be factored. So we're going to get in the denominator, it's a difference of squares. You get x minus 2 and x plus 2. So this informs us about the picture and play right here. So things we need to be looking out for. There's an x-intercept at x equals 1. So let's just put that right here. x equals 1. This is going to be a odd multiplicity. It's a crossing. And then we're going to have vertical asymptotes at x equals 2 and x equals negative 2. So add those to the graph here. And this vertical asymptote right here at x equals 2. And we have this other one over here at x equals negative 2. Your picture does not have to be perfect. We just need to have an idea about whether we're above or below the x-axis. That's really what we're looking for here. Both of these multiplicities are likewise odd. So we're going to cross infinity at these points. I would look for some type of in behavior. So notice that as x approaches plus or minus infinity, our function will be approximately the same thing as just the leading terms. So you have x on top, you have x times x on the bottom. So just looking at these portions right here. So this gives us a 1 over x. So our function is going to look like 1 over x. And that's going to be a positive 1 over x. 1 over x, of course, it approaches on the right-hand side from above and it approaches from below on the left-hand side. So that's the in behavior we're expecting right here. There's going to be a horizontal asymptote on the x-axis. And if you want to, we can put some dashed lines here. Now if you're wondering, does my function cross the horizontal asymptote? It turns out I already have the information for that. The answer is yes. The horizontal asymptote is the x-axis and I know that I have an x-intercept. So that's the only place we're going to cross that. That's okay. So going from here, what are our possibilities? Well, like I said, we know that on the right-hand side, we're going to have to be approaching infinity. We have to approach infinity because that's how 1 over x acts. It'll approach as x goes to infinity. We'll approach y equals 0 from above. Well, that means we have to connect together. We have to go towards our vertical asymptote. We're going to have to get a picture that looks something like this. Just using the in behavior to get started. Then because we cross infinity, we're going to flip to the other side. Our spaceship wraps around the screen. And so we get something like this. We're going to then cross our x-intercept. So we crossed infinity. We're going to cross our x-intercept. We have to then go towards infinity. So there's going to be some type of inflection going on there. But we're going to then go off towards infinity again. Then cross to the other side. We then finish up our picture like so. And that gives us the in behavior we wanted. So I didn't even use a y-intercept or anything like that. Just using the behavior in your intercepts, asymptotes, and the end, we were able to determine the graph of this function here. So where is it? Where is it below the x-axis? It's going to be below the x-axis in this sector. It's going to be below the x-axis in this sector right here. And so what does that tell us about the solution? Well, so for the first sector right here, we're going from negative infinity up to that asymptote, which is that negative two. So from anything from negative infinity to negative two was part of the solution. Then we have a big jump because there's a positive region. Then we're going to go from one to two. I'm going to go from one to two in this region right here. Now you'll notice I put a bracket next to the one, and I put a parenthesis next to the two. Why the difference there? Well, if you look at negative two and positive two, these are vertical asymptotes. These are locations outside the domain of our function. Does not exist is not great. Does not exist is not less than or equal to zero because this is not a number. It's not comparable to zero. So the vertical asymptotes will never be part of the solution set. On the other hand, x equals zero is an acceptable wide coordinate. If you plug in x, sorry, if x equals one, you get y equals zero. If you plug in x equals one here, you're going to end up with zero, which is less than equal to zero. Equality is okay here. So the x-intercepts will be allowed. Those points on the x-axis will be allowed. So we put a bracket on the x-intercepts, but we will always put parenthesis by vertical asymptotes, just like we always put it by infinity or negative infinity, because those are not points inside of the graph. All right. So the next one right here, solve the inequality for x plus five over x plus two is greater than or equal to three. This one's going to be a little bit more challenging compared to the previous two because we're not greater than or equal to zero. We need to be greater than or equal to zero. So there's a couple of ways we could do this. We could take four x plus five over x plus two. We could just attract three from both sides like so. And then we could try to just add that together the fractions. And that's the approach I really would recommend here. You want to add together the fractions. So we're going to get four x plus five over x plus two. Then we're going to get minus three times x plus two and x plus two. This is really what you want to do. You want to add together the fractions. Don't try to multiply things too much. Otherwise, you might get a little bit confused with the graph here. So we're going to get x plus five, excuse me, four x plus five in the numerator. Distribute the three right here. We end up with four x plus five. We're going to get minus three x minus six over x plus two. This should be greater than or equal to zero. In combining terms, you're going to get an x minus one and then the denominator would be x plus two. And this is greater than or equal to zero. And then from here, we're in a position where we can start graphing this thing. So consider the function f of x equals x minus one over x plus two. What do we see about this function? It has an x intercept at one. It has a vertical asymptote at negative two. So we put that on the screen. x equals negative two. And then we also think about it in behavior as x approaches plus or minus infinity. Our function f of x will be approximately the same thing as the ratio of its leading terms, x over x. This gives us x over x, which gives us one. So our horizontal asymptote would look like y equals one. So we get something like this, y equals one. So starting at the x intercept, as x goes to the right, we have to get closer to that horizontal asymptote. So we're going to have to see something like this. At x equals one, of course, we have an odd multiplicity because the power is odd there. So it's going to cross the x-axis and go towards its vertical asymptote. At the vertical asymptote, we also have odd multiplicity. So we're going to cross infinity and then approach our horizontal asymptote. So our picture's going to look something like this. And so then, where are we greater than or equal to zero? We're looking for things which are above or on the x-axis. That's what we need right here. And so then looking for that, we're above the x-axis when we are to the right of one. And we're also above the x-axis when we're to the left of the vertical asymptote. We do allow the x-intercept because that's greater than or equal to zero, the y-coordinate is. So then we record our answer as negative infinity up to negative two. Union one, oops, forgot the number there, one to infinity. And so that gives us the solution right here. So we can solve, and this is, I honestly think the best way to solve these rational inequalities, solve them by graphing these things. Now, at the very beginning of this thing, I suggested that we move the three over and add the fractions together. If you wanted to, you could try to solve the equation associated here, right? So that's something I've always advertised that if you try to solve an inequality, you want to solve the equation. So you have 4x plus five plus five over x plus two, this equals three. We could try to solve the equation by clearing the denominators. You could also could think of as like cross multiply in this situation. So you get 4x plus five equals three times x plus two, right? So this would give us 4x plus five equals 3x plus six. This looks a little bit familiar when you combine like terms, you're going to end up with x equals one. So this does find the x intercept of the graph, right? You have to also look at the domain that x can't equal negative two. So what you could do from this information right here is you could proceed to just build a sign chart of some kind. This is always an alternative, right? Where you have a sign chart at, you look at a negative two and you have one. So we could do this without the graph entirely, but then we have to pick some test points. So we could be like, okay, I'm going to take x equals zero, I'm going to take x equals two, I'm going to take x equals negative three, plug them into the rational function and see what happens. The original rational expression, right? If you plug in zero into the original expression, you get five halves is greater than or equal to two, a greater than or equal to three. Well, that's not true. If you stick in two, you'll end up with, let's see, eight plus five is 13 over four. Is that greater than or equal to three? That one is true. So you'd grab that sector. And then for the other one, you plug in like negative three, you're going to get negative 12 plus five, which is a negative seven over negative one. So that's a positive seven. Is that greater than or equal to three? And the answer is yes. So you could solve this using a sign chart if you prefer. To solve for the sign chart, you have to figure out what makes the denominator go to zero. So you can see that from the original expression. Solve the equation to find the x intercepts and go from there. Personally, I like the graphing approach. I think we can get it all at once. And it's less error prone to as, as compared to this sign chart approach. But I do want to present as an alternative, if that's something that you would rather do to solve these inequalities.


T F N N headline news update of a spousal trap and yeah this is the Friday the 4th of February Tiger Financial News Network 11 a.m. Update Dallas down 286 at 34,822. This is a deep red candle after yesterday's and we're we've got this repellent zone you see this trendline right here this little mini channel just can't get above it by Tuesday Wednesday it's got to get back in and probably above it to about the 35,250 level that's a big move 600 points or more in the next couple of days we actually see that intraday sometimes within minutes so what we're looking at is the 34,700 level really needs to hold otherwise there's a test of the 200-period moving average of 34,567 now the s&p also down down 15 at 44 61 was trying to rally better he couldn't repelled right at the 14-period exponential moving average here the 44 55 ish areas intraday support otherwise we're looking at a test of 4406 that is the 200-period moving average and look at this up channel just it's a cell mode in the weekly chart it's way underneath this major up channel and we're looking at the resistance now between 4,5 50 45 50 and 45 66 on any big rebound well 45 4,600 would be really quite something if it can get there the meantime back at the ranch the QQQ which had a facebook smash yesterday and an amazon pop to this morning is only up 40 cents at 33 53 and 90 here it's really important by by mid week next week at least to attempt the 363 level it hasn't been there for a couple of days it just got to try for that cell mode in the weekly chart this is getting a little bit more serious iWM is very serious because it's been a cell mode for quite a while and now that monthly chart is starting to act very poorly so in February there has to be some attempt of getting to the 210 216 level whilst the Russell 2000 is in really serious trouble gold gold got smacked down after the jobs report this morning and now it's come back nicely it's unchanged at 1804 it's stuck in a range but the big thing is at what point do we see gold start to move into the 1828 area 1835 area if the dollar which should have been a trigger for it to move much higher i cannot get any upside activity it's a 95 55 most importantly crude oil is trading up sharply it's up 2.43 and you've got the TLT down sharply so yields are going higher this is important i'll be back for Larry Presidento's show i'm subbing for him today on the same amount of work but i'll be there at least to fold the hour i'll be back in a moment


going to make the AB guy freak out with how loud my voice is. So my name is Michael, as she said. My studies largely centered around music before I joined the Rails community. My undergraduate is in classical percussion and vocal performance. And while I was an undergrad, I fell in love with jazz. And for me, the appeal of jazz was it was improvisation, right? So we get to spontaneously compose music on the fly in the moment together. And they would like that immediacy of the connection to music and the moment, for me, is what was attractive. So I wanted to illustrate how some of the concepts of improvisation can be applied to the development team. But first, I want to show you some overwrought musician headshots.  So, of course, I did that. So I call this one the Jazz Messiah Pose. You can see how it showcases my absence of a chin. This one would have called Cool and Continent or the Squatty Potty Pose. I'm not sure how this sold me as a musician, but that was pretty funny. Variation was the Jazz Fraud Pose, holding my mallets like a bouquet of flowers. And of course, the Fabio. I look more like I'm trying to sell jeans at a Gap ad, but hey, that was getting me gigs, whatever. So ideally, what we're talking about here is the people that I'm hoping are in the room.  Maybe you're a senior developer who is trying to find ways of mentoring the more junior members of your team, right? You want to be able to coach the people on your teams so they can ultimately become better developers.  You're looking to improve the culture on your team. How can you get your team to work better together, to create more quantity and quality of committable code? So it comes down to what would an idyllic place to work look like. What would the idyll team be? You'd ideally have clear expectations, right? You'd know what you were doing on a given day. You would agree that what you're doing makes sense as far as the application or the business requirements concerns. You'd be like, I'm developing things that I know are gonna make a difference. You have a grip on the technical and business aspects of the thing that you're trying to create. So it isn't just simply here's a feature story that does some mysterious thing that the product owner wants. Like you have an idea of I know what this is supposed to do. Leadership is supportive ultimately. You have leaders that should work with you, not against you. So they're trying to support you in your efforts as a member of the development team and the development team as a whole. Conflict is resolved together, right? So people are not dictating to you like your code is wrong and you need to do blah blah and your attitude needs improvement young man and why are you acting like such a baby because you don't know what you're doing? Like you want people to resolve the conflicts that you have within the team and perhaps among the other teams and organizations that you work for, you resolve those things together. Then the values that your company holds and the values that your team holds are complementary. So if as you when you're working on a team, like you feel like the mission of the team is ultimately in alignment with the mission of the company. And ideally your work day is fun, right? You want to enjoy coming to work and doing what you do. You're free of unnecessary distractions or meetings that are not related to anything that you're doing at all and your work life and your personal life are complementary. So the values you have as a person line up with the values that you bring to work and the values that are inculcated to you on your team are somehow related. So what would it look like if you worked on a team where you wanted to find out what remove force all would look like on your GitHub repo, for example. So management. So you have little if any idea what you were supposed to do when you came into work. The user stories would be absent perhaps or you'd be thrown all around on any given day. When you ask for help or guidance from the management team, whether it's regarding your day to day work or working with other teams, you get meaningless platitudes or nothing at all. How many people work for really, really big organizations? Anybody? So have you ever seen those mission statements? This is our mission and it's like the vague business gobbledygook that really has no application to what you do. So we wanna sidestep all that. So leadership is also unsupportive. So it comes in two flavors. You're either a micromanaged, like somebody's over your shoulder trying to tell you what to do all day or there's no management at all. Like you wouldn't even know who to go to if you had a problem. Outside of your team, management does nothing to foster communication among other teams. So it's all like an episode of Game of Thrones or something, right? So your team is like the Lannisters and like they're fighting for turf with like this other team and like it's all about using you as a means to undercut somebody else. And it's not fun.  You either have nothing to do and are just bored all day or there's too much to do, the deadline is too short and these requirements have seemingly manifested out of thin air. And the only real interest leadership has in you is in your ability to produce. So you have no life work balance.  So we don't wanna work in a place like that. So what would be the ideal model for a development team? How could you have people that are actualized as individuals while contributing to a meaningful and productive team? Well, ultimately, that model could be the jazz band. So how does that work? So let's cover what a jazz band is in 60 seconds. You can think of a jazz band kind of like agile squads, right? You have the rhythm section that has their job and you have the horn section that has their job. There's three components really to music in general. So you have melody, harmony and rhythm. You can think of melody kind of like the core language, right? That is the meat and potatoes of what music is all about. It's like what you're using to communicate your message. Harmony is a lot like the framework, right? It's the thing that gives melody context. So kind of like Rails is to Ruby, right? You have a framework which allows you to communicate and interact with a user in this particular framework. Rhythm is kind of like DevOps, right? It's the thing that allows all of this to occur. So music is what we call a temporal art form. It happens over a period of time. So we have to consider time when we're being creative. The vast majority of jazz standards are using one of the three patterns I have there on the slide. So think of it kind of like convention over configuration. We have very specific templates that we use in jazz. Now, not all jazz music does this, but the majority of music that you're gonna hear in a particular, say, oh, Stan Kenton or whatnot, some of the great big band composers very much use templates like this. So typically you have a melody that's stated. People get to improvise on the solo. The melody is stated again. Everybody claps. Drinks are served. People dance, yada, yada, yada. Good times. So how can we apply this to our field, right? So company style guides. Now this goes not just beyond the style guides we have as a community, but like how many of you have style guides within your company? Are there particular, so we gotta show hands. We got some people that do that. So you have particular colors that you choose to use. There's particular, so there's a lot of different ways of getting work done, right? Maybe your team has picked one specific method, right? You use size over count or whatever you guys do. So I mean, I think we heard Justin mentioned it in the keynote today, right? That the idea of creating this level of consistency among our teams is going to ultimately, positively impact our work. So if I don't have to think about what colors I have to use or what particular way I have to do my job that thinking has been done for me, I can just focus on being creative and doing the things I wanna do. So you can think of it like freedom to versus freedom from. So I'm free from the decision making process now and I'm free then to be creative in my own way. And the idea behind that is as a group, we've all agreed upon kind of like we're all playing the same song. We've all agreed upon how we're going to move forward as a team and we all get to be creative in our own way to do that. So I think of it a lot like as a sandbox. Everybody playing a sandbox as a kid? My parents were very specific about the sandbox. You can do whatever you want, within reason, in the sandbox. You can play all day but here's the box in which you get to play. So company style guides are a lot like that. They provide that framework for us to be as creative as we want within a specific scope. Now, guidelines are not rules. There is a time and place to bend the guidelines. So like Charlie Parker said, you learn the changes and then you forget them. The idea being that guidelines are servants, not masters. We ultimately want to afford people the opportunity to be as creative as they can be but not stifle that creativity. So sometimes you gotta color outside the lines and that's okay if you have a good reason for it. Guidelines also serve as barriers to the unknown, right? So again, Justin had mentioned earlier in the keynote today, considering your future self. Like how can you be creative in a way where you're setting up the next developer or your future self, setting them up for success? So what do guidelines versus rules look like in the jazz world? Well this is what rules look like. You have very specific notes to play. You play them at a very specific time and this is exactly what it's gonna sound like which is very specific and rigid, right? So my attraction to the jazz world was I get to be creative and expressive right now in a very specific manner. So this is what guidelines look like in jazz. They provide you just the framework. Here are the chords that you are supposed to play within. You can play inside, you can play outside but ultimately this is the guide we want you to follow. So it provides just enough structure for us to be creative without stifling our creativity. So what do guidelines versus rules look like in development? So I would say this is what a rules-based user story looks like. As a user, given I'm logged in, I want to see our company logo as a 90 by 45 P&G file in the west pane of the nav bar with the nav bar color being this hex value with Helvetica font as the default text displaying the turn links in a highlight text which I've also provided the color for you with a maximum load time of 566 milliseconds. Who wants to develop a feature like that? I don't, namely because it's, I mean it's an exaggeration of course but it ties my hands as a developer because as far as I'm concerned like my job is to make the code serve the user. So if you look at the guideline-based one as a user, given I'm logged in, I want our company logo to display in the nav bar with highlighted links. So it's very explicit on the what I want to see which allows us the freedom in the how. How are we going to accomplish this goal? Because I would presume as developers we have more knowledge base when it comes to coding than our product manager does. They might disagree and that's okay but our job is ultimately to be caretakers of the code. So it provides less clutter and confusion, right? The guidelines base. I might have to make some choices while I'm developing that would might be contrary to a rules-based user story but if I have good reason I'm ultimately still serving the purpose of the user story at the end. So say you buy into guidelines, guidelines are great, Mike I think this is an awesome idea. How do I implement this on my team? Like what's the next step for us? So I would say we don't develop in a vacuum just like we don't solo by ourselves. So the key is be aware of your surroundings. Code to me is like a pebble in application lake, right? You drop your pebble in and it's gonna ripple through the whole application. So we need to be aware as we're moving forward how is my code affecting the ecosystem as a whole? So a great way to work with that is if you do TDD or continuous integration. Where I work, we're pretty stringent about anything you commit has to have a test. Anybody else work like that? Okay, a lot of us do. And continuous integration, well we use that too affords us the opportunity to I know I can submit my pull request and it gets peer reviewed and when it goes into the code base we have checks and balances that will make sure whatever I submit, whatever pebble I throw into the code base as it ripples through the application it's clear on how I'm gonna affect the rest of the ecosystem. Considering your future self, right? You can be very tempting to over develop things like if I'm thinking about the future maybe I'm gonna need this feature and if I need that feature I've gotta set up this module just in case and I gotta write this adapter in the event something else comes down. And we can tend to over develop in a sense. So to quote Russell Olson from Design Patterns of Ruby you ain't gonna need it. So the idea is you develop what you need right now because the freedom to develop also means freedom of being responsible for the next person in line. Again I think I heard Justin just say that very thing. While you're working are you considering the person coming up behind you? Are you considering your future self and try to develop in that manner? Listening is also important. So just like when I'm taking a solo in a jazz band I can hear the bass player, I can hear the keyboard player, I can hear the drummer and I'm aware of what's gonna be happening around me. So collective freedom means that the team awareness is even more important. Do you know what your coworkers are doing while you're developing? Are you aware if anybody else is touching the files that you're touching while you're developing your feature? So I know in my experience like I have come into conflicts when I'm not aware of a feature that somebody else is working on, we've both touched the routes file and now we have this like merge conflict we have to deal with which ultimately slows everybody down. So being aware of who is working on what among your team will also help you to be faster as a team and be considerate of those around you. So how does soloing work? So if I'm being creative in my environment what does that look like for me? So the soloist on their branch will say they would be driving the bus. They should feel as though the decisions I make will ultimately be supported by my team. Now that's not to say they're gonna cosine bad code but you should ultimately feel like I'm being supported by those around me. So you should also adhere to a style guide. Again this is where style guides can come very handy when it comes to your team. If I know ahead of time what the rules are or get more like what the sandbox looks like for this feature by the time my code goes up for peer review I've already answered a lot of the more nominal questions that would come up had I not done that in the first place. So comments on code. This can be a very touchy subject if anybody's ever committed PRs to open source. Feelings can get hurt sometimes. So how do we deal with that? I would say telling ain't selling. So we say that a lot in the education world. So as a teacher when I'm trying to get you to do something different I'm not going to tell you I'm gonna ask you the right question so you find the answer that I know is correct on your own. So how can we do that? So when we're peer reviewing each other's codes do you say to your coworker, no that method's wrong. Don't use a try block, use dig. Or do you say hey did you know that the method dig is around and maybe of a better use here? What do you think? Now we all, if you guys have ever worked with navigating objects dig is definitely a better solution than a slew of try blocks but the idea is you want your coworker to come to that conclusion on their own. To foster the creativity. Because creativity in itself is a very vulnerable thing. So time, how can we all be considered of the environment in which we work? So freedom implies vulnerability. Being creative is a vulnerable act. I'm taking this thing I made and I'm putting it out in front of all of you. So while we are working together in that manner it is important for us to be aware that there is some level of emotional attachment. Well I mean I'll say keep it for myself. I am attached in some way to the code that I produce because in some way I feel it represents me. So if people attack my code I can feel attacked sometimes. Now I know in my head my coworkers are not telling me I'm a bad person because I made some less than ideal choices in my poll review. But it can feel as though you're being attacked. So it's important for us to be aware of that when we peer review each other's codes. And then Vince won of course. Matt's is nice, so we are nice. Knowing your role in the ensemble. So if I'm the saxophone player I'm not gonna try to play a drum solo. Not my role. So what section of the team are you on? We all have our skill sets. Some of us are really good in the back end some of us are really good in the front end. So where do you naturally gravitate? So just like a big band there are particular skill sets we each have in parts of the stack where we gravitate.  So how can the leaders on the team how can your team lead or how can your manager encourage you to level up on some of the skills where maybe you're not as strong as you'd like to be and you can still make contributions to the code base in that way while capitalizing on what you're strong on. And then the contribution to your team has a lot to do with where you wanna go as a developer. Do you have any idea where you want your career to go? What do you wanna be doing next year? What are you gonna be doing three years from now? Five years from now? You what you do today and what role you play on your team today is ultimately going to be in service of those goals. Band leading. So one of my favorite band leaders is Duke Ellington. And the reason why is because when he wrote tunes he didn't write for trumpet three he wrote for Cootie Williams. So he wrote specifically for the people in his band. And that to me was a lot like servant leadership, right?  So how can we do that in our field? So we're leaders are very much stewards of the culture. So spotlight, so you ultimately want to spotlight your dev strengths and help shore up their less than strengths or their opportunities to grow. So potential and passion in my experience are far more important than skill. Skill can be taught. You can learn how to be a good backend dev. You can't really learn to be a passionate person. So passion and potential are important. Encouraging your strong players to mentor your greener players. This is a big tradition in the jazz field. The idea that I've been playing in the Basie band for 20 years and I'm rubbing shoulders with a guy that just got here. So how can we, the more senior members of our team be encouraged to mentor those that are younger and how can the junior devs on the team be open to that level of mentorship? That conversation has to happen because not everybody is welcoming to unsolicited feedback. I'm sure we've all been there once or twice. So encouraging that kind of culture on the team largely starts with team leads or with managers. How can you create a culture of mentorship on your team? So inevitably when we're working, things break, right? Creativity is a wonderful thing. The product of creativity isn't always great and that's okay. So how can we deal with failure? Part of dealing with failure is accepting failure. Now I'm not saying if you push a bad commit to prod and you break prod and we should be like, oh, you're learning, that's great. I'm not saying that. But the idea is creativity will yield failure sometimes and that's okay. Can you learn from the failed experience? You push code to a sandbox, you break sandbox. Okay, that happens. What did you do? How can you fix it and how can you learn from that experience? That means I'm not pointing fingers at you for breaking something. You did something bad. You made a choice. It wasn't the right choice. So how can we choose better next time?    If you don't want to admit it, that's fine, it's cool.  No, that's a hurtful thing to say, right? Now, that kind of relates to code. When you create this thing, sometimes the thing devs create is kind of ugly. It might work, but it's ugly. You don't say to that dev, man, that is ugly code. For the same reason why you wouldn't tell somebody their baby's ugly. It's something that they created. They think it's beautiful, they made it. So how can you deal with ugly babies? Kind of goes back to what we were talking about before. How, what questions can you ask about that ugly code that perhaps might bring that dev to a better choice? Say, oh, I see you used a beginning rescue end here. Why'd you do that? And let them explain it to you. And then maybe the explanation is they didn't realize there was a better way of doing that. So then we're back to asking again, did you know there might be a better way? How, what does that sound like? So I'm guiding the dev to the right decision without dictating what that decision is. Ideally, maintaining that spirit of creativity in the moment. My uncle Peter was an actor.  And this kind of relates to ugly babies. I am not my code. So what that means is when I submit code and it's bad code and people tell me it's bad code, that's not necessarily a reflection on me or my abilities. It's a comment on the choices I made in that moment. Just like when you're taking a solo and you play some notes that are not even related to the song you're playing. You might get some hairy eyeballs from the band and that's okay. But there are choices you made in the moment. And as long as we realize that, we can be critical of the choices and not of the developer. Because when you criticize the developer that ultimately impedes the creative spirit of that person. So now you're getting less code and more timid code from that developer. Also, don't touch the keyboard. Any keyboard touches in here? No keyboard touches, okay. Band leading do's and don'ts. So you bind into the concept of yes, my team is like a band. I want everybody to be creative and feel the creative spirit and create really interesting and rich features. How can I do that? So it comes from managing from a position of trust. You need to trust that the people on your team have the desire to create the best features they can. People don't push bad code because they're like, ah, you know what today, screw this guy. I'm pushing this bad code. We don't do that by and large. So one must trust that your team has the best interests of the code based on mind. When it comes across less than performant code, again, how can you ask questions about why the devs made the choices they made? Each one teach one. It's key. How can you, as a leader, encourage your senior developers or encourage your more seasoned members of the team to coach and encourage the less than junior members? That idea being there's kind of like an attitude of Kaizen on the team, right? Or continuous improvement. We are all about getting better and part of getting better is making mistakes. You're gonna make mistakes and that's okay as long as you make them once and you learn from them. So things you don't do. Creativity, like I said, is a very vulnerable process. People are attached to what they create.  Don't let your stars outshine the ensemble. This is key, too. We all have people that are very strong and can commit like the 10X programmer, right? We've all heard this legend of the guy that can push 10 times the amount of a regular programmer. There's stars out there and then there's people on the team that might habitually struggle. So make sure that you publicly praise and privately coach and kind of that is spreading love. Make sure everybody gets a chance to shine on the team in a way that they are capable of doing so. Creativity can also be messy and unpredictable. So we don't want to kill creativity with the sledgehammer of quality, right? How we wanna encourage people to be creative and make creative choices and make interesting code choices and features but we don't want to squash that while we inevitably have to kind of sand down the edges when it's required. So in summary, what can you take with you today? Trust, trust is a fundamental part of maintaining a creative atmosphere. I must trust as a team member, my team lead has my best interest in mind. I must be able to trust that my team member or my team leads and my senior developers are going to coach and develop me when I'm struggling. As a team lead, I have to trust my team is going to make the best choices they can with the information they have available to them and you should explicitly create that as culture on your team. Stewardship, so this talk is based on a book by a guy named Max Dupree and I'll put a link up somewhere called Leadership Jazz and he was a CEO of a furniture company for 30 years and he talked about steward leadership as a leader, as somebody in charge, the group comes first. It can be very easy for us as leaders to think about what's good for me. How can I run this team in a way that's good for me or feels good to me or provide feedback that I would want if I was receiving feedback? The concept is like the platinum rule. So I had a very brief career at Macy's. One of the things about being a musician is like you need a day gig to hustle all the time. So I was, I sold suits for like two days but through training they talked about this concept that I'll never forget, the platinum rule. We've all heard of the golden rule, right? Do you want to others as you would have them do you want to you? The platinum rule is do you want to others as you think they would like to have done. So what does that mean? So as a leader there are particular ways people want to be coached. Do you know what that is? Some people want to be coached like as if they're playing on a football team. That's very much my style. Like I was in the sports. Some people need a more delicate approach to that. Need a more consultative approach. And that's okay. As leaders we need to be aware of what those are. And then guidelines, style guides. I very much encourage this. Does your team have a style guide? Does your team know about the style guide? Do you regularly return to that style guide as a team to refresh yourself or to make different choices as far as the style is concerned? Do you have orientation for new developers? So that comes in two flares. I know when I started my new job they just gave me a laptop and said cool here's the app you're working on here's the list of features, go. I was like okay. And I just had to flounder until I figured it out. Which can be discouraging. So do you have an orientation process? Do you have a way of this is how our team does stand up. This is how our team works on features together. Do you, can you acclimate people on your team in that way? And this is all stuff that can be wrapped up through Kaizen. So thank you very much for attending. Very much appreciate your time. Enjoy the rest of your conference. What instrument did I play? So my undergrad experience was classical percussion and voice. So I was a opera singer on one side and I did all the orchestral stuff. When I went to graduate school I studied the vibraphone, which is what the flower of mallets in my hideous head shots was all about. So the question is if you're in a band setting a lot of times the lead singer gets all the credit and the backup band can feel some resentment. Is that right? Okay. So it kind of goes back to don't let your stars outshine your team. Same way you don't let your singer outshine the band. So I know when I've led bands that have had lead singers that get all the credit a lot of it is can you break off a chorus to let somebody solo? Can you drum solos do a lot? It's like 30 seconds and that drummer is gonna feel great for the rest of the night. So how does that apply to the team? You're gonna have people that have more of a supporting role on your team and people that are the seasoned rock stars. How can you offer the younger people an opportunity to shine? And then when they do their work, shot them out. That's like praise is free. It's free and it's one of the most valuable things you have as a leader. Hey, so and so just did this feature and it's great. Everybody check it out and then platform and stand up. That I'm telling you that has significant value. How the question is how do jazz musicians handle conflicts? Conflicts in what sense? Like personality or like while you're in the middle of making music? Okay, so personalities, right? In my experience, particular types of people, particular personalities like compliment or clash. So one of my heroes is a guy named Gary Burton. He's a jazz vibrato player. He told me once in a lesson there's a very famous jazz keyboard player, Kenny Barron. They just clash. The manner of playing just runs into each other. So a lot of times is can you, so for us, can you segregate the work in a way where maybe conflicting personalities or development styles don't bump into each other? So that's before the music starts. Say you're in the middle of playing and there's conflict. I want to play outside. The keyboard player doesn't want to support that. It kind of comes back to roles. So my attitude whenever I led a jazz band was the soloist drives the bus. If they want to play out, we play out. If they want to play inside, we play inside. So how does it relate to us? If it's my branch and my feature, I'm driving the bus. Now, we're different than music where it's very like ones and zeros. There's like better ways and not great ways. But it comes back to how do you, how do you bring that soloist back into the band? It comes back down to comments. Can you ask the right question to get them to make a choice that kind of gets back to where they need to be? That's kind of critical with junior devs, especially when they find a new method, right? I'll do this. Like where I work, we deal with a lot of APIs. So I found this method dig. Dig is great. I want to use dig everywhere. Well, maybe dig isn't the right choice for that thing at that time. So my team kind of had to like get me off the dig train for a second. And a lot of that was asking the right questions. You chose to use this method here. Why'd you do that? And normally when I find myself explaining why, I'll hear, oh, this isn't what I intended. Yeah, you're right, I should do something else. So the question is have I worked with either as a musician or a developer with somebody who doesn't seem to care about the dynamic of the team? Is that fair? The outcome. So they want to do whatever they want to do and whatever come out of the other side is like whatever. Okay. Musically, it kind of comes down to choice. I don't necessarily have to choose to work with that person, right? That's beforehand. Say we're in the middle of it. One of the most powerful things you can do in music to communicate, stop playing. So if somebody's taking a solo, I'm trying to interact and they're just not listening to what I'm doing, I'll just stop and let the absence speak for itself. Because if you find yourself playing all by yourself, it's just you and the drummer, you kind of have to ask yourself, well, what am I doing where everybody wants to stop? So how does that apply to us? If you're working with a developer that just doesn't seem to care about what anybody else thinks, wants to just push their code and bypass his peer reviews, is there a way where you can like quarantine that person? If you have that level of power or on the development team, maybe you don't comment on their code. So they're gonna find themselves like I feel very isolated from the group. Now, and that's just what happens.  And I don't know about you guys, but one of the attractions to this field for me was creating as a group. I'm a member of a team and as a team, we're building this thing and this thing is great. So if you find yourself no longer a part of the herd, a lot of people are gonna ask themselves why? And maybe that can be addressed. I think we are about out of time. So thank you again for coming. You'll see it on Confreaks and I would love to talk to anybody afterwards if you got any questions. So thanks again for coming.