We're talking AWS on Discord! Join us

Episode 23

Adam Elmore: An AWS Hero Appears, Exciting Things (& Less Exciting Things), and Reacting to Cloud Twitter

Adam goes solo to react to his becoming an AWS DevTools Hero. He also lists three things he's excited about lately, and three things he's less excited about, before browsing Twitter and reacting to AWS conversations.

About Adam

Adam is an independent cloud consultant that helps startups build products on AWS. He’s also the host of AWS FM, a podcast with guests from around the AWS community, and the creator of the AWS Community on Twitter.

Adam is passionate about open source and has made a handful of contributions to the AWS CDK over the years. In 2020 he created Ness, an open source CLI tool for deploying web sites and apps to AWS.

Previously, Adam co-founded StatMuse—a Disney backed startup building technology that answers sports questions—and served as CTO for five years. He lives in Nixa, Missouri, with his wife and two children.

You can find him online on Twitter, GitHub, and his website.


Adam Elmore: Hey, everyone. Welcome to AWS FM, a podcast with guests from around the AWS community.

Adam Elmore: I'm your host, Adam Elmore, and today is more different. Today, I have no guest. It's just me, and I had a scheduling, I had to postpone a recording with a guest, wanted to record this week, and I have some stuff on my mind. Namely, this podcast will come out after it's been announced that I'm an AWS Hero, and I'm super excited about that. Very surprised, didn't expect. It was a career goal, I think. I think being recognized as a Hero would be validation that I am doing something to give back to this community that I care about so much. I didn't expect to be named a Hero this year, or this soon, but I'm super excited about it.

Adam Elmore: Yeah, I can't release this podcast until that is public but I think that'll be happening soon. Yeah, I think I'll be a DevTools Hero, which makes sense. I like DevTools quite a lot. Yeah. I don't know what else to say about this because it's just me here and there's not much else to say. Yeah, I'm just going to leave it at that. Pretty excited though. So there you go.

Adam Elmore: I'll be at Reinvent, for those that are going to Reinvent this fall. I thought it would be the last year, but I will be there this year, and will be excited to meet some other Heroes, other folks from within the community.

Adam Elmore: So it just occurred to me my intro to this podcast used to be AWS FM, a live audio show with guests from around the AWS community. Both of those things are false today. This is not live. I'm recording the podcast, as I have been these last few episodes after taking a break. There's no live audience and there's no guests. So my entire intro is a lie, and I have to come up with a new one.

Adam Elmore: Okay. So today, here's what I'm going to do. I'm going to talk about three things that I'm excited about, obviously within the theme of AWS and cloud, and then three things I'm less excited about. As well, I'm going to browse Twitter a little bit, I already did this morning, and just comment on things AWS-related that I see on my Twitter timeline. Yeah. Okay.

Adam Elmore: So with that, three things that I'm excited about, and I'm very excited about these things. I think I'm pretty excitable. I'm learning that about myself at this point in my career. Man, it's weird not having a guest. It's so weird. I feel like I'm talking to myself. But I'm going to push through it.

Adam Elmore: So three things I'm excited about. One, devex just keeps getting better across the board. I've been doing this, sitting at a computer professionally for 15 years, and I can't remember a time in my career where I felt like every year, but even every month, there's just things that are improving in terms of my developer experience. I love building stuff, specifically on AWS, more than I ever have. There are so many cool teams building better experiences to just make it all better.

Adam Elmore: I feel like we're still early, especially serverless. You could say we're early with cloud computing. I know we're a decade on now, but the pace, the amount of smart people working on these problems... So I think of serverless stack. I just talked with Dax Raad last week. Functionless, I mentioned functionless, is Sam Goodwin. They're working on type scripting all the things. Very excited about what they're doing and what that'll mean for developer experience.

Adam Elmore: I mentioned graph based last week with Dax and Paul. They're building more of a totally managed service where you want to stand up a graphical API, all you want to do is define a schema and it'll just work. It's deployed to the Edge, super fast, powered by Dynamo. Yeah. There's just so many ways that the developer experience continues to improve. I don't see it slowing down. I know there's been a lot of capital, venture capital's been freely available for a long time now. Maybe that part of it slows down, but I don't see that really impacting us over the next few years in terms of these startups that are already funded and building really cool stuff. So devex keeps going up and I'm excited about that.

Adam Elmore: The second thing I'm excited about is the next layer of cloud abstractions, which I alluded to this on Twitter a couple weeks ago, that there were companies that were building very early, pre-seed companies, but they were very exciting to me. I mentioned them being in stealth, and I realized nobody told me they were in stealth, and that word stealth got bashed on Twitter a little bit. These companies never said that they were in stealth. I just haven't heard them talk about what they're building.

Adam Elmore: One of those things is Monada and I've seen now that Elad, so the creator of the CDK, created a Twitter account for Monada. So I think at least that much is out there. I won't say any more in case the rest of it is sensitive or he just doesn't want to talk about it yet, but if you know who Elad is and you know he built the CDK, just imagine from there what he's working on, the problems he's trying to solve now that he's left AWS. It's exciting stuff.

Adam Elmore: There are other companies that I think I can speak... Well, obviously like Cloudflare. Cloudflare's doing cool stuff, next abstraction up from the AWS primitives that we all know and love. Yeah, and then these companies, we don't even know what it's going to look like yet, but we know that the current state of cloud development is not a finished product. As much as I feel like the developer experience is getting better, I still don't know if it's reached developer experience of traditional applications pre-cloud. People are still building with rails today.

Adam Elmore: Those developer experiences are obviously better than what we've got in cloud development, but I think that gap is narrowing, and I think that's still thinking in terms of what we've always known, in terms of development experience, in terms of building applications. I think there's a next layer of abstraction that's coming that'll allow us to just do things we could never have done pre-cloud, things you can already do today. Maybe the process of building those is still tied to prior programming paradigms, if you will.

Adam Elmore: What does that next experience look like and defining applications that are cloud specific? They leverage all these very rich services, serverless stuff, but it's all type script, which I think is great, but is that the in state of cloud development? I don't think so. I'm going to stop there because I really don't know what else I would say about it. But also, if I did say something that people didn't want to talk about, I don't want to be the one doing that on a podcast that a few people will listen to. Okay. So that's the second thing I'm excited about.

Adam Elmore: Third thing I'm excited about is the CDK. I mentioned this, I think, with Dax and Paul, or maybe it was with someone else and it wasn't on the podcast. Either way, the CDK, the momentum around the idea of CDK constructs as a building block seems to be growing and growing. You've got Pulumi now interacting with CDK constructs. SST, I've talked about, builds on top of the CDK. You've got sites like CDK patterns where they've put together CDK-hardened examples.

Adam Elmore: I think this idea of portable constructs and being able to take them and plug them into your application, it seems like the right abstraction today, and it's just cool to see how many different frameworks and tools and companies are integrating with the CDK. So I'm bullish on the CDK overall. I think it's a great tool to invest in if you're new to the space, because I do think you're going to get mileage all over the place with it.

Adam Elmore: I'm always doing a lot of things and I've got to narrow my focus, but one of the things I'm building is a SaaS product built on AWS, all serverless stuff, but in doing that, I realized that there's not a lot of examples out there of great decision making within a serverless repo. I made it sound like I'm making great decisions. I don't know that I am, but there's just not a lot to go on in terms of opinionated, here's how you build a serverless product. There's examples of how to leverage specific frameworks, but from a product focused standpoint.

Adam Elmore: So I am building a SaaS product and I have to do all the things you have to do, like payments and email and billing management through Stripe or whatever user management, users belonging to companies, all these things that are boiler plate. There's plenty of people building examples or template repos for that. I think of Bedrock, Max Stoiber. That's the idea. I realize I've said what I'm building. I didn't say what it led me to.

Adam Elmore: It led me to this idea of CDK constructs that are SaaS focused. So I'm building a suite of packages. It's called SaaSy because SaaS, and I have SaaSy.dev as a domain, so that's settled. SaaSy will be this set of packages. There'll be a core package that's users and the models that shape common SaaS scenarios, but then there'll be a Stripe package for payments, but you could swap it out with a paddle package that you author or the community authors or I end up authoring, and these are all end to end, not full stack packages. There won't be front ends involved, but they're the infrastructure and all the business logic, so handling Stripe web hooks and updating user models because it knows how to interact with the other SaaSy packages.

Adam Elmore: This all sounds really dumb as I'm saying it to myself on a podcast, but it's all still in that theme of CDK constructs as a unit of deployable thing. What if you could have those packages be very higher level app centric? So having something for analytics. So you've got a segment package and you can add that CDK construct to your application, and now you're instrumenting through segment and it knows the shape of your user model and your account models, and it interacts with the Stripe package, and all of that being a way to reuse this stuff.

Adam Elmore: I'm doing it because I want to build something else. So I have a couple of things really that I want to spin up, and I don't want to do the whole thing again. I don't want to copy my repo. That's what I would do in the past. I want to package up the parts that are just non differentiated or undifferentiated boiler plate SaaS stuff from my project, public, is what it's called. Yeah. I want to take all that and open source library it such that you could take these different pluggable pieces of a SaaS backend and string them together.

Adam Elmore: It all sounds great right now. I've just started doing that extraction, trying to make it all work. I may find out it's way harder than that, or it doesn't really fit once you start building a product with it, and I'll learn and go from there, but I'm excited about it and it fits into my third thing that I'm really excited about, which is the CDK and doubling down in terms of my infrastructure is code preferences.

Adam Elmore: So the thing about not having a guest is I'm just talking the whole time. Normally I'm just like, uh-huh (affirmative), mm, mm-hmm (affirmative), and now I'm actually having to say a lot of words and think, and it's tiring both for my brain and my voice. All right.

Adam Elmore: Three things I'm less excited about, and I don't want to be super controversial here. I think these first two, it could potentially be controversial, hot take ish, I don't mean to offend, so please take this with a grain of salt. I'm just a guy, likes building stuff on AWS, and I have opinions. One thing I'm less excited about these days, and it might be because relative to the excitement I had, it's a fall off, but it's still a great technology. Do not hear me say, "Don't use this technology." That's not what I'm saying, but I'm less excited about step functions.

Adam Elmore: I was really excited when they announced all the SDK integrations and immediately started thinking through how I could use step functions for every single thing I build and every normal Lambda function or whatever I did where I was writing imperative code. So lame. I was doing stuff in a Lambda function. I'm going to do that in step functions. I started even with some client work. I'm using step functions because it's cool.

Adam Elmore: Then I found out I don't really enjoy building state machines with step function service. I think this could be because I'm using the CDK. So generally I'm using the CDK or cloud formation. Not a great experience from my perspective, building out a step function in the CDK. Maybe in the console? I've never actually tried. Maybe it's super fun, and I know they've built all kinds of cool new tools for step functions that I guess I've just ignored because I do the CDK thing. Maybe the authoring experience is fantastic with all these new tools and I just need to learn them, and then I'll benefit from all the joys of exponential back off and retries and all the error handling that step functions gives you.

Adam Elmore: But yeah, I'm less excited. Just ran into, in building client solutions and building stuff for myself with step functions, the excitement waned quickly after I tried to maintain them for 10 seconds. The CDK definitions are not easy to understand if you're used to looking at code, which is what I'm used to looking at.

Adam Elmore: Yeah. Okay. I've said enough. Step functions team, you're amazing. Keep doing good work. This is not, "Don't use step functions." It's a fantastic service. The authoring experience with CDK has not been fantastic for me. So less excited.

Adam Elmore: Second thing, and this one definitely going to offend some people. I'm not trying, I really promise. Keep doing what you're doing. Keep building with the stuff that you know and you enjoy working with. But containers? I just finished a project for a client pretty recently that was rails and container based, and wow, talk about developer experience. For all of the problems with the serverless developer experience, and I know people like don't enjoy Dynamo, for instance, the developer experience of working with Dynamo, and they'd rather just use a sequel database. I get it.

Adam Elmore: But containers, the amount of times I just got up from my desk and went upstairs to get a snack because a thing was building and it takes 30 minutes to build, it was a lot of times. It was most every day that was the slowest I felt like I've worked on a project maybe ever. No, I'm super dramatic. It's probably not the slowest I've ever worked on a project, but it felt so slow. I don't know how people do it every day.

Adam Elmore: Yeah, it's great to just be like, "Docker, compose up," and that's my developer environment. That's great. It's local, but I don't go on planes anymore. I don't need offline support. I'm totally cool with deploying stuff to my account and testing against that, but I cannot handle another 30-minute wait for a container to build. It's insane. Maybe I'm just doing it wrong. Maybe I'm choosing the wrong base images or I'm doing something in my darker files that's like, "Oh, obviously don't do that. That's the slow way." But it was super slow and super painful and it drug on for months. I'm sorry to that client that had to deal with me being slow. I'm sorry to my machine for the years of age I put on it running those Docker commands.

Adam Elmore: Yeah, I won't be doing a lot more of that, I guess. I'm sorry. I know containerization is a huge thing. Keep doing it. Keep building your container apps. Maybe less Kubernetes. Maybe do that less. I don't know. Seems unnecessary, but now I'm just really getting into the hot take land. I need a guest here to be looking at me funny to tell me to stop. Kubernetes, cloud native? Come on. That's not cloud native. Ah, I've had that conversation a few times last few weeks, mostly on Twitter. How did they get that term, cloud native? I don't get it. Okay. I'm done.

Adam Elmore: Those were three things... Oh no, that was only two things that I'm less excited about. There's a third thing, and that's my schedule because there are a lot of things I've talked about that are really cool and happening and I want to play with, and new teams sprouting up and building awesome product, and how does anyone have time to play with all this stuff? I think I see this generally in the tech circles I'm online with, issues with keeping up with the industry and just always feeling like there's more you could ever learn than you'll ever learn. There's more to learn than you could ever learn. I'm very much feeling that right now.

Adam Elmore: I'm trying to build a product. I'm doing client work here and there. I'm creating a serverless course. There's just a lot. Then on top of that, trying to learn all these new things and play with serverless stack. I've wanted to build stuff on serverless stack for a year. I don't know, maybe less. I'm not sure how long they've been around, but having Dax on the podcast last week, it occurred to me, I still haven't done it. I mean, I've poked around. I've probably created a project, but when do you find the time?

Adam Elmore: I don't know. I'm less excited about all the competing things that vie for our attention. That's three things I'm excited about, three things I'm less excited about. I also thought, since it's just me here and I have to come up with things to talk about, that I might just browse Twitter before I got on here and see if there's things worth talking about that I'm just seeing on my feed literally this morning. There weren't that many things, actually. I guess that's just a day on Twitter.

Adam Elmore: I tried the AWS Hero's Twitter list, and that wasn't super helpful. Turns out people are people and they tweet about lots of stuff, not necessarily cool things that are happening with AWS. Same with the AWS community on Twitter. I don't know. Twitter communities just haven't really built out discovery features. They're not very discoverable. It's just a big stack of tweets and mostly technical questions and things like that, so that wasn't much help.

Adam Elmore: So then I saw an article from Corey Quinn, which I think I saw in my inbox, titled "AWS has a moral responsibility to fix the free tier." I thought I could comment on this one first. I agree that the free tier, having hard caps on spend, should be a thing. I hope that happens. If anyone from AWS hears this, here's my vote, for what it's worth, that happens. But the issue I have with this article is the title, which is that they have a moral responsibility. Do corporations have any responsibilities to anything? Do they have any moral compass or should they, or did we create a world... Oh wow. This is getting way hot takey. I'm going to sound like a something. I'm not even going to say the word because I don't know if that's offensive.

Adam Elmore: I feel like we're in this world now where AWS doesn't have a responsibility to anything but the shareholders, just like every other corporation in America and the world, and now I'm way off the rails in terms of tech. This is getting into social stuff, but how can you not, as an American, not talk about gun violence and all of the terrible things that are going on in our country? How much of that is because we're all held hostage by a bunch of corporations that control most of our government? That's not conspiracy theory. That's just how our government works, corporate lobbies and campaign finance and all these things.

Adam Elmore: AWS doesn't have moral responsibility because corporations don't care about morals, I don't think. I get that sustainability is a big thing and you see that rippling through corporate America, but that's not a moral thing. It's more of a following the trend, I think. There are people who have morals at these companies. All these corporations are made up of people. Why am I even talking about this? This really feels like something I shouldn't talk about. But the gun thing, could that change maybe?

Adam Elmore: I know this Corey's article is about the free tier, but seeing a moral responsibility just brings to mind the fact that there are no moral responsibilities when it comes to companies that are just here to make money and it sucks. I hope nobody dies from the free tier as Corey talks about, but I know lots of people are dying every day from guns.

Adam Elmore: There's another mass shooting. That was one thing I saw on Twitter. There's the Uvalde shooting. We're all learning the horrific details of that, and then there's Chattanooga today, so then there's four others today. That's all I see on Twitter anymore is the latest mass shooting. Okay, I'm going to stop, but I'm a person and there's no guest here. I'm just talking about things that are on my mind, and this is on my mind.

Adam Elmore: It was probably mostly incoherent, but there's my commentary on that latest Corey Quinn article and newsletter email. Okay. So here's one. I saw some banter from people that I call friends, Yannick [Wimpy 00:24:10]. We've been connected on Twitter for a while. Need to get you on the show, actually. Congratulations on your new role at Hashnode.

Adam Elmore: He had tweeted a question. He said, "Imagine a company with less than 20 devs would like to get started on AWS. How would you approach that account set up? Multi account using control tower? Other?" The replies were good. So Paul Swail chimed in. [inaudible 00:24:36] also from Hashnode had linked one of Paul's articles where he talks about setting up developer accounts for new startups. Paul and I have that in common. We work mostly with startups, do a lot of this kind of thing, setting up accounts, organizational best practices. He has a great article that was linked in this tweet.

Adam Elmore: I'm going to just quickly read off the bullet points. So individual developers should be able to work in isolation. So generally on large teams, it's account per dev. I think that's the end state that you end up moving toward, but Dax Raad had a reply that was great, which was, start out with all of your devs using one shared account and then grow that dev account model over time based on need. That's not to say you don't have a separate account for production. You have a separate production account. All production resources are isolated from everything that's going on, but starting out with a shared dev account, I've seen this in my own consulting practice, it can be a lot for people just getting started to have each developer running in their own account and sometimes unnecessary.

Adam Elmore: So yeah, that was, I thought, a good conversation. Oh, the bullet points. So I started and then I ADDed my way out of that conversation. So a second bullet point, always use AWS organizations to manage your AWS accounts in order to tie billing, other governance functions. I think that whether you use control tower or not, you're going to be using AWS organizations.

Adam Elmore: Use SSO instead of IM users. It's the third bullet point. It's fantastic advice. SSO will make it much easier for your team to manage all the many accounts that you'll be spinning up. See, the next one is enable billing alerts. That's a good practice, whether it's a startup or it's your own hobby accounts. You want to be notified when you spend more money than you're comfortable with, going back to Corey's article. Fourth bullet point, fifth bullet point, ensure developers have visibility of the billing section. Oh yeah. That's big.

Adam Elmore: So ideally every developer is aware of the spend that they're responsible for that they're creating within these AWS accounts, so making sure that those are visible. Enable cloud trail audit logging on all AWS accounts. That's where things like control tower are really nice because they set all that up, best practices and taking all the accounts and feeding them into a single audit account. They do a lot of that stuff. Control tower does a lot of that stuff for you, so that can be nice.

Adam Elmore: Then Paul's last point, never include production or even UAT staging cloud resources in the same account as development environments. Touched on that, and I think that's a good idea. You want to keep all your production resources completely isolated. There's always weird resources like route 53 domains and even your SSO stuff going in a management account. Do you put your domain in route 53 in the production account? Some of those little weird resource questions come up, and I don't have a good answer right now, so I'm not going to go into it, but it was an interesting Twitter thread.

Adam Elmore: Okay. Now I'm just talking about Twitter threads. That's all I have today. I guess I've talked for 30 minutes, and now I need a whole lot of water and a break. I need to stop thinking about what I'm going to say next, which is basically what I've been doing for 30 minutes. It's been really fun to get back on the podcast. I'm trying to do it every week. I did it for the first few weeks, it was three times a week back in the winter, burned out really hard, took a long break, back at it. I don't know how many episodes I'm going to say I'm back at it, but I am back at it.

Adam Elmore: Yeah. Got another guest planned for next week. I'm excited to record with that guest. We've had a couple of postponements on my side, his side. We're going to get together next week. Join the discord. It's still there, still lots of fun AWS conversation happening there. If you listen to this podcast on Apple or maybe Spotify, I think they introduced some kind of rating system, I appreciate your reviews and any feedback you've got. That's a great place to say what you like and don't like about the show, because I will see it. There's not very many of them.

Adam Elmore: Okay. I'm going to sign off now. Thank you. Goodbye.