{"id":1168,"date":"2026-04-01T10:00:00","date_gmt":"2026-04-01T09:00:00","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1168"},"modified":"2026-04-01T10:00:00","modified_gmt":"2026-04-01T09:00:00","slug":"why-i-still-like-serverless-for-small-teams","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","title":{"rendered":"Why I Still Like Serverless for Small Teams"},"content":{"rendered":"<p>I still like serverless for small teams.<\/p>\n<p>That is not because it is perfect. It is not. Debugging can be annoying, visibility is often worse than it should be, local development can drift from production, and the architecture can turn into a pile of invisible coupling if you are careless. I have run into all of that.<\/p>\n<p>I still think it is a good default when the team is small and the product is still changing quickly.<\/p>\n<h2>The main reason is simple<\/h2>\n<p>Small teams usually do not lose because they picked the wrong abstraction layer. They lose because they spend too much time keeping the system alive.<\/p>\n<p>Serverless helps with that. You do not have to manage servers, patch hosts, think about capacity in the same way, or spend as much time building a platform before you have a product. The early trade is usually worth it.<\/p>\n<p>For me, that matters more than the abstract debate about whether serverless is elegant enough.<\/p>\n<h2>It buys you speed where small teams need it<\/h2>\n<p>The useful part of serverless is not that it is trendy. It is that it removes a lot of obvious work.<\/p>\n<p>If you are a small team, you usually want:<\/p>\n<ul>\n<li>a short path from idea to deployed code<\/li>\n<li>fewer moving parts to own<\/li>\n<li>less infrastructure to explain to new people<\/li>\n<li>fewer reasons to keep a person awake for routine operations<\/li>\n<\/ul>\n<p>Serverless is good at that when the workload fits. A lot of CRUD-style APIs, event-driven jobs, webhook handlers, scheduled tasks, and lightweight background processing fit it just fine.<\/p>\n<p>That is why I keep using it. It gets the unglamorous stuff out of the way.<\/p>\n<h2>The problems are real, though<\/h2>\n<p>The main complaint I hear is usually some version of &#8220;it is harder to debug.&#8221;<\/p>\n<p>That is fair. It often is.<\/p>\n<p>Distributed systems are harder to reason about than a single process, and serverless makes it easy to spread logic across functions, queues, triggers, and managed services without noticing how much you have done it. When that happens, tracing a failure can become a scavenger hunt.<\/p>\n<p>The fix is not to pretend that is not happening. The fix is to stay disciplined:<\/p>\n<ul>\n<li>keep the boundaries obvious<\/li>\n<li>log enough to answer the obvious questions<\/li>\n<li>use consistent correlation IDs<\/li>\n<li>avoid making one request fan out into six hidden systems unless you really need to<\/li>\n<li>be honest about what you can and cannot replay safely<\/li>\n<\/ul>\n<p>If you do not do that, serverless can become a maze.<\/p>\n<h2>Hidden complexity is the real risk<\/h2>\n<p>The other problem is that serverless can look simpler than it is.<\/p>\n<p>A diagram with three boxes and a trigger can hide a lot of real complexity: IAM permissions, deployment order, retries, idempotency, dead-letter handling, cold starts, config drift, and weird edge cases around third-party APIs. None of that is specific to serverless, but serverless makes it easier to accumulate quietly.<\/p>\n<p>That is why I do not think serverless is a substitute for engineering judgment. It is just a different shape of tradeoff.<\/p>\n<p>If the team is small, focused, and still learning what the product needs, that tradeoff is usually fine. In some cases it is better than fine. It is the difference between shipping and getting stuck building infrastructure that nobody asked for.<\/p>\n<h2>Where I would still choose it<\/h2>\n<p>I like serverless most when the team needs to move quickly, the traffic pattern is uneven, and the system does not need a dedicated always-on service for everything.<\/p>\n<p>I am less enthusiastic when the workload is highly stateful, latency-sensitive in a very tight way, or so interconnected that the debugging cost dominates everything else. At that point, the convenience starts to disappear.<\/p>\n<p>But for small teams, I still think serverless is one of the better defaults.<\/p>\n<p>It is not the cleanest architecture on paper. It is usually just a practical one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13,25],"tags":[58,52,57,56,53],"class_list":["post-1168","post","type-post","status-publish","format-standard","hentry","category-programming","category-software-engineer","tag-architecture","tag-aws","tag-cloud","tag-lambda","tag-serverless"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Why I Still Like Serverless for Small Teams - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why I Still Like Serverless for Small Teams - wade.one\" \/>\n<meta property=\"og:description\" content=\"Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-01T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Why I Still Like Serverless for Small Teams\",\"datePublished\":\"2026-04-01T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/\"},\"wordCount\":648,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"architecture\",\"aws\",\"cloud\",\"lambda\",\"serverless\"],\"articleSection\":[\"Programming\",\"Software Engineer\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/\",\"name\":\"Why I Still Like Serverless for Small Teams - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-04-01T09:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/01\\\/why-i-still-like-serverless-for-small-teams\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why I Still Like Serverless for Small Teams\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Why I Still Like Serverless for Small Teams - wade.one","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","og_locale":"en_GB","og_type":"article","og_title":"Why I Still Like Serverless for Small Teams - wade.one","og_description":"Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.","og_url":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","og_site_name":"wade.one","article_published_time":"2026-04-01T09:00:00+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/"},"author":{"name":"","@id":""},"headline":"Why I Still Like Serverless for Small Teams","datePublished":"2026-04-01T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/"},"wordCount":648,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["architecture","aws","cloud","lambda","serverless"],"articleSection":["Programming","Software Engineer"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","url":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","name":"Why I Still Like Serverless for Small Teams - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-04-01T09:00:00+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"Why I Still Like Serverless for Small Teams"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1167,"url":"https:\/\/wade.one\/blog\/2026\/03\/31\/serverless-is-great-until-you-need-to-debug-it-at-2-a-m\/","url_meta":{"origin":1168,"position":0},"title":"Serverless Is Great Until You Need to Debug It at 2 a.m.","author":"","date":"March 31, 2026","format":false,"excerpt":"I still like serverless, but the tradeoff is obvious when something breaks at 2 a.m. The architecture is easy to ship and harder to reason about when you need logs, context, and a fast path to the real failure.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1180,"url":"https:\/\/wade.one\/blog\/2026\/04\/12\/the-hardest-part-of-serverless-is-not-the-code\/","url_meta":{"origin":1168,"position":1},"title":"The Hardest Part of Serverless Is Not the Code","author":"","date":"April 12, 2026","format":false,"excerpt":"The hard part of serverless is usually not writing the handler. It is understanding what failed, what the event looked like, and why the system changed underneath you.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1169,"url":"https:\/\/wade.one\/blog\/2026\/04\/02\/the-problem-with-simple-aws-architectures\/","url_meta":{"origin":1168,"position":2},"title":"The Problem With &#8220;Simple&#8221; AWS Architectures","author":"","date":"April 2, 2026","format":false,"excerpt":"AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1171,"url":"https:\/\/wade.one\/blog\/2026\/04\/04\/i-trust-boring-infrastructure-more-than-clever-infrastructure\/","url_meta":{"origin":1168,"position":3},"title":"I Trust Boring Infrastructure More Than Clever Infrastructure","author":"","date":"April 4, 2026","format":false,"excerpt":"Clever infrastructure looks impressive in diagrams. Boring infrastructure is usually easier to operate, easier to debug, and much easier to keep alive once real users depend on it.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1159,"url":"https:\/\/wade.one\/blog\/2026\/03\/26\/why-most-software-projects-do-not-need-a-rewrite\/","url_meta":{"origin":1168,"position":4},"title":"Why Most Software Projects Do Not Need a Rewrite","author":"","date":"March 26, 2026","format":false,"excerpt":"Most rewrite discussions are really a sign that the team is frustrated, not that a full rebuild is the smartest technical decision. In most cases, incremental change is the better call.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1185,"url":"https:\/\/wade.one\/blog\/2026\/04\/17\/the-case-for-smaller-deployments\/","url_meta":{"origin":1168,"position":5},"title":"The Case for Smaller Deployments","author":"","date":"April 17, 2026","format":false,"excerpt":"Smaller deployments are usually easier to trust, easier to roll back, and easier to debug. Once a release starts carrying too much change, the team spends more time managing risk than shipping value.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1168"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1168\/revisions"}],"predecessor-version":[{"id":1192,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1168\/revisions\/1192"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}