Updated:
Updated: Architecture
After sharing my excitement about visiting the AWS serverless engine room visit about a year ago, I am happy to announce that I decided to not just visit the engine room, but to actually move there.
Enterprise Strategy
I really enjoyed my role as Enterprise Strategist. Despite joking that the role is neither limited to enterprises nor to write their strategy, it was about the ideal job for me. Not only was I part of a great team, the opportunity to converse with senior IT leaders and toss around mental models and metaphors is about the best thing that can happen to someone who loves models and metaphors (I just had a great chat about how, when control moves up the stack, the folks in the lower layers react, drawing analogies between network virtualization and cloud automation – I’ll be sure to write this one up).
Alas, the job also comes with a challenge, and I don’t just mean the long-haul travel in frugal-class, late-night calls (one last one coming up at midnight today), and orchestrating constant meeting re-schedules across channels (my Slack status used to be “no scheduling requests via Slack, pls”). Rather, I came out of every one of my 409 customer meetings and events with a head full of new ideas. Many turned into blog posts, but others relate more directly to our products. Over time, the urge to bring some of those ideas into the products grew stronger.
Serverless Architectures
To scratch that itch, I started to implement the time-proven Enterprise Integration Patterns on the AWS Serverless suite. Not entirely unexpected, this didn’t cure the itch, but only pulled me closer to building serverless cloud applications. My thinking and working in that space yielded several new insights, shared in my recent blog posts on Serverless Design Patterns, my re:Invent talk on Managing Serverless Lock-in, and a new chapter on “Infrastructure as Actual Code” in Cloud Strategy (if you have the original printed version without the extra chapter, there’s an awesome coupon code for you to get the latest eBook).
Around the same time, Event-driven Architectures became more prevalent in serverless application design. Although not a new concept, EDA is a useful model for fine-grained and loosely coupled cloud applications. I shared my thoughts on messaging and events in the London EDA Day keynote and my re:Invent talk on distributed systems (yes, I was silly enough to sign up to give multiple sessions).
And, to top it all off, Sindhu Pillai and I were able to share our work on Refactoring to Serverless in a chalk talk (3 re:Invent talks simply weren’t enough), where we conclude that for serverless applications, automation code and application code should blend and that you can refactor your solution by replacing application code with automation code.
Double Life = Double Fun?
Having a day job that consists of conversation with C-level executives and dabbling with EventBridge, Step Functions, and CDK in the evening seems to be the perfect lifestyle for someone who’s created the notion of the Architect Elevator. And in fact, many of the thoughts and mental models for serverless lock-in resulted exactly from me looking to bridge this giant gap.
However, it also became clear that doing two demanding jobs wouldn’t be satisfying for neither myself nor my boss, even though I managed to meet our success metrics for Enterprise Strategy. So it was time to make the cal between penthouse and engine room, or at least declare a main residence while making visits to the other.
Exploring vs Exploiting
Gwen Shapira wrote a nice post about exploring vs exploiting your career options a while ago, inspired by the book Algorithms to Live by. Not long after, she switched from product management and developer advocacy back into engineering (and has since started her own company).
My career is very much of the exploring type: I have founded a start-up, worked in professional services, Silicon-Valley engineering, large-scale IT, and now at a vendor. Seeing things from multiple perspectives has helped me develop ideas like The Architect Elevator and also satisfied my never-ending curiosity. I do admire folks who go super-deep in specific areas (a friend of mine builds highly scalable front-ends and nothing else and is awesome at it), but switching gears every once in a while suits me well, despite the inevitable jumps into cold water.
In Economies of Speed, it’s less about how good you are right now, but how quickly you can adjust
My new jump is definitely smaller than going from Mobile Ad engineering to financial services because I stay within the same company and domain, but in a new role: Serverless Engineering.
Serverless Engineering
I am now part of our serverless compute team, which among others includes Serverless Integration (Step Functions, EventBridge), Lambda, and IaC (yeah, CDK). If you watched Werner Vogel’s re:Invent keynote, you’ll have seen several announcements coming out of those teams, including Step Functions Distributed Map, EventBridge Pipes, and Application Composer.
It’s still early days (Day 1?) for serverless and it’s so much more than just a compute run-time that scales to zero. It’s an entirely different way of building and composing applications, managing state, and automation. Initially I’ll be looking at how you can express application designs using a higher-level vocabulary, using design patterns as opposed to service names.
I am sure that once I start digging in, I’ll discover tons of exciting things to work on. And instead of diving into the engine room, I’ll pop into the penthouse periodically to share my insights.
Make More Impact as an Architect
The Software Architect Elevator helps architects and IT professionals to take their role to the next level. By sharing the real-life journey of a chief architect, it shows how to influence organizations at the intersection of business and technology. Buy it on Amazon US, Amazon UK, Amazon Europe