CodeMash 2020 - Live
An Informal Report on a Conference
Live blogging from CodeMash 2020
#blog #tech #workWelcome to CodeMash
This is my first time attending CodeMash. I had some content about PASS SQL Summit (the only other big tech conference I've been to) when I attended back in 2016 but that all got "lost" when I overhauled my servers/blog/websites. I say "lost" but I still have a backup of all of that data somewhere. It's all compressed down into cold block storage in a backup of backups. It'd be an interesting project to try and do a restore of that version of my stuff. I don't know if I actually could remember how to get it all going again. If that's the case, what's the point in keeping the old backups? I suppose I could still get that data even if it's not on a functioning server. I could grab the text from those old posts and add them here or something. But I digress...
I'm really looking forward to all the sessions here. This is also going to be a new experience for me. I was the only person I knew at SQL Summit, whereas there are at least 30 Beamers here. It should be fun having people to go to talks and sit at meals with. Although, SQL Summit pushed me to do those things with people I didn't know and make the most of it. There's probably good and bad to both situations. I'm glad I'll be able to experience both of them.
Anyway, as you can already tell, this isn't going to be like a typical post. I'm not going to sit and think everything through that I'm writing. I'm going to stream of conscious live blog the event and see what comes of it. Maybe this will never see the light of day, but I think it'll be a fun experiment in letting go of that need to have a nicely crafted, worded, edited, polished article before publishing it.
This is also an experiment with blogging from my phone. I've been trying to set up a system that will work well for me. It doesn't feel like there's any good way to deal with long documents on a phone. Since I recently switched over to my posts being markdown, I'm hoping that using a markdown editor like Bear or Notion will make things easy. After I add the page in one of those, I can export it as markdown, and push it up to my blog repo all without using my laptop. I just don't know if I'll be able to keep up the pace during presentations as fast on my phone as I could while typing. I'll have to play around with it and see.
Livestream
Thursday
Started off strong with a good talk from Matt Eland about tech debt. A lot of good strategies for demonstrating business value followed by safe ways to pay down debt. There's plenty of good actionable info in that talk. We do a pretty good job of incorporating tech debt into our workflow at Beam though so I don't know if there's much I can do to improve on right now. We actually use one of the strategies he listed as "best" in the talk, so that's encouraging. It's the idea of allocating 10%-20% of your sprint capacity to tech debt items. There were some hidden nuggets about tooling and visualization that I thought were novel though.
Second session was a little lacking. It was just all information that could be found in a 5 minute blog post on documenting your success. It was good info, but we've all heard it before and I don't think I needed an extra reminder right now.
I liked the third talk a lot. It was titled Antifragile Teams and was about the notion of antifragility. Fragile things break when stressed, robust things never break, but those aren't really opposites. The opposite of breaking when stressed is getting stronger when stressed. The human mind and body are good examples of this. The key here is to have an acute, rather than chronic, stressor. This is analogous to going to the gym or taking a short intensive class to learn something. There were a ton of references to books and articles that are going to be worth checking out. Lots to chew on here. So far this one is top of my list. There's still a whole lot of conference left though.
Another thing I've been enjoying is seeing which people are attending which sessions. There are a lot of devs going to technical talks and probably learning cool things. I wouldn't know. There's also small group of people who have been in more of the soft-skills and leadership talks that I've been in. Some of them are the people I'd expect to see. People who are aiming for promotions or want to change roles in the company. There have been a few surprises though. I wonder if it's because I'm not in touch with them and their goals, if they're not doing a good job of broadcasting/leading, or if they're just interested in the talk and don't have other motivations. Time will tell. This certainly isn't to mean that I'm judging anybody about any of this. Just curious. I like to think about people's motives from time to time. It's really hard to ever be sure about something like that and it takes a lot of time to get feedback if we ever get any at all. Fun little puzzles.
Next up is a talk about making better predictions. It was really solid. I talked about the most common problems with the way people perceive things and how that and other factors compound errors in predictions we make. There were some good tips on how to do better in the future and try to reduce error. A good portion was spent on there never being a way to remove error entirely and how we can get comfortable with that. It's a good reminder that there's no path to being perfectly in control of everything. There's no one else who is at that point either. We're all just doing what we do the best we can. The allure of a grand chess match that people are playing à la House of Cards isn't possible in the real world.
Lunch was good and I took a break for a session to play Wingspan with a Beamer and some nice people that we met. It was a fun game but we didn't get to finish because we were going to the next session and we were playing slow while figuring out the rules.
Post lunch session was about coaching diverse teams. It did a good job identifying different types of diversity that exist and how they show up in different ways during different scenarios. I was especially interested in how this played out when talking about leadership, coaching, and feedback. The general message here and in other talks and books I've experienced is that people are people and that they should be treated as individuals. I need to take an individual approach with everyone differently.
I was disappointed in this talk. It was about testing UI components and I was hoping to get some more info on high level strategies, good patterns, and which tests are valuable and which aren't. Instead I got a super basic intro to Jest and React Testing Library. It was good information and well presented, but it's not the level I was looking for. I should have picked something different for this slot. It didn't help that I'm developing a low-grade headache and feel really wiped out. Oh well, dinner is next and then I can head back to the hotel. I doubt I'll do any partying tonight.
Friday
As predicted, I dipped out after dinner yesterday. I stuck around and chatted with some of the Beamers, but when they all moved on to go start drinking and socializing, I went back. It was the right move because I feel recharged today. I talked with a few of the people I was hanging with yesterday and they're feeling rough this morning.
The first talk of the day is about tech leadership. It's not about management or promotions or anything like that. It's about what it means to be a leader in a tech org, whether that's up and down or side to side. This is a topic I really like to think about because it's a way for me to exhibit and practice leadership regardless of my role. I think it's evident that I'm doing these things based on the feedback and promotions I'm getting. I almost never think about it because it's not why I do it, but it's a little cool/funny that I get good marks for leadership while having one of the lowest titles in the company.
This next talk was a really great talk about disagreements. It was lead by a person over at Root who did half of a philosophy PhD on the topic of the epistemology of disagreement. The guy really knew what he was talking about and was a good, engaging, funny presenter to boot. There was real philosophy involved, but all of the advice was practical. One of the key takeaways here was the concept of "disagree and commit". The idea is that there are some disagreements that will never be resolved by logic. Two people just fundamentally disagree with each other and aren't going to change their minds. So how do you solve that intractable scenario productively? You acknowledge that the two people aren't going to agree, but also decide to commit to one path or the other. You can offer to commit to the other person's idea or ask them to commit to yours. Either way is fine, but the real value here is that you also have to agree to revisit the topic after some time (maybe a month for something shorter term). You schedule the review session at the time of the commitment. When the time for the meeting comes, you should both be able to evaluate the path and see if it was a good idea or not. Often you'll realize that everything would have worked out no matter what path you took. If one choice was better than the other, the distance from the decision will likely make it easier for a person to admit that the choice wouldn't have worked out.
Another interesting soft-skills talk. This one was about hiring and inspiring your team. The common thread through the talk was that your team should share a common set of values, learn how each other like to communicate naturally, and communicate frequently. It's all info that I've seen before in books and articles, but presented well and had a few novel takes on things.
Lunch was good again. It's nice to chat with Beamers from other teams that I don't usually interact with. Today it was the mobile team. I also met a great guy who works for Digital Ocean. I love their stuff. It's way nicer to use and much better priced than AWS, Azure, or GCP. Super interesting chat about their infrastructure and value proposition etc. Have to run again for the afternoon sessions. I might not stay until the end. I was thinking about skipping out on the last session. There's one talk about bug bounties that looks really entertaining, but I don't think I'd be able to pull anything useful out of it. We'll see.
I was really hoping this talk would be better — or rather different. It was titled Tribal Knowledge in Agile Teams so I thought it would be about knowledge silos and how to avoid them. In general, it was about documenting your institutional knowledge. It was a good set of practical examples, but it just wasn't quite what I was looking for. The presenter also recommended some pretty out of date tech — not out of date like "it's a timeless tool", out of date like "there are other better or free options". I don't want to rag on it too much though because the rest of it was good and practical, just a bit dull.
Last up (since I decided I am skipping out on the last talk) is a talk about burnout and how to recognize and avoid it. It was pretty good, and a constant reminder that it's easier than ever to get burned out in this economy and this profession. We prize side projects and tinkering, require constant education to stay relevant, and project "the hustle" as the standard of living. There's more to life than work. That sounds like a great cue for me to sign off and enjoy my weekend. I'll probably write up a CodeMash in Review post after this. Although there might be a chance that the Beam Engineering Blog will want a similar recap post. If that's the case, I'll probably write something up with the rest of the Beamers who went and then just cross post that here.