Well, welcome to this OpenShift Commons briefing today. We're really pleased to have Hazelcast's Chris Engelbert with us to talk about in-memory distributed computing using Hazelcast. And we're streaming live from a couple of hotel rooms. So we're just going to say up front, there may be a few breaks in the Wi-Fi where he is in Spain and where I am in Texas. So today is going to be interesting. We're going to have the session live streaming now on BlueJeans. It'll also be available to be watched afterwards on YouTube. If you have questions, there's a chat box here. I just asked that you type them in there. And we're going to let Chris introduce himself and his topic. And if you have questions, I think there'll be one little pause that he takes when he tries to upload on Wi-Fi a Docker image to Docker Hub or something like that. But we're going to let Chris start. And it should be about 20, 30 minutes of talking and demoing. And then we'll have time for Q&A at the end and I'll open up the mics then. So Chris, take it away and introduce yourself. Okay. Yeah, thanks Diane. So you already said we're talking about in-memory distributed computing on OpenShift today. The most important part is I will try to show how to run Hazelcast on OpenShift. The in-memory distributed computing part will be a bit less on that. But if you're really interested into that part, just Google for my name. There are quite a few different recordings from different conferences or webinars and stuff. And those are all about in-memory distributed computing at all and about how to do that on Hazelcast. So today we'll be mostly Hazelcast and OpenShift. So normally that is my first game. I can't ask people if everybody read that, but I think you did and you probably know what is in there. So it basically says, don't believe me. So who I am, Diane already said it. I'm Chris Engelbert, coming from Germany, being raised in one of the biggest industry areas in Germany. Currently I'm working as manager of developer relations at Hazelcast. I actually joined in November 2013 as one of the core developers, moved on to the cool stuff doing conferences, traveling the world, like all the good stuff you can do over the world. For people that love to use Twitter, you see my Twitter handle down in the slides. I know that you're not supposed to have your Twitter handle on every slide, but I don't care. If you really want to have your Twitter timeline bursted, just follow me and you're good to go. I would say I'm a Twitter, I'm a Java passionist. That means I'm part of the Java JCP, the Java community process that actually moves the Java language and the JVM forward. And just today we got the proposal for Java 9, so that will be fun looking through that. But apart from that, I'm really interested in seeing that Java is one of... I'm really interested to see that Java is one of the most used and most interesting language, and it's still growing and that is good. Apart from that, well, everything about performance, garbage collection, all those kind of benchmark fairy tales. I mean, we all know benchmarks are not real. Everything in those kinds of things is exactly what I normally do. So what are we going to talk about today? I already kind of gave the introduction. We're talking about in-memory computing. In-memory means fast and fast storage. But we do this with Hazercast, with OpenShift, and I think that most of the viewers from the OpenShift block or the OpenShift briefings probably know how OpenShift 3 works. It actually works on Kubernetes and Docker, so far so good. So Docker, as I said, you probably all know that. Docker is meant to just build an image. You ship it somewhere, you run it, and it just magically works. It pretty much works wherever you are.  Auto-magic. And Kubernetes on the other side, I stole this from Ray Tsang, one of the evangelists from Google, and I really love that picture. Kubernetes actually manages the cluster for you. You tell Kubernetes, I want to have 20 machines of that image, and Kubernetes, again, automatically makes sure that this all happens somehow, somewhere. And I think that's pretty cool. He actually showed it with this Hello World. That's why this picture has a Hello World. He just started Hello World, I think, 100 times in the Google Cloud. Pretty cool. OpenShift now takes Docker and Kubernetes and some internal parts and just moves all that together. And that is the interesting thing, because OpenShift itself gives you this amazing infrastructure that automatically handles all the different parts of deployment strategies, of how to distribute your images, and how to scale up and scale down. And at Hazelcast, we thought that is cool, and we definitely need to be part of that. So the interesting thing is what is Hazelcast? And I think that is where most of the people probably don't know yet. So Hazelcast is a so-called in-memory data grid, and I really love the picture, because we're not going to have a laser, but it's pretty close. So in-memory data grid means we're storing... First and foremost, it means we're storing data in memory. I think you got that part. The other part is data grid. That means you can store data, you can compute data. It's not just caching or those simple solutions, but you can really do a lot of things. A lot of people think an in-memory data grid might be something like an in-memory database. It's kind of close. Just remove the persistency part and you're pretty close to what it is. So as I said, or as I already said, there's one important thing. When you have a cluster running and you store data, there are two different ways. So let's take the other one first. The first one is data replication. I certainly forgot a slide for that. Data replication. That means you save the same data on all machines. That is nice because you can just route your reach requests to every node, and that will give you a speedup, but it means you have the same data, and that means you're wasting a lot of memory. So the other option is data distribution, and that is what Hazelcast does. That means if we have this grill and this big pyramid of nuts in the middle, what we actually do, we take subsets of those nuts and distribute it in the cluster. That is cool for a couple of reasons.  The other reason is if we have a request, a query or whatever you want to send to the data, we actually send it to all the nodes. Everybody's working on this little data set in parallel, and that is the cool part, because that means it speeds up your queries massively. So let's get further. As I said, it speeds up data, and speeding up data actually means where you start to use caching and in-marry data grids and stuff is when you want to have fast delivery. Caches are the most typical solution or the most typical use case, but not the only one. We actually have customers using Hazelcast as their primary, first and foremost, primary data store. They still plug some database behind that to make sure that if they have to restart the cluster for some reason that they can restart and read the data, but they use Hazelcast for pretty much everything in their application only knows about Hazelcast, and Hazelcast knows about how to write to this underlying database stuff. So why do we go for in-memory when we want to have fast delivery? So I have this nice numbers here, and I think everybody knows that L1, L2, these days, even L3 and L4 caches are the fastest memory you can get, but unfortunately, those things are still pretty small. Even though you have one of the Xenon CPUs, it's still just like 64 max or anything like that. I'm not sure what the current value is. The interesting thing is main memory. So we're at 100 nanoseconds excess time for main memory, and that is pretty fast. It actually is faster than a gigabit, sorry. So it actually is faster than the gigabit network. Still, a gigabit network is amazingly fast if you look at other things like spinning disk, which is 10 times as slow, sorry, a thousand times as slow, or even sending a network package, a TCP-TP package from California to Amsterdam and back to California. That is 150 millisecond latency. You really don't want those things in your cluster. True. Even if we look at network compared to spinning disk, so there's 0.01 millisecond excess time over a gigabit network, but there's 0.15 milliseconds, so 15 times as slow as the network. That means our gigabit networks are so fast these days that even some of the fastest SSDs can't really keep up on sending data fast enough. That's a very interesting thing. Hazelcast itself has a test lab. We have our own test lab, 10 machines, 786 gigabytes of RAM, 24 cores each, I think, something like that. And we have a gigabit network card, we have a 10 gigabit, and we have 40 gigabit. And I promise whenever you think that network is slow, go for solar flare 40 gigabit network cards. Those things are so amazingly fast. We got roundtrips times in microseconds. That is absolutely amazing. So network is not the problem these days anymore. And the other thing, so network is because we have a cluster, right? Main memory is because we have an in-memory data store. I'm not sure if you can read that. And I think my mouse cursor doesn't work. So this chart actually shows the way that the price and the size of memory moved between 1980. I think everybody knows most good C64 times. And the claim 640 kilobytes might be enough for everybody, even though I think it's not true that Bill Gates actually said that. But it was amazingly expensive to go over this 640 kilobytes. So a megabyte of RAM in 1980 was over six grand. Over six grand. Whereas today it's less than half a cent. That's actually pretty impressive where it's about half a cent. It kind of stabilized at that level where it is in 2013. But the memory size is growing. So these are home computers. And I think 16 gigabytes these days is not uncommon. My home computer is 32. I'm a gamer, so I'll probably need some more. But looking at server hardware, Amazon just yesterday launched, I think it's free terabyte VM. Free terabyte VM. That means they are not running a single VM on a single system. They probably run 10 or 20 or maybe 100. That means they must have machines with 30 and 300 terabytes of RAM. I don't know how they do that, but that's cool. But even as a smaller company, as I said, we have 10 machines, 786 gig each. That's close to a terabyte of RAM. And I think on the HP website, at the moment you can buy two terabytes right from the store without any kind of specialization. That's absolutely amazing. So I already said that two of the main use cases for Hazelcast are caching and primary storage. Caching is interesting because that is where most of our customers start from. They need a distributed cache. Those replication caches or EH cache doesn't work for them anymore because they have too much data. And then they look for distributed caches. And Hazelcast can do that for you, and it does it very well. So that is where most people come in. They need a caching solution, and then they figure out, well, I can do way more with Hazelcast. It's not only a cache, what a lot of people think in the first place. But then they start to use it as a primary storage. As I said, your application is only working against Hazelcast and doesn't know about anything like a database or anything in between or under behind that. So that is the second use case. And then they figure out there's even more. So Hazelcast also offers things like lists and sets and queues and also cool things for distributed computing like distributed executor service. And the interesting thing about Hazelcast, what we always try to do, we try to make it as simple for Java developers as possible. And that actually means Hazelcast implements those features, listset queue executor service based on top of the Java standard libraries. So we implement the Java collection API and the Java concurrency API, so including semaphores and locks and all that stuff, distributed for you, transparently distributed. Your application pretty much doesn't know about it because you're working against the official APIs. And that's the cool part. Hazelcast tries to be as simple as possible. And even though we have a thing, well, I think that it will be the next slide. So Hazelcast itself is all about scaling out. So that means instead of always buying a bigger machine, there's always a company that can sell you a machine that is twice as fast but triple as costy, Hazelcast goes the other way. Same way as a lot of other node SQL solutions out there. And that means you take cheap hardware or virtual machines or whatever and you take a lot of them.  So how does that play together? So Hazelcast, as I said, we have a Hazelcast cluster. For Hazelcast, that actually is a peer-to-peer network. So I found this picture which seems to have every node connected. I like that. And you have your cluster running. You have your application in there. But then you have this problem, right? You either want to update Hazelcast or you want to update your own application. All people know that. What we have to do is we want to roll it out somewhere. And rolling it out actually means we first have to package everything up. That means our application code, Hazelcast, libraries, more libraries, even more libraries. And when we haven't stopped all the libraries yet, we have even more libraries. And that is still okay. So now we have like a huge jar, a war file, an ear file, whatever is out there. And we want to deploy this. So how did this work before we had all those cool things? Well, somebody actually had to move your war or your deployment unit to the servers. And that often was a manual step. Not saying that this is true for all companies still. But believe me, you would be surprised there are still a lot of companies doing this, at least in a semi-automatic way. Pretty scary though. So we try to deploy it. And when you actually manage to deploy, you can see yourself as a deployment hero. And that actually was true after every deployment. And I'm speaking as well from my own experience and from my own past. We did this at a couple of companies. Every deployment, there was a special stand-up in the morning just to see that everything is good. We had to be early in the company just to do a deployment, or just to know that if the deployment goes wrong, that somebody is there. Not what we want. So what often happened is some deployment failed. That was why people were there in the morning. And we actually had to either rollback or quite fast fix it and try another rollback, another deployment and hope that this one works. And I think everybody knows how those fast I need to fix it right now things work or even not work. So Hazelcast started from a customer's request to say, okay, let's do it differently. This customer wanted to deploy on Docker or as a Docker image. So he asked us and we said, well, you know, that's actually a quite good idea. You're probably right about that. So with 36 Hazelcast started to have official Docker images. And those are all on Docker Hub. You can just download them. And what we added now or what we're adding for 37 is automatic deployment or out of the box deployment for OpenShift. This talk will actually show us slightly more manual version because it's not yet completely done, but it will be whenever Hazelcast 37 is out. So Diane and I would just talked about it and we're trying to get this out as fast as possible, probably by updating blog posts and whatever. So that is where Hazelcast and Docker kind of Hazelcast Docker and OpenShift comes together. And why, why do we choose OpenShift? It's pretty simple. The main reason is OpenShift is easy for DevOps and for infrastructure teams to manage. And it's actually quite easy. If you have a template, we see that in a bit to run Hazelcast, to scale a Hazelcast right on top of OpenShift. And that is absolutely impressive and amazing. And I think it's a good work. So let's have some fun with OpenShift. And I actually was clever enough to, to prepare all the slides for the case that my life, life demo doesn't work, but we're trying it life, life first. So let's see. So that is the Hazelcast OpenShift project for now. That's on my, let me see, that's on my GitHub account for now. As I said, this is still a draft version. That's not completely done yet, but we're working on that. We're getting it ready whenever it is needed. So I already cloned that repository and you see while I was trying to get all this stuff running on OpenShift, I basically collected all my commands I ever found. And it's actually quite interesting because a lot of those commands you can only find using Stack Overflow. And you wonder yourself where people get this idea from. So we have this repository right here. As I said, it's just cloned. If you look here, it's set status. Perfect. Okay, so let's look through some of the, the files. So I chose the most simplistic way, I think, that is actually possible. I use a Maven POM file to build my Docker image. And in this case, I give my Docker image a name. I call it Nocturious. That's my common nickname. You've probably already seen that on the Twitter handle. I not use the Hazelkast image yet. As I said, this is still a draft. I'm a, well, I have a maintainer handle here. And this is quite important. So the, yeah. You're not actually sharing your screen right now. I'm not. No. Okay. Let me see. Whoa, it stopped it. Okay. Good to, thanks for saying that. Thank you for speaking up there. I was, I could see it for a second and then it went gone. Okay. So now you see it again, right? Yes, it's there. Okay. So let's, let's start again. Like I said, it's just a Maven POM file. And I use one of the smallest Java 8 images I could find. And as I said, this is pretty important. The standard port for Hazelkast is 5701 at the TCP port. And we just tell Docker, hey, we want to use that one. And here's another thing that is just the way I did it. I give it a Java command to actually load all the libraries and to start my small test application. And this test application does nothing else than just creating a Hazelkast client or a Hazelkast member node depending on my environment variable Hazelkast type. So we will see how that comes together. And actually installs all that stuff to opt Hazelkast. Nothing important here, I think. So let's build this first. And I actually have wonder why it happened, but we'll figure it out. Come on, clear. So what we actually do is we build it first. And that is when the Docker plugin actually builds the Docker file itself and it doesn't work for... Oh, right, it can't work because I have to use the Docker terminal. True, I remember. But you see I use all that vagrant stuff, which is quite nice. It makes development pretty simple and pretty easy. It just needs to start up for whatever reason sharing stopped. I don't know. That's interesting. There we go. Okay, now let's go there again. Still there, right? You still got it there. Okay. Live demos are fun. Yeah, live demos are the best. Let's try it again. And I'm pretty sure it works this time. And it seems like, well, build success. I knew it works. So there we go. Once we build a new image, we have attack for latest. And the next step is actually to tell Maven or the Docker plugin in Maven to upload it. Docker push and that will be interesting because I have no idea if that is going to work. It probably does. Not. Okay. It does not. But I think there's already a latest version on the Docker hub. So we just keep going and I think it still works. So let's see what else. I think there was one more. You're tethered to your phone. So I'm waiting to see when your phone stuff runs out. Well, it looks good so far. So I think we're on the safe side on that page. So what I actually missed, there is a Hazard Cast XML. And that is where you configure how Hazard Cast will do IP discovery or in this case member discovery. So what I did for OpenShift and Kubernetes itself, there is a Hazard Cast Kubernetes discovery strategy. That means it will ask the Kubernetes DNS service or REST service for other members based on, in this case, a service name Hazard Cast OpenShift and inside the namespace default. And I think that might be wrong but we'll figure it out. I think the namespace is actually wrong but we'll see. So let's keep going here. I downloaded the vagrant file for OpenShift and I know it's not the right one especially. I think it's OpenShift Webinar. I think that is the right one. Yeah, I know it's not the latest version probably. This Bootstrap 106 but we're going to install this anyways because I know that one works. We have a vagrant box at name. Wow, OpenShift vagrant OpenShift Bootstrap thing. So that will be quite quick. This I think does just install this OpenShift Bootstrap thingy into the local Docker repository. That's at least what I understand from what it does. But the next step will actually pretty slow and that is where we can do something else like looking up a question for example. So come on. You can already search for a question. I'm just going to write the second line whenever that one is finished. Okay. And we can do multitasking so that works. I'm curious if any of the other folks that are on the call right now if they have a question they could unmute themselves and ask. I know Rich Carpenter is on there. We heard him not having there and I'm not wondering if at their organization if they're using any in memory computing already. If not, if not Hazelcast. We're not using Hazelcast right now. I know there are different applications that it looked at some different kinds of caching like EH cache. Okay. I don't know if anything widely spread. I'm curious to find other people who are using in memory already on OpenShift and to get their feedback on this approach. So that one is definitely pretty slow. One of the things I was wondering about is you mentioned that in some cases it's being used as a primary data store and they have a database behind it. Does Hazelcast itself take care of persisting updates into the database or do you need to develop something on your own to do the persistence part of it or how does that work? So Hazelcast by itself has some interfaces. We call them MapStore MapLoader. If you know the JCache specification, they have cache writer, cache loader, which is the same idea. It gives you a very simple crud interface plus some batching methods and what it does is you just implement or what would you do? You implement that based on writing to couch base, writing to Hadoop, writing to your relational database, Oracle thing, whatever it is. And pretty much the same way you plug in those discovery strategies, you can just configure for a specific map or a specific JCache instance that you want those interfaces or these interface implementations have to be used. So yes, you have to write it on your own. But whenever you plug it into Hazelcast or whenever you tell Hazelcast to use that everything else is completely transparent. That means in the best case there's one or two people in the company that actually know about there's some magic going on in the in the back end. You don't want to have one person, you probably want to have two or three. So I noticed that the discovery method you were showing in there that Hazelcast, Kubernetes discovery strategy. If we have OpenShift installations in two different data centers and they're completely different installs, but a single application might be deploying into each of those environments, sort of for DR purposes. So if one of the data centers is destroyed, their app is still running in the other data center. So being that they're completely independent OpenShift environments, it would seem like that Kubernetes discovery strategy probably isn't going to work because it's being it's using. I think the important question is on how do you configure your Kubernetes discovery to work, not not be Hazelcast discovery. How do you do the service discovery part on Kubernetes? If you have one master thing for that, it will work. If you have completely independent data centers, it won't work. In this case, you should probably anyways use Hazelcast VAN replication to connect those to independent clusters. So Hazelcast has a way of connecting the two? Yeah, we have VAN replication in the enterprise version. We configure the different endpoints and the important thing is as for the reason that Hazelcast does data distribution or data partitioning, you don't want to have a low latency connect between different data centers. So that would mean that statistically half of your data is in the other data center and your whole cluster will get the penalty of this low latency connect. But what VAN replication does, it adds an asynchronous replication channel that can run in active passive or active active. Obviously for active active you might have conflicts you need to resolve. Thank you. Okay. And anything else so far? Otherwise we're just. Let's go back to the demo and get that. So I'm now in the OpenShift vagrant based JVM virtual machine. So I use vagrant SSH to connect to this internal Docker image. And I do a sudo su so I get some root rights because I now doing some things on OpenShift you probably all know and probably better than me. So I lock myself in into the OpenShift configuration and I'm probably not doing it the right way. That's the only way I figured out actually works for me. So if you know better just interrupt me and I'm creating a new project. I'm really happy to figure out there is another way to create a new project but I don't think so. So I'm creating a new project called Hazelcast Cluster and I'm actually joining that one or switching to that one. Hazelcast Cluster. And we're now working on the Hazelcast Cluster project. And now comes the longest part and I think I just gonna copy that from my slides because I'm lazy where you are. Where you are. There you go. Perfect. So what I just did I downloaded the OpenShift Hazelcast deployment template. I'm not a VI guy. You figure that out. So the OpenShift or the Hazelcast template configures or defines how Hazelcast works in OpenShift. I just deployed what image as most specifically and I think the image is somewhere down here. So there is the Hazelcast OpenShift latest image and I hope that will work the other way around downloading it in a bit. It also configures or defines a couple of environment variables. We see there's the service DNS and service name and namespace and a couple of things we already configured. Pretty fall it will always use IPv4 to connect internally and I'm honest here I never tried IPv6 so far. But I think it will work at least from Hazelcast and again the configuration for the part. We know that there's only just one Hazelcast version or instance running in each container so that works. Apart from that we are configuring a replication controller. So the thing that actually makes sure that there is so much replicas or so much instances of this Hazelcast pod running that we just deployed. Pretty fall we always configure or we always deploy three instances. You can up and down scale this at runtime image. I think that's basically it. And there's some more configuration especially to make names nice. So let's see. So we already downloaded. Now we need to import it. Hazelcast deployment and we want to install this or import it into the Hazelcast cluster project. There you go. So I think that's it so far and what I actually like about the vagrant environment that it configures proxy set ups for port. So that is nice. So again it's admin admin. We're just logging into the OpenShift console and as I said it's probably not the latest version. I think so at least. We select our Hazelcast project. And what we do is we just say we want to add something. We select our template template. There you go. And here are the environment variables again we just saw in the configuration file and that is one part of the game why you need those. Jason or I think you can also make YAML files because that actually says where what what are the parameters we want to do when we when we deploy this application. We say Hazelcast cluster cluster local and we want to have members members hard word. And we start the deployment. If everything goes right we get three parts that actually hopefully connect together as I said I'm not 100% sure because of the of the namespace but I think it still works. We'll figure it out. So it pulls down the image over my tethering over a Europe based data plan so that will be interesting. It works and if you run out of tethering your six gig limit will I think I won't run out of that. So that is that is good so far. We haven't yet made a single gigabyte so I think that actually works but oh wow it's it actually downloaded. Wow. There you go. Let's see. They're running. And now let's figure out the VI var. Wow. Var lock container. I think container. Hazelcast. You might have a typo there. Hazelcast. There you go. And I think it's pot lock. Nope. What is it? Nope. That's the wrong one. Not those amazingly long file names. You never have an idea what you actually do. There you go. There's some whoops. There's socket acceptor. It says stream established connection. So they're probably still working on it. Yeah. Well you see that the image is also a bit older. It's 36 early access to there's 36 36 something out. There we go. So here's actually we have now a cluster of three members. And there is 17 05 17 06 and 17 07. If we look back here, we see it's 567. So it actually kind of worked. That's unfortunately not very readable in the lock file. So we actually got a high cost cluster running just pretty much out of the box in open shift. And I think that's interesting. And it's really nice. I unfortunately don't know the the command out of my head right now to start another one to to scale up. And I think it's not in this build of the UI yet.  Okay. But it's in the that browse deployments. No, not deployments or builds. Now it's bill this is local bill. I think the problem is the UI changed pretty much right after that version of the the image. All right. Suffice to say that if you did this live on open shift dedicated or open shift enterprise, or even open shift origin, it would all pretty much. Right. It will also be the UI will look slightly different as far as I know right now. Unfortunately, don't remember how I made this nice version of the log file. But we saw it actually works. So let's go to the last couple of slides and I think I was pretty much it. I think it was easy enough at least. It's not as easy as using Hazel cast standalone. But what what I really like here is it makes deployment easy. So for developers, they often don't think about the deployment part. That is where we we figure out that DevOps really make sense. So you have to in the past with developers and we had infrastructure team or operations team, whatever you call it. And operations doesn't wanted to to think about any kind of exception. So you get a Java stack trace and they just restart it. And engineering doesn't wanted to think about deployment. That worked fine for some time until somebody figured out, well, maybe something like a DevOps is the cooler thing to do. So I think that this this combination of Hazel cast and open shift is exactly what that what is made for DevOps DevOps. It's easy to deployment or easy to deploy and Hazel cast is also easy to understand for people that are not working every day with it. So we haven't seen a Hazel cast source code yet, but you can really believe me. It looks like pure Java code. So for me, I think that is what we have to be happy about. I think we're we're in a good in a good situation in a good time these days. And at at Jack's here in Germany, here in Germany, I'm in Spain right now, but at Jackson, Germany, one guy from from get up gave a keynote and he said, we're going forward to a complete new millennium of deployment and his daughter is writing her own Minecraft plugins at plugins at the moment. She's running her own server. And he said when she's going to be a full time engineer or full time DevOps at in the end at some point, she doesn't expect to have those long, hard rule based things for deployment. She's she will expect it to just click and run pretty much what open shift gives us and what is amazing for Hazel cast. One more thing.  Okay, one more thing about Hazel cast. The main version, all of the cool features are Apache license, you can go to GitHub and just download it, send pull requests, send issues, or hopefully you can't file issues you probably file feature requests. And there's also an enterprise version, but I'm working on the community side so I don't care about that one, besides the fact that it pays for my salary but we're not talking about that. So, that's the reason why I normally consider Hazel cast or to be the first place for developers as as a developer you want to get started easy just look for the examples it's really that easy as it as it seems on the first glance and if you want to pay us some money and work from my salary has cast calm it's it's already in the sites down there. And I think everybody should be able to just go for the whole presentation today and just do it out of almost out of a box at least. So do we have any more questions. We probably have. Perhaps. We're almost to the end of the hour. One of the things that if you can send me your slide deck or put it up someplace.  And that would be a wonderful thing to share that with along with the video that we'll put up.  Rich or anyone else if you have questions please feel free to ask. I think we've we've really covered quite a lot of territory here at this morning and I'm really grateful for you taking the time to do this Chris because I actually learned quite a bit. And I'm looking forward to updating the old blog post about Hazel cast which I think was in 2013 or 14 with some new information and getting people started on this so I know you're on the road the next week or so. But when you get back to your home office wherever that may be. Let's sync up and get get a follow on blog post with with all of this because it's really some great stuff and I'm looking forward to testing out myself and getting the containers. All up and available on wherever the open shift registry hub ends up being in the short term. Well thank you very much. Take care for having me. I think that is that is the most important thing. All right. Well you keep that happy dance.


Well, welcome. We're going to get started here. Once again, this is Brian Rowe with LS&TAP. This training is being recorded and will be posted to our YouTube channel. Thank you so much, Miguel Willis, for organizing this and for organizing the Team Child Hackathon. I'm turning it over to you at this point. I look forward to hearing about how to create hackathons and the great projects that came out of this one. Yeah, thank you, Brian. Thank you, LS&TAP, for hosting this presentation. And really, thank you to Pro BonoNet as well. Today, we'll be talking about sharing the teams, some of the things that went on at the hackathon, and just the hackathon model. Again, my name is Miguel Willis. I'm a third-year law student at Seattle U Law School. So to start off with the Team Child Hackathon, I'll just start off and talk a little bit about Team Child. Team Child is a nationally recognized nonprofit in Washington State serving children in crisis, and they've been doing this work for over 20 years. And their job is to kind of break the cycle of arrests and detention that drives the school to prison pipeline. And they do this by going in and bringing lawyers and helping kids who have gotten in trouble or entered the juvenile system through an advocacy on education and mental health. They wanted to, from their exposure to a hackathon, they wanted to organize one that was specifically around youth justice. So that was the kind of ambitious goal of that hackathon. And I'll talk more specifically about the Team Child hackathon. But first, I guess I'll just back up and talk a little bit about hackathons. So when people hear the word hack or hackathons, they usually think of these guys right here. And just to kind of dispel the myth, when we're talking about a hackathon, we're not talking about these folks. We're not doing anything illegal. We're usually talking about these folks. Hackathon or hack day, some people say it's an event where computer programmers, graphic designers, project managers collaborate to create solutions around a specific problem. In the justice arena and the legal profession, a lot of these hackathons have been popping up to solve specific problems around the law, either it be legal innovation in the business context but also the access to justice, addressing the access to justice crisis and addressing social justice issues. This specific, so what goes on in a hackathon? So in a hackathon, the goal of the hackathon is to address specific problems. And you do this by creating user design solutions. These solutions are usually, you really want to make solutions in a hackathon useful. They have to solve specific problems that in the legal aid or legal services context, they're solving a problem or addressing a specific problem. In order, I think, to really get good solutions out of these models, you really want to have users involved. And I'll speak on how we try to attempt in the design process. So going back to the hackathon model, usually when you arrive, you kind of mingle network. Once the event gets kicked off, folks will pitch kind of like a shark tank style, very fast, about two, three minutes of what their specific problem is and how they believe they can address it. Of course, usually what they think is a solution will likely iterate over time.  So again, in the room, what you'll have is subject matter experts. In this case, lawyers, law students, folks that work in a legal profession with the Team Child Hackathon, specifically folks that work in youth justice. Then next, so after the teams form, usually folks kind of ideate on that problem a little bit more using data and research that they gathered, experts share their stories. So then you go into the building and developing. Your goal in terms of building the solutions to get a workable prototype out at the end of the hackathon. And I think that's the kind of key distinguisher between this hackathon model and what we traditionally kind of do in legal services is this model allows us to work and build quickly. And even if it's a crappy solution, we get a solution out. And the process of the hackathon allows us to get feedback from the users, which are folks that will be using this solution or folks that are affected by the problem. So by working in a short, continuous motion of really interacting with users allows you to build upon some of these solutions. So again, the next step is to iterate. Take the feedback that you get from folks who are affected or folks that try it out and then you improve. At the end of the hackathon, the teams present what they were able to accomplish in that 48 hours. Again, this kind of just goes over visually what goes on at a hackathon.  During this stage, the ideation stage is key because what you'll have is a group of legal subject matter experts, which really know about the problem and really work with this problem on an everyday basis. And that session is really conveying to the other group of participants, the user experience designers, the developers, the data scientists of what this problem is so they can get a really good understanding. And then developers build code and sprint to build a workable prototype. And again, getting feedback from users is key. This is an example that I used. There's an app that is, while we successful call, do not pay, which if you get a parking ticket, you can easily go on a mobile app and you can, through a series of questions that they ask, you can appeal your parking tickets. And the app is free and it's already successfully appealed over 2.2 million parking tickets. So thinking about it in the hackathon context, you have this problem of parking tickets suck. I don't want to go to the court, take the time to go to the court to appeal this thing. What can we do to solve this? And at a hackathon, you will build, through our ideation session, this almost kind of decision tree model of what are all these, you know, what they did for this specific application was they basically took the main forms of how parking tickets were appealed, do it on an algorithm, and built a workable prototype. So in a teen child hackathon, again, we were addressing the problem of youth justice, a lot of the problems that youth face within the school to prison pipeline context from, you know, underserved teenagers who can't afford a lawyer to the disproportionality of teens getting arrested and detention. And we worked with teen child and teen child had a number of solutions that they proposed in addition to a host of other community organizations that proposed ideas. So it was a very collaborative event which really brought out a lot of community members. I kind of want to just talk a little bit. Last year we hosted the social justice hackathon which revolved around how can we, very generally, how can we use technology to increase access to justice in the same kind of hackathon model. With that hackathon, it was more general. So we had a lot of ideas from the landlord-tenant context to apps revolving around, you know, getting information to survivors of domestic violence. By narrowing the scope of the hackathon, I think it produces a lot of benefits because you're able to get higher quality solutions. You're able to have a greater depth of the problem with the number of subject matter experts there. You're able to bounce more ideas off of other teams because you have folks that deal with a specific issue, all dealing with kind of youth justice issues. So it's really beneficial. You can scale that hackathon back to, you know, just an organization. And from the standpoint of, you know, organizations or legal aid organizations are interested in hosting a hackathon, I think it's extremely beneficial not for just looking innovatively at the law and kind of really examining some of the problems that folks face with their clients but also reaching out beyond the legal profession to help solve some of these problems. So what to make of hackathons. Hackathons draw, again, a lot of critics. Can we make, can we actually make a sustainable solution in a two-day period? You know, and the answer is no, you can't. But the goal of the hackathon is to, one, be at the drawing table of how this innovation process works. It usually doesn't come over time. And this is, we usually want to build events that are built with the context that we need to support these teams after. So organizations take this serious, this is a great model to kind of innovate and help solve some of the problems that organizations face. But in terms of designing this type of event, it's something that you go into with, you know, in the long run of really, you know, providing the avenue to get the teams, the solutions in the hands of the clients. Because the folks who are developers on the more technical side, they really benefit from, you know, having their stake in building social justice solutions. So they come in not knowing a lot of the problems that we have, you know, with this specific hackathon, with youth justice, a lot of folks from the tech backgrounds didn't know. So they're able to benefit from learning. A lot about some of these problems and have a stake in building something that addresses these problems. And us in the legal profession get that technical expertise that I think it's really missing. And so moving beyond hackathons, I think, of course, the Teen Child Hackathon was a two-day, 48-hour event. And again, in order to address the sustainability portion, there needs to be in the legal system, a system in place where a lot of these projects that are coming out of hackathons get the adequate resources they need to sustain. So here's an example of Hale Innovative Justice. What they do is where I see a movie next in the profession is these accelerators. So taking some of the solutions that come out of the hackathon really provides them the resources with capital, getting them space to work or an organization to pilot the program. The TIG program is another one, it's a formal grant process, but this kind of really stands right beyond the hackathon model and, you know, teams can apply. The Varsion University Access to Justice Challenge is another example. They kind of took the hackathon model and said basically extended it for a longer period of time, six months, we're going to give you capital, we're going to give you space, we're going to give you resources. So it's really, you know, creating a healthy competition to get more folks at the driver seat of innovation to solve some of these problems that really affect our justice system. I'm so excited and happy of what we're able to do at the Team Child Hackathon because I believe we're able to get a lot of folks in the room from youth to folks from, you know, the prosecutor's office, public defense and a host of other, in addition to Team Child, a host of other organizations that work in the space. So we had a very healthy collaboration model going. So, Miguel, with the Team Child Hackathon, how many participants did you have there and what was kind of the breakdown from the different industries? Yes, we had about 50 participants at the Team Child Hackathon and folks pitched ideas relating to solutions, problems around, you're going to have one team that dealt with reinstating suspended licenses, how do we increase the amount of problems around record ceiling for youth, if a youth had a juvenile record, possibly creating a solution that automates that process similar to Maryland's expungement app. Another thing that I really liked about this organization is that we had a lot of grassroots organizations come and pitch ideas and solutions around very specific problems. So, kind of going back to the context of what the Makeup Hackathon, I think a lot of folks, they expect a very kind of novel solution to be built and I think you can rate a hackathon success by their ability to solve a very specific problem and that's what a lot of these organizations raised. Youth RISE, they pitched an idea to connect youth, they already had a mentorship program which helps at risk youth, they wanted to build a platform to connect and gamify, know your rights education and a host of other things.  You participated in several different hackathons now. What are some of the tips you would have for people who want to run a hackathon for best practices? What makes a good hackathon? I think inclusive design is key and what that means is having everyone at the table, I think one of what we did was I incorporated a youth portion of the hackathon where youth actually came in and we, of course, we gave them prizes and awards and we had them participate in some fun activities but they were also, they got to provide feedback to the team. So when you talk about building a user design solution, you have youth there giving their feedback. Also, making it an inclusive space for everyone to work, respecting people, I think thinking about the long term as you're organizing, it's really hard to kind of maintain and keep up these solutions but really having very strategic long term goals because there's so many different ways to get assistance beyond just the hackathon, just the event. So in Seattle, Washington, companies like Microsoft, they have a whole dedicated team to provide non-profits technical assistance. So when you say we need more help to build this solution to get it to that stage, there's a host of technology organizations that help non-profits. In addition to Code Fellows, who was our other sponsor, coding academies where you have boot camps of junior developers who want to get their hands on working on something, a substance. So just a lot of resources, having that very long term strategy. In addition to defining the scope, we try to limit our scope as much as possible to just focus on solutions around youth justice. But not to say that there's any problem with having a more broader scope but really focusing in on the scope because you'll know who to kind of reach out to. So now I have the honor to present beyond 180. Okay, Kailin. All right. So hi everyone. Thanks for listening. My name is Kailin Yu and I'll be representing the team and speaking on behalf of Beyond 180 today. And before we get started, I just wanted to give you guys a little bit of a background to the 180 program as a whole. So that way you just have a little bit of context and understand what the program is all about. So the 180 is a juvenile diversion program that is partnered with the King County Prosecuting Attorney's Office. And together, they work really hard to keep our at-risk youth out of the juvenile justice system and avoid criminal prosecution. So the 180 program consists of two elements. There is a half-day workshop. And then as a second element, there is the Beyond 180 Aftercare follow-up program. So basically at the workshop participating at-risk youth basically have the opportunity to have specified charges that have been filed against them to be dropped from their record upon successful completion of the workshop. And this avoids the problem of further hindering employment educational opportunities in the future. At the end of each workshop, each youth is given a form to fill out that kind of segues the beginning of their journey into the Beyond 180 Aftercare program, which I will show you here. And the Aftercare program basically the youth have the option to fill out on their form additional services and resources they may need in order to make easier decisions to stay on the right path. And they can voluntarily be signed up and paired with a community ambassador. And the community ambassadors are really the heart and soul of Beyond 180. And they are the ones who work directly with each youth client and making sure that they have access to resources they need. So this can include additional services like educational services, counseling, health services, rehab, et cetera. And basically the main goal of these community ambassadors is to establish and form a solid trustworthy and meaningful relationship with each youth that they get assigned to. So that way these youth feel like they have a dependable support system for however long they need. And that was a pretty brief overview, but I would encourage anyone who is interested to check out the 180 program at 180program.org. They have a great website and there is additional information that I think you guys might enjoy viewing. So initially as a team participated in the Team Child Hackathon and we met with two community ambassadors from the Beyond 180 program, their main problem was that they did not have an efficient system for storing and managing youth client documentation. And this proved to be pretty problematic in the sense that with the wide breadth of clients that they were getting into the program and out of the program, having physical pieces of documentation and using Google Sheets was not a sustainable approach. So some of the problems they were facing was difficulty keeping track of each youth, limited access, restricted outreach, and the model was just not sustainable and providing an efficient means for the full potential of what the community ambassadors can do for each kid. So as we sat down and we collaborated with the community ambassadors, our team decided that it would be best to build out a Beyond 180 database. And this is the piece that was covered over the weekend of the hackathon. We have now put on a user interface for it, which is something that we have been working on progressively as next steps after the hackathon. So on a technical side of things for the database, our team built out an API that wraps the relational database and basically allows interactions from a user perspective for youth clients and community ambassadors. So I'm going to do a little bit of a walkthrough now of a demo. So here, this is a live prototype that our designers have been building out over the past few weeks. Like I said, the database was something that we built out over the course of the weekend at the hackathon, and that's all back-end code. So there's not much of visual representation in that aspect. So to meet the means of this presentation and to kind of give you guys a better idea of how it might look, our designers put together this interactive prototype, which will also better explain the features of our database and how ambassadors and youth clients alike can interact with the database. So here, this first screen that you're looking at right now, this is something that a community ambassador would see after they sign in, and it would just display all of the youth clients that are specific to them in their assignment. And as you can see on this page, we have contact, the ability to create a new list, find a service, create a report, and now it's kind of jump into what it might look like once we start searching for a specific youth client. So here, let's just say we're searching, let's just search the first one. There we go.  So on this page, you can see that there's a very organized format and fairly intuitive interface that is easy to navigate for the most part for ambassadors, so that way they have a way to easily access all the information that they need. For instance, you can see down here, we also added a feature to create events that ambassadors can use and directly send them to each client, so that way they're actively participating in their lives, and each kid knows what's going on, what events they can attend to, et cetera. And farther to the right, we see just different methods of contact, so there's an email option, phone call, text. And if you guys are curious what an event might look like, we can go ahead and open that up. And if you click on this, you just follow out as a community ambassador, you fill out the according information, and then you have the ability to directly send that to the client based on what method of communication works best for them, which is something that they specify when they register. So let's go back. I also want to let you guys see this little I right here. Once you click this, much more information specific to this individual shows up, so let's go ahead and click this. And you can see in regards to support information, contact information about the client, parent information, risk factors, and forms. I'll go through some of them. So if you click support information, it displays the name of the community ambassador and the plan that they have established between each other as a method to kind of best approach whatever goal they've set out to achieve together. There's also contact information. So this includes, you know, phone number, email address as well. And we can go through one more. Let's go through about. And then you just have basic, basic information about the client. And mind you, this is a prototype that's in progress. So we will be taking account of more finite details. But we just wanted to have something to kind of give you guys an idea of what this will look like once we finally implement our future features. And then that option there is just to show you how you can navigate to update information accordingly. And then if you guys want to see how it might look to text them, we would just hit the text option and it directly opens up a text message with that individual. You can type something in here. We'll just do like, hey, Harry, we'll go ahead and send that. And then it shoots the text over to them. So as you guys can hopefully see the direction that we're working toward, like I said, it's in progress and for the means of today, we just had to put together what we could and then keep in mind all of the future features that we want to implement. So now we'll transition back over to the PowerPoint. And we will just get into since the hackathon to kind of tell you guys about what we've been doing since that weekend. So since the hackathon, the developers, designers, and community ambassadors have been collaborating along with Miguel working toward a finished product. This includes detailed outlines of how we're going to approach and interface a front end onto the back end to make that prototype that you guys saw come to life. And this is something that we're working on iteratively and we're staying in touch with each other and communicating frequently to ultimately reach that outcome. Some things that we'll have to change in regard to resources that we have considered is that for the back end in the database, we were using MySQL and deploying on Heroku. For the means of the hackathon, it was great, but MySQL and Heroku will not be scalable or sustainable for a more robust database, which we plan on building because we want this to be something, a reliable database that they can use and it can grow and it can scale. So for the future, we are going to be using Aurora for our database and AWS, which if you don't know the acronym, it's just Amazon Web Services for deployment and this will kind of allow us to take that step in the direction that we want this application to go, meaning, you know, being scalable, reusable, and just a more solid product. And that's really it for now, so I just want to thank you guys for listening and again, feel free to check out their website to get additional information about Beyond 180 and the 180 program and I guess just shoot us any questions. I have a quick question, Kayla. So why did you participate in this Team Child Hackathon and as from a technical standpoint, what did you benefit or what did you get out of participating in this hackathon? That's a great question. So I actually was a student at Codefellas at the time that I heard about the Team Child Hackathon and that's how I got involved and what piqued my interest was that the goal behind Team Child and what the hackathon was getting at was something that I felt was really meaningful and would be a great opportunity for me to finally see how my technical skills can directly make positive impact on my community and I think that participating in this hackathon really drove that point home to me and it's just made me realize how much space there is for technology to improve certain parts of the community. Yeah, well thank you. Thank you very much. At this time we're going to pass it to the next team which is going to be Kristen Fairfleck who's going to be presenting the project that they created which revolves around reinstating your suspended license. So if we can get that screen. Okay, well hey there. I'm Kristen and thank you for the opportunity to present today. As Kaylan said it was a really fun and for me especially I think insightful day of learning and collaboration so we'll share a bit about our project and the problem that we tackled and if there are questions we're happy to answer them. We do have our two other team members, Sarah and Catherine that are on the line I believe as well. We were one of the smaller teams just to give us here I think perhaps the team of three I think was the smallest there. So small but mighty. We had two staff attorneys with a team child which for me was huge because as a designer I worked in a number of products and industries but not necessarily in this specific one so I was learning kind of on steroids that day and having that subject matter expert help was huge. It would have been impossible to do without them. So with that I'll share a little bit about the issue that we're tackling. Reinstating suspended licenses for us is huge that opens a world of possibility for thousands of people. As of 2011 there were over 300,000 Washington licenses that had been suspended for failure to pay tickets whether that's a speeding ticket or a parking ticket but there's a lot of other reasons that can result in this suspended license and that was a few years back. So our estimate is that as of the state we have about a half a million people in Washington state alone that have struggled with this issue and many of them as a result of having their license suspended sometimes without even their knowledge they face criminal charges. So our goal is to help that problem or to avoid that problem entirely and help folks avoid those charges. Part of the trickiness of this problem that we're tackling is that many individuals don't even realize their license has been suspended. Let's say you get a parking ticket in Seattle and for whatever reason you don't get the payment in. Perhaps you didn't get noticed or your life is just busy as they tend to be and that payment doesn't happen. After a certain amount of time that can actually roll into a criminal charge and when you get say pulled over for speeding or any number of issues if your license is swiped so to speak you can then realize at that point in time that you're facing criminal charges. So this oftentimes is a surprise for many youth and others and it can affect their ability to seal their record but when they have that criminal charge they're not able to seal their record for another two years and that was really what I think for Sarah, Katherine and I really made this problem so worthy of our attention and thought and effort in this. Sealing a record for a youth opens up a lot of opportunities. It means that when they're applying for a job or for a loan say that previous record isn't going to come back and haunt them. The employers don't look at that and it's not an impediment to their application. So for us we really wanted to make sure that youth could seal their record which is prevented when they have the criminal record. So as an example here we want to make sure that we're as designers that we're understanding the users and where they're coming from so we spoke with a few people and did a lot of research on this and wanted to present this example. Let's say we have a young woman who receives a parking ticket and she does want to pay it. She wants to resolve this and she has two young children and she holds two jobs and so it just doesn't really happen. It gets kind of lost in the business of day-to-day life. She also moves about a year later and so those reminders don't actually reach her. And two years later when she's pulled over for speeding the cop tells her that your license is actually suspended and this is a criminal charge. So she's faced now with this question of how do I deal with this? I don't know where to turn. And luckily there are a lot of resources. We have the Department of Licensing websites like DMV and as Miguel mentioned earlier apps like Don't Pay Anything. There's also a number of wonderful nonprofits and advocacy groups like the Center for Justice, Northwest Justice Project, and centers like Team Child that's on the line with us here. They have a lot of great resources but as we were going through them during the hackathon and kind of taking an inventory of what was out there it does seem like there's an information overload. The resources aren't necessarily formatted or structured in ways that are easy for individuals short on time and perhaps not as familiar with the topic to grasp. I spent 30 minutes myself going through it and still had tons of questions for Sarah and Catherine. They're not all user friendly for as an example one of the PDS told me now go through these 20 courts, call all of them and figure out which ticket where the issue lies. And for a lot of folks that simply isn't feasible. There are certain hours they can call and they have work and it's just not going to happen. A lot of them are also region specific and drivers don't also necessarily know that there are groups available to help them through this. So there isn't really a great way for users to tackle that at this point. There's things out there but there's opportunities for improvement. So Sarah, Catherine and I wanted to say that it was mobile friendly meaning it could be accessed on any device and it wasn't a PDF that required download and it could leverage existing resources. Our goal was not to reinvent the wheel here and to kind of negate everything already out there. We wanted to bring those tools together into a system that could kind of make the sum of its parts, I guess the sum greater than its parts. We compile the data for the drivers rather than requiring them to gather information for themselves. So as an example I mentioned earlier in one case the driver was asked to call 20 different courts and find out what the process was and in which court they had to pursue the issue. Our goal would be to compile the data for them so that they have all that information at their fingertips. Importantly, we also use progressive disclosure which is a term meaning that we show people only what they need when they need it. So instead of a 20 page PDF or a long scrolling web page, we give them information in bite sized pieces saying first do this and then click the check box. Now do this and we kind of follow them along their journey to resolving the issue which makes it a lot more user friendly and a lot less facing a lot less information overload. We also make the process interactive and encouraging giving them kind of digital high fives along the way and we provide access to advocacy groups so that if they do have questions they know that there are folks out there and that can help them through this issue. So in the TurboTax license stream statement, someone was looking at the prototype and said this is really like TurboTax. It walks you through the process step by step and we've kind of adopted that name there. What we'll be showing you today is the low fidelity prototypes, what we call grayscale or wire frames which is what we presented during the hackathon and there's work to be done here still but we are a team of three and are looking for additional assistance and building it out further. So you'll see kind of the process that we arrived at during that day along hackathon and kind of we can discuss the next steps that would take to build this out full scale as we go. So we'll take a look here. Let's say you're an individual that is realized unfortunately either at the DOL or because you're pulled over that your license is suspended so you're using your mobile phone. You could also access it via a library computer to learn more about what you do next. In this prototype we bring people first to the Department of Licensing website and we have information that's only available there. Specifically, we're looking for the court that they need to contact to resolve the issue and the reason for this issue. So was it a parking ticket or were they speeding? So we ask folks to click the button here and report back the reason and the court. From there they'll go and be brought to kind of the next stage. Now this is just one screen to another but what actually happened in the back end is a lot of data filtering. We have as I mentioned a number of courts with different processes in each one. So if you were pulled over in Arlington for example the process in the Arlington court is very different than it might be in say Seattle and so the impetus previously was on drivers to call those courts and figure out to need to write a letter to send an email to make a phone call to apply in person to remove the criminal charge. There's a lot of different steps for different courts and the courts aren't always super transparent about that. There's not typically a website showing you how it all works and the courts can be difficult to access. So what we do in the back end is compile all this information for them and when they tell us in the previous screen that this was actually in Seattle and it was because of a parking ticket we can then tell them immediately okay based on the data we have you need to request a hearing. We provide them with you can see here that the text is actually in gray boxes which is typical in design of kind of text to come. We give them a phone number as well as some talking points for that request. For example we might discuss tone. You want to avoid things like it wasn't my fault or I had no choice. Instead we'd coach them on a few things they might want to bring up in the tone they should be using during that phone call. They then click okay I'm ready to call the court and move on to the next slide. How did it go? Being personable and approachable. At this point we'd have some logic branching. They would either say I got the hearing or I have heard I need to write to formally request one or perhaps I can't get a hearing. So at this point the user has different options. We're going to go with option two saying I need to write to request a hearing. So they click that middle button and jump over to let's write that letter. We provide them with some pointers as we did before and we're actually going to in the next slide guide them through the process. We provide a template that gives them everything they need with some spaces for them to plug in their specific information. So as an example they might plug in their ticket number just type that in the date in which they got the ticket and assign their name. And this would again be customized based on the sort of incident that they found in the DOL website. From there they can save the letter for printing or perhaps even automatically emailing the courts. We don't leave them there though. We give them some follow-up information and ask them to return once they hear back and they can continue through the process with this device. Say I got a hearing and then they're reminded of the objects or items they need to bring with them to court. So perhaps they need to have various documentation which we remind them of here and they can actually click a check to say yes I have it or no I don't so that on that day they'll be reminded of everything they need to bring with them. So the implications for a tool like this are really huge. As I mentioned before our estimate is that about a half a million people in Washington State have struggled with this. And of course if they have a criminal record it again is difficult to seal that record for actually two years. So if they're able to roll the criminal charge back to a misdemeanor in court they are able to seal their record and they can do things like get a house, get a job, take their children on field trips. They don't have to worry about that charge coming back to haunt them. This is of course all on top of the personal feeling and the kind of the sentiment one has when they're no longer dealing with that stress and those issues. This is I think a great quote from someone that was served by the Center for Justice saying I feel like having my license back makes me feel like a contributor society in a positive way, the way I used to be. And that really kind of had home for me. So it's an emotional toll this process takes and we want to make it as easy as possible for users, both youth and older individuals. So with that we wanted to thank you guys for the opportunity to present and if there's questions we're of course happy to answer them. We do have a team child that's on the line which is awesome. They were huge in this process. So thank you. I'll turn it back over to you, Miguel. Thank you, Kristen. Excellent job. I guess my first question is what were some of the limitations that you all faced while building this? You say you only had a team of three. Sure, and Miguel I'm just turning it back over to you if that's okay unless you'd like me to keep it here. Okay, yeah. All right. Yeah, limitations. I think man, it is only a day. So as you can see here we had a grayscale prototype, but that was I think for us it was enough to get kind of the creative juices flowing and importantly to start testing it, to testing the idea with the attorneys that deal with this. Another step in this process would be to get out with youth that have had their license suspended and then actually test and see how well this works. There's always various degrees and kind of in depth levels of testing, but we kind of scratched the surface there. So time and then access to our specific demographic is a bit of a challenge, but challenges are oftentimes what make you more creative. So it's a good thing. Just one more question. How was it while working at the hackathon were you able to get information or advice from other teams? Were you able to collaborate or was there anything, any kind of synergies going on with you helping, well helping you get quicker to your prototype from the other folks in the room? Yeah, man. Well it was nice that we had a range of attorneys that focused in different areas and so they could all kind of share their expertise from the clients that they had served. You mentioned there's a wealth of designers and programmers and folks just kind of interested in the space and so it was interesting to collaborate with them and kind of bounce some ideas off of each other. I was sitting down with another designer that has he's a senior designer with years in the industry and we kind of talked through some of the challenges with designing a prototype like this and discussed would this be better as an app or as a website and various questions like that. You and I actually, Miguel, had a discussion too about what the ticket you'd faced in the past and so it's always good to hear from users drawing from our own experience as well as importantly that from others. That's a huge portion of it. So I think it was a great group to be working with and having the diversity that you brought to the hackathon was really key. And you mentioned kind of almost picking into my last question in terms of that UI, UX, design aspect in terms of getting empathy building this user center solution. How important is that? It's huge, it's huge. And I think there are, people understand when you have a day long hackathon, even a two day hackathon that your time is limited and you may not be able to get in front of as many people as you want to get in front of and kind of test it with as many users as you would like. But you make the best of what you can and like I said having those restrictions forces you to move fast and so long as you kind of lay your assumptions out you know what assumptions you're making. You can always go back and test those later. So you have to move fast and hackathons but that I think is kind of some of what makes it unique and a fun place to be. But definitely learning as much as you can about the issue. I learned so much about this particular problem that day and I hadn't had that experience before working in this area and so my goal was to come and learn and like absolutely achieve that. And my hope is that as more of these sort of hackathons come up people will continue to kind of step outside their own boundaries and find things they wouldn't typically encounter. It really does make you I think more aware of the issues in your community and helps you find the things that you really want to dive into because you're really passionate about them. Cool, thank you. Well I want to thank both of our presenters. At this time I kind of want to open the floor up for questions if any participants or attendees had any questions. So one thing is as you're doing outreach to lawyers to try to get them involved, what is kind of the pitch that you give there? Because this is definitely a novel concept for lawyers. Yeah, no, that it's definitely a challenge to get I think it starts with the problem like kind of laying it on the floor, what are the problems that you face in terms of either reaching more clients, what are some of the limitations that you face or some of the issues with clients or specific issues with some of the things that you work on and creating a space where lawyers or folks that are in the legal profession aren't intimidated by the technology piece because it seems like from the legal standpoint if I was introduced to this kind of model like well I'm not a designer, I don't know anything about technology and really kind of disbilling that knowledge that you have to have a certain level of competency. I think lawyers and people in the legal profession, they bring their legal expertise and that is all that you have to have around a specific problem. And kind of really laying out the benefits of how what you can make, what are the goals and also really talking in terms of feasibility, what will it take to get this product in the hands of the clients. So yeah, those are some of the things I guess to get more attorneys and even law students out at these events. Excellent. I think the partnership with the law schools that you've had both with the social justice hackathon and with the team child definitely brought some students in. I remember one of the teams there, Justice Mary, you worked with on mapping resources for homeless youth. That was almost entirely like undergrad CSE students from Seattle U there. So getting students involved is definitely a huge positive to these events. Yeah, in addition to students really thinking about collaborating with partners outside, not only outside the legal profession but just kind of new partners, team child was able to collaborate with a lot of folks in the tech industry, this whole technology community in terms of building those types of relationships with folks if they need help on updating their website or something. Keeping a good repository of these contacts is great to help or making a document more user-friendly. In addition to afford these types of events, you have to get sponsors. So that's another avenue of building sustainable relationships with additional partners. A lot of technology companies are thrilled to sponsor these types of events. If they have a good structure or form to the hackathon, then they'll likely be willing to support this event. So we've got a question here which is actually a really common question that comes up. It's for the Beyond 180 folks that the app is very cool but do clients have smartphones? I'll give a very short one and then I'll turn it over. Internet, Pew Research Center for Internet and Society definitely has stats on this, but we're seeing 20-30% of clients elsewhere in that poverty area. A smartphone is their only access to the internet and they may have limited data. So mobile optimizing and developing for phones is actually really important to our client populations that are below the 200% of the poverty line and the younger individuals are, the statistics are, the higher the chances are that they're going to have an access there. What was your experience there and why did you guys go with an app instead of a web page or some other type of resource? That's a really great point and this is actually something that we put into consideration and I'll take some of the blame for not making that very clear during the presentation. It is going to be a desktop application and can scale to mobile. That prototype specifically was specific to what someone might see on their phone. So for the future we have been considering how we want to tackle mobile optimization to take into account for people youth with limited data and we also are taking into account for what if they don't have a phone or can they access sit down at a computer at a local library or somewhere and pull up the same application on a desktop. So these are things that we'll be working with in the future to ensure that it is able to reach out to everyone in the demographic and consider special use cases like the ones that you just presented. I just want to follow up and say a majority of legal services websites and different tools are not mobile responsive. That means that when you look at that information on your mobile device it will look like what it looks like on a regular computer page. So it makes it really hard and inaccessible for the user to dive through and gather like say specific information about a legal problem that those websites and that information isn't transferred to what you call a mobile responsive. So where it looks clear, concise on a mobile device. Can I add something there? Hi everyone, this has been an excellent presentation and I hope that our attendees get excited about technology and bringing expertise from outside of the legal realm to solve access to justice problems. I think that on the question of do you design hybrid mobile and desktop platforms or do you design primarily for mobile? I think that the key is some of the things that Miguel said at the beginning is that you have to have an inclusive design team because you really need to know and then if you can do surveys of who your potential users would be so that you can understand whether they're going to expect to print from the mobile or anything like that because for example if it's like what we saw today it's great because it's communication, right? Communication between two people or whatever and so you gotta know do your users have the mobile phone, what percentage of them are going to be mobile only versus people. I think about 80% of people that use mobile also use desktop so very interesting for legal aid to be at this point where we're kind of at the crux of a revolution hopefully soon in a tipping point where we will have websites and tools that can go back and forth really well particularly if you're doing more than just information and referral but I think it's key to have from the beginning an inclusive group and to do what Brian said is about the relationships because as it is there is a lot of energy but what I think it's that sometimes people are like the legal aid folks are staying in the legal aid silo the courts are staying in the court text silo and talking to the vendors that sell to courts then you have that kind of thing and one thing that I think it's important is to also look at how people are connecting to the internet we have found in my platform low help interactive which is an online platform that we have not I wouldn't say a huge group but a growing number of people that are reaching us through their Xbox and through their tool machines and so that if they're already using that to reach out to the internet what opportunities does that create in terms of putting tools maybe on those machines or the whole idea of gamification could some of these things the ones that are educational not transactional could they be gamified for the greater good so I think it's a really exciting time but I think that reach out and talk to the people that have been doing the work because a lot of us just want to spur innovation and get you connected regardless of what system you end up using the important thing is to keep moving forward so you just made a good point which segues into another question that we had over what type of events are people aware of I've got up here on the screen right now the social justice game jam which Northwest Justice Project is hosting at the Living Computer Museum here in the Seattle area it's going to be the weekend after Valentine's Day in February February 17th 18th 19th it is on a donation model anybody can donate and pay what they want we'll be covering at least coffee and hopefully food there our sponsors include University of Washington's law school unity and Oculus Rift but this is an opportunity for people to get involved before the upcoming tank conference there is a one day hackathon it's a Drupal specific hackathon projects include developing a knowledge management system through Drupal some type of data structure project and there's still an opportunity for people to register that if you're going to be in San Antonio for that conference Miguel are you aware of any other events coming up that people might want to look at yes I don't have the specific link here but I can potentially provide it to you following this but Tech for Justice initiative out of New Mexico they will be hosting veterans hackathon at the ABA Tech Show I believe in March and that's going to be revolved around legal issues that veterans face and empowering veterans to get legal services so I can for you more information on that as well that would be great we'd be happy to add that to our blog and also get it out on the LS Tech email list because I know some people are planning on going to at least the events after which I think is the EJC conference so if people can make it early to the Tech Show that would be great any other questions or final words or thoughts well I just want people to reach out you know reach out to LS sent up or reach out to pro bono net and reach out to the A2J fellows and if you're interested in technology and don't know much about legal aid we can connect you if you know a lot about legal aid but you don't know what's going on what's happening what's who's doing really good work and what are the things that are the challenges how are they being tackle reach out because what we want to do is continue to be relevant in the lives of the people that are out there that need help and we also need our lawyers to have state-of-the-art technology and tools so that they can do the really great litigation and advocacy on behalf of the communities we serve so it doesn't matter if you're looking out for the public or for the lawyer use or the pro bono use reach out we're very lucky that now we have a mature enough community where we understand things a little better than we did in 1999 when the internet was coming up thank you I just want to take the time to thank again LS sent up take the time to thank pro bono net and Claudia Johnson specifically she was a judge at the hackathon and she got to see first hand of all the different presentations so really taking a being involved at the driver's seat of promoting this innovation and the ball definitely like to take the time to thank code fellows who provided a great location and of course team child who really took a risk and to take a step in the direction of exploring ways to innovate the law and legal services and specifically youth justice issues so I think in order to kind of foster new bold ideas we're going to thank you team child as well yes definitely they also thank you Miguel for putting this together and all of the speakers today greatly appreciated we put links in the chat to the social justice game jam to the YouTube channel that you see here where all of our past trainings are also to the legal aid Drupal hackathon that's coming up and we will be posting about these events on the blog over at Alice thank you all for coming in here especially on this cold day here in Seattle greatly appreciated and I look forward to seeing you guys at some future events


Welcome to Adam Does Movies, a channel I'm constantly trying to shake up and improve. There are hundreds of videos here spanning a multitude of different series. You can find Adam Rant's movies, working title, car side reviews, and my flagship show, Movie Feuds. Since 2021, you can also find me doing a show called Real Rivalrys over on ScreenRant every single Friday, until they get rid of me. This is the spiritual successor to Movie Feuds with higher production values, tighter editing, and a company that is constantly pushing me to do better. Those that have been following the channel for some time, whether it's been weeks, months, or even years, which I truly appreciate, you'll notice that there's been a shift in things. There's been a movement happening. That's because I've just been trying to get my footing with this whole new partnership and really focus on what I want to do here. And I have. That's the good news. I'm now dedicated to producing two new videos every single week on this channel, in addition to the episode of Real Rivalrys. Satirical shows such as The Cringe, Bad Movie Editions, and Movie Boss will be the big push this year, along with Patreon and YouTube memberships. In fact, I plan on posting to those platforms on a weekly basis as well, engaging with the fans that have really stuck by me, or maybe are new, and just want to throw a dollar my way. There is a dollar tier. And now's a better time than any to jump on board, seeing as I just released a video a week or so ago, incredibly cringy. This comes back from high school. I have frosted tipped hair. I have a book of shell necklace.  Alright, that's the pitch. Short and sweet. Didn't want to waste a lot of your time. Just wanted to thank you for staying with me or joining me. Check me out at Patreon. Look around the channel, have some fun, and there will be a new video very shortly. Now if you excuse me, I have some work to do.