Serverless Should be Simple with Tomasz Łakomy

Episode Summary

“What if CloudWatch’s web page didn’t suck?” is the question Corey pondered on until he came across Cloudash, which solved it for him. Today’s guest is Tomasz Łakomy, Head of React at Cloudash. Corey and Tomasz begin by discussing the challenges of monitoring and troubleshooting serverless applications, and how Cloudash was created with these in mind. Cloudash is a monitoring and troubleshooting tool for serverless applications. Corey and Tomasz discuss Tomasz’s “day job” at Stedi and how the work culture there nurtures many successful “side gigs,” such as Cloudash, by employees. They go on to talk about the merits and challenges of cloud provider certifications, using different types of code with CDK, and public speaking at tech events! They conclude the conversation by touching on the overlap between engineering and marketing.

Episode Show Notes & Transcript

About Tomasz
Tomasz is a Frontend Engineer at Stedi, Co-Founder/Head of React at Cloudash, egghead.io instructor with over 200 lessons published, a tech speaker, an AWS Community Hero and a lifelong learner.

Links Referenced:

Transcript
Announcer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.


Corey: This episode is sponsored in part by Honeycomb. When production is running slow, it’s hard to know where problems originate. Is it your application code, users, or the underlying systems? I’ve got five bucks on DNS, personally. Why scroll through endless dashboards while dealing with alert floods, going from tool to tool to tool that you employ, guessing at which puzzle pieces matter? Context switching and tool sprawl are slowly killing both your team and your business. You should care more about one of those than the other; which one is up to you. Drop the separate pillars and enter a world of getting one unified understanding of the one thing driving your business: production. With Honeycomb, you guess less and know more. Try it for free at honeycomb.io/screaminginthecloud. Observability: it’s more than just hipster monitoring.


Corey: This episode is sponsored in part by our friends at ChaosSearch. You could run Elasticsearch or Elastic Cloud—or OpenSearch as they’re calling it now—or a self-hosted ELK stack. But why? ChaosSearch gives you the same API you’ve come to know and tolerate, along with unlimited data retention and no data movement. Just throw your data into S3 and proceed from there as you would expect. This is great for IT operations folks, for app performance monitoring, cybersecurity. If you’re using Elasticsearch, consider not running Elasticsearch. They’re also available now in the AWS marketplace if you’d prefer not to go direct and have half of whatever you pay them count towards your EDB commitment. Discover what companies like Equifax, Armor Security, and Blackboard already have. To learn more, visit chaossearch.io and tell them I sent you just so you can see them facepalm, yet again.


Corey: Welcome to Screaming in the Cloud. I’m Corey Quinn. It’s always a pleasure to talk to people who ask the bold questions. One of those great bold questions is, what if CloudWatch’s web page didn’t suck? It’s a good question. It’s one I ask myself all the time.


And then I stumbled across a product that wound up solving this for me, and I’m a happy customer. To be clear, they’re not sponsoring anything that I do, nor should they. It’s one of those bootstrapped, exciting software projects called Cloudash. Today, I’m joined by the Head of React at Cloudash, Tomasz Łakomy. Tomasz, thank you for joining me.


Tomasz: It’s a pleasure to be here.


Corey: So, where did this entire idea come from? Because I sit and I get upset every time I have to go into the CloudWatch dashboard because first, something’s broken. In an ideal scenario, I don’t have to care about monitoring or observability or anything like that. But then it’s quickly overshadowed by the fact that this interface is terrible. And the reason I know it’s terrible is that every time I’m in there, I feel dumb.


My belief is—for the longest time, I thought that was a problem with me. But no, invariably, when you wind up working with something and consistently finding it a bad—you don’t know enough to solve for it, it’s not you. It is, in fact, the signs of a poorly designed experience, start to finish. “You should be smarter to use this tool,” is very rarely correct. And there are a bunch of observability tools and monitoring tools for serverless things that have made sense over the years and made this easier, but one of the most—and please don’t take this the wrong way—stripped down, bare essentials of just the facts, style of presentation is Cloudash. It’s why I continue to pay for it every month with a smile on my face. How did you get here from there?


Tomasz: Yeah that’s a good question. I would say that. Cloudash was born out of desire for simple things to be simple. So, as you mentioned, Cloudash is basically the monitoring and troubleshooting tool for serverless applications, made for serverless developers because I am very much into serverless space, as is Maciej Winnicki, who is the another half of Cloudash team. And, you know, the whole premise of serverless was things are going to be simpler, right?


So, you know, you have a bunch of code, you’re going to dump it into a Lambda function, and that’s it. You don’t have to care about servers, you don’t have to care about, you know, provisioning stuff, you don’t have to care about maintenance, and so on. And that is not exactly true because why PagerDuty still continues to be [unintelligible 00:02:56] business even in serverless spaces. So, you will get paged every now and then. The problem is—what we kind of found is once you have an incident—you know, PagerDuty always tends to call it in the middle of the night; it’s never, like, 11 a.m. during the workday; it’s always the middle of the night.


Corey: And no one’s ever happy when it calls them either. It’s, “Ah, hell.” Whatever it rings, it’s yeah, the original Call of Duty. PagerDuty hooked up to Nagios. I am old enough to remember those days.


Tomasz: [unintelligible 00:03:24] then business, like, imagine paying for something that’s going to wake you up in the middle of the night. It 
doesn’t make sense. In any case—


Corey: “So, why do you pay for that product? Because it’s really going to piss me off.” “Okay, well… does that sound like a good business to you? Well, AWS seems to think so. No one’s happy working with that stuff.” “Fair. Fair enough.”


Tomasz: So, in any case, like we’ve established an [unintelligible 00:03:43]. So you wake up, you go to AWS console because you saw a notification that this-and-this API has, you know, this threshold was above it, something was above the threshold. And then you go to the CloudWatch console. And then you see, okay, those are the logs, those are the metrics. I’m going to copy this request ID. I’m going to go over here. I’m going to go to X-Ray.


And again, it’s 3 a.m. so you don’t exactly remember what do you investigate; you have, like, ten minutes. And this is a problem. Like, we’ve kind of identified that it’s not simple to do these kinds of things, too—it’s not simple to open something and have an understanding, okay, what exactly is happening in my serverless app at this very moment? Like, what’s going on?


So, we’ve built that. So, Cloudash is a desktop app; it lives on your machine, which is a single pane of glass. It’s a single pane of glass view into your serverless system. So, if you are using CloudFormation in order to provision something, when you open Cloudash, you’re going to see, you know, all of the metrics, all the Lambda functions, all of the API Gateways that you have provisioned. As of yesterday, API Gateway is no longer cool because they did launch the direct integration, so you have—you can call Lambda functions with [crosstalk 00:04:57]—


Corey: Yeah, it’s the one they released, and then rolled back and somehow never said a word—because that’s an AWS messaging story, and then some—right around re:Invent last year. And another quarter goes by and out it goes.


Tomasz: It’s out yesterday.


Corey: Yeah, it’s terrific. I love that thing. The only downside to it is, ah, you have to use one of their—you have to use their domain; no custom domain support. Really? Well, you can hook up CloudFront to it, but the pricing model that way makes it more expensive than API Gateway.


Okay, so I could use Cloudflare in front of it, and then it becomes free, so I bought a domain just for that purpose. That’s right, my serverl—my direct Lambda URLs now live behind the glorious domain of cheapass.cloud because of course. They are. It’s a day-one product from AWS, so of course, it’s not feature-complete.


But one of the things I like about the serverless model, and it’s also a challenge when it comes to troubleshooting stuff is that it’s very much set it and forget it style because serverless in many cases, at least the way that I tend to use it, is back-office stuff, its back-end things, it’s processing on things that are not necessarily always direct front and center. So, these things can run on their own for years until finally, you find a strange bug in a new use case, or you want to go and change something. And then it’s how the hell did this ever work? And it’s still working, kind of, but what fool built this? Of course, it was me; it’s always me.


But what happened here? You’re basically excavating your own legacy code, trying to understand what’s going on. And so, you’re already upset then. Cloudash makes this easier to find the things, to navigate through a whole bunch of different accounts. And there are a bunch of decisions that you made while building the app that are so clearly correct, that I get actively annoyed when others don’t because oh, it looks at your AWS configuration file in your user home directory. Great, awesome. It’s a desktop app, but it still consults that file. Yay, integration between ClickOps and the terminal. Wonderful.


But ah, use SSO for a lot of stuff, so that’s going to fix your little red wagon. I click on that app, and suddenly, bam, a browser opens asking me to log in and authenticate, allow the request. It works, and then suddenly, it goes back to doing exactly what you’d expect it to. It’s really nice. The affordances behind this are glorious.


Tomasz: Like I said, one of our kind of design goals when building Cloudash was to make simple things simple again. The whole purpose is to make sure that you can get into the root cause of an issue within, like, five minutes, if not less. And this is kind of the app that you’re going to tend to open whenever that—as I said, because some of the systems can be around for, like, ages, literally without any incident whatsoever, then the data is going to change because somebody [unintelligible 00:07:30] got that the year is 2020 and off you go, we have an incident.


But what’s important about Cloudash is that we don’t send logs anywhere. And that’s kind of important because you don’t pay for [PUT 00:07:42] metric API because we are not sending those logs anywhere. If you install Cloudash on your machine, we are not going to get your logs from the last ten years, put them in into a system, charge you for that, just so you are able to, you know, find out what happened in this particular hour, like, two weeks ago. We genuinely don’t care about your logs; we have enough of our own logs at work to, you know, to analyze, to investigate, and so on; we are not storing them anywhere.


In fact, you know, whatever happens on your machine stays on the machine. And that is partially why this is a desktop app. Because we don’t want to handle your credentials. We don’t—absolutely, we don’t want you to give us any of your credentials or access keys, you know, whatever. We don’t want that.


So, that is why you install Cloudash, it’s going to run on your machine, it’s going to use your local credentials. So, it’s… effectively, you could say that this is a much more streamlined and much more laser-focused browser or like, an eye into AWS systems, which live on the serverless side of things.


Corey: I got to deal with it in a bit of an interesting way, recently. I have a detector in my company’s production AWS org, to detect when ClickOps is afoot. Now, I’m a big proponent of ClickOps, but I also want to know what’s going on, so I have a whole thing that [runs detects 00:09:04] when people are doing things in the console versus via API. And it alerts on certain subsets of them. I had to build a special case for the user agent string coming out of Cloudash because no, no, this is an app, this is not technically ClickOps—it is also read-only, which is neither here nor there, to my understanding.


But it was, “Oh yeah, this is effectively an Electron app.” It just wraps, effectively, a browser and presents that as an application. And cool. From my perspective, that’s an implementation detail. It feels like a native app—because it is—and I can suddenly see the things I care about in a way that is much more straightforward without having to have four different browser tabs open where, okay, here’s the CloudTrail log for this thing, here’s the metrics next to it. Oh, those are two separate windows already, and so on and so forth. It just makes hunting down to the obnoxious problems so much nicer.


It’s also, you’re one of those rare products where if I don’t use it for a month, I don’t get the bill at the end of the month and think, “Ooh, that’s going to—did I waste the money?” It’s no, nice. I had a whole month where I didn’t have to mess with this. It’s great.


Tomasz: Exactly. I feel like, you know, it’s one of those systems where, as you said, we send you an email at the end of every month that we’re going to charge you X dollars for the month—by the way, we have fixed pricing and then you can cancel anytime—and it’s like one of those things that, you know, I didn’t have to open this up for a month. This is awesome because I didn’t have any incidents. But I know whenever again, PagerDuty is going to decide, “Hey, dude, wake up. You know, if slept for three hours. That is definitely long enough,” then you know that; you know, this app is there and you can use that.


We very much care about, you know, building this stuff, not only for our customers, but we also use that on a daily basis. In fact, I… every single time that I have to—I want to investigate something in, like, our serverless systems at Stedi because everything that we do at work, at Stedi, since this incident serverless paradigm. So, I tend to open Cloudash, like, 95% of the time whenever I want to investigate something. And whenever I am not able to do something in Cloudash, this goes, like, straight to the top of our, you know, issue lists or backlog or whatever you want to call it. Because we want to make this product, not only awesome, you know, for customers to buy a [unintelligible 00:11:22] or whatever, but we also want to be able to use that on a daily basis.


And so far, I think we’ve kind of succeeded. But then again, we have quite a long way to go because we have more ideas, than we have the time, definitely, so we have to kind of prioritize what exactly we’re going to build. So, [unintelligible 00:11:39] integrations with alarms. So, for instance, we want to be able to see the alarms directly in the Cloudash UI. Secondly, integration with logs insights, and many other ideas. I could probably talk for hours about what we want to build.


Corey: I also want to point out that this is still your side gig. You are by day a front-end engineer over at Stedi, which has a borderline disturbing number of engineers with side gigs, generally in the serverless space, doing interesting things like this. Dynobase is another example, a DynamoDB desktop client; very similar in some respects. I pay for that too. Honestly, for a company in Stedi’s space, which is designed as basically a giant API for deep, large enterprise business stuff, there’s an awful lot of stuff for small-scale coming out of that.


Like, I wind up throwing a disturbing amount of money in the general direction of Stedi for not being their customer. But there’s something about the culture that you folks have built over there that’s just phenomenal.


Tomasz: Yeah. For the record, you know, having a side gig is another part of interview process at Stedi. You don’t have to have [laugh] a side project, but yeah, you’re absolutely right, you know, the amount of kind of side projects, and you know, some of those are monetized, as you mentioned, you know, Cloudash and Dynobase and others. Some of those—because for instance, you talked to Aidan, I think a couple of weeks ago about his shenanigans, whenever you know, AWS is going to announce something he gets in and try to [unintelligible 00:13:06] this in the most amusing ways possible. Yeah, I mean, I could probably talk for ages about why Stedi is by far the best company I’ve ever worked at, but I’m going to say this: that this is the most talented group of people I’ve ever met, and myself, honestly.


And, you know, the fact that I think we are the second largest, kind of, group of AWS experts outside of AWS because the density of AWS Heroes, or ex-AWS employees, or people who have been doing cloud stuff for years, is frankly, massive, I tend to learn something new about cloud every single day. And not only because of the Last Week in AWS but also from our Slack.


Corey: This episode is sponsored by our friends at Oracle Cloud. Counting the pennies, but still dreaming of deploying apps instead of “Hello, World” demos? Allow me to introduce you to Oracle’s Always Free tier. It provides over 20 free services and infrastructure, networking, databases, observability, management, and security. And—let me be clear here—it’s actually free. There’s no surprise billing until you intentionally and proactively upgrade your account. This means you can provision a virtual machine instance or spin up an autonomous database that manages itself, all while gaining the networking, load balancing, and storage resources that somehow never quite make it into most free tiers needed to support the application that you want to build. With Always Free, you can do things like run small-scale applications or do proof-of-concept testing without spending a dime. You know that I always like to put asterisks next to the word free? This is actually free, no asterisk. Start now. Visit snark.cloud/oci-free that’s snark.cloud/oci-free.


Corey: There’s something to be said for having colleagues that you learn from. I have never enjoyed environments where I did not actively feel like the dumbest person in the room. That’s why I love what I do now. I inherently am. I have to talk about so many different things, that whenever I talk to a subject matter expert, it is a certainty that they know more about the thing than I do, with the admitted and depressing exception of course of the AWS bill because it turns out the reason I had to start becoming the expert in that was because there weren’t any. And here we are now.


I want to talk as well about some of—your interaction outside of work with AWS. For example, you’ve been an Egghead instructor for a while with over 200 lessons that you published. You’re an AWS Community Hero, which means you have the notable distinction of volunteering for a for-profit company—good work—no, the community is very important. It’s helping each other make sense of the nonsense coming out of there. You’ve been involved within the ecosystem for a very long time. What is it about, I guess—the thing I’m wondering about myself sometimes—what is it about the AWS universe that drew you in, and what keeps you here?


Tomasz: So, give you some context, I’ve started, you know, learning about the cloud and AWS back in early-2019. So, fun fact: Maciej Winnicki—again, the co-founder of Cloudash—was my manager at the time. So, we were—I mean, the company I used to work for at the time, OLX Group, we are in the middle of cloud transformation, so to speak. So, going from, you know, on-premises to AWS. And I was, you know, hired as a senior front-end engineer doing, you know, all kinds of front-end stuff, but I wanted to grow, I wanted to learn more.


So, the idea was, okay, maybe you can get AWS Certified because, you know, it’s one of those corporate goals that you have to have something to put that checkbox next to it. So, you know, getting certified, there you go, you have a checkbox. And off you go. So, I started, you know, diving in, and I saw this whole ocean of things that, you know, I was not entirely aware of. To be fair, at the time I knew about this S3, I knew that you can put a file in an S3 bucket and then you can access it from the internet. This is, like, the [unintelligible 00:16:02] idea of my AWS experiences.


Corey: Ideally, intentionally, but one wonders sometimes.


Tomasz: Yeah, exactly. That is why you always put stuff as public, right? Because you didn’t have to worry about who [unintelligible 00:16:12] [laugh] public [unintelligible 00:16:15]. No, I’m kidding, of course. But still, I think what’s [unintelligible 00:16:20] to AWS is what—because it is this endless ocean of things to learn and things to play with, and, you know, things to teach.


I do enjoy teaching. As you said, I have quite a lot of, you know, content, videos, blog posts, conference talks, and a bunch of other stuff, and I do that for two reasons. You know, first of all, I tend to learn the best by teaching, so it helps me very much, kind of like, solidify my own knowledge. Whenever I record—like, I have two courses about CDK, you know, when I was recording those, I definitely—that kind of solidify my, you know, ideas about CDK, I get to play with all those technologies.


And secondly, you know, it’s helpful for others. And, you know, people have opinions about certificates, and so on and so forth, but I think that for somebody who’s trying to get into either the tech industry or, you know, cloud stuff in general, being certified helps massively. And I’ve heard stories about people who are basically managed to double or triple their salaries by going into tech, you know, with some of those certificates. That is why I strongly believe, by the way, that those certificates should be free. Like, if you can pass the exam, you shouldn’t have to worry about this $150 of the fee.


Corey: I wrote a blog post a while back, “The Dumbest Dollars a Cloud Provider Can Make,” and it’s charging for training and certification because if someone’s going to invest that kind of time in learning your platform, you’re going to try and make $150 bucks off them? Which in some cases, is going to put people off from even beginning that process. “What cloud provider I’m not going to build a project on?” Obviously, the one I know how to work with and have a familiarity with, in almost every case. And the things you learn in your spare time as an independent learner when you get a job, you tend to think about your work the same way. It matters. It’s an early on-ramp that pays off down the road and the term of years.


I used to be very anti-cert personally because it felt like I was jumping through hoops, and paying, in some cases, for the privilege. I had a CCNA for a while from Cisco. There were a couple of smaller companies, SaltStack, for example, that I got various certifications from at different times. And that was sort of cheating because I helped write the software, but that’s neither here nor there. It’s the—and I do have a standing AWS cert that I get a different one every time—mine is about to expire—because it gets me access to lounges at physical events, which is the dumbest of all reasons to get certs, but here you go. I view it as the $150 lounge pass with a really weird entrance questionnaire.


But in my case it certs don’t add anything to what I do. I am not the common case. I am not early in my career. Because as you progress through your career, things—there needs to be a piece of paper that says you know things, and early on degree or certifications are great at that. In the time it becomes your own list of experience on your resume or CV or LinkedIn or God knows what. Polywork if you’re doing it the right way these days.


And it shows a history of projects that are similar in scope and scale and impact to the kinds of problems that your prospective employer is going to have to solve themselves. Because the best answer to hear—especially in the ops world—when there’s a problem is, “Oh, I’ve seen this before. Here’s how you fix it.” As opposed to, “Well, I don’t know. Let me do some research.”


There’s value to that. And I don’t begrudge anyone getting certs… to a point. At least that’s where I sit on it. At some point when you have 25 certs, it’s when you actually do any work? Because it’s taking the tests and learning all of these things, which in many ways does boil down to 
trivia, it stands in counterbalance to a lot of these things.


Tomasz: Yeah. I mean, I definitely, totally agree. I remember, you know, going from zero to—maybe not Hero; I’m not talking about AWS Hero—but going from zero to be certified, there was the Solutions Architect Associate. I think it took me, like, 200 hours. I am not the, you know, the brightest, you know, the sharpest tool in the shed, so it probably took me, kind of, somewhat more.


I think it’s doable in, like, 100 hours, but I tend to over-prepare for stuff, so I didn’t actually take the actual exam until I was able to pass the sample exams with, like, 90% pass, just to be extra sure that I’m actually going to pass it. But still, I think that, you know, at some point, you probably should focus on, you know, getting into the actual stuff because I hold two certificates, you know, one of those is going to expire, and I’m not entirely sure if I want to go through the process again. But still, if AWS were to introduce, like, a serverless specialty exam, I would be more than happy to have that. I genuinely enjoy, kind of, serverless, and you know, the fact that I would be able to solidify my knowledge, I have this kind of established path of the things that I should learn about in order to get this particular certificate, I think this could be interesting. But I am not probably going to chase all the 12 certificates.


Maybe if AWS IQ was available in Poland, maybe that would change because I do know that with IQ, those certs do matter. But as of 
[unintelligible 00:21:26] now, I’m quite happy with my certs that I have right now.


Corey: Part of the problem, too, is the more you work with these things, the harder it becomes to pass the exams, which sounds weird and counterintuitive, but let me use myself as an example. When I got the cloud practitioner cert, which I believe has lapsed since then, and I got one of the new associate-level betas—I’ll keep moving up the stack until I start failing exams. But I got a question wrong on the cloud practitioner because it was, “How long does it take to restore an RDS database from a snapshot backup?” And I gave the honest answer of what I’ve seen rather than what it says in the book, and that honest answer can be measured in days or hours. Yeah.


And no, that’s not the correct answer. Yeah, but it is the real one. Similarly, a lot of the questions get around trivia, syntax of which of these is the correct argument, and which ones did we make up? It’s, I can explain in some level of detail, virtually every one of AWS has 300 some-odd services to you. Ask me about any of them, I could tell you what it is, how it works, how it’s supposed to work and make a dumb joke about it. Fine, whatever.


You’ll forgive me if I went down that path, instead of memorizing what is the actual syntax of this YAML construct inside of a CloudFormation template? Yeah, I can get the answer to that question in the real world, with about ten seconds of Googling and we move on. That’s the way most of us learn. It’s not cramming trivia into our heads. There’s something broken about the way that we do certifications, and tech interviews in many cases as well.


I look back at some of the questions I used to ask people for Linux sysadmin-style jobs, and I don’t remember the answer to a lot of these things. I could definitely get back into it, but if I went through one of these interviews now, I wouldn’t get the job. One would argue I shouldn’t because of my personality, but that’s neither here nor there.


Tomasz: [laugh]. I mean, that’s why you use CDK, so you’d have to remember random YAML comments. And if you [unintelligible 00:23:26] you don’t have YAML anymore. [unintelligible 00:23:27].


Corey: Yes, you’re quite the CDK fanboy, apparently.


Tomasz: I do like CDK, yes. I don’t like, you know, mental overhead, I don’t like context switching, and the way we kind of work at Stedi is everything is written in TypeScript. So, I am a front-end engineer, so I do stuff in the front-end line in TypeScript, all of our Lambda functions are written in TypeScript, and our [unintelligible 00:23:48] is written in TypeScript. So, I can, you know, open up my Visual Studio Code and jump between all of those files, and the language stays the same, the syntax stays the same, the tools stay the same. And I think this is one of the benefits of CDK that is kind of hard to replicate otherwise.


And, you know, people have many opinions about the best to deploy infrastructure in the cloud, you know? The best infrastructure-as-code tool is the one that you use at work or in your private projects, right? Because some people enjoy ClickOps like you do; people—


Corey: Oh yeah.


Tomasz: Enjoy CloudFormation by hand, which I don’t; people are very much into Terraform or Serverless Framework. I’m very much into CDK.


Corey: Or the SAM CLI, like, three or four more, and I use—


Tomasz: Oh, yeah. [unintelligible 00:24:33]—


Corey: —all of these things in various ways in some of my [monstrous 00:24:35] projects to keep up on all these things. I did an exploration with the CDK. Incidentally, I think you just answered why I don’t like it.


Tomasz: Because?


Corey: Because it is very clear that TypeScript is a first-class citizen with the CDK. My language of choice is shitty bash because, grumpy old sysadmin; it happens. And increasingly, that is switching over to terrible Python because I’m very bad at that. And the problem that I run into as I was experimenting with this is, it feels like the Python support is not fully baked, most people who are using the CDK are using a flavor of JavaScript and, let’s be very clear here, the every time I have tried to explore front-end, I have come away more confused than I was when I started, part of me really thinks I should be learning some JavaScript just because of its versatility and utility to a whole bunch of different problems. But it does not work the way I think, on some level, that it should because of my own biases and experiences. So, if you’re not a JavaScript person, I think that you have a much rockier road with the CDK.


Tomasz: I agree. Like I said, I tend to talk about my own experiences and my kind of thoughts about stuff. I’m not going to say that, you know, this tool or that tool is the best tool ever because nothing like that exists. Apart from jQuery, which is the best thing that ever happened to the web since, you know, baked bread, honestly. But you are right about CDK, to the best of my knowledge, kind of, all the other languages that are supported by CDK are effectively transpiled down from TypeScript. So it’s, like, first of all, it is written in TypeScript, and then kind of the Python, all of the other languages… kind of come second.


You know, and afterwards, I tend to enjoy CDK because as I said, I use TypeScript on a daily basis. And you know, with regards to front-end, you mentioned that you are, every single time you is that you end up being more confused. It never goes away. I’ve been doing front-end stuff for years, and it’s, you know, kind of exactly the same. Fun story, I actually joined Cloudash because, well, Maciej started working on Cloudash alone, and after quite some time, he was so frustrated with the modern front-end landscape that he asked me, “Dude, you need to help me. Like, I genuinely need some help. I am tired of React. I am tired of React hooks. This is way too complex. I want to go back to doing back-end stuff. I want to go back, you know, thinking about how we’re going to integrate with all those APIs. I don’t want to do UI stuff anymore.”


Which was kind of like an interesting shift because I remember at the very beginning of my career, where people were talking about front-end—you know, “Front-end is not real programming. Front-end is, you know, it’s easy, it’s simple. I can learn CSS in an hour.” And the amount of people who say that CSS is easy, and are good at CSS is exactly zero. Literally, nobody who’s actually good at CSS says that, you know, CSS, or front-end, or anything like that is easy because it’s not. It’s incredibly complex. It’s getting probably more and more complex because the expectations of our front-end UIs [unintelligible 00:27:44].


Corey: It’s challenging, it is difficult, and one of the things I find most admirable about you is not even your technical achievements, it’s the fact that you’re teaching other people to do this. In fact, this gets to the last point I want to cover on our conversation today. When I was bouncing topic ideas off of you, one of the points you brought up that I’m like, “Oh, we’re keeping that and saving that for the end,” is why—to your words—why speaking at tech events gets easier, but never easy. Let’s dive into that. Tell me more about it.


Tomasz: Basically, I’ve accidentally kickstarted my career by speaking at meetups which later turned into conferences, which later turned into me publishing courses online, which later turned into me becoming an AWS Hero, and here we are, you know, talking to each other. I do enjoy, you know, going out in public and speaking and being on stage. I think, you know, if somebody has, kind of, the heart, the ability to do that, I do strongly recommend, you know, giving it a shot, not only to give, like, an honestly life-changing experience because the first time you go in front of hundreds of people, this is definitely, you know, something that’s going to shake you, while at the same time acknowledging that this is absolutely, definitely not for everyone. But if you are able to do that, I think this is definitely worth your time. But as you said—by quoting me—that it gets easier, so every single time you go on stage, talk at a meetup or at a conference or online conferences—which I’m not exactly a fan of, for the record—it’s—


Corey: It’s too much like work, too much like meetings. There’s nothing different about it.


Tomasz: Yeah, exactly. Like, there’s no journey. There’s no adventure in online conferences. I know that, of course, you know, given all of that, you know, we had to kind of switch to online conferences for quite some time where I think we are pretending that Covid is not a thing anymore, so we, you know, we’re effectively going back, but kind of the point I wanted to make is that I am a somewhat experienced public speaker—I’d like to say that because I’ve been doing that for years—but I’ve been, you know, talking to people who actually get paid to speak at the conferences, to actually kind of do that for a living, and they all say the same thing. It gets simpler, it gets easier, but it’s never freaking easy, you know, to go out there, and you know, to share whatever you’ve learned.


Corey: I’m one of those people. I am a paid public speaker fairly often, even ignoring the podcast side, and I’ve spoken on conference stages a couple hundred times at least. And it does get easier but never easy. That’s a great way of framing it. You… I get nervous before every talk I give.


There are I think two talks I’ve given that I did not have an adrenaline hit and nervous energy before I went onstage, and both of those were duds. Because I think that it’s part of the process, at least for me. And it’s like, “Oh, how do you wind up not being scared for before you go on stage?” You don’t. You really don’t.


But if that appeals to you and you enjoy the adrenaline rush of the rest, do it. If you’re one of those people who’ve used public speaking as, “I would prefer death over that,” people are more scared of public speaking their death, in some cases, great. There are so many ways to build audiences and to reach people that fine, if you don’t like doing it on stage, don’t force yourself to. I’d say try it once; see how it feels meetups are great for this.


Tomasz: Yeah. Meetups are basically the best way to get started. I’m yet to meet a meetup, either, you know, offline or online, who is not looking for speakers. It’s always quite the opposite, you know? I was, you know, co-organizing a meetup in my city here in Poznań, Poland, and the story always goes like this: “Okay, we have a date. We have a venue. Where are the speakers?” And then you know, the tumbleweed is going to roll across the road and, “Oh, crap, we don’t have any speakers.” So, we’re going to try to find some, reach out to people. “Hey, I know that you did this fantastic project at your workplace. Come to us, talk about this.” “No, I don’t want to. You know, I’m not an expert. I am, you know, I have on the 50 years of experience as an engineer. This is not enough.” Like I said, I do strongly recommend it, but as you said, if you’re more scared of public speaking than, like, literally dying, maybe this is not for you.


Corey: Yeah. It comes down to stretching your limits, finding yourself interesting. I find that there are lots of great engineers out there. The ones that I find myself drawn to are the ones who aren’t just great at building something, but at storytelling around the thing that they are built of, yes, you build something awesome, but you have to convince me to care about it. You have to show me the thing that got you excited about this.


And if you can’t inspire that excitement in other people, okay. Are you really excited about it? Or what is the story here? And again, it’s a different skill set. It is not for everyone, but it is absolutely a significant career accelerator if it’s leveraged right.


Tomasz: [crosstalk 00:32:45].


Corey: [crosstalk 00:32:46] on it.


Tomasz: Yeah, absolutely. I think that we don’t talk enough about, kind of, the overlap between engineering and marketing. In the good sense of marketing, not the shady kind of marketing. The kind of marketing that you do for yourself in order to elevate yourself, your projects, your successes to others. Because, you know, try as you might, but if you are kind of like sitting in the corner of an office, you know, just jamming on your keyboard 40 hours per week, you’re not exactly likely to be promoted because nobody’s going to actively reach out to you to find out about your, you know, recent successes and so on.


Which at the same time, I’m not saying that you should go @channel in Slack every single time you push a commit to the main branch, but there’s definitely, you know, a way of being, kind of, kind to yourself by letting others know that, “Okay, I’m here. I do exist, I have, you know, those particular skills that you may be interested about. And I’m able to tell a story which is, you know, convincing.” So it’s, you know, you can tell a story on stage, but you can also tell your story to your customers by building a future that they’re going to use. [unintelligible 00:33:50].


Corey: I really want to thank you for taking the time to speak with me today. If people want to learn more, where’s the best place to find you?


Tomasz: So, the best place to find me is on Twitter. So, my Twitter handle is @tlakomy. So, it’s T-L-A-K-O-M-Y. I’m assuming this is going to be in the [show notes 00:34:06] as well.


Corey: Oh, it absolutely is. You beat me to it.


Tomasz: [laugh]. So, you can find Cloudash at cloudash.dev. You can probably also find my email, but don’t email me because I’m terrible, absolutely terrible at email, so the best way to kind of reach out to me is via my Twitter DMs. I’m slightly less bad at those.


Corey: Excellent. And we will, of course, put links to that in the [show notes 00:34:29]. Thank you so much for being so generous with your time. I appreciate it.


Tomasz: Thank you. Thank you for having me.


Corey: Tomasz Łakomy, Head of React at Cloudash. I’m Cloud Economist Corey Quinn and this is Screaming in the Cloud. If you’ve enjoyed this podcast, please leave a five-star review on your podcast platform of choice, and if you’re on the YouTubes, smash the like and subscribe button, as the kids say. Whereas if you’ve hated this episode, please do the exact same thing—five-star reviews smash the buttons—but this time also leave an insulting and angry comment written in the form of a CloudWatch log entry that no one is ever able to find in the native interface.


Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.


Announcer: This has been a HumblePod production. Stay humble.

Transcript

Announcer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.

Corey: This episode is sponsored in part by Honeycomb. When production is running slow, it’s hard to know where problems originate. Is it your application code, users, or the underlying systems? I’ve got five bucks on DNS, personally. Why scroll through endless dashboards while dealing with alert floods, going from tool to tool to tool that you employ, guessing at which puzzle pieces matter? Context switching and tool sprawl are slowly killing both your team and your business. You should care more about one of those than the other; which one is up to you. Drop the separate pillars and enter a world of getting one unified understanding of the one thing driving your business: production. With Honeycomb, you guess less and know more. Try it for free at honeycomb.io/screaminginthecloud. Observability: it’s more than just hipster monitoring.

Corey: This episode is sponsored in part by our friends at ChaosSearch. You could run Elasticsearch or Elastic Cloud—or OpenSearch as they’re calling it now—or a self-hosted ELK stack. But why? ChaosSearch gives you the same API you’ve come to know and tolerate, along with unlimited data retention and no data movement. Just throw your data into S3 and proceed from there as you would expect. This is great for IT operations folks, for app performance monitoring, cybersecurity. If you’re using Elasticsearch, consider not running Elasticsearch. They’re also available now in the AWS marketplace if you’d prefer not to go direct and have half of whatever you pay them count towards your EDB commitment. Discover what companies like Equifax, Armor Security, and Blackboard already have. To learn more, visit chaossearch.io and tell them I sent you just so you can see them facepalm, yet again.

Corey: Welcome to Screaming in the Cloud. I’m Corey Quinn. It’s always a pleasure to talk to people who ask the bold questions. One of those great bold questions is, what if CloudWatch’s web page didn’t suck? It’s a good question. It’s one I ask myself all the time.

And then I stumbled across a product that wound up solving this for me, and I’m a happy customer. To be clear, they’re not sponsoring anything that I do, nor should they. It’s one of those bootstrapped, exciting software projects called Cloudash. Today, I’m joined by the Head of React at Cloudash, Tomasz Łakomy. Tomasz, thank you for joining me.

Tomasz: It’s a pleasure to be here.

Corey: So, where did this entire idea come from? Because I sit and I get upset every time I have to go into the CloudWatch dashboard because first, something’s broken. In an ideal scenario, I don’t have to care about monitoring or observability or anything like that. But then it’s quickly overshadowed by the fact that this interface is terrible. And the reason I know it’s terrible is that every time I’m in there, I feel dumb.

My belief is—for the longest time, I thought that was a problem with me. But no, invariably, when you wind up working with something and consistently finding it a bad—you don’t know enough to solve for it, it’s not you. It is, in fact, the signs of a poorly designed experience, start to finish. “You should be smarter to use this tool,” is very rarely correct. And there are a bunch of observability tools and monitoring tools for serverless things that have made sense over the years and made this easier, but one of the most—and please don’t take this the wrong way—stripped down, bare essentials of just the facts, style of presentation is Cloudash. It’s why I continue to pay for it every month with a smile on my face. How did you get here from there?

Tomasz: Yeah that’s a good question. I would say that. Cloudash was born out of desire for simple things to be simple. So, as you mentioned, Cloudash is basically the monitoring and troubleshooting tool for serverless applications, made for serverless developers because I am very much into serverless space, as is Maciej Winnicki, who is the another half of Cloudash team. And, you know, the whole premise of serverless was things are going to be simpler, right?

So, you know, you have a bunch of code, you’re going to dump it into a Lambda function, and that’s it. You don’t have to care about servers, you don’t have to care about, you know, provisioning stuff, you don’t have to care about maintenance, and so on. And that is not exactly true because why PagerDuty still continues to be [unintelligible 00:02:56] business even in serverless spaces. So, you will get paged every now and then. The problem is—what we kind of found is once you have an incident—you know, PagerDuty always tends to call it in the middle of the night; it’s never, like, 11 a.m. during the workday; it’s always the middle of the night.

Corey: And no one’s ever happy when it calls them either. It’s, “Ah, hell.” Whatever it rings, it’s yeah, the original Call of Duty. PagerDuty hooked up to Nagios. I am old enough to remember those days.

Tomasz: [unintelligible 00:03:24] then business, like, imagine paying for something that’s going to wake you up in the middle of the night. It doesn’t make sense. In any case—

Corey: “So, why do you pay for that product? Because it’s really going to piss me off.” “Okay, well… does that sound like a good business to you? Well, AWS seems to think so. No one’s happy working with that stuff.” “Fair. Fair enough.”

Tomasz: So, in any case, like we’ve established an [unintelligible 00:03:43]. So you wake up, you go to AWS console because you saw a notification that this-and-this API has, you know, this threshold was above it, something was above the threshold. And then you go to the CloudWatch console. And then you see, okay, those are the logs, those are the metrics. I’m going to copy this request ID. I’m going to go over here. I’m going to go to X-Ray.

And again, it’s 3 a.m. so you don’t exactly remember what do you investigate; you have, like, ten minutes. And this is a problem. Like, we’ve kind of identified that it’s not simple to do these kinds of things, too—it’s not simple to open something and have an understanding, okay, what exactly is happening in my serverless app at this very moment? Like, what’s going on?

So, we’ve built that. So, Cloudash is a desktop app; it lives on your machine, which is a single pane of glass. It’s a single pane of glass view into your serverless system. So, if you are using CloudFormation in order to provision something, when you open Cloudash, you’re going to see, you know, all of the metrics, all the Lambda functions, all of the API Gateways that you have provisioned. As of yesterday, API Gateway is no longer cool because they did launch the direct integration, so you have—you can call Lambda functions with [crosstalk 00:04:57]—

Corey: Yeah, it’s the one they released, and then rolled back and somehow never said a word—because that’s an AWS messaging story, and then some—right around re:Invent last year. And another quarter goes by and out it goes.

Tomasz: It’s out yesterday.

Corey: Yeah, it’s terrific. I love that thing. The only downside to it is, ah, you have to use one of their—you have to use their domain; no custom domain support. Really? Well, you can hook up CloudFront to it, but the pricing model that way makes it more expensive than API Gateway.

Okay, so I could use Cloudflare in front of it, and then it becomes free, so I bought a domain just for that purpose. That’s right, my serverl—my direct Lambda URLs now live behind the glorious domain of cheapass.cloud because of course. They are. It’s a day-one product from AWS, so of course, it’s not feature-complete.

But one of the things I like about the serverless model, and it’s also a challenge when it comes to troubleshooting stuff is that it’s very much set it and forget it style because serverless in many cases, at least the way that I tend to use it, is back-office stuff, its back-end things, it’s processing on things that are not necessarily always direct front and center. So, these things can run on their own for years until finally, you find a strange bug in a new use case, or you want to go and change something. And then it’s how the hell did this ever work? And it’s still working, kind of, but what fool built this? Of course, it was me; it’s always me.

But what happened here? You’re basically excavating your own legacy code, trying to understand what’s going on. And so, you’re already upset then. Cloudash makes this easier to find the things, to navigate through a whole bunch of different accounts. And there are a bunch of decisions that you made while building the app that are so clearly correct, that I get actively annoyed when others don’t because oh, it looks at your AWS configuration file in your user home directory. Great, awesome. It’s a desktop app, but it still consults that file. Yay, integration between ClickOps and the terminal. Wonderful.

But ah, use SSO for a lot of stuff, so that’s going to fix your little red wagon. I click on that app, and suddenly, bam, a browser opens asking me to log in and authenticate, allow the request. It works, and then suddenly, it goes back to doing exactly what you’d expect it to. It’s really nice. The affordances behind this are glorious.

Tomasz: Like I said, one of our kind of design goals when building Cloudash was to make simple things simple again. The whole purpose is to make sure that you can get into the root cause of an issue within, like, five minutes, if not less. And this is kind of the app that you’re going to tend to open whenever that—as I said, because some of the systems can be around for, like, ages, literally without any incident whatsoever, then the data is going to change because somebody [unintelligible 00:07:30] got that the year is 2020 and off you go, we have an incident.

But what’s important about Cloudash is that we don’t send logs anywhere. And that’s kind of important because you don’t pay for [PUT 00:07:42] metric API because we are not sending those logs anywhere. If you install Cloudash on your machine, we are not going to get your logs from the last ten years, put them in into a system, charge you for that, just so you are able to, you know, find out what happened in this particular hour, like, two weeks ago. We genuinely don’t care about your logs; we have enough of our own logs at work to, you know, to analyze, to investigate, and so on; we are not storing them anywhere.

In fact, you know, whatever happens on your machine stays on the machine. And that is partially why this is a desktop app. Because we don’t want to handle your credentials. We don’t—absolutely, we don’t want you to give us any of your credentials or access keys, you know, whatever. We don’t want that.

So, that is why you install Cloudash, it’s going to run on your machine, it’s going to use your local credentials. So, it’s… effectively, you could say that this is a much more streamlined and much more laser-focused browser or like, an eye into AWS systems, which live on the serverless side of things.

Corey: I got to deal with it in a bit of an interesting way, recently. I have a detector in my company’s production AWS org, to detect when ClickOps is afoot. Now, I’m a big proponent of ClickOps, but I also want to know what’s going on, so I have a whole thing that [runs detects 00:09:04] when people are doing things in the console versus via API. And it alerts on certain subsets of them. I had to build a special case for the user agent string coming out of Cloudash because no, no, this is an app, this is not technically ClickOps—it is also read-only, which is neither here nor there, to my understanding.

But it was, “Oh yeah, this is effectively an Electron app.” It just wraps, effectively, a browser and presents that as an application. And cool. From my perspective, that’s an implementation detail. It feels like a native app—because it is—and I can suddenly see the things I care about in a way that is much more straightforward without having to have four different browser tabs open where, okay, here’s the CloudTrail log for this thing, here’s the metrics next to it. Oh, those are two separate windows already, and so on and so forth. It just makes hunting down to the obnoxious problems so much nicer.

It’s also, you’re one of those rare products where if I don’t use it for a month, I don’t get the bill at the end of the month and think, “Ooh, that’s going to—did I waste the money?” It’s no, nice. I had a whole month where I didn’t have to mess with this. It’s great.

Tomasz: Exactly. I feel like, you know, it’s one of those systems where, as you said, we send you an email at the end of every month that we’re going to charge you X dollars for the month—by the way, we have fixed pricing and then you can cancel anytime—and it’s like one of those things that, you know, I didn’t have to open this up for a month. This is awesome because I didn’t have any incidents. But I know whenever again, PagerDuty is going to decide, “Hey, dude, wake up. You know, if slept for three hours. That is definitely long enough,” then you know that; you know, this app is there and you can use that.

We very much care about, you know, building this stuff, not only for our customers, but we also use that on a daily basis. In fact, I… every single time that I have to—I want to investigate something in, like, our serverless systems at Stedi because everything that we do at work, at Stedi, since this incident serverless paradigm. So, I tend to open Cloudash, like, 95% of the time whenever I want to investigate something. And whenever I am not able to do something in Cloudash, this goes, like, straight to the top of our, you know, issue lists or backlog or whatever you want to call it. Because we want to make this product, not only awesome, you know, for customers to buy a [unintelligible 00:11:22] or whatever, but we also want to be able to use that on a daily basis.

And so far, I think we’ve kind of succeeded. But then again, we have quite a long way to go because we have more ideas, than we have the time, definitely, so we have to kind of prioritize what exactly we’re going to build. So, [unintelligible 00:11:39] integrations with alarms. So, for instance, we want to be able to see the alarms directly in the Cloudash UI. Secondly, integration with logs insights, and many other ideas. I could probably talk for hours about what we want to build.

Corey: I also want to point out that this is still your side gig. You are by day a front-end engineer over at Stedi, which has a borderline disturbing number of engineers with side gigs, generally in the serverless space, doing interesting things like this. Dynobase is another example, a DynamoDB desktop client; very similar in some respects. I pay for that too. Honestly, for a company in Stedi’s space, which is designed as basically a giant API for deep, large enterprise business stuff, there’s an awful lot of stuff for small-scale coming out of that.

Like, I wind up throwing a disturbing amount of money in the general direction of Stedi for not being their customer. But there’s something about the culture that you folks have built over there that’s just phenomenal.

Tomasz: Yeah. For the record, you know, having a side gig is another part of interview process at Stedi. You don’t have to have [laugh] a side project, but yeah, you’re absolutely right, you know, the amount of kind of side projects, and you know, some of those are monetized, as you mentioned, you know, Cloudash and Dynobase and others. Some of those—because for instance, you talked to Aidan, I think a couple of weeks ago about his shenanigans, whenever you know, AWS is going to announce something he gets in and try to [unintelligible 00:13:06] this in the most amusing ways possible. Yeah, I mean, I could probably talk for ages about why Stedi is by far the best company I’ve ever worked at, but I’m going to say this: that this is the most talented group of people I’ve ever met, and myself, honestly.

And, you know, the fact that I think we are the second largest, kind of, group of AWS experts outside of AWS because the density of AWS Heroes, or ex-AWS employees, or people who have been doing cloud stuff for years, is frankly, massive, I tend to learn something new about cloud every single day. And not only because of the Last Week in AWS but also from our Slack.

Corey: This episode is sponsored by our friends at Oracle Cloud. Counting the pennies, but still dreaming of deploying apps instead of “Hello, World” demos? Allow me to introduce you to Oracle’s Always Free tier. It provides over 20 free services and infrastructure, networking, databases, observability, management, and security. And—let me be clear here—it’s actually free. There’s no surprise billing until you intentionally and proactively upgrade your account. This means you can provision a virtual machine instance or spin up an autonomous database that manages itself, all while gaining the networking, load balancing, and storage resources that somehow never quite make it into most free tiers needed to support the application that you want to build. With Always Free, you can do things like run small-scale applications or do proof-of-concept testing without spending a dime. You know that I always like to put asterisks next to the word free? This is actually free, no asterisk. Start now. Visit snark.cloud/oci-free that’s snark.cloud/oci-free.

Corey: There’s something to be said for having colleagues that you learn from. I have never enjoyed environments where I did not actively feel like the dumbest person in the room. That’s why I love what I do now. I inherently am. I have to talk about so many different things, that whenever I talk to a subject matter expert, it is a certainty that they know more about the thing than I do, with the admitted and depressing exception of course of the AWS bill because it turns out the reason I had to start becoming the expert in that was because there weren’t any. And here we are now.

I want to talk as well about some of—your interaction outside of work with AWS. For example, you’ve been an Egghead instructor for a while with over 200 lessons that you published. You’re an AWS Community Hero, which means you have the notable distinction of volunteering for a for-profit company—good work—no, the community is very important. It’s helping each other make sense of the nonsense coming out of there. You’ve been involved within the ecosystem for a very long time. What is it about, I guess—the thing I’m wondering about myself sometimes—what is it about the AWS universe that drew you in, and what keeps you here?

Tomasz: So, give you some context, I’ve started, you know, learning about the cloud and AWS back in early-2019. So, fun fact: Maciej Winnicki—again, the co-founder of Cloudash—was my manager at the time. So, we were—I mean, the company I used to work for at the time, OLX Group, we are in the middle of cloud transformation, so to speak. So, going from, you know, on-premises to AWS. And I was, you know, hired as a senior front-end engineer doing, you know, all kinds of front-end stuff, but I wanted to grow, I wanted to learn more.

So, the idea was, okay, maybe you can get AWS Certified because, you know, it’s one of those corporate goals that you have to have something to put that checkbox next to it. So, you know, getting certified, there you go, you have a checkbox. And off you go. So, I started, you know, diving in, and I saw this whole ocean of things that, you know, I was not entirely aware of. To be fair, at the time I knew about this S3, I knew that you can put a file in an S3 bucket and then you can access it from the internet. This is, like, the [unintelligible 00:16:02] idea of my AWS experiences.

Corey: Ideally, intentionally, but one wonders sometimes.

Tomasz: Yeah, exactly. That is why you always put stuff as public, right? Because you didn’t have to worry about who [unintelligible 00:16:12] [laugh] public [unintelligible 00:16:15]. No, I’m kidding, of course. But still, I think what’s [unintelligible 00:16:20] to AWS is what—because it is this endless ocean of things to learn and things to play with, and, you know, things to teach.

I do enjoy teaching. As you said, I have quite a lot of, you know, content, videos, blog posts, conference talks, and a bunch of other stuff, and I do that for two reasons. You know, first of all, I tend to learn the best by teaching, so it helps me very much, kind of like, solidify my own knowledge. Whenever I record—like, I have two courses about CDK, you know, when I was recording those, I definitely—that kind of solidify my, you know, ideas about CDK, I get to play with all those technologies.

And secondly, you know, it’s helpful for others. And, you know, people have opinions about certificates, and so on and so forth, but I think that for somebody who’s trying to get into either the tech industry or, you know, cloud stuff in general, being certified helps massively. And I’ve heard stories about people who are basically managed to double or triple their salaries by going into tech, you know, with some of those certificates. That is why I strongly believe, by the way, that those certificates should be free. Like, if you can pass the exam, you shouldn’t have to worry about this $150 of the fee.

Corey: I wrote a blog post a while back, “The Dumbest Dollars a Cloud Provider Can Make,” and it’s charging for training and certification because if someone’s going to invest that kind of time in learning your platform, you’re going to try and make $150 bucks off them? Which in some cases, is going to put people off from even beginning that process. “What cloud provider I’m not going to build a project on?” Obviously, the one I know how to work with and have a familiarity with, in almost every case. And the things you learn in your spare time as an independent learner when you get a job, you tend to think about your work the same way. It matters. It’s an early on-ramp that pays off down the road and the term of years.

I used to be very anti-cert personally because it felt like I was jumping through hoops, and paying, in some cases, for the privilege. I had a CCNA for a while from Cisco. There were a couple of smaller companies, SaltStack, for example, that I got various certifications from at different times. And that was sort of cheating because I helped write the software, but that’s neither here nor there. It’s the—and I do have a standing AWS cert that I get a different one every time—mine is about to expire—because it gets me access to lounges at physical events, which is the dumbest of all reasons to get certs, but here you go. I view it as the $150 lounge pass with a really weird entrance questionnaire.

But in my case it certs don’t add anything to what I do. I am not the common case. I am not early in my career. Because as you progress through your career, things—there needs to be a piece of paper that says you know things, and early on degree or certifications are great at that. In the time it becomes your own list of experience on your resume or CV or LinkedIn or God knows what. Polywork if you’re doing it the right way these days.

And it shows a history of projects that are similar in scope and scale and impact to the kinds of problems that your prospective employer is going to have to solve themselves. Because the best answer to hear—especially in the ops world—when there’s a problem is, “Oh, I’ve seen this before. Here’s how you fix it.” As opposed to, “Well, I don’t know. Let me do some research.”

There’s value to that. And I don’t begrudge anyone getting certs… to a point. At least that’s where I sit on it. At some point when you have 25 certs, it’s when you actually do any work? Because it’s taking the tests and learning all of these things, which in many ways does boil down to trivia, it stands in counterbalance to a lot of these things.

Tomasz: Yeah. I mean, I definitely, totally agree. I remember, you know, going from zero to—maybe not Hero; I’m not talking about AWS Hero—but going from zero to be certified, there was the Solutions Architect Associate. I think it took me, like, 200 hours. I am not the, you know, the brightest, you know, the sharpest tool in the shed, so it probably took me, kind of, somewhat more.

I think it’s doable in, like, 100 hours, but I tend to over-prepare for stuff, so I didn’t actually take the actual exam until I was able to pass the sample exams with, like, 90% pass, just to be extra sure that I’m actually going to pass it. But still, I think that, you know, at some point, you probably should focus on, you know, getting into the actual stuff because I hold two certificates, you know, one of those is going to expire, and I’m not entirely sure if I want to go through the process again. But still, if AWS were to introduce, like, a serverless specialty exam, I would be more than happy to have that. I genuinely enjoy, kind of, serverless, and you know, the fact that I would be able to solidify my knowledge, I have this kind of established path of the things that I should learn about in order to get this particular certificate, I think this could be interesting. But I am not probably going to chase all the 12 certificates.

Maybe if AWS IQ was available in Poland, maybe that would change because I do know that with IQ, those certs do matter. But as of [unintelligible 00:21:26] now, I’m quite happy with my certs that I have right now.

Corey: Part of the problem, too, is the more you work with these things, the harder it becomes to pass the exams, which sounds weird and counterintuitive, but let me use myself as an example. When I got the cloud practitioner cert, which I believe has lapsed since then, and I got one of the new associate-level betas—I’ll keep moving up the stack until I start failing exams. But I got a question wrong on the cloud practitioner because it was, “How long does it take to restore an RDS database from a snapshot backup?” And I gave the honest answer of what I’ve seen rather than what it says in the book, and that honest answer can be measured in days or hours. Yeah.

And no, that’s not the correct answer. Yeah, but it is the real one. Similarly, a lot of the questions get around trivia, syntax of which of these is the correct argument, and which ones did we make up? It’s, I can explain in some level of detail, virtually every one of AWS has 300 some-odd services to you. Ask me about any of them, I could tell you what it is, how it works, how it’s supposed to work and make a dumb joke about it. Fine, whatever.

You’ll forgive me if I went down that path, instead of memorizing what is the actual syntax of this YAML construct inside of a CloudFormation template? Yeah, I can get the answer to that question in the real world, with about ten seconds of Googling and we move on. That’s the way most of us learn. It’s not cramming trivia into our heads. There’s something broken about the way that we do certifications, and tech interviews in many cases as well.

I look back at some of the questions I used to ask people for Linux sysadmin-style jobs, and I don’t remember the answer to a lot of these things. I could definitely get back into it, but if I went through one of these interviews now, I wouldn’t get the job. One would argue I shouldn’t because of my personality, but that’s neither here nor there.

Tomasz: [laugh]. I mean, that’s why you use CDK, so you’d have to remember random YAML comments. And if you [unintelligible 00:23:26] you don’t have YAML anymore. [unintelligible 00:23:27].

Corey: Yes, you’re quite the CDK fanboy, apparently.

Tomasz: I do like CDK, yes. I don’t like, you know, mental overhead, I don’t like context switching, and the way we kind of work at Stedi is everything is written in TypeScript. So, I am a front-end engineer, so I do stuff in the front-end line in TypeScript, all of our Lambda functions are written in TypeScript, and our [unintelligible 00:23:48] is written in TypeScript. So, I can, you know, open up my Visual Studio Code and jump between all of those files, and the language stays the same, the syntax stays the same, the tools stay the same. And I think this is one of the benefits of CDK that is kind of hard to replicate otherwise.

And, you know, people have many opinions about the best to deploy infrastructure in the cloud, you know? The best infrastructure-as-code tool is the one that you use at work or in your private projects, right? Because some people enjoy ClickOps like you do; people—

Corey: Oh yeah.

Tomasz: Enjoy CloudFormation by hand, which I don’t; people are very much into Terraform or Serverless Framework. I’m very much into CDK.

Corey: Or the SAM CLI, like, three or four more, and I use—

Tomasz: Oh, yeah. [unintelligible 00:24:33]—

Corey: —all of these things in various ways in some of my [monstrous 00:24:35] projects to keep up on all these things. I did an exploration with the CDK. Incidentally, I think you just answered why I don’t like it.

Tomasz: Because?

Corey: Because it is very clear that TypeScript is a first-class citizen with the CDK. My language of choice is shitty bash because, grumpy old sysadmin; it happens. And increasingly, that is switching over to terrible Python because I’m very bad at that. And the problem that I run into as I was experimenting with this is, it feels like the Python support is not fully baked, most people who are using the CDK are using a flavor of JavaScript and, let’s be very clear here, the every time I have tried to explore front-end, I have come away more confused than I was when I started, part of me really thinks I should be learning some JavaScript just because of its versatility and utility to a whole bunch of different problems. But it does not work the way I think, on some level, that it should because of my own biases and experiences. So, if you’re not a JavaScript person, I think that you have a much rockier road with the CDK.

Tomasz: I agree. Like I said, I tend to talk about my own experiences and my kind of thoughts about stuff. I’m not going to say that, you know, this tool or that tool is the best tool ever because nothing like that exists. Apart from jQuery, which is the best thing that ever happened to the web since, you know, baked bread, honestly. But you are right about CDK, to the best of my knowledge, kind of, all the other languages that are supported by CDK are effectively transpiled down from TypeScript. So it’s, like, first of all, it is written in TypeScript, and then kind of the Python, all of the other languages… kind of come second.

You know, and afterwards, I tend to enjoy CDK because as I said, I use TypeScript on a daily basis. And you know, with regards to front-end, you mentioned that you are, every single time you is that you end up being more confused. It never goes away. I’ve been doing front-end stuff for years, and it’s, you know, kind of exactly the same. Fun story, I actually joined Cloudash because, well, Maciej started working on Cloudash alone, and after quite some time, he was so frustrated with the modern front-end landscape that he asked me, “Dude, you need to help me. Like, I genuinely need some help. I am tired of React. I am tired of React hooks. This is way too complex. I want to go back to doing back-end stuff. I want to go back, you know, thinking about how we’re going to integrate with all those APIs. I don’t want to do UI stuff anymore.”

Which was kind of like an interesting shift because I remember at the very beginning of my career, where people were talking about front-end—you know, “Front-end is not real programming. Front-end is, you know, it’s easy, it’s simple. I can learn CSS in an hour.” And the amount of people who say that CSS is easy, and are good at CSS is exactly zero. Literally, nobody who’s actually good at CSS says that, you know, CSS, or front-end, or anything like that is easy because it’s not. It’s incredibly complex. It’s getting probably more and more complex because the expectations of our front-end UIs [unintelligible 00:27:44].

Corey: It’s challenging, it is difficult, and one of the things I find most admirable about you is not even your technical achievements, it’s the fact that you’re teaching other people to do this. In fact, this gets to the last point I want to cover on our conversation today. When I was bouncing topic ideas off of you, one of the points you brought up that I’m like, “Oh, we’re keeping that and saving that for the end,” is why—to your words—why speaking at tech events gets easier, but never easy. Let’s dive into that. Tell me more about it.

Tomasz: Basically, I’ve accidentally kickstarted my career by speaking at meetups which later turned into conferences, which later turned into me publishing courses online, which later turned into me becoming an AWS Hero, and here we are, you know, talking to each other. I do enjoy, you know, going out in public and speaking and being on stage. I think, you know, if somebody has, kind of, the heart, the ability to do that, I do strongly recommend, you know, giving it a shot, not only to give, like, an honestly life-changing experience because the first time you go in front of hundreds of people, this is definitely, you know, something that’s going to shake you, while at the same time acknowledging that this is absolutely, definitely not for everyone. But if you are able to do that, I think this is definitely worth your time. But as you said—by quoting me—that it gets easier, so every single time you go on stage, talk at a meetup or at a conference or online conferences—which I’m not exactly a fan of, for the record—it’s—

Corey: It’s too much like work, too much like meetings. There’s nothing different about it.

Tomasz: Yeah, exactly. Like, there’s no journey. There’s no adventure in online conferences. I know that, of course, you know, given all of that, you know, we had to kind of switch to online conferences for quite some time where I think we are pretending that Covid is not a thing anymore, so we, you know, we’re effectively going back, but kind of the point I wanted to make is that I am a somewhat experienced public speaker—I’d like to say that because I’ve been doing that for years—but I’ve been, you know, talking to people who actually get paid to speak at the conferences, to actually kind of do that for a living, and they all say the same thing. It gets simpler, it gets easier, but it’s never freaking easy, you know, to go out there, and you know, to share whatever you’ve learned.

Corey: I’m one of those people. I am a paid public speaker fairly often, even ignoring the podcast side, and I’ve spoken on conference stages a couple hundred times at least. And it does get easier but never easy. That’s a great way of framing it. You… I get nervous before every talk I give.

There are I think two talks I’ve given that I did not have an adrenaline hit and nervous energy before I went onstage, and both of those were duds. Because I think that it’s part of the process, at least for me. And it’s like, “Oh, how do you wind up not being scared for before you go on stage?” You don’t. You really don’t.

But if that appeals to you and you enjoy the adrenaline rush of the rest, do it. If you’re one of those people who’ve used public speaking as, “I would prefer death over that,” people are more scared of public speaking their death, in some cases, great. There are so many ways to build audiences and to reach people that fine, if you don’t like doing it on stage, don’t force yourself to. I’d say try it once; see how it feels meetups are great for this.

Tomasz: Yeah. Meetups are basically the best way to get started. I’m yet to meet a meetup, either, you know, offline or online, who is not looking for speakers. It’s always quite the opposite, you know? I was, you know, co-organizing a meetup in my city here in Poznań, Poland, and the story always goes like this: “Okay, we have a date. We have a venue. Where are the speakers?” And then you know, the tumbleweed is going to roll across the road and, “Oh, crap, we don’t have any speakers.” So, we’re going to try to find some, reach out to people. “Hey, I know that you did this fantastic project at your workplace. Come to us, talk about this.” “No, I don’t want to. You know, I’m not an expert. I am, you know, I have on the 50 years of experience as an engineer. This is not enough.” Like I said, I do strongly recommend it, but as you said, if you’re more scared of public speaking than, like, literally dying, maybe this is not for you.

Corey: Yeah. It comes down to stretching your limits, finding yourself interesting. I find that there are lots of great engineers out there. The ones that I find myself drawn to are the ones who aren’t just great at building something, but at storytelling around the thing that they are built of, yes, you build something awesome, but you have to convince me to care about it. You have to show me the thing that got you excited about this.

And if you can’t inspire that excitement in other people, okay. Are you really excited about it? Or what is the story here? And again, it’s a different skill set. It is not for everyone, but it is absolutely a significant career accelerator if it’s leveraged right.

Tomasz: [crosstalk 00:32:45].

Corey: [crosstalk 00:32:46] on it.

Tomasz: Yeah, absolutely. I think that we don’t talk enough about, kind of, the overlap between engineering and marketing. In the good sense of marketing, not the shady kind of marketing. The kind of marketing that you do for yourself in order to elevate yourself, your projects, your successes to others. Because, you know, try as you might, but if you are kind of like sitting in the corner of an office, you know, just jamming on your keyboard 40 hours per week, you’re not exactly likely to be promoted because nobody’s going to actively reach out to you to find out about your, you know, recent successes and so on.

Which at the same time, I’m not saying that you should go @channel in Slack every single time you push a commit to the main branch, but there’s definitely, you know, a way of being, kind of, kind to yourself by letting others know that, “Okay, I’m here. I do exist, I have, you know, those particular skills that you may be interested about. And I’m able to tell a story which is, you know, convincing.” So it’s, you know, you can tell a story on stage, but you can also tell your story to your customers by building a future that they’re going to use. [unintelligible 00:33:50].

Corey: I really want to thank you for taking the time to speak with me today. If people want to learn more, where’s the best place to find you?

Tomasz: So, the best place to find me is on Twitter. So, my Twitter handle is @tlakomy. So, it’s T-L-A-K-O-M-Y. I’m assuming this is going to be in the [show notes 00:34:06] as well.

Corey: Oh, it absolutely is. You beat me to it.

Tomasz: [laugh]. So, you can find Cloudash at cloudash.dev. You can probably also find my email, but don’t email me because I’m terrible, absolutely terrible at email, so the best way to kind of reach out to me is via my Twitter DMs. I’m slightly less bad at those.

Corey: Excellent. And we will, of course, put links to that in the [show notes 00:34:29]. Thank you so much for being so generous with your time. I appreciate it.

Tomasz: Thank you. Thank you for having me.

Corey: Tomasz Łakomy, Head of React at Cloudash. I’m Cloud Economist Corey Quinn and this is Screaming in the Cloud. If you’ve enjoyed this podcast, please leave a five-star review on your podcast platform of choice, and if you’re on the YouTubes, smash the like and subscribe button, as the kids say. Whereas if you’ve hated this episode, please do the exact same thing—five-star reviews smash the buttons—but this time also leave an insulting and angry comment written in the form of a CloudWatch log entry that no one is ever able to find in the native interface.

Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.

Announcer: This has been a HumblePod production. Stay humble.

Newsletter Footer

Get the Newsletter

Reach over 30,000 discerning engineers, managers, enthusiasts who actually care about the state of Amazon’s cloud ecosystems.

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Sponsor Icon Footer

Sponsor an Episode

Get your message in front of people who care enough to keep current about the cloud phenomenon and its business impacts.