 spread out across time zones. The blue site of our co-workers kind of lose touch. So, in New York City, highly recommended even if we're not in the developer, to check it out. It's one of the best conferences I've ever gone to even as a support lead. So, if you go into the video section, there is a speaker at this conference, Melinda Secington. I hope I'm pronouncing her name right. And she talked about hiring in the sense that you need to foster in your team part of that, writing blog posts, getting people out to speak on behalf of your company. The easiest way to do this is to empower people to do this. Suggestion of doing lightning talks in your company. So, I'll do this for you. So, I brought this into Travis and I think last week or a week before was our second ever driving steps and things that you want to do this in your own teams. So, the first thing is to find a time that works for most people. And I'll mention why you just have to make sure most people can attend. For us, for Travis, we just, we had a time set aside on Fridays that there was a meeting posted but no one's ever attended. It just was there. And it started way back at the beginning of the company. At least when I was there, we did an 8 o'clock Friday check-in with everyone. We would go around and everyone had their chance to say they were cool projects. When we grew to about 20 people, it just wasn't practical anymore. So, we moved to being just a check-in with the teams. How's your team doing? What is your team doing? That stopped working. So, it turned into just being a check-in with leadership or if a team had a big process update that they had to share. And that stopped working after a while. Doing it weekly just wasn't practical. Not everyone could make it every week. So, we changed it into a monthly all-hands where Matias, our CEO, does a big update overall. So, then we had this void in our lives where we weren't communicating with our coworkers, having that water cooler channel. So, someone created the fireside channel in the place of what we had before. But no one was curating it. No one was getting people involved in the chat room. So, kind of fell by the wayside. So, I used this time, the meeting that was already scheduled that no one attended, and filled the void with a bi-weekly Friday lightning time. So, now you actually want to do this. You've found a time to force for most people. You have to get speakers. I do this with a really simple form. There's three questions. What do you want to talk about? How long are you going to talk for? And do you have to screen share? Because that will be something that you need for the tool that you're going to use. And talks can be about anything. I tell people you can talk about your hobby. You can talk about side projects or work projects. You can talk about blog posts or books that you've read. The most important thing, though, is to set an example in the first meeting and to present a lightning talk yourself. I talked about how to give lightning to us. I'm trying to talk about crafting at every single lightning talk event if no one was set up to present. That thread still stands. Just kidding. Alright, the third point is to use the right tool. For us, we'll use Zoom because we can record and screen share. I highly recommend it. It is a paid tool, but it works really well for us. Create a schedule using the form that everyone built out for you. It doesn't even have to get stuck on formalities and releasing the schedule every week and making sure everyone's available or time slots. What order do you want to go in? Do something that works for you. I think everyone has laughed at it before and just say, this is the order. Here's how long you have. So it doesn't have to be formal about it. Then hold your first ever lightning talks. You can determine the frequency for what works for you. Like I said, we're trialing by weekly. Whatever works for you. So in that first session, you need to set expectations. For us, that included talking about our code of conduct because even internal events need to be held to substandard. And so we do have our own Travis internal code of conduct and Zoom. So I record the recessions. So even the people that can't be there still have the opportunity to feel like they were part of something special. You're a person and you're a job. There's this mechanical HR process you have to get through. So the bad thing is you have to be linked and up to date. It's got to be something like what your resume looks like. And it's got to have the buzzwords there. But I'm sure I haven't sold you on that part of that because who has a great story or maybe a thousand stories about Unlinked, some of you don't know endorsing you for things you don't do. Trust doesn't, does it? I also said that when you start a new job, you join a new organization, you should make sure Unlinked, you connect with everyone in the country. Anchoring the dumbest person in the world thing I understood. No matter how much you love your team, no matter how much you love your coworkers or your product or your service, you're going to work with people that are complete jerks. This is the upside down web of trust for LinkedIn. You use it as a web of distrust. You make sure you connect with everyone you hate in the world. Unlinked, it's either a web of mistrust. Somebody knew they joined a new big company and within two weeks, endorsements for some pinnacle skill that, you know, master a problem smarter. What kind of gravity in their jungle? Yes, you have to use LinkedIn. Just don't use it the way they want you to. I'd love to write a bomb to just do this for us. If they would kill that API, whatever enabled that to work, they would kill it immediately. Maybe I'll write it in a secret literature. My name is Jose and today I'm going to talk to you about Elixir. The oldest purpose of walking is really meant for like technical people that know Ruby so you're not much of a technical person or you don't know Ruby, feel free to reach them afterwards and they'll just explain you everything they mean here. I'm just going to talk to you about this program in a language called Elixir. So what is Elixir? Elixir is a national language. Yes, Elixir is a national language so you basically don't really use all text, you just shape everything you do in terms of passions. Elixir is created by this guy that I'm sure I've named him with, call him Jose Baleen. And Elixir runs on top of the Erlenberg tool sheet which I think is one of the most interesting things of this language. The Erlenberg machine is what runs Erlenberg and it was created by Erlenberg so I think in the 70s to power these telephone switches. So the core of this machine is reliability because if you're making a phone call that lasts a month the system kind of goes down. But at the same time they had to build shape like Zapparat they had to know that so it had to be very, very resilient. For the ones that don't know Jose Baleen he was, I don't think he's still anymore but he was part of the Rails 4 team so he's like a super active member of the Ruby community. And Elixir is heavily inspired by Ruby. So I thought that I would just introduce you to some of my favorite features of Elixir and if you want to know more about it just feel free to reach me afterwards. So one of the first things that was impressed by Elixir is this thing called pattern matching. I don't know if you can see the code but basically what you tell the language is that it shouldn't match whatever's to the left to whatever's to the right. So in this case I'm telling it to assign to the variable first and to the variable second the first two elements of the data array that you see over there. So then this is kind of like DRB, I mean like IRB. So first people have the value one because it's the first element and then two people have the value two. And it's kind of like algebraic and if you give it an expression that actually is not valid it will just create an error for you. The cool thing about this is that it's super, super, super powerful. So what you're seeing here, what you're seeing here is that for example I have this sort of like a Ruby hash that has the username being whatever and then it has other values. And then on the second line what I'm telling it to do is basically to sort of extract some information out of that hash. Oops, there we go again, out of that hash so then I can use the variable which I think it's also super, super interesting. So as we go deeper you'll see why this is nice. We also have like we saw yesterday in crystal function of Ruby. So for example you can define the same function but the difference is actually matching. So say you want to call the function make sound and the first argument is how, this is like a Ruby symbol. It will just say boom if the second argument is cat it will say meow and if it's something else it will just put like a shrug which I think is pretty nice. But it goes as far as that so then you can also put after matching this. So the same way I extracted information from the hash before, what I'm telling it here is that now this function will only work if I pass it a hash and the value for the key animal is going to be cat. And the same way I do the after matching I can extract the value of the key animal into name and then I can use it in the value of the function which I think it's also super nice. And just like I think we saw this morning about Swift we also have ARC classes. So here we define two functions and say you're passing a variable that's called downtime. This one will only execute if the content of the variable is less than 10. The other one will do the opposite. You get a data. Person features and you can mix all of that. In Elixir we also get this byte operator so what I'm doing in the first two lines is basically defining one like functions. So the first one is just add one by passing an number and they will just add one to it. The second one is called multiply by three by passing an number and you just multiply by three. In Ruby you would do something like multiply by three, add one and then the argument is one and then you get six out of it. In Elixir you can use the byte operator which is this funny thing that you see right there that what it does is basically whatever is to the left is going to be the first argument of whatever is to the right. So over here I think it's much, much simpler to read actually what's happening with the code which you can extrapolate and I think it just makes the code much, much more readable whenever you're working functionally. So those are some of the features and you can mix all of that. As I told you before Elixir is built on top of the Erlen virtual machine which is one of the core features it has is distributed computing. So apparently this is slightly more complicated. This is very similar to the code channels that you were seeing before. What I'm doing over here is that I'm assigning the current process alright so in Erlen and in Elixir you get these processes which are sort of like very, very lightweight threads. They're not really threads but they can act like that. So what I'm doing over here is I'm assigning in the first variable the current thread. Then I'm spawning a new process that will send to the current thread a message saying hold world and then this other one will block until it receives a message and then it will just print the content of the message. So if you know about our channels like what we saw yesterday this is very similar to that. The same with crystal channels I guess. The cool thing about this is that without changing any piece of code this message passing can run in different computers. So say I have two machines. In the first machine I just say it will block until it receives a message. In the second machine I create a reference to the first machine and send a message and then the Erlen virtual machine takes care of passing the message from one machine to the other. So if you're an architect you're coding the right way you can just have it running on parallel computers without having to change anything from your code which I think is really, really amazing. So that's like a very small intro to Elixir. What is Phoenix? Phoenix. So according to the website it's a productive web framework that doesn't compromise the speed and maintainability. I think of it as basically Rails but we'll learn. I just want to talk about one feature because lots of things are very, very similar but this is a code example of one of my favorite features actually from Elixir. By the way you can tell that Jose really suffered. Jose really suffered from Ruby in the Rails community and he saw the mistakes we sort of made over there and tried to make it better in a more functional way. Over here I'm doing what you were doing at the broker though. This is kind of like a mix between strong parameters and validation in one line so I'm defining this method that takes two arguments. Say the instance of your model and some parameters this line extracts the email address and first name sort of parameters from the parameters cache and then passes that and validates that the email address is present. So say you can use this for the new user sign up so you don't want it to enforce the first name but you want to enforce an email address. With the second function you can build on top of the first one and say that it will also require the first name that you can use for like when a user updates a profile afterwards. Which to me is like composing validations is something so essential for web development but we just don't have it in Rails. Oh yeah, I work for Shopify, we're hiring so if you'd like to work there, hit me up. My Twitter account is ldodo and that's it, thank you. And what's his name? Oh yeah, PJ. Over Twitter he said, do you have room for a live talk? I can talk about stuff. And he said, yeah, come on up. So I'm here. And by the way, now I'm at school because somebody else did the same thing. And there's lots of stuff I can talk about and actually I feel kind of safe at this conference to talk about a lot of those things. And one of the things that I'm going to talk about is PTSD because I have it because of a trauma a long time ago actually. And then just in April it happened again at the conference and it sucked and so I don't know if just being is in this room. She says nope. Seeing her talk yesterday was actually really painful but then seeing everyone's reaction to her talk was very healing. And so I wanted to thank you guys and actually, I swear I'm not kissing ass, thank PJ and whoever the other guy is that didn't show up for organizing this conference. And I wanted to ask you guys, do you like what's going on? Is there anyone here who doesn't know PJ or a speaker? Like someone who was like Googling and was like, oh I'm going to go to this conference. I want to know what you guys think actually and it's going to be recorded if you say now. So is there anyone brave enough to tell me what you think of this conference? Just like 10 seconds or less. Who didn't know someone at this conference who Googled. So I wanted to incite a round of applause for PJ. I thought it would be mostly technical. Delta is something I think it's a good thing that you approach and think about those things. Yeah, exactly. I'm blown away by prompt. Actually I heard about it at a Stockholm conference and I've been following and encouraging ever since because of what I'd go through privately and don't talk about it in public. And I've said I'm going to skip very quickly to if you would like to join a couple of us at an escape room tonight and trapped at 7.15, sign up for it because there are five slots left. And then we're going to carry a gaffer. Thanks. The first lightning talk. So bear with me as a little scatter. This is titled, if we go to karaoke, what will you sing? This is an interview question that I use when I'm screening candidates for database or application support positions at engineering. And one of the reasons we ask, or I ask this question is because I don't actually meet the people I hire until six months to a year after I hire them. We're pretty much a completely remote team. So this is the type of question that doesn't have a right or wrong answer. But it's designed to reach out and make a connection with the candidate that you're speaking with and get a sense for how that person might or might not fit on your team. It's about generating a conversation, hopefully something that lasts longer than two or three minutes. And of course, I still ask about technical details. So my SQL, somebody applying as a MySQL DVA, I have my mask. What is the most important feature you see in MySQL 5.7? Make it a conversation open or something that becomes a free-flowing discussion between you and the candidate that you're talking to. Because I don't want to sit there and go through a whole bunch of HR new questions. We have HR for that. Well, we used to anyway. Have you ever attended any technology conferences? And here again, there is no right or wrong answer. A lot of people don't get the opportunity to go to technical conferences. But it is an important aspect of what we at Engineering do. And we do try to send our team to technical conferences at least once a year for each employee. And we want to see if, is the person even interested in going to a technical conference, will they get involved in the community? Which leads to the question, have you attended any local meetup groups? You know, that's something that whether your company sends you or not, you can be involved in it. It's kind of a matter of making the time. And yeah, we all have busy schedules, but I mean, what's once a month or once every two months or once every six months, right? Like to ask is, have you written any public blog posts or documentation or contributed to any open source projects? Again, no right or wrong answer. We're all busy people, but this can give you a sense for how people write, what their thought process is, and how well they write. You don't need everybody on your team to be the most expert writer. And that's fine, but it gives you a sense for who this person is. So, when we go to karaoke, what are you going to sing? Say all shucks. We're fortunate I did not bring, I did still write a label for this. So I won't try to show you my 20 minute talk, it usually takes an hour, and I'm just going to give you a couple of high spots. And essentially this is something that I blank for everybody in the world to think about. This week, recently, Slash Dot told me that the Guardian had an article that said, Forrest, who are controlling people, said, we'll lose 6% of our jobs by 2021 to automation. I'm going to be surprised if that's a whole number. I guess there's no way to really know. I know because I've been following this for a while, and lots of jobs have been evaporating. And people complain about sending work overseas on manufacturing work. I read an article several years ago. G.D. brought more than one manufacturing line for one appliance back here, but they do it with about a third of the people because everything is automated. It's not only in manufacturing and service jobs, it's in middle management jobs. There used to be a lot of people who told your office to pass notes back and forth up and down the ladder. They've been replaced for being assisted by systems that do diagnoses. There's just all kinds of things going on. We can give you numbers forever. When you talk about this, there's optimists and pessimists. The optimists are saying, well, this has been real. You always have new kinds of jobs that take the place of the old kinds of jobs. So we don't have a problem. The pessimists say this is happening so rapidly and so dynamically and so much that this time is different. And we don't know what's going to happen. What this is, new jobs are created. They're usually not appropriate jobs for the people who lost their jobs. I started teaching Buffalo Tech for Buffalo Stasis, around the time that steel land closed in Lackawada. And we did have some people came in and struggled to educate themselves to find some new career because they knew what they were doing was dead. God bless them. Not everybody does that. Not everybody is capable of doing that. So even if there are new jobs, people in transition get hurt. Like right now it's a little different, there's a lot of talk on the political scene about coal mines losing jobs because we want to fight global warming and those jobs are going away and there's no magical thing we can ever do to make them come back. What are those people going to do when we should train them? I don't really know the answer, by the way. Tech doesn't edit that. Everybody's looking at me kind of blank. Think about this. A couple things that impressed me. I recently reread a book entitled Player Piano that Kurt Monaghan wrote by around 1950. And the theme of this was machinists being replaced by automated machinery. And the real thing about it was interesting. They gave these guys an income. We had a universal basic system as kind of an income, but they didn't have anything to do. They didn't know what to do and they sat around the bars drinking and being pissed off at the people that still had jobs. And that's kind of the theme of this business. Another one that I think is pretty good is Elvis Huxley and Brave New World had the consumerism thing nailed as well as some other things. So I might encourage you to look at those kinds of things. The other thing I can encourage you to do is a book. The second machinist is written by a couple of smart guys from MIT. One guy is McAfee, which he's built on C-A-F-E-E, which he's about what you'd expect. And the other guy is Byrne Jolson, which if you look for the title if you're really interested, they got pretty extended analysis a couple years ago that one of the things I've stolen from them, they have one section towards the end of the book and says, well, what are we going to do? One suggestion they have, distribute capital to everybody so that everybody gets dividends. That's a bad idea. Another one, I really like this one, promote man-machine partnerships. Pay people to do socially beneficial tasks. Not characteristic, I don't know. Reserve some work for humans. Interesting idea, I don't know. Capitalistic, I don't know how you can do that. But it's something to think about. Provide vouchers for basic necessities. That's this universal basic income to the extent that anybody brings that up. Everybody thinks, oh, that socialism, socialism was terrible. We can't do that. I'm not a socialist, by the way. I think both socialism and capitalism fail us because there are ways of allocating resources that they don't care about human beings. There's a great depression back in the 1929 timeframe. They spared up a lot of things like building roads and parks and they hired people to go out and do documentary photography and all kinds of things to give people work and pull money into the academy, which always seems to me like it was a pretty bad idea. So what's going to happen, and next maybe I'm not, things here I think is when you listen to either Hillary or the Dattles, we're going to save our jobs. It's either one of us, either one of them telling us what they want to do about this. If they are, I haven't heard it. I've heard somebody correct me. So anyway, I can talk forever about this and like I said, if you're lucky, I didn't bring my table. I know you guys can turn to me. It's a big issue. I should be thinking about it. Like I said, if you're a CJ, I'm not wrong, CJ works, I'm sorry. CJ took the RTT, say that again, ckwt.tz.wordpress.com and post, look for one that says unconference and you will find a little write up and you will find a link to the slides that have been shared with you. Think about it.