So, Coby, I'm sorry, I'm a baser. You're gonna have to follow me. My name is Nick. I'm N-Means on Twitter, if that's your thing. This is my city, and it's the one you're in. Like you said, I build stuff at the WellMatch. I get to pair all day long, remotely, with some really smart people working on really hard problems to try to have a health care a little bit better. And I'm gonna be talking really fast to have a lot to cover, so I apologize. If you'll think back with me a few months, there was a big kerfuffle in the Ruby community. DHH got up at RailsConf and told us all how bad TVB was. But if you were listening, his talk was actually about more than that. The title of his talk was actually Writing Software. And he spent a considerable amount of time talking about how he'd spent most of his career not feeling much like a computer engineer, but like a software writer. So I got me thinking, what if we took that way too literally? Well, we were hoping to replace our rulebook with something that it pertains to writing. And there's no better choice than Strunk and White's Elements of Style, written by Cornell Professor William Strunk in 1918 and expanded by his former student, E.B. White in 1959. Yes, that E.B. White.  There's an illustrated version if you like your grammar rules with pictures. There's even a book about the book. That's how important this book is. People have written about the process of writing the book. If you're looking for a book of rules on English prose, Elements of Style is your book. But what does that have to do with code? I'm glad you asked. So keep Ruby weird. I want to introduce you to a long lost friend of mine, shippingutilities.rb. It's part of an e-commerce platform that I wrote. It was my very first Ruby and Rails project. It shipped in Rails 1.1. And there's something that you should think anytime you see a class with utilities in the name. So take a look at this thing. That is two point font, for reference. Like I said. Some statistics. It's 427 source lines of code, which is lines that are neither comments nor whitespace. It's got a flage score, which is a measure of relative complexity of 561.1, which is pretty considerable. It's got a flage score of 70, which is a measure of duplication. Not terrible, but it could be better. And code climate rightfully gives it an F. And if you look at this first method in the flawed response, it's a 120.7. That is 21% of the complexity in this entire class rolled out of the one method right here. So what should we do with it? We should refactor it, right? Except that we can't.  The thing about this is it's false on the cover. Because refactoring is not a prose concept. You don't refactor text. So we have to dig into strong and white and find a basis to start working on this at all. Rule 55, revise and rewrite. Revising is a part of writing. Few writers are so expert that they can produce what they are after on the first try. Quite often you will discover on examining the completed work that there are serious flaws in the arrangement material, calling for transpositions. But that doesn't really tell us how to get into this code. It doesn't give us any work practical to start. So let's find a practical rule. 5-3, work from suitable design. Before beginning to compose something, gauge the nature and the extent of the enterprise and work from suitable design. Well, in order to do that, we kind of need to know what this code does. So let's talk about what build shipments does. Let's say you got a shot in the cart. We've got a jacket in there that's in stock in our warehouse from Vendor. We've got a jacket in there that's in stock in our warehouse from Vendor. We've got a glove that's a drop ship from Vendor food. Now drop ship just means that your vendor ships and drive to your customer. It means you never handle it in your warehouse. And then we've got a helmet that drops ships from Vendor bar, a different vendor. So we could take these three items and we could break them up into three shipments, but that means that our customer pays three shipping fees, which they're not happy about. So instead let's consolidate the first two since they're from the same vendor. Let's just drop ship them. Well, but what if our customer's a real cheeskate and just doesn't want to pay for two shipments? They don't want to pay for one. Well, we can order all the things into our warehouse and ship it that way. That's what this mess does. All of the logic for all of that that it just took me about a minute to explain isn't this code. So we need to get it to a suitable design so we can even work on it. Right now it's buried in that 427 lines of code where we cannot possibly reason about it. So we need to take it out of that environment, put it in its own class, give it an initializer and unfortunately we have to bring its friend with it because it doesn't know how to do its thing without great group if necessary and insert. Great method, right? And then let's add a test because this code, like any good code written by a PHP developer writing this first review, I had no tests. And of course it fails. Why does it fail? Our initial likes constant Rails default logger. How many of you remember using that? So let's look at this thing. Where are we using Rails default logger? Well, everywhere. Our production code is riddled with trace debug statements. So let's go. All right, so let's check our test now so you can see it's running. No, still exploding because we have uninitialized constant ship and builder item which brings me to my favorite line in this whole class. And it is a line so nice that I used it twice. So let's look at what it's doing. It's two, not one, but two nested active record queries inside a ternary predicated on a de facto object type check. Okay, real tall. All right, so let's see what Strong and White tell us about that. Do not take shortcuts at the cost of clarity. Many shortcuts are self-defeating. They waste the reader's time instead of conserving it. The one truly reliable shortcut in writing is to choose words that are strong and sure-footed and carry rears on the way. So let's see what this line is actually giving us. Let's see where we're using the output in the class. There's kind of two clusters of it. There's a good reason for that because it's in two legs of a conditional. So let's take that top block and zoom in on that where we can actually do something with it. First thing I'm gonna do is take this line, change it from a ternary to an if then else, because that lets me do this, you're welcome. Now let's turn down the noise and only look at the lines that mention item. Those ship status symbol lines of their lookable suspicious. So I'm gonna ignore them for now and move on to easier things to deal with. The story D line again has an object type check and a ternary because I really liked that construct apparently. And we need to get rid of that. So what's it doing? It's checking to see if the item is an instance of the item model and if it is, we wanna reach through item into product and get the product store ID. Otherwise for some reason we wanna return one. The good news for us is that we don't have to care about this. We can take our double down here, teach it how to respond to store ID and that lets us take this line and call it directly on our line. Now if this was the real world, I would have to reach down into that object and teach it how to actually do that, but this is not the real world. This is a refactoring talk so I'm gonna pretend that other class doesn't exist. And we can move on to the next line. It's the exact same change. Now we've got another line and you may be noticing a pattern here to the changes that I'm making. Well it turns out Strunk and White has some advice on that as well. Rule 219 tells us we should express coordinate ideas in similar form and pay attention because this is a rule that we will be falling back on repeatedly in this refactoring. This principle, that of parallel construction requires that expression similar in content and function be outwardly similar. The likeness of form enables the reader to recognize more readily the likeness of content and function. So things that we express similarly are easier for us to understand because you understand it one time, you understand it every time. So let's take this line and it turns out we can apply the exact same change. Go down here, teach our double how to respond to that message, go back up here, put the call on the order line item and we're good to go. Now let's look at ship status symbol. Let me tell you what this is doing. This first line we call ship status symbol for quantity on item because say the customer wants two of something. Well we may only have one in our warehouse. So if they order one, great it's an in-stock shipment but if they order two then we've got to drop ship it to them because we don't have one. So once we figure out the appropriate ship status symbol we have to look and see if it's either of these specialized in-stock statuses either close out or something that we only ship from our warehouse stock. If it is we want to change that to be the main in-stock symbol to simplify. Then we go down here and we hang it on the same open structures everything else and shove it into the line item, right? Turns out we can apply the exact same refactoring again. We can teach our double to respond to that message, go back up here, make a change and that lets us get rid of those lines, right? And so now if you look at this block of code we're no longer referring to item anywhere in this block. So that lets us hop up here and get rid of that too. No longer need that, put it back in our class, look at our tests, hey we're passing but how can that be because we still have this other line that references the item class? Well clearly we're not testing the other leg of our conditional, we've got to go back in our tests and add a test for the other leg of the conditional there's the failure we expect. Well the good news is the only message that we're sending to item here is shore ID and we're sending it twice for some reason but we're not going to worry about that for now. Because we've taught order line item how to respond to that so we'll call it directly an order line item we can delete this code now and that gets our test passing. Now we're close to a suitable design but we're not quite where I would like to be and let me tell you why that is. Let's say we instantiate ourselves, new ship and build and we pass it a couple of order line items. It does its thing and immediately returns two shipments to us. We didn't ask for any shipments, we just instantiated the class that seems kind of odd to me, it feels funny. Not quite obvious enough. So let's hop on our test and change our API and our test so we can let that direct our class refactoring. While we're here we're going to grow up this test and make a check to see if we're actually getting a shipment array back with the right number of shipments and the right type of shipment but most importantly we're changing the API of our class where we instantiate the class and then call build shipment directly. Do the same thing with this test, two failures just like we would expect. So now we can go into our class and make that change. We want to take order line item and consolidate and make the matters. We want to instantiate them in our initializer. We no longer need to pass those arcs in because they're stayed on our class now. We don't have to pass them around. So we get rid of them here, get rid of the build ship that's called here, that fixes our test and our API is where we want it to be. Now I have to ask you to forgive me for what I'm about to do here. I'm going to wave my hands and finish up our tests. And the surprise, they're all passing, great. If you would like to see how to do this, I would highly recommend that you take the time to watch Katrina Owen's therapeutic refactoring talk. She has a very patient explanation of how to take legacy code, wrap characterization tests around it and then refactor it. I on the other hand, what little hair I have on my head is on fire right now because I have a lot of code to get through and I don't have time to show you. So let's look at our class again and figure out what to do next. We've, we're to the point that I think we're to a suitable design. We're to a design that we've got tests around us we can actually go in and change the code confidently. So we need another shrunken white pool to help us figure out where to go next. This is probably the most famous of them all, 217 omit needless words. Bigger's writing is concise. A sentence should contain no unnecessary words. A paragraph, no unnecessary sentences. For the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts. So let's hop back in the code and see if we can find anything unnecessary. Well, turns out we were working with something that's pretty verbose just of how we don't even realize it. It feels pretty verbose to be creating an inline object here that we're only using in one method. We've created this line item, open the struct type thingy and we're using it to drive this class. Oh, we don't want to do that. The problem is one of these lines is still not like the others. We want to express coordinate ideas in similar forms so we need to take that line and change it to a call on order line item. Now we've got to notice that something interesting has happened. Our tests are still passing, but if you look at the left, all the attributes we're setting up on this open struct and then look on the right, all the things we're calling on order line item, they all match verbatim. Except for this one line that lets us reach through and access the original object, but we can refactor that. We're not worried about it. So now that that's the case, now that we've taught our object to match the duct type of this weird open struct thingy that we're using in this method for some reason, when you're rid of it, we don't need it anymore. So now line items just equals order line items, simple as that. And we'll change this one call and let's see if our tests are still passing. They aren't. So we just got rid of seven lines of completely unnecessary code, but we've still got more unnecessary words. We've got two variables here with the same value. There's no reason for that. So let's take them. Let's take it, move it up here, change order line item to line item on our class adders. We can get rid of this line altogether. This block down here is still referring to order line items, but it's just reading the adder. It's no big deal. It's just the name change, simple switch, and we're still passing. All right. Now I know you can't see this. So take my word that there's nothing obviously needless left. Everything's doing a job. A lot of it's doing it far too verbosely, but it's all still, it's all doing a job. So what's next? 213, make the paragraph the unit of composition. This is where we get into sort of the meat of the refactoring. A subject requires division into topics, each of which should be dealt with in a paragraph. The object of treating each topic in a paragraph by itself is of course to A3. So if our methods are paragraphs, build shipments is a really long paragraph. So let's hop into it. Let's see what's going on here. If the consolidate flag is false, we do this stuff. If it's true, we do this stuff. That's the entirety of the method and those two branches of the condition. Well, those are two obvious paragraphs that we have to work with. So let's start moving them out. Let's take the bottom conditional leg and make it its own paragraph called build consolidated shipment. We'll replace it with the method call up here, check our tests, oh, we broke something. I'm defining local variable or method shipments. So we're calling a local variable and build consolidated shipment that we define of in build shipments. Well, the easy way to fix that is just to elevate it to the class. We'll take it up here, make it an adder, assign it the initializer, and we're good to go. So now let's take the top leg of the conditional and make it its own paragraph as well. So we'll do that. And you'll notice that all of a sudden, build shipments is looking a lot clearer. It's a lot easier to understand what's going on. Our tests are still passing. We've got a much clearer story, but we've sort of just taken all the junk off the cabinet but the junk warrior. We still have to address this. We can't just shove it out of you. So let's zoom in on this code and see if we can figure out what in the world it's got going on. There's three paragraphs embedded in here, three separate topics. First off, we built this line items by symbol hash. Which essentially gives us all of the line items we've got divided up by shipment type. The second giant block actually has a helpful comment in it for a change. Thanks, past me. If we've got us some end stocks and some drop ships, let's see if we can do some consolidating. It only makes sense to consolidate if we can completely get rid of end stocks. So if we can take all of our end stock items, assign them all to a drop ship shipment that we're already gonna have to make and then we wanna consolidate. If not, we don't wanna do it. And then we've got this third block that just takes all the line items and assigns them to shipments. So let's take this first block and throw it to a new paragraph. So that's great. Our test passed. We didn't have to do anything to change it at all. We just had to move it. But it's still pretty gross. What is that? Shrunk and White tell us about that. Rule 216 uses a definite specific concrete language for the specific to the general, the definite to the vague, the concrete to the abstract. So let's see if we can make this more concrete. Well, the first thing we can do is take it and make it only return while we're asking it for not an entire hash of junk we don't need. And then once we do that, we can go up top and we can change this hash access to a method call. But that's still not that much clear, not that much more concrete. What if we could do that instead? Well, try to know that we got this method down below. It's trivially easy to do that. We just set up an in stock items method. We can change all these calls to in stock items. We do the same with drop ship items. And we've had a little herbosity at the bottom, but our main method is more easy to read. It's continuing to get better and our tests still pass. So now let's take this block and see if we can figure out what in the world's going on here. This is the gatekeeper line. This line checks to see if every in stock item that we've got has the consolidatable flag set on it. And if we do, then we want to take those, all our in stock items and change their ship status to drop ship. While we're here, let's take this bottom line and make it a little bit better. Skipped a few, running short on time, sorry about that. So this top block, as it turns out, is just a conditional to see if we can convert all the in stock items to drop ships. All that junk is just a conditional. So let's move it to its own paragraph. Move it back up top. If consolidate to drop ship, let's change all of our ship's statuses to drop ship. Much more readable, much better, tests still pass. But we can still make this better. It's still not obvious what's going on. Let's take this bottom line and let's change it. It's checking to see if all of our in stock items have a consolidatable flag set. Well, let's reach into the Ruby standard library and see if we can find a better way to express this. This is a really terrible way to express this. The Ruby standard library is the software developer, the Ruby developer is equivalent of a vocabulary. So the more of the Ruby standard library that you know, the more expressively you can write Ruby. And there's a much better way to write this. If all of our in stock items are consolidatable, return true, if not return false. So let's take this line and do the same thing. We can use any up here instead. So we're no longer checking to see if this count is greater than zero. We can just check to see if we have any drop ship items that have the same vendor ID as the in stock item we're currently looking at. So let's continue refactoring. All right, so we don't want to do anything unless all of our in stock items are drop ship. We've got that condition buried in the method. Let's take it and move it up to the very top. It seems important. And we want to say what's important to us at the very top of our methods. So let's elevate that up. And if all of our in stock items are drop shipable, we'll carry on. If not, we'll return false. Let's hop in here and we can get rid of the condition out here. We don't need it any longer. In fact, we can take this all and make it a one liner. But can we do it once instead of iterating over all of our items? Let's see. If we take the vendor IDs around stock items, subtract out the vendor IDs of our drop ship items and that set is empty, well then we've proven to ourselves that the vendor IDs of in stock items are a subset of the vendor IDs of drop ship items. And that one line replaces this five lines of junk. So we've got a much clearer method there now in our test pass. So there's still more work to be done here. There's still more that we can do. We've done something very unintentional here. We've made this method quite a bit more confident as it turns out. So we can go up here to the top and look at this conditional. We don't need it anymore because our method down below is not gonna do anything unless all the conditions are met. So we can actually get rid of that conditional all together. It just goes away and our test run and pass. So now let's take this line. It takes our in stock items and converts them all to drop ship if consolidates drop ship is true. But it's not obvious what's going on just from looking at that line. Let's give it a more descriptive name so we can figure out what's going on. Stick with that concrete language. So if we give it that name, we can go back up top, make that a one liner. Now we wanna consolidate the drop ships if the condition is true. Easy, much more understandable. This still sticks out like a sore thumb to me. It still looks terrible. So we'll take it down, move it down below, make it its own method, assign items to shipments, move the method name up above and suddenly build shipments by ship status as a two line method that consolidates to drop ship. If consolidates drop ships is true and assigns items to shipments. Our test still pass. So that's great. We still have a couple of methods here though that stick out to me. If you do the squint test, you can see a couple of methods up top that don't quite look like the rest. So we still have some work to do to express everything in coordinate form. Let's change them. We'll zoom in on them to start with. Let's look at build consolidated shipments. It's doing the same thing as build shipments by ship status, the exact same thing but it's doing it very differently. What's it doing? It's assigning every item to a shipment but it's hard coding the consolidated flag instead of iterating over the items, changing all the ship statuses and assigning to shipments. So let's make these do the same thing. Let's express them in coordinate ideas. Let's express the coordinate ideas in similar form. We're just gonna iterate over all of the line items, set the ship status of consolidated, call our assign items to shipments method. Then we'll take this, continuing to make the coordinate ideas expressed in similar form. Take that, move it down to a method and now these two are starting to look more and more similar. But you'll notice we've got a conditional down here. We only do this if consolidating to dropships is true. We don't have a conditional up here, why not? Well, it's up top, so we wanna make, we wanna make build consolidated shipment look the same as build shipment by dropship status. So we need to move that conditional down there and let's go ahead and change it to single shipment. We have to consolidate all over this class, right? It's a word that doesn't mean a lot to us anymore. So we wanna change it to something that means more to us and single shipment, it means a lot more to us. What we're doing when that flag is set is consolidating all our items into a single shipment. That lets us get rid of this conditional and now build shipments is a lot easier to understand except that we've broken a couple things. Now why is that? Well, as it turns out, we assume that both of these methods are now confident and we can call them without any side effects. The problem is that they both call assigned items to shipments unconditionally. So what we need to do is take that, move it up top to build shipments and then we're passing. Still not quite as clear as we want it to be though because as it turns out, these two methods are not building any shipments at all. They're updating ship statuses. So we need to make that more clear. We need to express that more clearly. So we'll move them down into their own method called optimized consolidation and then we call that up above. Suddenly build shipments is telling a much better story but those two methods are still named incorrectly. Like I said just a second ago, they're not building anything, they're just updating ship statuses. Well, as it turns out, those two lines are pretty expressive on their own. We don't really need a method name to tell us what they're doing. So let's just end the line. And our class is getting more and more compact and easier to read and our test still pass. So now let's hop over to the main class and if you take a look at everything that we've refactored here, it all lines up on the left. It passes the squint test. We've expressed all our ideas in very similar form. All these methods are structured the same. We have the same type of paragraph throughout our class except for this jump at the bottom. And I would love to show you how to refactor that but we're sort of running out of time here. So I'll just show you the end result. We took create group if necessary and made it its own inline class, a value object called shipment list that has all the tools that we need to interact with it and create a list of shipments by shipment time. So there's our final class. There's our refactor. And how do we do? Well, let's look at some scores. The play score for our class, which again measures duplication. Our original was 36 and it's down to zero. The original after I extracted it out of the rails out. Our class itself, the flog score, the original was 180. We've got it down to 77.2. So it's one third as complex as the original class. And the flog score for built shipments. If you remember, the flog score for that was 120.7. We've got it down to three. Well, as it turns out, the flog score is a pretty effective measurement of how readable code is because complexity and readability are one and the same. So there's where we started. There's where we finished. And that's sort of the crux of the talk. We've got a built shipments method up top that is an absolute rambling manifesto of a paragraph. There's no way you can make any sense out of what's going on up there. Built shipments down below actually follows a pretty clear narrative arc. We want to optimize consolidation, assign items to shipments and return shipments. That's it. Easy to understand. So when did it work? It was a pretty textbook refactoring, but I didn't reference any of the normal techniques you would reference when you refactor. Well, as it turns out, the rules in strung and white coordinate pretty well with the aphorisms of programming. Five, five, revise and rewrite. Red, green, refactor. Five, three, work from a suitable design. There are plenty of people that want to teach you good object-oriented design. Gang of four, pooter. Russ Olson, who's gonna be speaking to you in just a minute, gave us the Ruby version of the Gang of Four book. Five, 19, do not take shortcuts at the cost of clarity. This is the log-to-meter, and in case DHH ever sees this talk. 213, make the paragraph theme of the composition clearly the single responsibility principle. We want all of our methods to only do one thing. I could keep going through, I could keep giving you the relationships between strung and white and programming aphorisms, but we can actually ask the guy who wrote the book on refactoring the way this works. Martin Fowler's happy to tell us any fool can write code a computer can understand. Good programmers write code that humans can understand, and that's the thing. I mean, the code that we started with ran in production for many years and had a really low defect rate. It worked just fine, and then I tried to change it, and it was terrible. It fought me every step of the way. The easier your code is to read, the easier it is to change, and you really don't know how good your code is until you try to refactor it. You don't know how good it is until you try to change it. Good code helps you change it. Bad code fights you every step of the way. So that's the first part that I want you to take away. The second part, we need to reach into some famous literature. This is From On The Road by Jack Kerouac. We stopped along the road for a bite to eat. The cowboy went off to have a spare tire patch and Eddie and I sat down in a kind of homemade diner.  This whole book carries on like this. It's this rambling monologue, and yet it evokes this wonder less than everybody who reads it. It's a fantastic book. Infinite Jest by David Foster Wallace. All of that text on the screen? One sentence. That's a single sentence. Good code by Cormac McCarthy. Wanna pull a surprise? Look at the dialogue here. There's no quotes, there's no attribution. You have to read it and try to figure out who's saying what, and it's not a strip back and forth. That's the interesting thing. All these rules that we follow are means to an end. They're not what make us good writers or good developers. Evie White in fact says, I felt uneasy posing as an expert on rhetoric, but the truth is, I write by ear, always with difficulty, and seldom with any exact notion of what is taking place under the bud. So it makes us good soccer developers. It's not how well we follow the rules. It's how well we learn to feel the rules, it's how well we learn to feel code, develop an eye for code, spend time reading code, spend time refactoring code, learn to spot smelly code, learn to respond to it and fix it. Thanks.


We are extremely delighted to launch the inaugural edition of SHOBIS, it is India's first entertainment marketing report that we have come up with. The key reason why we thought that it is important to come up with a report like this is because we identified entertainment marketing has a big need gap in terms of understanding of both the worlds, in terms of the production community and the brands. We just thought that if we get the numbers perspective together it will help the larger ecosystem to put this business into a perspective and the reason why we felt so and it is very encouraging to know that the entertainment marketing as an industry is a 100 crore industry already which means that 100 crores is getting invested from the brand side to promote movies today and when I say movies it is not only Bollywood but it is movies in terms of regional in terms of Hollywood and Bollywood. Now that is a great number, couple of things that we observed through the process was while the money is getting invested there is a significant amount of thrust which the production community also is putting into marketing movies these days. On average a film producer is to spend about 5 to 6 percent of the production money is into marketing them at any given point in time. This trend over the last 10 years has changed and today I am extremely happy to say that almost 10 to 15 percent of the production money is getting invested in marketing and promoting movies which is very close to the global average in terms of what global community spends on marketing of films. So that is a very encouraging inside that you will see in showbiz coming through. All of other things I would want to bring to the notice was about the way digital is playing a role in marketing promotions. Today we have seen so many promos that we see on television but the digital marketing economy also is growing and film marketers are investing about 10 to 15 percent of their marketing mix into digital. Now that is again a very encouraging sign while we would love to see this grow a little better because obviously there are various scales of films keep changing. So the films which are not going as mass releases that possibly can have more focus and thrust on communicating on the digital media because it is more focused, more targeted and therefore the duplication on mass media can be avoided using those tools. Going to the digital part again interesting thing is there are lot of data, lot of tools today that are available for the marketing community at both ends at the brands and as well as the movie marketing ends to possibly embrace and possibly decide on how their marketing mix needs to be depending upon the data point. Couple of things which we observed is today command centers are playing a active role in deciding how a brand's marketing mix should be. This potentially has a great story at the production end as well. We have not seen film producers using command centers as effectively as brands do but if they start doing so they will possibly be able to spend their money even in a more efficient and effective way and that is one insight you can see in the report that is coming through. Another point which we want to bring through this report is on the licensing business. Today licensing we all know globally is quite a big business. It is quite a big business in India as well but as Indians we consume and we buy global licenses. It is time for us to possibly create our own licensing products within India. So the journey we have lot of heroes. Now that heroes becoming characters is the journey what we would like to see Indian production community and Indian marketing community to possibly embrace because the lifespan of a hero possibly could be limited but a lifespan of a characters we have seen globally is quite a lot and that is the growth that we would love to see in the licensing business going forward.


So, hello, Eliot. It's very good to see you again. Today we'll speak about philosophical health and philosophical counseling, something that we both know because we practice it. And perhaps for the people who are looking at us, we should present ourselves briefly and please start, Eliot, tell us a little bit about your journey and what you do as a philosophical counselor. Well, journey-wise, I began as an analytic philosopher. I studied at Brown under Rod Schism, which is for those out in philosophy land, are aware that he's an extremely analytical sort of philosopher who very much comes up with definitional schemata to define terms in a very tight logical fashion. And so that's how I was raised. And I don't regret that because as I got into the muck and mire of practicality, teaching students and the like, it became evident that I needed to make what I was doing relevant to ordinary life. And so I became an analytic applied philosopher. And that took me further and further into the area of praxis, where I got interested also in continental philosophy as well, brought in my horizon there and became very much interested in where philosophy could help people grapple with problems of ordinary life. And that was where I started to look at some aspects of psychology as well and got involved with rational motor behavior therapy. In fact, I was working on a book on values. And my wife was a who was then in graduate school going for for therapy suggested to me that my work seemed very much akin to Albert Ellis, the psychologist who started cognitive behavior therapy. So I looked into his work, I got certified in rational motor behavior therapy, which was what he was famous for and and got to know him. And so I worked with him for many years until his death in 2007, we became good friends and associates and he supported my work and I was sort of his on call philosopher. And we, you know, understood, you know, that the importance of philosophy, he was coming at it from a psychologist perspective, I from a from a philosopher's perspective. And that's how logic based therapy came into being, which is the form of philosophical counseling that that I do. And it's, I teach it to students as well as train philosophers around the world, you know, in the techniques of philosophical counseling, specifically logic based therapy. So that that can give you an idea of, you know, my, my, you know, my journey at least. Right. Yeah, so that's interesting because you were mentioning a sort of a conjunction between psychology and philosophy. And and I also encountered the two in the sense that I mean, I was always more of a philosopher by training, but I had the luck also.  But for some reasons, I felt that the psychological and psychoanalytical practices today, although very interesting and useful, also have a tendency to fall in forms of dogmatism of or or rigid thinking, which might be useful in some contexts, but didn't correspond, let's say to my sensitivity. So I am a person for whom the the process philosophical concept of creativity is very important. And so I wanted a practice that would be open to that form of deep listening to the singularity of each person. And that's how I started after my my PhD in philosophy. That's how I started practicing as a philosophical counselor. In a way that was probably less organized than yours. I was actually discovering my method as I was going, which perhaps I shouldn't say because it sounds a little bit like I was using people as guinea pigs, right? But actually, it I did my best first to listen and to give them this opening to this sort of creative agency. But then I do agree that there is a step where it's very much also about the coherence between not only our acts and our thoughts, which would say I'd say it's an ethical issue, but also between our thoughts and other of our thoughts, which then can be a logical issue in the sense that we might sometimes contradict ourselves, isn't it? Yeah. And the concept of contradiction, I think, is very important in logic based therapy, essentially. Through clinical work and studies, I've found that the behind most behavioral mental emotional issues are inconsistencies, conflicts going on. And they're both logical and behavioral and effective as well. What happens is that many people demand perfection. And I must be perfect. I must achieve. I must not make mistakes. I must get the approval of others. I must be in control of my life and prevent bad things from happening. But the reality is that you really can't always do that. So you have logic based therapy looks at the reasoning process and the premises that people have. On the one hand, I must be in control. But then there's the empirical observation, well, I'm not. You see? And so you run up against this conflict, really an inconsistency, you know, that I must, but it's not possible. You see? I must be certain, but I only have probability. And as a result of that, it feels threatening. So the affect here is a product, you know, of that threateningness. And it goes into the phenomenology of this aspect as well. Because when you're demanding that you have certainty, for instance, it's not just linguistic. In fact, there's a pre-linguistic step there where you feel uncomfortable about the fact that you only have probability. It's a felt sense of necessity. And that's what generates this demand. So when you feel this necessity, but then you also feel this uneasiness, because you don't have that necessity, that generates further, you know, what interoceptive feelings, these are bodily feelings, visceral gut feelings of threateningness. And that threateningness is what, you know, affects not just the psyche, but the soma, you see, and people can suffer from all sorts of physiological problems as a result of that. And this is what we call stress. And that stress is unhealthy. So when we talk about philosophical health, philosophical health really cannot be divorced from this, from the psyche, you know, from the philosophical welfare. With your premises are in order, you have an appropriate view of reality. You don't demand perfection. You see things from perspectives that are consistent with physical prosperity, as well as psychological prosperity. And philosophical constructs can be very useful. And for LBT, logic based therapy, philosophical constructs that work, you know, are the ones that one adopts. So it's rather constructivistic as, as the rational behavior therapy from which it's derived has been as well. What works, you know, in terms of how you frame reality, what actually helps to promote behavioral and emotional stability. And not every, every philosophical view is acceptable for everybody else. One size doesn't necessarily fit all. Right. And I think we're going to talk about philosophical views and stances and how they help us organize our lives. Because I think what we have in common is that we do believe that philosophical health is something that is distinguishable from physical health, and from psychological health, especially in a time where psychological health is seen more and more as a mechanistic construct, something that would be very dependent on the chemistry of the brain, even perhaps sometimes genetics. And so what we're saying is that, well, underlying our decisions, which sometimes can seem very domestic in the sense that they are meant to organize our everyday life. In fact, they are underlying ideologies, thoughts, recurrent thoughts, worldviews, and, and also probably also political imperatives. Because when I hear you talk about the must, I think that, and I'd like to have your opinion about it, but I think there is a want behind that, right? Say, I want to be in control. And then how do we go from that one to the must is very interesting, because I think one of the factors there is the, the epoch of individualism in which we are, and you are living in the United States, I'm living in Sweden, we could also a bit later compare. But let's say that in general, there is a global tendency now to put on the individual the charge and responsibility for own destiny. And that puts a lot of pressure also, right? And probably is a factor of this that influences this idea that we must sometimes, we must be in control, we must be our own little corporation of which we are the CEO, right? So how do we help people with those things? And so if I hear correctly, and I was really intrigued and interested by your paper on perfectionism and the pandemic, in which you speak of metaphysical security, that's intriguing. So what's the difference between metaphysical security and philosophical health? Well, metaphysical security seems to be a necessary condition of philosophical health. A philosophical health could embrace other specific types of metaphysical security. So metaphysical security is pretty much an umbrella term, because there's many different types of metaphysical security, security about yourself.  It's okay for the world to just have probability and not certainty. And in fact, philosophically, you can reframe that and see that the world is exciting by virtue of having probability. If everything was certain, then there would be no exploration, there would be no excitement and discovery, because it would all be already land. So it's, you know, there's different aspects of metaphysical security. And really, when you put them all together, they all contribute to philosophical health. Philosophical health means that your underlying philosophies are promoting metaphysical security. So what is a philosophically healthy individual? It's an individual who's who looks at the world philosophically in a way that allows them to be metaphysically secure. And so, you know, is metaphysical security necessary for philosophical?  Yeah, I think there are two things here. The first one is I think probably people need examples and we're going to come to that. But before that, I would like to say I'd rather use personally the term possibility rather than probability, because I do think that we live in a world that is already very organized into frames of analytic probability that are now automated actually into so-called artificial intelligence, which is not that intelligent, by the way. But so, probability is quite mathematical. Possibility, for me, has more this sense of agency where you, and you quote that in your paper by referring to Nietzsche, right, the self-determination capacity for an individual or a group to expand their domain of possibilities. And that being done, and this is I think our common thesis, that can be done through thought, through a sort of cognitive examination, but also cognitive creativity on the system of belief that conducts our acts. Now in terms of example, so because I think metaphysical security is a little bit the way I understand it is a little bit comparable for me to what I call the second principle of philosophical health, which is deep orientation, which is the fact that it is, and that can lead to excesses of perfectionism, right, but is that we are creators of belief, even mathematics, even science relies on axiomatic beliefs. And so it is often fruitful to conduct our life based on some form of idealism. And you know that you don't necessarily like that term, right, but let's say someone who would consider that justice, right, is her highest value. So that will give her some form of security, because that's the kind of security a belief procures. And then of course, in the application of that deep orientation, there can be a healthy way, right, which knows that, well, ideals are asymptotic, right, they are not something that eventually gets fully actualized. There are limits in the horizon that we slowly approach, but we know that we will never get to this pure absolute world of justice, but we believe in it. That's the paradox of humanity, right. Would you like to propose another example of metaphysically secure belief or conviction? Yeah, and to comment on your example, striving for justice, you could you can turn this into a rigid dogmatic demand to attain justice. And that would fly in the face of metaphysical security. You say metaphysical security would mean that you're secure in the fact that there's no end to striving for justice. You can get better and better. The world is open to improvement. And the fact that there isn't justice doesn't mean there can't be greater injustice and greater justice. But being able to realize, being comfortable with the idea that you're not going to achieve perfection, even in justice, is what we mean by metaphysical security. So that's where metaphysical security comes into play. You know, in terms of other examples, there are many individuals, for instance, who before they do anything, they want to know if others will approve them. They have to have the approval of others. And if indeed they don't get the approval of others, then they feel uncomfortable.  But a metaphysically secure individual would realize, one doesn't always get the approval of others. Sometimes we do, and sometimes we don't. That's part of reality. It's the comfort level with the idea that reality has these imperfections. And that's not necessarily a bad thing. It's the way things are. So understanding that this is reality, not necessarily how it must be. So we are able to compartmentalize this is and this must in a way that we feel comfortable. And there's different types of, I mentioned earlier, interceptive feelings. There's the ontological feelings, feelings like a duty, like this must in terms of a moral duty. So in terms of justice, one might have this the ontological sense that nothing is good enough, unless it's perfect, unless there's perfect justice in the world. And you feel it. When something is wrong, it feels uncomfortable. And there's that conflict that comes in because you realize that the world isn't always just, but that justice is something that should and ought and must be, but you don't have it because you have a gap between those two things. And a metaphysically secure individual realizes that that gap is part of reality. And it is part of what won the price to be living in the world and living successfully in the world is to accept it, to embrace that insecurity and to strive for excellence. Realizing that excellence and perfection are not the same thing. Right. But like it's sort of some people listening to you might wonder is that how do we go from, because at one, at some point, it seems that you're saying that it is, it is philosophically healthy to be somewhat relativistic, like not an absolute. So not someone that things that that believes that perfection can be attained. But how do we go from this sort of capacity to relativize to the idea that it's a metaphysical security? Are you elevating imperfection to an ontology? It might seem like that. It might seem like you're saying, you know, it's sort of a Buddhism of imperfection, which I find interesting. Right. This is sort of imperfection is perfection or interesting. Yeah. I mean, the title of a recent book of mine is making peace with imperfection. Right. So in a way, yeah, I mean, that that's pretty much the goal of metaphysical security to make peace with imperfection. And so is that, is that the idea? Well, yeah, but I mean, you don't want to say we're glorifying imperfection in the sense that, you know, we're striving for imperfection. Right. Better and better. But we don't get there. It's okay. No, but I think one thing is interesting behind the idea. This idea is that is to remember that perfection and imperfection are perspectives on the world to use an ancient concept. Right. So there is not. I mean, in mathematics, if you say two plus two equal five, clearly there is an imperfection there that is related to a system of truth that is more or less localized, although it can be applicable to many things. But in philosophy and in everyday life, those are perfect perspectives. Right. What can be perfection for you can be in perfection for me, etc. So what I see there as something that I work more and more with my counsel is cognitive diversity. Is this idea that philosophical health is not normative in the sense that it would tell you how to think well, what to believe in in order to have a philosophically healthy life, but rather how to understand your own system of thoughts such that you're kept capable to mentalize the other system of thought as potentially different. And this is something humans are so bad at doing. Right. Couples, for example, fight. Many times out of the fact that one thinks is right. The other one also thinks he is right. And and that's political fights, etc. The list could go on forever. And I think that if we start paying attention to the possibility that different systems of thought and that's more than the possibility. Right. But I want to call it a possibility because because of imperfection. Precisely.  No, we are we are puzzle ontological puzzles that work more or less than we want to make them, of course, as clear and as coherent as possible. But I think with this, with this care for let's say for I think perhaps we could call it quasi perfection in the sense that we want to stay right beneath the limits where we start wanting this full perfection. That's also a care for the fact that all the ways of looking at the world are there and they might might actually inspire us. Yeah, I think I think that's an important point that there are alternative ways of fleshing out reality and not just our own, but others. And that's why logic based therapy has certain parameters within which we can attain metaphysical security and and and philosophical health and and that would involve, for instance, tolerance, you know, for for others. So what what logic based therapy does is introduce a set of of guiding virtues, as it calls them, and these guiding virtues can be interpreted philosophically differently. So, you know, some people's way of of understanding tolerance is maybe buddhist and other might be, you know, pragmatic. There's there's no limit to how you can frame, you know, these these virtues, but those virtues are the aspirational goals to be more tolerant, to be more empathetic. And I think in the cases that you've given, empathy is extremely important. Logic based therapy talks about certain cardinal fallacies that that people commit. And these are basically types of thinking or reasoning that have a proven track record or frustrating personal and interpersonal happiness. And so one of them is world revolves around me thinking. This is quite relevant, I think, to what you're saying, like Ram thinking, which is at its extreme, we have narcissistic personality disorders.  And when you have that kind of thinking going on, you're not going to have meaningful and prosperous relationships.  How is that going to work?  So logic based therapy does have some limits. I mean, you can't be contradicted, have a contradictory philosophy, you can't have a philosophy that that violates Ram thinking, for instance, because that's not conducive to metaphysical security.  Yeah, yeah, I think it's important to to mention that it's not about the idea that there is one good logic, because I imagine, imagine Aristotle's being a logic based therapist and receiving Hegel in his practice, right? And Hegel will say, we start to say, oh, I'm, it's strange, I'm having these ideas of opposites, uniting themselves, and, and, and the negative and the positive and a, a and non a being identical sometimes and Aristotle will say, no, that's not possible. It's a fallacy, right? So that's not about that. It's about allowing people to, to not think different things without being conscious of it, that actually contradict themselves, which leads to actually consequences that are very real, right, acts that are very real, and that can be damageable. But there's something that then one might ask, okay, so what's the goal of all that? What's, what's, what's the telos of philosophical health? And, and in, in psychology, there is often this concept of self actualization, right?  A category, a category of ontology, the Asians have granted to an infinite being, God, right? So can you say more about that? Because that's, I mean, people want to attain self actualization, either they might say, too bad, or they might say, okay, then I need to become a God, which is what some people today seem to wanting to define as the next horizon of humanity, right? This sort of a transhumanist ideal of turning us into more and more powerful beings or the beliefs in some sort of magical thinking where you would, you would actually actualize everything you want, usually very material things. So can you say more about this is because it seems almost contradictory also to ancient Greek thought, I mean, partly only contradictory in the sense that they did believe that we can, they, of course, they didn't believe that humans can be gods, because that would be Ibris, but they did believe that through the exercise of philosophy, we could get closer to the divine, right? That's, I mean, the major figure of that kind of thing is Plotinus, but you have that in Plato and even in Aristotle's with this idea of eudaimonia. And precisely this famous eudaimonic inspiration, which was also seen in Descartes, is etymologically the fact that you're talking with the spirits, you're talking with your personal channel that allows you to communicate with the divine. But so what's the telos then? If it's not self-actualization or is it, do you mean that it's only partial self-actualization? How do you articulate that? Well, you know, in a sense, logic-based therapy is Aristotelian in the idea that it's the virtues, you know, that you're aiming at. There's different ways, different philosophical constructs of those virtues, different ways of interpreting, you know, those virtues. But ultimately, the goal is to be more, well in general, more metaphysically secure and that means self-accepting. It means feeling comfortable with, you know, the fact that there's, you know, risk in the world and that there's, you're not always going to be successful about what you do.   So the telos, if you want to speak, you know, Aristotelian sort of way, the telos of logic-based therapy is, you know, the virtues that are implied by metaphysical security. And, you know, this is definitely something that doesn't, built into it is realizing that you're not going to be 100% self-actualized.  Right. And I mean, yeah, probably we could say that death, once you're dead, maybe you're you're fully self-actualized. But that's interesting. Speaking about metaphysics, there's another concept that is less famous is self-transcendence. And self-transcendence is usually defined as the capacity to put the ego aside in order to serve a higher ideal. And so I think that if we look at the ancient Greek philosophy, including Aristotle, I think that that's what they're saying in a way. They're saying that the good life is the life that serves a grand idea, whether that's justice, whether that's the good, whether that's the city, the political equilibrium. And, of course, they might have some of them, probably more Aristotle than Plato, they might have takes at it that are sort of moderate, right? When Aristotle talks about the golden mean, there is an idea of moderation there. So you don't want completely to lose yourself into a group or an ideology. But you were talking about narcissism. You want to be capable of not only being in a mean mode, the domestic, what Anna Arendt called the domestic mode. So how do you balance that your care for, let's say, your prudence vis-à-vis idealism? And the fact that I believe in my practice, I tend to tell people that it's okay to have a grand ideal in life. With all the caveat that we mentioned, right? Of course, the form of pragmatism and but precisely, if we have a process, philosophy, look on that ideal, we know that there is a it's a creative flow in which means that actually we don't want to actualize it. We don't want to think that we have actualized it too fast because, first of all, it would be wrong and secondly, what then? But we also want perhaps to keep the, I mean, the claim that this is possible, because otherwise we might fall into a form of fatalism, perhaps the idea that, you know, we are imperfect.  So isn't that a thin line, a thin equilibrium? Let's talk perhaps, let's answer these questions perhaps with our cases and practices, because we have the chance, right, to discuss with real human beings with we've had real problems in real lives. And so how do you help people like that, who can be idealists and who perhaps shouldn't give up on their ideal, right? Yeah, I don't think that people should give up on their ideals, because that's what's exciting, you know, and I often use a metaphor of shooting for the stars, but not demanding that you land on them. And so you can, you can certainly have your ideals, but just don't demand, you know, that you satisfy them, and then there's no contradiction in your system. And to give you actual real examples, for instance, athletes are great examples of this idea that I must be perfect when I go out on the field, I must perform perfectly. And as a result of that, they think that, you know, that's what, you know, that aspirational idea of demanding perfection somehow is what makes them perform well on the field. And many of them do, you know, they're perfectionists, and I've had students and clients who have, you know, had this issue, they've lived their lives in a state of great stress and tension. But they think that that's what makes them successful. So it's the ideal, they'll argue, that, you know, being perfect is what makes them perform at their best. But there's a mistake in there. And the mistake is the distinction between, you know, actually having the ideal and shooting for excellence, driving for excellence in what you do, and demanding that you achieve perfection. And so when you go out on the field, I'm going to do the best I can conceivably do, I'm going to, and if you want to say, I'm going to do perfectly. Okay, I'm going to perform perfectly. But at the end of the day, when you don't fall, when you fall short, as you inevitably will, you don't say, well, I didn't do what I must do. And therefore, a failure. Because it's at that juncture, where what you do is you create, you know, unnecessary stress. So shoot for the stars, but just don't turn that desire into that demand. Because as soon as you turn that desire into the demand, you create that intro set of feeling, you know, that that works against you. It's a discomfort. And so the such individuals will feel those who demand perfection will, even when they're doing well, they think to themselves, well, what happens if the next time I go out and don't do as well. And so they live in this state of stress. And it's actually distress that can create greater problems than not having that stress.  And goes out there and does it maybe fumbles. But while they're fumbling, they're not saying, I must perform perfectly. Because as soon as you make that demand, you create greater stress. And as a young musician, I can remember myself doing a classical guitar concert, and I went out there and I was demanding perfection. And when I went out there, I was performing a canary jig. No, no, I was called Lagrima. And that's what it was, tear drops. And suddenly I discovered that I was repeating the same, the same part that I twice, yeah. It was so perfect that you entered the loop, right? Yeah. And then I'm looking at my, then I go down at the strings and to the six strings started to appear like they were, like the the gullies between them. Right. That was your psychotic episode. I got through it. But, but it was, it was very, very, very difficult to get through it. And there's this stress that I had affected, you know, my performance, actually, I would have done better without that perfectionism. That resonates, because I see there a distinction between perfection mastery. And I often tell my concerts that I want to help them become masters. But a master is not someone indeed that compares himself or yourself. You were talking about sports, and that very indeed dangerous view of perfection as a comparative skill. Mastery is is on the country, the, the, the development of your own singularity of what you can do in such that is actually on the very equilibrium between effort and self expression, right? The endowism, it's called the Wu Wei, this sort of a effortless action.  But then at some point, you also focused on what is most important, which is authenticity, this self expression. And you talk about authenticity in your paper. And I think that's one virtue, a very simple virtue, if people are asking you, but what is this about? What are they talking about? Well, honesty, right? Intellectual honesty and the courage to, to be honest with yourself and with the others, without necessarily, of course, going about and offending people. But, you know, just not being scared. I ask often to my console bees, so I talk about Hegel and the, the dialectic of the master and the slave. And I ask my console is okay, so you have these two people and they are equal in the beginning. And after a while, one becomes the master, one becomes the slave. And I ask, what do you think, why do you think that happens? And that leads to a series of interesting conversations. In my view, this happens because, and that, I mean, that's Hegel's view.   For, for what he believes in, for his authenticity, his or hers authenticity. And, and that seems like a very old way of thinking, but I don't think it is. I think it's something that is very, very contemporary, very fit for our times is that mastery, it's not about being the best, because that doesn't make sense. And indeed, that leads to a lot of suffering. It's about being the best version of yourself, but such that it respects what I sometimes call your eodymonia, which is slightly different from eodymonia, right? Eodynamia, sorry, eodynamia, which is good dynamics, the good possibility, the fact that you keep enough reserves or energy to, to do something different next time. So you don't want to fully actualize. You actually actualize, but by staying this creative potentiality, that is what gives you also the flow and the joy to live. I mean, that's a very, very important point that you're, that you're making, that you, you move towards your goals in an authentic way. And that, that authenticity may be more important than what you achieve. Because what you do is this, this, this candor and honesty with oneself, not living as Sartre would say, in bad faith, that you, you know, you accept your, you know, your limits and, and you attempt to achieve whatever is in your power in an authentic way. And I think that's, that's an excellent, an excellent point about, you know, how to make peace with imperfection, do it authentically. Indeed. And I think that's, I think that's a good conclusion for our conversation, which might not be the last one, because it's, it's a very deep topic. And we certainly are passionate about it. But I hope this gave to the people who are watching us and listening to us a certain idea of what, what do we do? Why do we want to help people have more meaningful lives and satisfactory ones through philosophy, which might seem like a very strange idea for now. But I always say, you know, take physical health. It looks some like something very natural today, right? But it was invented in the 18th century with gymnastics, etc. The Greeks had it a bit, but then it was forgotten. And now it's considered, you know, in the 18th century, it was a luxury for a happy few who could afford gymnastics. And now it's a necessity for all. Take psychological health. It also started a little bit later, and of the 19th century, early 20th century, it was a luxury for a happy few in Vienna, those who could afford meeting Freud. And now it's considered a necessity for all. So I wish that today philosophical health, which is we could say a luxury for the happy few, although you and I, we work with people, you in India, me sometimes in Bangladesh, so we really trying to open this democratically and globally. But still, it's a minority of people who know about it. And let's hope that by the end of this century, it can be a non normative necessity for all. It is growing quite well throughout the world. And in 1991, I founded the National Philosophical Counseling Association. And when we started our training program, you know, there were very few people who were trained in philosophical counseling, let alone logic based therapy. But now we're training people all over the world regularly. So if those listening are interested in, you know, looking further into that, you can Google National Philosophical Counseling Association, and it discusses the views of the Association on Philosophical Counseling on their website, as well as provides information about philosophical counseling, getting trained in philosophical counseling and the like. So that's an opportunity that's constantly growing. I've seen it expand leaps and bounds over the years. Indeed. And for those of you would like to know more about the idea of philosophical health and the various networks and various methodologies that are used, not only LBT or microelectrics, but others. You can simply write also philosophical dot health. And you will indeed get a glimpse that this is now an international phenomenon. So, Elliot, many thanks. I will stop the recording now. Wonderful.


Are you interested in a rewarding career that makes a difference locally and globally? Do you want to operate your own business, manage a company or non-profit organization? Do you like working with numbers and budgets? Whether you're seeking to be an entrepreneur, a manager, maybe you want to pursue a bachelor's degree in something like business or management, perhaps you even just want to work for a hotel or an airline for the amazing travel benefits. The business, hospitality and tourism pathway might be a perfect fit for you. Me being in the School for Business Management is ultimately going to help me run my own record label, you know what I'm saying? So me learning the business side and how to do my taxes and all that good stuff. That's what this is helping me for. A focus in business opens possibilities in all areas of global operations and administration, from finance and technology to sustainable management in areas like tourism, the environment and agriculture. Our programs develop international business people with practical skills, a sense of global citizenship and an understanding of cultural diversity. The Center of Excellence for Global Trade and Supply Chain Management is here at Highline. The first part we actually went to Wenatchee to like see Apple Orchard and then visited Brooks Running because that was one of the warehouses that we visited when we went to Vietnam. So that experience was awesome, like really just to see a whole another culture, really just getting off the plane, a whole another country, a whole another culture. Something like that wouldn't have happened if I wasn't here. Highline's international business program provides an excellent opportunity for individuals wanting a future career in the fast growing import-export industry. International trade is increasingly becoming the engine of growth for economic development around the world. Logistic is the main thing for any industry. If it is financial industry and if it's health sector or if it is legal sector, so logistic is a requirement of today's business world. So that's why I decided to start my Global Trade and Logistic and that was one of my rewarding decisions that I have ever made in my career pathway. We have partners in the international business and trade industry and provide opportunities for students to participate in hands-on learning and mentorship. The world's leading companies and organizations need you to help them build and deliver products better, faster and cheaper. You can make yourself more valuable by earning a Bachelor of Applied Science in Global Trade and Logistics. Hospitality and Tourism is the world's largest business. It has the highest percentage of entrepreneurs of any segment of global business and it's integral to who we are in the Pacific Northwest, our economies and communities. Our program uses a global and sustainable perspective in everything we do in all of our coursework and we value individuals who have a passion for travel and learning about societies, cultures and natural resources. I really want to be and want to meet with new people and work around people. I wasn't sure whether I should join the business program or the hospitality program but Highline offered the best hospitality programs here in Washington State. Students in our field work at airports, global hotels and cruise lines, recreation centers, food and beverage businesses and a lot more. We even teach classes onsite at really cool locations like hotels, inside SeaTac Airport and in our own operating restaurant here on campus. You can learn hands-on with us. We even have a bachelor's degree option right here on campus in conjunction with Central Washington University. We have many options to help you save time and money while pursuing your higher education. After attending college at Highline, it was about one year in that I had this epiphany that all these doors started to open. I didn't get to learn this stuff in high school. Back in the 90s, we weren't learning all the technical stuff so being able to get back into college and come up to speed with technology was a huge game changer. Accounting is the language of business and is used to explain the financial results of companies that range from small businesses to fortune 500 companies in size. At Highline, the AAS in accounting will prepare you for work in a variety of career paths by introducing you to accounting fundamentals such as bookkeeping, tax preparation and payroll. We also have a variety of certificates such as bookkeeping, human resources, international trade and logistics and retail management. There are many job opportunities in this field and because there is a combination between business and technology, these two fields are required for any job, especially right now. The business technology programs provide courses to prepare you with the technical skills and knowledge to be successful in a variety of business positions. In addition to learning technology skills, you'll learn effective business communication, business math and accounting, leadership and team building skills. This is a very flexible program that prepares students to work in a variety of industries and a multitude of positions ranging from entry level to managerial. Business technology provides many short stackable certificates that lead to an AAS in administrative management and business technology. Our top transfer locations for the business, hospitality and tourism pathway, our Central Washington University, University of Washington Tacoma, University of Washington Seattle, Western Governors University, UNLV in Las Vegas, and that's the number one ranked hospitality school in the whole world. Don't be afraid. I mean, I started two years ago, I'm not fresh out of high school, so don't be afraid. Just go for it.