Call the meeting to order. We have roll call. Commissioner Sammit is virtual. Commissioner Hopp here. Commissioner Jones. Commissioner Cayunas. Everybody's here. Can I get you anything before I go? Sure. Have a mute. Hi. I can't hear you. Have Larry mute his microphone. Oh, Larry, can you mute your microphone? Pledge allegiance. It's due to the flag of the United States of America and to the Republic for which it stands, one nation, under God, indivisible, with liberty and justice for all. What's your pleasure in the minutes of December 21st? Move to approve. Second. We have a motion and a second. Is there any discussion? Seeing none, all favor. Signify with saying aye. Opposed? Motion carried. Hiders for discussion and possible action. 3.1, Suborgan Police Department update on the hiring post. Well, I just wanted to circle back to the eligibility pool that we established earlier or late in the fall and into Christmas. Conditional offers have been extended to Tyler Metelski and Rachel Smith. They're going through their post offer processes right now with their testing and other, the psychological testing and the medical testing that takes place prior to the offer being finalized. We were anticipating starting them on the 22nd of this month. That might have been aggressive. It might be the 28th or first week of March. Other than that, we have one other vacancy. And we have not quite decided how we're going to fill that vacancy yet. We're not going to run an open process until we know really how many vacancies we're going to need into the year. So I've collected about 100 applications right now. They've been screened, and I have them separated for those that I think we would probably evaluate, but we don't know when that evaluation is going to take place. We also have some of the other avenues available to us as well early in the year this year. So right now, I'm not asking for any action, just letting you know that the pool that we have established late last year at this point has been exhausted, but we don't have foreseeable needs in the immediate future that we need to address. So we have two CSOs in our program right now that are both students at Lakeshore Technical College. One is in the second year. He's been working for us for just over a year, and he is a very strong candidate for a police position in the department. And we're keeping an eye on him and his progress and kind of targeting him toward when he finished his school in May of this year toward a position at that time. We have another community service officer. She is in her first year at Lakeshore Technical College. She's been associated with our department for several years through the Explore program also. And she is doing very well up there. She's a leader in her class up there. But of course, there's still 18 months of school left that we have to work with her. But as far as being a CSO, she's establishing herself in the department as a very, very competent CSO. So so far, she is on a very good path. We also just hired a young man who's a senior out at Lakeland University. He's also in the National Guard and a bilingual Spanish-speaking student. Has a lot of attributes that we like at the department that I think make him a very, very strong candidate for a police position if we get a chance to observe those things in his work. He just started a few weeks ago, so we haven't had a lot of exposure to him yet. But I would tell you in the first six weeks or so that we've had him. He's an impressive young man, so. Just to reiterate, the two females you just offered jobs to over there on now, they're both certified, correct? So we offer jobs to Tyler Matelsky and Rachel Smith? Yeah. And they are both certifiable. They both graduated at Academy last summer. OK. An absence of results from the screening they're going through, have they given every indication that they'd be willing to accept the offer? They've both accepted the offer, and we're proceeding with the post-offer testing. Great. Any other questions? If not, thank you. Commission approval for promotion in the Sheboygan Police Department at a rank of captain. Chief Tomakauci? OK, so this should not be unfamiliar to you. You've been aware for a while that Captain Brasser was going to retire. The 29th was his last working day. So the position was posted on November 27th. And we got three lieutenants that responded to the posting. We ran a process with those three candidates. The process consisted of a written assignment, an outside panel interview. Chief Montianguo was one of our evaluators on that interview panel. I put them through a standardized assessment procedure and semi-structured interview to assess their strengths, roles, risks, and motivators. And so that was a process that the psychologist that we work with did a bunch of testing with them and did an interview and then provided feedback to me. And then once the process was all done, he gave individual feedback to them to on things that they could do to continue to grow and develop. So kind of a win-win thing. And then the final thing that we did was a chief's interview with me and the two captains. And so the top rated candidate was Lieutenant Kurt Semple. And that's who I'm here nominating and requesting that you approve that we promote. So number one, I think you know Kurt quite a bit already. And then I've attached his resume. He's a very well-rounded young man. He's been served in just about every position or rank in the department. He was an officer. He was on the street crimes unit. He served as a detective, was a sergeant, a lieutenant. He's been through the whole educational gamut there. He's done very well in school. He's helped us with a lot of the research that we've done to try to improve our practices. And he's very, as most of you know, very involved in the community. So I highly recommend them. And I look forward to him working with us. If you approve his promotion because of COVID, we're going to do a closed promotional process. Really for the candidates and their families. And we're going to do that on Friday afternoon. We're also going to promote the sergeants and the lieutenant that you had previously approved. And then all of those promotions would be effective on Sunday. Jane? I move to approve the promotion of Lieutenant Kurt Zempel. Second. We're going to motion on a second to approve Kurt Zempel. Is there any discussion? Seeing none, all in favor signify with saying aye. Aye. Opposed? Aye. Motion carried. Thank you, Chief. I think you made a very good decision. I think Kurt's going to be a great addition to your captain's force. Thank you very much. Review of the job description for the assistant chief in the fire department. I think we all get something on the computer to look at what Chief Montanano had sent us. And it's just a matter of a few changes I think that he was going to highlight for us. Chief? Yeah, so thank you. Everybody got a copy that is hopefully the final draft. There really was not any major changes other than language cleanup. There was a lot of duplication. As Chief Domagowski said a couple of weeks ago or last meeting that the city is going through all the job descriptions and kind of condensing some of them. So it went from like a seven-page document to a four-page document, roughly. Really nothing's changed as far as the criteria, the requirements, educational requirements are all that was existing before. So truly it was more, there was a few areas that repeated a lot of the same work requirements or recommendations, so we cleaned that up and just condensed it. So they are still requiring, we still want them to have an associate's degree to be able to apply. But, and then again, minimum of two years, which is important, two years experience at the rank of battalion chief or higher. So some of the language that we added, again, was just in case there weren't any internal candidates that we would change that. So if the ability for them to apply from the outside and have to be taken through the same requirements as drug testing or medical testing that our firefighters go through when they're first hired. So we wanted to make sure we were consistent. So other than that, unless you guys have any other questions, really there was no major changes to it. There are any questions for the chief, Jane? Just a clarification, what does BLS certification mean through the agency? Yeah, BLS basic life support, so that's EMS related, so yeah. Yeah, okay, thank you. Any other questions? Larry, you have nothing? I can't hear Larry. Nothing at my end, thank you. Okay, I think we would need a motion to approve, Jane. Draft of the assistant chief job description. We got a motion and a second. Any discussion? Seeing none, all in favor signify with saying aye. Aye. Opposed? Aye. Motion carried. Seeing nothing else, we need a motion to go into closed session. I'll make a motion to go into closed session. Second. We got a motion and a second. Roll call. Andy? Aye. Jerry? Aye. Jane? Aye. Larry? We are now in closed session.


I'm going to talk about launching a global community for one million users. I intentionally won't mention the client's name because it gives me the opportunity to speak more open-hearted and not being bound by any restrictions. So I'm going to start with that. My name is Kresen Wienger. I'm the CEO of Adapt. I started developing internet back in 1994 as a front-end developer, but that stuff got way too complicated, so I became the CEO instead of. I know that yesterday, how many of you here saw Dries pressed up as a leprechaun? OK, he was pressed up as leprechaun, but you know what? He's not the real leprechaun. I am. I can prove that. Look at that. If we're both leprechauns, then I can tell you I'm the most happy leprechaun, at least. So today I'm going to tell you about Adapt. I'll do that in 45 seconds. This is not why you're here. You're here to listen to the case. I'll tell you about the challenge that we had. I'll tell you about the process and the solution we came up with, and then I want to focus on the learnings we had during this project. Hopefully, that will be enough room for questions afterwards. So Adapt is a digital agency. We promise our clients that will grow your digital business. We are focusing on digital strategy, digital execution, and digital conversion optimization. So it's analyze, execute, optimize. We've been doing this since 1998. We have 100 plus employees being around for so long with that many people. Of course, we have a lot of digital solutions on our conscience. We have 2,000 plus digital solutions. And we are now located in five countries and six cities, counting Barcelona, Berlin, Boston, Copenhagen, Kaunas, and Binyos. OK, that was 45 seconds. Now we go. The technical challenge we had was that we had basically two Drupal sites in one. This meaning that we are talking about a software company here being a game development company. And this company had a public site and also had a community site within the same site. And the thing about that was that we needed to take out the one site, the community part, and then make it to a site on their own with their own URL. This two sites of this site had mutated over the last five years. Moreover, it had a lot of different developers on the project during that a lot of years. And they also had no development strategy. And you can say they didn't even have a development plan. And not at least no documentation. I know this is totally new for you. You also always have a documentation. But this specific client didn't have a documentation. So that was the technical challenges. The business challenge of this was that, of course, when you run a company with more than 800 people on board and your software has been downloaded more than 5 million times, then your website is kind of business critical for you. So that was one of the business challenges we had. We also had the challenge that we had around 1 million users providing content to this site. So it was a content-driven site by the users. There were also editors. But mainly, the most of the content came from the users. We needed to do that. We needed to shut down for content updates for 24 hours. And when you do that, you're working up against a deadline. And that deadline, you can't really move it. Because when you announce this deadline, you need to keep that deadline. We weren't in a position where I would love to just say, hey, we need to push the deadline at least a month because we're not done with the software development or the website development. So that was really an issue to work up against a hard deadline like that. Moreover, being that many, running a website like this, you know that when you take an existing website and you then put it out over to a new one, then you're most likely will lose around 10% of your Google traffic. Your traffic will just drop like that. But if you can imagine how many money that the company like this spent on search engine optimization and AdWords, it's a huge amount of money if we were to drop 10% of that traffic. That would be very critical. And of course, when you're facing challenges like this, the CMO were breathing down on our neck because this is, of course, a high profile project for him. I'm pretty sure he was based in the US. I'm based in Denmark. I'm pretty sure no matter what time of day it was, I would have gotten a phone call if this weren't a successful project. OK, the process. Who many here uses agile development? OK, I should ask who's not. So I won't go into details. You know all the stuff about user storage product backlog and working in sprints and stuff like that. I'll say the only difference here is that we had to take over the project and then we had to run the community site and build some on the old site first. And then we were to begin on the development phase on the new site. So that was the only thing that differed. So we actually also had to keep the old site alive while we developed the new site. OK, the solution and the launch. The new site were built on the Drupal 7. You might ask, OK, why would we build it on the Drupal 7? But the thing is that the decision about this were made in November 2015. And if I recall, release date right, it was about, Drupal 8 was released with a release candidate in October 2015, something like that. So we discussed whether it should be Drupal 7 or Drupal 8. But at that point, we chose Drupal 7 due to the fact that the client wanted to test the software and they wanted the site to be alive for two to three years. So it's a short time lifespan. And they wanted a lot of modules that they could draw on. So now they have a documented code. And by mentioning documented code, I really mean that we also now have it on GitHub. We also have a decent deployment set up and stuff like that. We can roll back if something goes wrong. That's also very neat. We had no loss in traffic at all. So we spent quite a while making sure that we didn't lose organic traffic. And we managed to keep the 24 hours of constant freeze. We managed to reach the deadline as well. So the learnings, we would build it on Drupal 8 today. I've got to be honest to say that we would have put more emphasis on building and making the client choose Drupal 8 today. But at that point, I didn't realize how quick that the Drupal 8 would build up. It's really been taking up much faster than Drupal 7 did when Drupal 7 were released five to six years ago. And then we have this closure sprint versus finisher sprint. We work with software called JIRA, where we kind of run the project in. How many of you know JIRA? Yeah, you know it. OK, so you also know that you can easily close the sprint and say that the sprint is done. But it might not be done, done. Yeah, exactly. So if you close your sprint and say this sprint is done, and then we just need to finish up a few small more minor details, and then it is ready by the end of the project plan. But the thing is, if you close your sprint and you need to still do like 5% and you have five sprints, it's not like when you're by the end of the last sprint, you'll only need to do 5% back of the project. You'll most likely be lagging 25% or more work to be done before that you can actually go live. So what saved us in this manner were actually a conservative project plan, where we stated that we wanted one month to test. So we had a whole month to test. And that saved us, basically. So if I were to give you any learnings from this, I would say not just close your sprint, because that's easy to do in JIRA. You need to finish your sprint. And by finishing, I mean you should be able to test and show and test what you have been doing in this current sprint. We had a launch in summertime. Well, you can just make a project plan, and you can have everybody going on holiday. And you know exactly when they go on holiday and when they return. The thing is, you can only control your own environment. So if you have a client, as we did here, that somehow there was some miscommunication at the client. So when we were ready to launch, we said, OK, now you can push the button, go live. He was on his way on Autobahn in Germany, going on for campsite. And we couldn't get hold of him. We didn't know how to get hold of him. So we had to basically call the US. The US has to call back to Denmark. And we had a lot of stuff moving on. And then we could get hold on the guy who was supposed to push the button for our client. And moreover, if you want to staff up, it's really hard to staff up during summertime. So just a simple mental note about this. And then I will say, document the changes in scope. This was a middle-sized, large project. The beauty about JIRA is, again, it's very dynamic. You can really do a lot in JIRA. But the whole point is, when you start, I would say, I recommend that you now take all your user stories, export them, and save them as a PDF. And then you have that as a documentation. And by end state, and you launch, you can then do the same. And you can just match those two papers up against each other. Because you will experience with a project going on for seven to eight months. You might have employees that stop at your company, stop working at your company. You might have employees stopping at the client site. And new people coming in. And when they come in, they look at what's going on right here, right now. They don't look back. So you're in a position where you need to be able to document what was the starting point of all this. So document the changes in scope is also a pretty good learning, I would say. OK, so by this, I have a few minutes for questions. If you have any questions, OK, fine. You can find us at booth 201. Welcome to visitor. And I'm not the only beauty in the company. Yeah, I have a lot of beautiful people hired as well. Woo, yes. This is our booth. So if you walk in the room and to the left side, you will find us on that side of the conference room. Yes. OK. Well, thank you very much. Tu-tu-tu-tu-tu-tu-tu. Hello. It's all good. Thank you, Kristen. Thank you very much. Oh, OK. Thank you very much. Excellent stuff. I'm Gary. Hello. Hello, hello, hello. Hello. I work for JetBrains. I don't know if this microphone is any good, but I'll inevitably forget to lean into it. So you'll have to shout at me if I do. That's fine. Does anyone here use PHP Storm? Excellent. So I've been working for JetBrains for about a year as a developer advocate. And I've been using PHP Storm as a PHP developer for probably four years before that, paying for the software myself. So when we were given a chance to do a slot here, what I really wanted to do was to share the stuff that I found in PHP Storm that I never even knew existed since I've been working for JetBrains. So yeah, there's a few people here who don't use PHP Storm, right? So what I'll do is I'll just try to start off with the obvious stuff and move on to some of the hidden stuff later. So I'm so PHP Storm mad now that I even write my slides in it, apparently. I didn't completely forget to prepare a welcome slide and just scrambled and do this, honestly. So I've got some notes. We're all good. Let's do this. So yeah, I'm going to be live coding. So if there's anything you want to ask, just shout out. This is completely fluid. So I've got some things I'd like to show you, but I'm completely happy to go off on a tangent. So please do. So can you read that OK? Is that readable? I can try and make it a bit bigger. Yeah, that's cool. So the first thing I'll do is for the people who use PHP Storm, this is the material theme, which is a plug-in. Because people always say, what theme are you using? So the material theme is a plug-in. And this is an extra theme called material peacock. So you can just find that. Just the plug-ins available out of the box. The theme is just findable on GitHub. So the first thing I want to mention is that we have two things that we use to help you to code. They're called inspections and intentions internally. And you'll see those words used inside of PHP Storm. And you may wonder, what's the difference between the two? So I really want to quickly run through what those are. So inspections are the parts that look at your code and tell you when there's something wrong. So did anyone go to the static analysis talk today? Yeah, so it's kind of exactly what Joseph was talking about in that talk, but right in your ID. So I don't know if you can see over here, right in the gutter. At the top here, if you can see that. Can you see there's an amber box there? No, yeah? OK, you'll have to take my word for it then. There's an amber box up there, and it's all good. And it just says one warning found. So in this file, we've just got a really, really simple class, which takes a logger, an instance of a logger as a parameter. And then when we create an instance of this class, because we're not meeting the dependency, the ID is telling us straight away, you know, there's a problem here. We can see these problems with the inspections before we even run our code. It's kind of useful. So we can easily fix that. This is an intention, an inspection, telling us that it's inspected the code and found something wrong. So we can fix that by just passing in a new logger. And there's also a problem, because this needs a name. This is a monologue logger. And I don't know if that's bundled with Drupal 8. Does Drupal 8 use monologue? Yeah, I thought it would. Yeah, it does use the symphony component, so I guessed it would. Yeah. So these are the inspections. The intentions are, like, slightly different. They will do things for you. And you can fire these up, like, generally, or in context. So in this instance, we're being passed in a logger here, but we're not actually doing anything with it. And the default thing that we would do in object-oriented PHP is to take what's passed into the constructor and just throw it into a property. So we can just do that using an intention. So if I use alt and enter, you should see at the bottom of the screen the keys that I'm actually using. You can see that this is a context sensitive helper, alt and enter. So at this point, it's saying to me, I can do two things from here. I can initialize the fields, or I can generate the PHP docs. Interestingly, the PHP doc stuff will work and generate Drupal-specific PHP docs. If you've got Drupal-mode enabled in PHP storm, if you want to learn more about that, come and find me at the booth later. It should just prompt you automatically. But in this instance, I want to initialize the fields. And which fields do I want to initialize from the constructor? Just the logger, please. And you can see that the intention has created the code I need to actually do something with this logger. And it's also added any annotations and stuff I need. So these are the intentions. So if you ever see the words inspections and intentions, that's pretty much what they mean. Interestingly for inspections and something I really like is you can run the inspections over your whole code base. You don't actually need to have the file open in the ID to actually see what the inspections are finding for you. So here in the code menu, I can run an inspection by name. And one of my favorite inspections to run on a whole code base is the PHP 7 compatibility one. So if anybody's running code bases that they're interested in upgrading to PHP 7, but they'd like to know what's going to go wrong, this is really cool. So we can run the PHP 7 compatibility.  And you can see straight away that it's found three problems in this code base, mainly because I created a file with PHP 7 project, so I can demo it. Keywords in string and bool are not allowed to be class names in PHP 7. They're reserved words now. But you can imagine that this will find all sorts of problems in your code base. There's the differences in PHP 7 where brackets, when you're like chaining method calls, the weight of what's analyzed first has changed. So it'll find all these little nuances for you. It's really pretty cool. You can also run any of the other inspections. So if we look at the worst inspection in the whole ID, which is the typo detection, false positive inspection, you can see that it's found some typos here. Yeah, look, it doesn't know my name. I can't spell Drupal, which is actually good. It is right, so that's all good. But yeah, you can run any of the inspections you use across your whole code base, which is pretty cool. Yeah, shoot. Yes, yes, you can run the code sniffer. I'm actually going to mention a little bit about code sniffer in a minute, but yeah, the code sniffer stuff is just an inspection that passes off the codes to a third party and passes the results that comes back. So you can absolutely run code sniffer on a whole project through here if you really want to. So there we are, PHP code sniffer validation, and it would, yes. No, no, you wouldn't be able to do that. There, you wouldn't be, you know, it would either be all code sniffer as it's configured for your project. So code sniffer's configured like globally for the project in the actual settings pane. So I've enabled code, I've configured code sniffer here for the entire project. So I couldn't just turn bits off to run that. What you'd have to do is to update the configuration so that it's only, for example, using a XML file that has the code sniffer inspections you wanted, run it, and then kind of revert it back to your normal one. Any more questions? So that's like really cool. The other thing that I really like are the live templates. So let me tidy up here a minute. So the live templates like get bundled and they allow you to code quicker effectively by, it's almost like clever copy and paste at the end of the day, but they bundle as live templates because copy and paste is bad in programming so you can't use that term. But for example, I can do PUBF and then tab and that will give me public function. Like that's really nice. So I just type PUBF and then foo.  So if I want to be, oh, I want to do pro F, not just pro. So if I want to be coding, I don't want to be typing, you know, all the stuff that I don't need to do, we can use these live templates. There's a ton of them bundled. I'm using command shift and A. Whenever I want to find a set in the ID and I know that it's there, but I can't be bothered to like go into the settings and find exactly where it is. You can effectively search actions or options using command shift and A on Mac. So here I can type a live templates because I know that's what I want to find and then go straight to the live templates stuff. And you can see in PHP, these are what we have bundled in the box. So you've got foo for each, blah, blah, private public functions. And you can just create your own. So if you want to create your own shortcuts that you can use by just typing a few letters and pressing tab, you can do that right there in this section. You can also find live templates downloadable. So I use PHP spec to do behavior driven design and there's some stuff that comes and I just found them on GitHub and imported them into my ID. So that's really cool. Okay, the other thing I really liked when I found it is the fact that the ID has a restful web client built right into it. So if you're coding, and I say it's a restful web client, it's a HTTP client, right? It's not particularly restful, but it's a fully working proper HTTP client. So if you're working right in an API and you want to be testing the end points, you can test it from right within the ID. So we can, for example, do a get request here to API.joined.in and then run and you can see that we've got the JSON back here. I can parse that nice and neatly with this button. I can see the response headers, the request headers, everything you'd like to use. You know, I've been using Curl for this kind of thing or standalone, even paid tools to do this kind of thing and it's built right into the ID. So I only found out like six months ago and I was, oh, that's pretty cool. Why didn't I know that before? Cool, the other thing that is nice when you're working like I am on battery and I'm giving a presentation and it's kind of scary. I'm okay, 60% we're all good. If you're traveling or whatever, so I don't tend to do any kind of HTML or JavaScript work. I'm a back MPHP developer, that's what I do. So quite often what I'll do is turn, right down in the corner here, can you see the little man? Hang on, let me see if I can. Can you, is that any better?  Just down here, let's see. How's that? Can you see that? Okay, so he's casually named Hector the Inspector and it's a way that you can quickly and easily turn up and down the level of inspections and syntax highlighting and help that you get in the ID. And the reason for that is the parsing of the files is kind of quite intensive, it's quite processor intensive, it's quite battery intensive.  You've got this power save mode here that will configure everything right back. What it basically does is it means that you need to invoke any actions. So it won't automatically like monitor your actions. So if I want code completion, then what I need to physically do is to use the key to invoke code completion rather than getting it out the box. So you can see it still works, but it doesn't prompt me automatically. But that's still, you know, good enough for more situations. I also tend to quite often when I'm working in like new code bases where I only wanna like do a pull request on something and I don't care about the HTML. I typically will turn the HTML highlighting and inspections just turn it off. So I don't really care about that stuff and it just speeds everything up a little bit. That's kind of a handy thing if you do that. So the last thing I wanna show is external tools. So does anyone here use like the PHP CS right in the ID? So you've got PHP CS and it's like as an inspection, yeah. So that's really, really useful, but it can sometimes become really painful, particularly if you're, as you say, I do a lot of open source work. So I'll pull in projects that I want to run CS on but I don't want it to run like immediately when I'm actually working. So what I tend to do is to use the external tools functioning system in PHP storm. So if I type external tools, basically what this means is you can define, you can define external command line tools as tools in PHP storm and then you can bind shortcuts them, you can do everything you could as if they were part of the ID and code sniffer and code big defer are perfect for this. So here you can see I've just set up code sniffer to be an external tool instead of integrating it into the ID. So I can run it on demand rather than have it on all the time. And so all I've done is basically I have code sniffer installed globally into my global composer folder. And this work in directory, you can just insert from, sorry, you can insert from using insert macro and it'll tell you what you can use. So basically I just say when you run this because this is set up globally for PHP storm, look for the configuration in the direct, the root directory of the project. That's all I've said. So I can then run that using shortcuts because if I go to key map, you can see that down here we've got external tools and anything I set up as an external tool is available to have a shortcut bound to it, a keyboard shortcut. This is super useful. If you use, you know, if you use, you kind of often find yourself running the same command line commands over and over again. This is like super useful to kind of stop you having to do that. So my PHP CS is what I'll shift them P. So if I use, I'll shift them P. You can see that it's opened and run PHP CS for me and actually told me there's a problem here. And it's telling me that, it's telling me I'm a terrible developer basically. That's fine. I've also had PHP code bugifier which is kind of the way you can automatically fix CS fails and that's bound to command.nav. So when I do find these problems, I can quickly fix them if they can be fixed automatically using a different key combination. I know some people who've used external tools for things like when they need to R-sync because they develop locally and then they wanna R-sync everything up to a testing server to just have an external tool set up to run that command to push everything basically to development. That's pretty cool. So we got a couple of minutes if there's any questions. Yeah, shoot. So you definitely could do that. You could definitely, because you can pass in parameters here, you could definitely set up your own key combination for PHP CS, where the parameters was a different config file because you can pass a parameter into PHP CS and say dash, dash config equals and then a different config file. Yeah. No. No. No, it's fine. Any more questions? No, cool. Well, thank you very much and I'll be at the booth today and tomorrow morning. So if you've got any questions, you just wanna have a demo of any of this stuff, just come and find me. Thank you very much. Hey, hey everyone. Thanks for coming and for joining us today. So I will be talking about enterprise Drupal application and hosting infrastructure level monitoring and as catchy as the name is. So if you ignore the words enterprise, pretty much everything is the same as you used to see that but I would like to scratch the surface and talk about how at SiteGround, we're a web hosting provider. We approach huge hosting infrastructures and how we manage to keep everything up and running without actually interrupting the work of the websites. So my name is Daniel. I'm a senior site reliability engineer at SiteGround and I've been working there for the last nine years. Right now we host about 30,000 Drupal websites and we focus primarily on huge projects. So let's get started. What is an enterprise Drupal hosting in the first place? So it usually consists of multiple servers. You usually need to provide high availability. So if one server goes down, you don't care. The application just continues to work as expected. It offers auto scalability. So for example, we use Linux containers for everything and whenever an application server or your database server needs more resources, you can allocate those automatically or just add another physical server to the cluster and get the CPU or the memory from it and allocate it to another container somewhere in the cluster. And usually it requires multiple services to work as expected. So such projects usually need elastic search, Apache software, MongoDB, Node.js, you know how it is. And the really interesting stuff and no one talks about that, it really, it's really expensive and no one wants to manage that because it's really complicated. So when I talk about complexity, I would like to mention the traditional hosting that you are used to. So you get shared hosting and probably on shared hosting you cannot expect any of the things that I mentioned. After that you can get a single virtual server, a single dedicated server or platform as a service. And platform as a service probably the best thing to go for. But if the platform does not allow you to use, Node.js for example, it's not part of the stack or elastic search you have to do it yourself. And usually you have to get a server from another company, connect to it, which is not what you would like to focus on because you would like to focus on development. So the most complex of our custom private or public cloud infrastructures. Because what we do for our clients is we build those infrastructures specifically for them and after that we have to monitor that. So here is an example. You have load balancers, you have public or private switches for the client. We control all of that. You have replication of the database. You have backup servers, shared storage, and a pool of application servers. And the idea here is that if one of those servers goes down, you don't care. You can just spin another server and it takes over. It goes into the cluster automatically. So it gets even more complicated when you introduce the custom services that the project might need. So let's say that you're using GraphQL for your API or you're using MongoDB for, I don't know, something. You would like to store some data there. And if, for example, that MongoDB service is running only on one server, then you have a huge problem there because it's a single point of failure. And that's exactly what we would like to avoid and that's what we're doing with our monitoring. So the monitoring is split into two parts. The first one is monitoring the websites that are hosted and the second one is monitoring the hosting infrastructure. So I'm just going to scratch the surface and give you the architectural design of how we approach that problem. And I'm hoping that some of you will dig deeper after that. So the website monitoring part is pretty familiar for some of you. Usually what other services offer is that you can check the website from multiple locations and whenever the site goes down from one of the locations you get a notification. But for us, that it's not something that it's enough. And that's because let's say I'm in Amsterdam and the WOKO internet service provider there is having issues with their BGP and they cannot reach the server which is in London. So that's not a problem with the hosting infrastructure and the client is not specifically interested to know that the website is down from there. But he could be interested to know if the website is simultaneously not accessible from more than one location. So what we do because we have four data centers around the world, we check the website simultaneously from several locations and after that we cross reference the information and send a single notification. So we know that it's down from Amsterdam but at the same time if it's down from Munich or London then we can alert that there is a huge problem there. So we have defined incidents by severity and you have critical incidents. So for example, this one would be the website is down from all locations, a major one which could be that the website is down from only a single location or the MySQL replication is broken. There are PHP fatal errors in the locks or the file system is in read only mode. Of course the client can say that, okay, I would like PHP fatal errors to be a critical incident for me because they want to get the notifications tried away. So that is also something that could be configured. So what do you do with so much data? With so much data we have some core concepts that we would like to follow and that is a simple infrastructure for one of our big clients. So you have two load balancers and if one of them goes down, the other one gets the IP address of the first one. So the website is pointed to two IP addresses and both IP addresses become active because we control the network, we can move IP addresses between machines. After that, you have application servers, storage and in that example, you have a MySQL master and a slave and by default, the slave is there only for fault tolerance. So no queries are actually going to the MySQL slave. So some core principles related to our monitoring and I think that everyone should be doing that or at least you should be looking for hosting providers that already did that. Lock all the events and archive them because you are going to need that information at one point and when something goes wrong, we always write postmortems when it comes to finding the source of the issue. So check every single incident, even the minor ones and the notices because what we found out is that when we launched the system, most of the issues that happened were cascade issues. So a single server will fail, which will bring the load on the other servers up which eventually causes another outage. So a single server going down won't affect the website but after that it may cause a bigger problem. If you don't check the minor incident, you could have big problems, let's say two days later. Beware of those cascade failures. So if you analyze a single incident, you will know that it may cause a bigger one. And always strive to go back and to restore operation to the state which it had before that single incident. So one thing that we do is we always check one thing at a time so we try to make the checker as agnostic as possible. So let's say I would like to check the MySQL and we have about 14 different checks related to MySQL. How many connections do you have at the time? How many swallow queries you have recorded for the last half an hour? Or for example, what is the memory consumption? How many threats are running on the MySQL server? And define your limits. When you define those limits and you see that the number of connections is going beyond the limit or you have reached 90% of it, alert someone, alert the database administrator who will be able to check the things that are happening there. So here are some examples of cascade failures and that has happened. And what we did when this happened is we analyzed every single accident and we went back in time and after that we automated the recovery in those issues. So the first one is you have five application servers, one of them goes down. The load on the other four increases by 20%. And after that what happened is that someone invalidated the Redis caches because they needed to restart the Redis on every single of those four application servers which caused overload on those four servers. At that moment, the fifth server was still down and Varnish was also restarted on the load balancers. So we have full page caching for Drupal on the load balancers and when Varnish was restarted the cache was automatically flushed. So that generated even more PHP executions on the four servers. And what happened is that all application servers started to return 503 errors which means that if someone at step number one checked the incident at that point and bring up server number five which went down you would have avoided that to some extent. And the other example is related to MySQL. So let's say you have a master and two slaves and they're all working together. The master goes down, the first slave takes over, it becomes a master. At that moment again the queries are split between just two servers and not three. What happens is the second slave could actually be behind the new master and at that moment if the master fails again you will have either a broken replication and your database will be behind two hours or something or you will not be able to recover at all. So at that moment it could be a minor incident for you that one of the servers went down. Okay, the application is still running but someone has to check that and bring the server back up. So that is a screenshot from our monitoring system and that is how a single incident looks. You can see that PHP fatal errors were detected and after that you see that is the exact time of the incident when it started and when it ends. So for one minute here some PHP fatal errors were recorded into the log files on that specific server and not on any other application servers and after that you see the exact errors in there and that is available through an interface to our clients and also to our system administrators. And that is another thing that we do right here. As I mentioned you have to collect all the data and it's really important and what we do is we use high charts to draw those graphs. So here you see the CPU consumption and the memory consumption of those four application servers and the purple lines are actually code deployment. So you see that at the first code deployment the CPU overload of web server number four went down after that there was no effect of the other code deployment and after that when a code deployment was made again pretty much the CPU load on that server went up again. So what you can do is correlate your information and for example if you have a lot of session related errors in your PHP log files you can see the deployments and you can find out okay so that specific commit over here cause those specific issues. And I would like to wrap up with some key takeaways. Embrace failure and always designed for failure. One thing that we're striving to do as our next goal is to never SSH into a server again. So if a server fails we just cancel that server spin another one and it all works out of the box and it automatically joins the cluster. Automate recovery so the issues that I mentioned we worked to automate that so if the same thing happens again we have some scripts in there that will try to solve the issues. If they fail they will alert us at that moment. And walk all incidents measure and grab the performance of all components and one thing that I really love is to regularly break things on purpose to see if you're monitoring and recovery is actually working. So don't rely on chance. So for example just bring down a whole MySQL server and see what happens. If you have issues then automate that so the next time it happens you won't be affected. And if you're interested into learning more I strongly advise you to read those blog posts. There is a book about site reliability engineering here and the last blog post is from Etsy where they actually introduced this concept of putting graphs one on top of another so you can see when code deployments are made how does this affect your CPU consumption or for example failed attempts to log in. Well join us for the contribution sprints tomorrow and thank you. If you have any questions just grab me in the hallway.


Today, we're micro fishing for whatever bites. When throwing a bait this small, you would think you'd only catch small fish, but that's just not the case. You'd be surprised the amount of big fish you can catch on these tiny lures. Our goal today is to see how many species we can catch on these micro baits. Now let's hop into it. Starting tomorrow, the 23rd through the 30th of November, we're running a Black Friday sale. For every kick and combo you purchase, you'll receive three free packs of Strike King Baits. Head over to kickandtherbats.com tonight at 12 a.m. Eastern time when the sale starts. Happy Thanksgiving. All right, boys, fishing micro baits for whatever bites. Our goal today is to catch as many different species as we can, but before I go in the tackle box, I got the boy Connor out here. What's going on, man? What's up, man? What's up, man? We have a kickandtherbats.tvxluse combo. If you guys want to check them out, kickandtherbats.com, they'll be linked down below. Then we just have a regular loose special right here. We're really curious on how these baits are gonna throw on regular spinning tackle. We didn't have any like tiny rods. Actually, we do have this. Before we get deeper into this video, only 27% of you all watching these videos are actually subscribed. So if you could take the time, hit the subscribe button. Really helps the channel. I'd appreciate it. I actually have this little tiny dock demon that we might without later today to try to catch some fish on it. That's just a little miniature rod. That is if we're just having a hard time throwing these baits on the other rods. But before we even start fishing, I want to open up this little micro fishing kit that I actually just made. I went to Walmart, bought a bunch of different baits. We got a ton of different lures to choose from for this video. So firstly, this bait's a little bit bigger than the rest. It's still considered a micro bait. It's a micro plopper right here. This is a nice little topwater bait. I think we're gonna end up catching a big bass on this today. So that is bait number one, by far the biggest bait in the box. We got some tiny little jig heads with one of the beetle spin trailers. We have two of those. We got a couple of these micro crankbaits. This is just one that has a little bit of gray up top, black stripe down the middle. We have another one right here. That's got blue on the top, a little bit of orange and green and red below the gills. That's a pretty sick color as well. We got some Strike King bitsy minnows and we actually have three of these. We have two sexy shad ones.  Got another one of those small crankbaits in green. We have a little crawl crankbait. It's like a little crawfish. That's pretty cool. We have two jerkbaits here. So this is like just a standard green color. And then I also have one right here.   And then the last bait that we got, and this is one of my favorites, is the small little tiny lipless crankbait. And that is a blueback chrome body. So now that we've gone over all the baits in the box, let's go ahead and pick out our baits and get to fishing. All right, boys. Let's get this started. So as much as this hurts me, because I really want to use this puppy. Connor, you get the honors today, man. I'm taking it, man. Get the honors. You get the honors. And I'm going to be using this standard loose spinning combo, which is still an amazing combo right here. Very lightweight. But yeah, let's go ahead and rig up and see what we're going to work with. What's you thinking, Connor? I don't know, man. I was about to ask you, what are you thinking? Definitely some sort of crankbait. Maybe, actually, I don't know, maybe a jerkbait, man. You're going to try a jerkbait? I might just start off with the jerkbait. What do you think about something like this for these little straight king guys? Oh yeah, these things are shmexy, man.  It's got a little bit of chrome on the body, blackback. Today's been just a weird day. It's not really sunny nor is it overcast. It's just kind of, it's been in the middle. It's like the sun had come out here and there and then all of a sudden it'd be overcast. It's just kind of random today. But yeah, we're going to tie on this jerkbait. That's going to be our starting bait. And hopefully these fish are going to munch it. More importantly, I'm hoping we can throw these baits on these rods, Connor. Might be a little difficult, but I think we'll be able to figure it out. I think this jerkbait's a little heavier than your crankbait, but I'll see what happens, boys. By the way, let's take a little test right here. Look at that jerkbait. That just looks amazing. One more time. Oh yeah, I don't know if you guys can see that, but that just looks shmexy. That thing is definitely going to get swiped. Let's just see if we can cast it. This one's a little heavier. Oh yeah, dude, easily, Connor. I'm curious to see how many bites we get on these micro baits today. We've done a few micro videos in the past and you guys have loved them. And I actually had a lot of fun doing them. So if you guys want to see some micro bait videos, let us know down below. So we'll definitely start filming some more. And the action on this jerkbait is just, dude, this jerkbait almost has better action than the normal jerkbaits out there. It's just crazy. Oh, your casting distance is not bad on that. Oh, it's not bad at all. He's got to remember to go a little more finesse with his small little pops. No, it's not like we're throwing. Oh, dude, I had a bass just turn on it, man. That was insane. He got it right there, dude. I watched him eat it. Oh my gosh, look at that. That is sick. Already on the jerkbait. Micro lures are about the smack of man. We should keep count, Connor, how many fish we can catch today, dude, because I think we're going to destroy them. That's fish number one.  Look at that, baby. Yes, sir. The one thing with these micro baits, make sure you guys bring pliers with you, because they're usually hard to get out. That one is easy. But first fish, not a big one by any means, but pretty fish. I saw him roll on it a second ago and then he just, he followed it in, man. He couldn't resist that chrome jerkbait. Smacking him. Thank you, baby. You were just pretty, you were beautiful. You were a beautiful fish. That was a weird release, but hey, we got the job done. So boys, I understand that these baits are small, but don't let them fool you, man. These big fish are still eating. The last couple of micro videos I filmed, we ended up catching like a four plus pounder. So it's definitely possible. Don't let the size fool you now. These big fish will definitely still eat. We got a little tree right here. There should be some fish right here on the edge of it. All this jerkbait just looks amazing. This water's like just so ultra clear right now that I can almost see everything that happens. Like I just happened to see that bass roll over the top of this thing and just tackle it from behind. Oh, he hammered that bait. Holy cow. They really can't resist it. It's gotta be just that reaction strike because they're like chasing bait up right now, but that's a good fish. There we go. Yes, sir. So Noah was talking about earlier, the little tiny hooks on these things. Gotta be super careful with them because if you try to grab it with your hands, they're so tiny that things gonna end up right in your finger. That is our first fish with the microbeach. Thank you, buddy. Look at that right there, man. Oh, this jerkbait bite is fire.  I wanna show you guys something on this bass. Look at him just twirling around right there. So if you guys notice, if you're comparing this bass to the first one, obviously a smaller, this bass is still really fat, but look at the color on this fish. So there's actually a lot of grass on this little middle section of this pond, and this bass was all up in that grass. So pretty much what happens, these fish, obviously largemouth in particular, love vegetation, they love grass, and some of these bass love them more than others and they'll actually turn a little darker when they're in the water or when they're in that grass. And that's why this fish's body is just darker than the other one. It's from him being up in that grass, but thank you, buddy. I appreciate the bite. That is a little one. We don't wanna catch many of them, but we're gonna keep on hunting. All right, fish, they are biting, son. Been about 10, 15 minutes. We already got two fish. That's a good little sign. I tell you, we're probably gonna catch more, too. I just wanna see a big one. Oh, there's a boil right next to me. And one little spot, like right here, I feel like in front of those trees has just been killer for me. I'm always catching a lot of fish out from those trees. Oh, a big boil, big boil. Oh my gosh, he had it. Hold on, come back for it. I actually think I stuck him. Dang, man, he boiled on that thing. Well, he wasn't paying attention. I mean, he's over here talking right there. Oh my gosh, there's smoke in this guys. And this water is so beautiful. I don't know if you guys see that fish fighting, but this is just a beautiful pond. Start off the video. Oh my gosh, that is sick, man. We're already on our third fish. We were smoking them. Only one species so far. We've only got us a bass, but let me tell you, we're gonna catch some other fish today. This isn't gonna be the only one. This is a really healthy fish.  Wow, thank you, buddy. Thank you for biting. His teeth are really sharp. I can tell he's been eating bait. That was sick. I wonder if that was the same fish that came up and boiled on me or if that was a different one. But as much as I wanna keep throwing this, I think I'm gonna throw it just a little bit longer and then I'm probably gonna switch baits. I wanna try to fish with every bait in that box.  It's hard for me to put it down. This thing is just so much fun. The colors are so good. It's a fish catching machine. All right, boys, we're gonna go a little deeper in the woods over here and see if we can find some more fish. I didn't really wanna fish on this side of the pond just because it's a steeper bank. So it might be a little hard for me to work the bait, but I think we can get away with it. So it's like a good little zone. Throwing one off on this point. Yeah, it's hard to get my rod low to keep that bait under water. Look at that. Wait Connor, we might have a different species, brother. Oh yeah, giant bluegill. Look at that. Oh my gosh, it's a tank. Look at this bluegill, dude.  Look at that thing. Look how dark it is too. How are they even that big? I don't know, that's... That is a unit right there. Oh, that's a massive, look at this. I don't think I've ever seen it. Look at that. I've never seen one like this. It's way bigger than my hand, yeah. They're freaking crazy, man. Well dude, there we go. That is our second species of the day. It's a giant bluegill, man. Wow, that thing's beautiful. That's a crazy look at fish. This fish is super dark, but I'm telling you it's because he's been in that grass, but I'm just gonna give him a little toss. Thank you, baby. All right, now let's see what we got. We are at our second pond. This pond's got some really big fish, so we're testing out the theory, Connor. Small baits for big fish, man.  I got it over there. But to be honest, man, I want to spice it up. I want to go with the plopper, bro. Okay. The micro plop, okay. You know what I'm taking? What you getting? We're taking Noah's favorite, dude. We're taking the... Oh, you're getting the trap right there. You're getting the little trapperoo? We're gonna give it a run. Dude, that's not gonna get smoked, bro. Don't break her off, man. It's our only trapperoo. We gotta be careful with this guy. If not, we have another one somewhere, dude. I don't know where it went. The other one grew legs and it ran off. We're still trying to find it. I want to say, I just bought these dang things. By the way, if you guys have any micro bait suggestions, let us know down below. And also, if you guys want to see more micro bait videos, definitely let us know, because this is fun. And I hope you guys feel the same way. And these baits, man, they're cool to use. And it's crazy because some of these micro baits have even better action than the big baits. Which is crazy. Yeah, it is crazy to think about. And they're easy to throw too. It's not like we have to have a tiny like BFS setup or anything. You know, we're just...  We're chilling. The versatility of those kicking rods, man. Yeah, the kicking rod can catch anything, throw anything, bro. See, we've caught big redfish on them things.  I've caught some huge trees, too. I take the whole tree down with that rod. A tree don't have a chance. All right, boys, let's get it after it. Mini Whop-a-plop. Dude, look at that little swirl. Hopefully they eat topwater right now. We topwater fished the other day and it was a little slow, so I guess we'll see. This water's disgusting, man. It's got so much like green slop on it. I don't know what's going on right now. Bunch of nasty slop. Oh, there he goes. He hammered that thing. Oh, that's a good batch. Get up here, buddy. Get up here. Trying to be very careful with these hooks. I kind of bent them out really bad on that. Oh my gosh. That is a crazy dark bass. Holy cow. There we go, guys. We got one on the chrome trap there. You can tell that fish is way up in that cover. It's pretty stinky, too.  It's a little stinky, boy. All right, man. Tell the big, juicy mom, I'm gonna come out and eat. Thank you. All right, boys. We going deep in the rainfall west. Y'all y'all. These crevices that we have access to fish are super slim. Like right here, look at this. Perfect little opening. Give her a little flip right there. It looks so good under these trees. See, like some of these areas I would definitely flip in. It's just not worth it because I could break this bait off and I do not wanna break it off. These fish are hammering this thing.  No way, I don't even, they just hit the water. No, we can't. I was just saying that these fish are hitting it like they're taking a sledge hammer down there and smacking the thing. All right, we tried the little crevices. I just don't wanna risk breaking this top water off because this is our only micro top water. And I just have to catch some fish on it, man. I'm not refusing on it too. So we're gonna go back onto this other side and it's usually a good little corner that some fish stack up in. Oh, there we go. Give her a second. Let him get him tashed and warmed up for us. Oh my gosh, I just got, dude, they can't, they can't resist it. Oh, there we go. That does just look like a regular bluegill. I just don't know because that other one was super, super dark. I'm pretty sure, actually maybe not. He does have like those lateral lines. I don't know if you guys can see it, but they're very faint. Thank you, buddy. All right, boys. Right on that bank, it looks saucy. So the biggest problem that I'm having with this plopper on top right now is there's so much stuff on top of the water. And the biggest thing is the pine straw. There's so much pine straw here. Dog, what was that? Was that a fish? That was a bass. Dude, I haven't even had one look at my top water. That's insane. Oh, I just got hammered. Hammered, ate it, ate it. Come on. Dude, they hit this baits crazy hard. I'm shocked. Oh my gosh, dude, look at the size of that thing. These things are footballs, dude. That is crazy. Oh my gosh. Little thing's giant, dude. Connor is smoking the bluegill. Gotta give this guy a little toss for kind of way up here on the hill, but thank you, dude. All right, boys, we're about to go to a different spot. I was hoping I'd get bit on this top water. Maybe we just need to go somewhere else. Could be something to do with this water, too. It's just got a bunch of nasty, like green gook in it. But yeah, let's just keep on moving and go to our third spot. Maybe they'll eat top water there. All right, boys. New pond, same bait. I'm gonna give it a shot for just a little bit. If it's not happening, you know, we'll put on something else, but I still want to give it a fair shot here. What do we got here? What is this thing? Yeah, that thing looks funky. It does look a little poisonous. I don't know if the fish are gonna like that, but let's tie it on and let's get this thing a shot. Oh my God, there's a fish right there. We might get a cool blow up right here. I literally see him, there's two. Oh, he's right there, dude. Oh my gosh, come on. He just swirled behind it. And throw right down that tree line right there. I don't know where that fish went. He like tailed right up behind it. And I could see like a slight little wake behind me too, and he just never ate it. Oh, dude, a big bluegill just tried to swamp it. He completely missed it though. Hold on, I might be like getting him. Just gotta kind of play it slow here. They're in a weird spot. Like they're to the left of the pipe and this lure is like extremely light.  That's a good, good size fish right there. Come on, baby, he don't want it. See, he knows it looks poisonous. He's like, I ain't touching that thing. Get out of here. They're being a little weird on the top water right now. We've had a bunch of cold weather pushed in, and I just feel like they're not really adapted to the weather. It's definitely not too cold by any means for them to not be biting top water. I just think it's the weather shift. They're not really used to quite yet.   You put on a top water.  They were just not wanting to come out of the water at all. All right guys, I had to make the call.  Little more natural. This pond's like super clear. I think if we're gonna be bit, it's gonna be this one right here. All right, boys, just walk to the other side here. We're gonna give this top water one more shot. Got destroyed, biggin', biggin', dude. Oh no, no, no, no, no, no. He's taking me in the tree. Oh my gosh. Oh, it's a nice fish, man, there's two with him. Connor, Connor, come here. You gotta throw in here. You gotta throw in here, bro. Oh gosh, I'm just coasting them in now. He just wore himself out. He went crazy for a minute there. Oh, I got him hooked weird so he can't even move. Oh, buddy, come here. That's only about a two pounder. I thought he was a lot bigger the way he was stripping that drag. But those still are really good fish. Bro, he hammered it homie.  There was two more with him trying to get it out of his mouth. So guys, I got a theory with this. We couldn't get a bite on this top water. And then all of a sudden, this fish hammered it. Now I'll tell you what's different about this fish than every other fish. There was two fish with him. I think he got a little competitive there and they just, they went a little crazy. All right, boys, good two, two and a half pound fish. Thank you, baby. There's a little toss there. It's hard to get down at the water with these ponds here. Just, there we go. No, no, no, he had it in his mouth. I don't know how you didn't hook him, maybe the small hooks. Yeah. That's the fish I was definitely with him. I'm gonna throw this back in there. Maybe he'll eat. Yeah, throw it on top. I don't think you hooked him there, did you? No, no, no. Man, these, whoa, dude. He chased it all the way up here. Dang, man. We just found the hot corner, bro. Yeah, those two were fired up, man. I don't know what they were doing in the corner over there. They might have been some cocoa. They're doing something. Uh-oh. Uh-oh. What are you doing, man? Connor, he's on you. He's literally on your bait. He's on your bait, bro. Jerky. He's literally right on your bait. I saw him. Oh, no, dude, the technical difficulties just ruined me there.  He was just nose down on your bait. I could see him.  Oh, good one, good one. Get in here, baby. Come on now. The way these fish are eating the bait is crazy. They're like so aggressive. Wait till you guys see where this bait is in this fish. I mean, he swiped at it and he's got that thing all the way down there. Had to do a little microsurgery on our boy there, but look at the belly on that fish. That guy's stocking up for the winter. Thank you, buddy. All right, boys, new pond. I'm gonna throw the top part just a little bit longer. That bite got me all amped up. So this spot that we're at right now is actually brackish water. And we saw a lot of big bass in here, too. Just like that, Connor. Connor, I got slammed. I think it's a big one, dude. I can't tell. Oh, it's a good one, dude. Oh, my gosh. Dude, literally first cast, bro. It's like a two-pounder. I thought he was bigger. Let's go, man. Look how skinny and long that fish is. He's like not fat, but man, he destroyed that. We haven't got many top water bites, but the two top water bites that we got, we're just sick.  That is an awesome eat right there, guys. Heck yeah, good little two-pounder. He's the longest can be. We saw some flounder in here the other day, like yesterday, actually. We saw flounder, we saw ladyfish, we saw sheep's head, and there's literally bass in here with them. And look how long that fish is, Connor. Look. Yeah, he's really long. He's as tall as you, dude. He's bigger than me. Oh, come on. Oh, dude, he hammered it. Oh, my gosh, this is sick. I might be catching the little Twinkies, but you know what? They're still fun to catch, man. I jerked pretty sick. I gotta throw this top water a little more, bro. Like, I gotta try it just a little bit longer. We'll say the top water is catching the, definitely getting some bigger ones. I don't know that one you caught on that jerkbait after mine, I think it was bigger. I will say the cool part about this little Cove, too, is you got all this wind blowing in here, bro. Connor, oh, dude, there was a lot of good, like, bass about that size right there in that corner. I thought he was about to hit me. There we go, buddy. Absolutely smoked the jerkbait. Oh, gosh, they're chasing it, aren't they? Bro, I saw them just turn on it, like just, yeah, throw them on that side. All right, I'm just putting this guy back in over here so we can kind of keep the tranquility on this side of the little canal. You could probably catch some more right there. I'm gonna walk down and kind of fan cast, bro. I don't know if a saltwater fish would eat this top water, but if we caught a saltwater fish, you know, this is a multi-species video, guys. We've only caught some bluegill and bass, and now we're trying to get a little creative with it. There's so many different saltwater species in here, though. Like, we've seen them the last two days, so they're in here. There's a giant flounder, a pretty big sheepsead.  Like, that's just sick. The ultimate multi-species spot. Well, we're in the life of that jerkbait a little short there, but we are gonna tie back on this little Strait King crankbait. I think this one will be a good option. I'm kind of bummed out, though, about that jerkbait. The thing had the best action. I don't know how the billgill broke off. I honestly think I might've, like, hit it on the rocks when I was trying to get that fish up, but that's all right. We got a lot more microbeats and a lot more fish to catch. I'm surprised we haven't got hit in this canal, guys. I'm just fan-casting. The super is ultra shallow. I'm talking deepest points, probably three max, maybe two foot, but it's so clear. Water's gym clear in here. I'm hoping we just have a different species come up and swipe at this thing. I just don't, I don't know. And usually I can see all the fish swimming around, but it just got really cloudy. It's kind of overcast right now. It was sunny, then it was overcast, and it was sunny, it was overcast. Been a weird day. Right here, I kind of wanted to come off on this point. Cause this just opens up here. There should be some fish right here, man. This is a money spot. Right here at the mouth. You got this little creek. Oh, you just missed me. That's a different species. It's gotta be, dude. Oh my gosh. What do we got? What do we got? A giant bluegill. Oh my gosh, Connor. Dude, that is actually my top three biggest bluegill. By far a top three bluegill.   I knew it was a different species, but we've already caught one. I mean, look at the, I don't even know what you call that. There's little gill flaps.  That is just so pretty to compare.   I guess putting on a lure is a whole different ball game. And it's actually a lot of fun. Those are brutes. Thank you, baby. That's a pancake, man. I knew it was something different. I knew it wasn't a bass. Just the way it was coming off, it missed it the first time. Right out here on this point, guys, make sense. See what else there is. See if we can get another species, man. Kind of lack it on the species. We've had a lot of fun and we've caught so many fish. It's just, I haven't really had these different fish bite. Which honestly, fishing the freshwater pons there wasn't much more we could really catch that I know of that would eat a lure. But in here, there's a lot of options. Dude, let's go. Uh-oh, this is something different too. And it feels large, 100% not a bass. Yeah, it is a bass and it's a freaking nice one. No way, no way, man. Let's go, look at that thing. He ain't even that big. He's like two pounds. Nice fish though. Gosh, man, he destroyed that thing. Right out here, look at how he ate that thing. Right out here in the mouth of this little canal. Just money.  Steam rolling topwater, they weren't eating topwater. Now it's getting later in the day. They get a little fired up for it. I had another spot in mind after this one, guys, but we might just stick it out here because we have a chance of catching some other species. These hooks are so sticky, dude. These hooks are so crazy. That's a pretty fish. Finally, I can release a fish corner at the water. Looks like we've been standing above the water all day. I've been having to throw them back. Thank you, baby. There she goes. Yeah, dude, right at this little mouth. Look at that. Is that kind of another species?  It's a baby clam. I didn't think that that was a bass, dude. I thought it felt different on my rod, but ended up being a bearish.  You got a brem eat that? Oh yeah, massive.  That thing wasn't even a brim, bro. It was a shark. Yeah, keep throwing out here, like just fan casting the mouth of this. I think there's a good bit of fish. Just like that. That was a bluegill, Connor.  You've never seen something so big in your life. I can't believe a bluegill is eating a plopper like that. You learned something when you micro fished, don't you? That's crazy. That's how I felt the first time I went, man. I was like, I cannot believe bluegill eat like that. Oh, look behind me. What is that? What was that, bro? That was a different species, Connor. That wasn't a bass. That almost looked like a sheep's head, bro. Did you see the colors on it? Connor, dude, that was something different. I don't know what that was, but the wake was insane. That wasn't a bass, dude. I'm telling you, I'm getting some other species to hit this thing. Watch this. Let's see if he eats it. Dude, he came all the way off. He was all the way up on that bank. Dude, it's like they, they, what is it? I don't know. It's not a bass though, not at all. There's these giant, like weird looking white fish in here, not mullet, but there's something else. Oh, it might be tilapia. They won't eat this though. I doubt it. I've caught them on bass lures, but not like top water. All right, boys. We about to throw this top water under this bridge. Let's see what we got. Connor. Oh my gosh, I watched him eat it. I watched him tail behind it, dude. That was insane. I watched him come up, Connor, and go like this, and... Look at the mullet they're having in the Olympics competition. Oh my gosh. Look at how he ate this bait, bro. That's a skinny, another one of the skinny long bass. I mean, look at how long and skinny that fish is. He just came up behind it. I don't know if you guys could see that on the camera. Probably couldn't, but I don't even have glasses on it. I could see that fish just swarm behind it. He was all about this plot. All right, it was a gut feeling to stop here. I guess that was a good call. Another good fish. That thing is ridiculously long. Thank you, buddy.