Eating my way through Italy – reviews

I’ve spent the past 10 days in Italy with a somewhat picky 12yo. Despite this, we’ve eaten relatively well! As a way of remembering, and in case you’re looking for recommendations, here’s places we ate:

Sestri Levante

Il Bargonello

Located at Via XXV Aprile, 143. We ate here our first night, and in some ways, it’s been downhill ever since. We sat on their patio on the street, I had an Aperol Spritz and a craft Italian Pilsner. We both ordered pizza – the kid a Margherita, myself a Tuna + Buffala pizza that was incredible. Kellan had a Limonata there that he spent the rest of the trip trying to find again – unsuccessfully unfortunately.. The service was great, the food was amazing. 5/5 stars.

Pizzeria Riri

Located at Viale Remembranza, 41. Our second night. Chosen because it was literally across the street from our apartment. It felt like a family-run place, and despite being on the main strip, across from the beach with an incredible view, it was delightful. I had pasta, Kellan had pizza. We ended up eating her twice, mostly because most places were closed on Mondays, but not here. 3/5 stars

Don Luigi

Located at Viale Remembranza, 36. The only actually bad meal we had all trip. I should have been suspicious because of the over-eager host/hawker calling us in. But TripAdvisor said reasonable things. I had bad pasta, Kellan had a bad pizza. The service was indifferent and slow. Do not recommend. 1/5 stars.

Delfino Bianco

Located at Via Vittorio Veneto, 2. I had a fresh caught Sea Bass and buttery-perfect potatoes, along with a local wine. Kellan had “just ok” pizza, so our review would split here. There was a massive tour group and what appeared to be some sort of family reception happening which meant we were a little forgotten for a bit, but our server made up for it with some truly great multilingual dad-jokes and by treating Kellan with more courtesy than most servers. 4/5 stars

Pizzeria 4 Canti

Located at Vico Lombardo, 8. We’d noticed a bunch of the local workers in the shops stopping in here for food, so we thought we’d give it a try. It was.. totally fine. Reasonable prices, friendly service, quick to serve. The atmosphere was great – seemed like everyone knew each other and people walking by would stop to chat too. 3/5 stars.

Pacifico Antico Forno

I weirdly can’t find this place on a map or online. Located roughly Via XXV Aprile, 45 – Next to Caffe Delle Fiabe. It made.. incredible Focaccia, which was our go-to breakfast everyday. A little salty, oily, smooth. I could eat it every day forever. We had focaccia from 2 other places in Sestri, none could hold a candle to theirs. 5/5 stars.


Pizza in Trevi

Located at Via San Vincenzo, 30/30A. The other place we went twice: the first time, we both decided to have something other than pizza – I had an amazing fish ravioli, Kellan had a burger – which was just ok. But the pizza looked amazing, so he wanted to come back. It also had a great selection of craft beer, and milkshakes for desert. We ate here our last night too, and had pizza which did not disappoint. 4/5 stars

Piccolo Buco

Located at Via del Lavatore, 91. This place came advertised as some of the best pizza in Rome. They don’t take reservations, you just line up in an alley across the street. It opens at 18:30, we got there 18:10 and the line was already nearly 50-deep – took about 40 minutes for us to be sat. The pizza is unlike anything I’ve had before. Gigantic puffy crust almost making a bowl for the ingredients – I had a yellowfin tuna with yellow-tomato-cream pizza. Kellan had a spicy salami. I loved mine – probably in the top 3 pizzas I’ve ever eat. But Kellan didn’t like his at all and barely ate it. So a mixed bag, but would recommend if you’re not with a picky eater. Pro tip: there’s a bar next door that’ll serve you take-out for while you’re waiting in line. 5/5 stars (1/5 stars from Kellan).

Trieste Pizza

Located at Via Urbana 112. Again chosen because of proximity – around the corner from our place after a long day for Kellan touring the Colosseum, this place was fun! But the food wasn’t good. I’d still – guardedly – recommend it though because the atmosphere was fun. Counter-service, with loud-music and neon signage “This pizza is fucking fantastic” and generally a good vibe. But… the pizza didn’t live up to the promise. 3/5 stars.

I definitely look forward to coming back to either Sestri Levante or Rome with someone who likes more kinds of food, but we did pretty good. I was surprised to find that there is an actual craft beer scene in Italy, and while mostly lighter beers, was reasonably good. I had wine 2 nights – one superlative (in Sestri), one fine (in Rome) – in both cases I just had a glass of the server’s recommendation.

Let’s do it again

Racoon-headed man in a yellow jumpsuit looks at a tablet while sitting on the beach.

Thirty years ago, the Mosaic Browser was released. At the time, I was deep in the BBS- and gopher-land as a teenager. But it was absolutely love at first sight of the web. I think it was my now brother-in-law who first showed it to me. I’m pretty sure I went to the website for the UofT engineering department, where he worked (studied?) – not exactly thrilling stuff. While memory should be treated as an unreliable narrator I can still remember the frisson of seeing it – that sense that everything had just changed forever. I don’t think I have felt similarly about anything – until I used ChatGPT for the first time a few months back.

What seemed immediately obvious to me looking at a website; looking at the source-code behind it was that we had just changed the nature of the game. We had just democratized access to information in an irrevocable way: publishing, advertising, research – all of these things were previously gate by costs, by expertise, by monolithic corporate and government entities. I probably didn’t have those exact words as a teenager, but I understood it, and most of my early professional work reflected this: I built websites for not-for-profits, for activists, for small startups. We all worked fast, we made mistakes fast, we changed things quickly. We put our interests online in the public, we helped our friends do this too. If we couldn’t match the slick professionalism of traditional media, we would simply run laps around them by pace of iteration; and we did. The web in some ways is a repeated case of of a small early influencer changing the course of giants – and endless set of peas-in-mattresses disrupting the bigger things around it.

And, of course, we lost our innocence. As the web matured, and spread it inevitably changed, and with money, it centralized and stagnated. There’s more websites, there’s more internet than ever and it somehow feels more homogenous than ever, dominated by a few players. Kind of like what the world felt like in the mid-90s. [cue: old-man-yells-at-cloud]

My first conversation with ChatGPT was similarly mundane: I asked it to create some dialogue for a villain in a D&D campaign scenario. But the outcome was similar – that deep sense that everything had just changed – again. The pace of iteration likewise feels similar (although it is clearly faster), and it leads me to my main theory here: We have just democratized access to development in an irrevocable way: learning, building, advertising, writing, research – all of these are currently gated by costs, by expertise, by monolithic corporate entities. At the beginning of 2023 starting a company has simultaneously never been easier and never been more out of reach for most: all of our economic models reward hyper-scale and hyper-centralization. We have a few monoliths lumbering around and proactively destroying competition by buying them and as often as not – shuttering them. This is why the internet feels so banal, homogeneous these days.

Concurrently with the arrival of game-changing technology, we’ve seen the cracks of the early-21st century economic model of Technocratic robber-barons leveraging cheap, plentiful capital to just buy moats with cash. Higher interest rates, repeated self-destruction by founders, the pandemic completely shaking up work models all present opportunity to rethink how we work, how we build.

So here’s my naïve, idealistic take: with generative AI tools, the cost to build has plummeted – you no longer personally need deep technical, design, content skills to create something. On top of that, current financial constraints mean that there’s actually a disincentive to scale first. In several current oligopolies we are seeing small players carve out niches in the shadows of lumbering giants – local rideshare & deliver services; fediverse social media; localized ghost-kitchen companies; niche search engines; etc. Our AI-agent tools are simultaneously revolutionary and shockingly basic. And this – likely temporary – state means while we can build small (simple) things blazingly fast right now, larger – more complex – things are harder and slower.

So let’s build things – tiny, single-serving, single-purpose things; niche products where generative AI have flattened the landscape. There’s a marketplace ready for the taking where your economics at small scale are better than those at large scale. If you’re at all entrepreneurial, or dissatisfied with how something works for you – try solving it! browsing the Midjourney community showcase reminds me so much of early GeoCities and LiveJournal – just an explosion of creativity.

The early web was full of bad ideas, failed experiments, small-scale and large-scale work all jostling together, and we need that again. We’ve got 30 years of internet diversity, privacy and security knowledge to make all this better, safer, more inclusive, but – it is OK to make mistakes and be wrong and small scale! Do it over and over again!

And for those thinking bigger: the early web in some ways was grown by monetizing various unix commands and turning them into mass-consumable actions; my hypothesis is that there’s a similar opportunity now via generative AI, but it is less about technical actions than it is about social action. Monte Cook’s Cypher System is a table-top system that introduces characters as “I am a [descriptor] [type] who [focus]” – Adjective, noun, verb – which is remarkably similar to AI-prompt. Apps that can do that for people, repeatably and predictably are going to supercharge huge amounts of labour:

  • I am a friendly writer who produces alt text.
  • I am a serious accountant who checks your math
  • I am a dedicated animator who recreates your idea in 3d.
  • I am a conscientious assistant who manages your inventory in Shopify

Put a few of those commands in a box to generate business-in-a-box tools; and the cost/effort to do things gets ever-lower for everyone.

For Darren

Map of Qormia, a fictional land

(adapted from a short speech given in-person).

The worlds of “Vancouver Tech” and “Vancouver Progressives” are pretty small. And the intersection in the Venn Diagram of them is even smaller. I’ve known of you, Darren for a long time – we were both early bloggers and you have one the absolute great memorable names – Darren Barefoot! so I knew of you, for much longer than I’ve known you.

There’s a meme that I quite enjoy which is roughly “describe what you do, poorly”. If I describe you, I think “you write smart things about hard things for yourself and others”. & here’s the thing – you write annoyingly well! As someone who loves to write & read, having read you for so many years has always been a great, great pleasure.

Making friends as adult can be weirdly hard; one of the things I’m actually glad about is that I never worked with you – our circles of work interconnect as mentioned earlier – but I know you only through play; and it has been such a delight.

We were pulled together through another great Vancouver connecter – Boris – who wanted to play Dungeons and Dragons together. And after that stopped, you wanted to go on. I’ve been playing Dungeons and Dragons for most of my life – often as the dungeon master – and as it turns out, Darren, you are an annoyingly good dungeon master too. You tell these amazing, creative stories, you’ve built this incredible world for us to play in.

And what’s more incredible is this group you’ve pulled together to play. We started a little chat group – just to coordinate: when are we going to meet? Who’s house are we going to meet at?  And then the world kind of ended. During the pandemic, we all just started talking to each other about everything and anything. The joy, the friendship and the emotional importance of this group to me over the past couple years, now and into the future cannot be overstated. I am just so, so grateful. You leave this incredible legacy of how your writing, your creativity, your ability to connect has created this beautiful new crew.

I’m so grateful to have had this time with you – to play, to listen to your delightfully awful accents (ze german gnomes!). Your particular pedantry – which I mean as a deep compliment  about the details – has created this incredible imaginary world that we few have had the privilege of living in for a few hours every few weeks together. It has been amazing, and I’m just so grateful for it, for you. This has all been so incredibly important to me – you have helped see me, see us through some pretty hard times and I just want to thank you, for all of it, for everything. Qormia forever.

Favourite Albums, 2022

I used to do this every year, but it’s been a minute. But after a 5-ish year hiatus, let’s dive in again. 2022 seemed to be particularly good year for music. In no particular order, here’s the music released in 2022 that I really enjoyed:

Alvvays – Blue Rev

This one will probably show up on a bunch of lists this year. A more or less perfect indie-pop confection with not a single miss on it, it felt like a classic from first listen. According to Apple Music, my 2nd-most listened to album, bested only by my perennial favourite Boxer by The National.

Danger Mouse & Black Thought – Cheat Codes

I’m not sure Danger Mouse has put out a project I haven’t liked, but working with Black Thought, of The Roots, this album is really special. There’s not a lot of albums whose lyrics sending me to and endless rabbit hole of learning, but probably I should expect this from Black Thought. I only knew him from The Roots, but the best thing this album did is send me down a rabbit hole of his stellar solo work too.

Wet Leg – Wet Leg

Chaise Longue was deservedly everywhere for a bit, and the whole album works. It’s bleak and funny, and both makes me feel old and makes me wish I lived in a shitty flat in London just trying to figure life out.

Jockstrap – I Love You Jennifer B

I heard this for the first time only a month ago, but I can’t get it out my head. It’s got a sort of tongue-in-cheek retro-vibe. It might be a little bit too smart, in that it’s clear the band knows their music, but it’s a great listen.

Harry Styles – Harry’s House

Chosen almost entirely for how perfect a pop song As it Was is, but the whole album holds together. I remain suspicious of most heavily manufactured pop music, but this is good.


I appreciate SZA’s commitment to short album names. Coming after Ctrl, this is a lo-fi masterpiece that deepens her control over the mood & tone. It feels like a post-breakup, but post-anger when she’s just done much of the time. Well worth a close-listen on headphones for some really incredible production.

Yeah Yeah Yeahs – Cool it Down.

I can’t believe that it’s been nearly a decade since their last and this comes out and just.. picks up like nothing changed. Somehow feeling both nostalgic for that early 10’s Indie rock scene but also just moving past it, this album was a kind of safe place to revisit the sounds I love. Which.. maybe doesn’t sound like praise? But it is. Karen O can do no wrong.

The Smile – A Light For Attracting Attention

Sure, it might be the best bits of Radiohead channelling pre- OK Computer brit-rock Radiohead but man is it it GOOD. I’m a big Sons of Kemet fan, and is often the case, the drumming by Tom Skinner here really sets this apart, and pulls this out of early-Radiohead nostalgia into something deeply contemporary and of the moment.

Maggie Rogers – Surrender

Do you remember that video clip of a music-school kid who really impressed Pharrell? That was Maggie Rogers, 6 years back. This album, recorded while in pandemic isolation, as a sort of musical companion to her masters of Divinity? anyway. it’s gorgeous, subtle, electronic folk.

Big Thief – Dragon New Warm Mountain I Believe In You

An album as maximalist as the title, this album has a folk-rock heart and a sort of scrolling-through-TikTok kaleidoscope of sounds, feelings, imagery. It’s a big album, from a band at the top of their game and was on repeat for most of the first half of the year for me.

Happy 20th birthday!

It was an inauspicious start, and definitely the last few years have been really, really inconsistent, but turns 20 years old today. The domain itself precedes the site, and indeed there was a previous, hand-rolled incarnation for a year or so. But this particular log goes continuously back.

Over the past two decades it’s been migrated a bunch of times – Greymatter, MovableType, something else I can no longer remember, and currently WordPress have been the platforms; it’s been self-hosted under my desk, on a friend’s machine in a server rack, at wordpress, at Rackspace, now Digital Ocean.

I’ve had traffic in the tens of thousands a month and traffic of less than 10 a month. I’ve been inspired by this site, I’ve been terrified by this site (nothing like the fear of the blank page!). I’ve written some truly terrible takes and some good ones. But I love that I can see 20 years of thought, learning, change, interests here in the public realm.

Here’s to 20 more years of writing in public, theoretically more often!

Post-Burnout, Self-Identity

I’m not sure if I’ve been particularly explicit, but around when we sold Pencilneck, I was really suffering from burnout. At the time, I fully intended to entirely abandon the tech industry – maybe go to grad school, maybe this, maybe that – I didn’t really know what would be next – but I was 100% sure it would not be more of what I was doing. I’ve tried a variety of ways to write about this – I saw today that I have some dozen drafts that are somewhat related to this idea, but I’ve decided to stream-of-thought this to just put it out there rather than frame it essay-style.

I took on some work post-sale – “doing what I knew best” which was writing code. But a thing that I’m not sure I’ve ever voiced publicly is some of the visceral effects of my burnout. Sure, I had a hard time concentrating, and very low productivity, but in particular, a lasting, lingering effect was massive anxiety, burgeoning on panic, every time I opened an IDE and tried to write code. I did some of this – but, unlike the previous 20-odd years of doing this work, this stopped being my happy place, indeed, became this place of doubt. The spiraling bad thoughts meant that my heart wasn’t in it. I was generally fine with implementing work, editing existing things – I helped wrangle some Drupal and WordPress here, a little Django there – but this was tying other people’s work together, not writing new modules, not original programmatic thought.

The work I did at the time that I enjoyed, indeed, that brought me back to happiness was shifting my thinking from systems thought to structural or organizational thought. While that had been an increasingly large part of my work up to then, it has driven almost all my work since – and I love this.

So while yeah, part of this is definitely professional growth, I still find it weird that I no longer enjoy writing code – I have self-identified as a programmer since.. probably since I first discovered Basic when I was 8 or 9 years old. And I don’t any more – and this has certainly cause no small amount of Imposter Syndrome feels – most often when talking to developers about their work, or their progress the how dare you pretend like this is strong. And all of this is related to that same basic panicky instinct when I think about writing code. Exploring that, pulling on that uncomfortable thread, getting comfortable with my discomfort has been helpful – I’ve learned that it’s not the writing code per se, but rather my experience of what comes next – other people’s excitement, expectations, the burgeoning responsibilities, the pace of work, the endless, relentless crush of running a business where I am the engine, vs the simple act of writing code, solving at the function level.

I started this post with maybe a different intent than I find myself now at – I wanted to say maybe how much better I feel. But the truth is that I’m not sure I do. I have ideas that I’d love to explore. And importantly, I no longer feel panicky at the thought of writing software. But I think more than anything, I think I’m slowly, in what feels like a healthy way vs an avoidance, coming to terms that I no longer think of myself as a programmer (engineer, developer, etc). And I’m not sure I know that means entirely, yet. I love technical architecture and problem solving and systems design and platform tooling and the commensurate things that go with what I do. I have recently dug in and started playing with Swift, which I’d never used before, and didn’t feel panicky at all thinking about the idea of writing something.

But maybe this is the crux: I’ve spent my whole (adult) life deeply embracing the idea that if I have an idea, not only could I built it, but that I should build it – only I could built it – and if someone else if working on it, I always need to be able to jump in and finish it. The shift from “Individual Contributor (IC)” to “Leader” happened for me ages ago – but a large contributor to my burnout was this persistent thought I had to be able to be the best IC in a pinch, no matter what. And I don’t know entirely what this means, but I think I’m increasingly comfortable with the idea that if I have an idea, I don’t have to be the one to build it? Ideas are nothing without execution – but execution can maybe look something more like general contracting, organizing others rather than individual craftsmanship? I directly support at team of about 30 right now (and indirectly influence a fair number more), and there’s no scenario where my time is not better spent enabling, unlocking, supporting, coaching, planning, reviewing etc for all and any of them vs me doing any of their work. And that’s ok? that’s good. It’s pretty great, actually. These awesome people are executing – sometimes on my ideas, more importantly mostly on theirs. I deeply love what I do these days – but I wish I had a “definition” for it as simple as “I’m a programmer”.

I’m not entirely sure what I am now.

But to circle back, and maybe end on a down note: burnout is real, and the effects are maybe permanent, and I wish that I had paid more attention in the moment to the shifting sands of what game me bad, panicky anxiety vs what was giving me good, excitement anxiety. A little therapy, a little coaching, a lot of introspection has really helped me. I still don’t enjoy programming like I used to and (most days), that’s ok.

I’m Leaving Vancouver

I arrived in Vancouver in late summer of 1995, to come to university. I knew, almost the moment I got off the plane, that this would be home from now on. And until tomorrow, I’ve held to that. And let’s be clear – I love Vancouver. I’ve had the great fortune to travel extensively, and have had several opportunities to choose to go somewhere else – and I keep choosing here.

But that’s changed now – I’m leaving. The reasons are multiple, but the short answer to the unasked why is the same as it is for everything these days: because COVID-19. Since the pandemic hit, I no longer need to go to the office, and people, this is a good thing in my books. Since the pandemic hit, I no longer go to restaurants, or clubs, or concerts, or movies, or anything that feels like it requires a city to do.

The other thing that happened is I kind of reconnected with nature. Early on, I made an effort to get to the forest nearly every day: Pacific Spirit park, Stanley park, all over the North Shore and places beyond. And when it got warmer, I spent more time on and by the water. And all the time spent there really centred me – I found a peace that the focus on day-to-day life in the city that I had forgotten about.

In July, right as restrictions eased, we stayed in a place on the Sunshine Coast, in Secret Cove. And while there, thinking about the perfection of it, the slowness of it, we asked each other – “what if we just lived here?” And so about 6 weeks later we had an accepted offer on a house in Gibsons, had successfully sold our townhouse in Vancouver and in about 12 hours, we’ll be moving in.

This – this is the awkward part to say out loud, but for the most part, the pandemic has been good for me and my family: my work is solid (but busy!) and interesting, we’re spending more time together, we’ve saved money compared to our before-times lifestyle. And this move kind of doubles-down on that idea: we’re buying ourselves more financial freedom, more time together, more access to the things we like to do together: hike, camp, paddle, play games – hang out.

There’s things I’ll miss about Vancouver – and we’ll certainly be tied pretty closely as Leah will be coming back weekly, and I hope to be coming back about monthly for various things. One reason we chose Gibsons is that while it is away, it’s not so far away.

The house we’ve bought has plenty of space indoors and out for safely distanced socializing; and when things settle out in a couple of years, there will even be a ready stand-alone guest suite for people coming out way.

It’s funny – for most of my life, I’ve dreamed only of living in ever-bigger cities. I love the bustle of a crowded subway, milling pedestrians – the vitality of a busy city is amazing. Maybe again in the future I’ll want that but for now? I really feel like I like my city like I like my snow: close enough to get to it easily when I want it, but not all around me all winter long.

Peaceful Games in Turbulent Times

Screenshot from Cities Skylines

For much of my life, I’ve used video games as a sort of “social separation mental health strategy” – when the world gets to be too much, I play video games with an intense focus: to help calm and center my mind, to let my subconscious process, to give me a chance to process emotions I’m not handling well. The general driver is anxiety and the need to keeps my hands busy but my mind calm. This is one of the reasons that I often look with bafflement at all the online games: why on earth would I want to play games with others? I play games because other people are too much!

On my iPhone, I keep exactly 3 games: Threes, Alto’s Adventure & Monument Valley. These three games satisfy key criteria for me:

  1. They are low-stakes: there’s no death or violence, and you can just pick back up and go. In Threes, if you fail, just start over, Alto’s Adventure, just start snowboarding again, in Monument valley just try the puzzle again.
  2. They’re quick-plays: it is easy to drop in and play for 5 minutes and hop out again, with no deeper context of story or complicated muscle-memory mechanisms.
  3. they are visually quiet games: there’s not flashy things popping up with adrenaline-inducing urgency, everything is pretty calm, with in all cases, pleasing-to-my-eye visuals.

I should note here that Threes has a particular place for me: I probably spend 10 times as much time in that game than anything else – indeed it is sort of a meditative ritual for me: if I’m feeling particularly anxious, or have an upcoming stressful encounter, or am needing to quickly centre myself after a stress-inducing event, I play Threes – dark mode, sound off. And as I play, I can zero-in my focus until all else disappears except the game board. And then I’m ready to re-engage with the world.

Tangent on COVID-19

I’m fortunate, in this time of COVID-19, to be gainfully employed. Working for Telus Digital, on the platform team, which includes support and oversight of the infrastructure for means that we are really, really busy. I’m doubly fortunate to have space at home to work well, to have kids who’re slightly older and more independent so I can focus, and that Leah and I genuinely enjoy being together all the time.

But, and probably this a big BUT – I’m constantly fielding a low-level of panic/anxiety/terror. First: I deeply suspect that the world I’ve known for 40 years has ended, and we’re seeing the rapid birth of a new world – where this sort of rotating shutdown/collapse of public society is the new normal, where variations of COVID-19 are like the flu, or colds: new variations coming regularly. And like – everything has to change to make this part of how we live. I hope I’m wrong.

Second: I am personally very worried about my ability to survive COVID-19 – I have a long history of being hit pretty hard by respiratory illnesses: Pneumonia, bronchitis, flu – anything that settles & impacts the lungs has for most of my life hit me unusually hard compared to those around me. I’m generally healthy yes. I’m taking precautions, yes – but my assumption is that everyone will at some point grapple with COVID-19 over the next year or two. I hope I experience a mild case, but until this happens, I remain wary and worried.

And on the Xbox

There’s one more game that I’m spending an additional amount of time with right now: Cities Skylines, a city-building game. I have turned all the “disaster” settings way down. And so it becomes this lovely, peaceful, slow-moving game where I build a town full of happy, employed, healthy people. They bicycle and walk and take transit everywhere. They live in dense, urban centres, or farming communities. Sometimes, I just turn the speed setting to medium and just kind of watch it for a while. And it is immensely satisfying – another low-stakes, low-context, drop-in/drop-out game to calm my nerves, to help me context-switch from work-mode to home-mode.

The Four Jedi (software architects) You Meet in Heaven

Millenium Falcon at Galaxy's Edge

*with apologies to Mitch Albom, of course. We recently got Disney+, and I finished watching The Mandalorian, and then, casting about for what else there is worthwhile, dove headlong into The Clone Wars animated series. It’s great! And somewhere deep in my subconscious, this analogy emerged.

After writing about the paths to Senior Developer, I’ve been thinking about what comes after that. Specifically about what comes after that at TELUS Digital, because that’s where I’m working. Important caveat here:
these are my musings, and not official TELUS Digital policy.
It should also be noted that the types of technical roles quickly bifurcate over and over like a career river-delta if you survey the industry: tech leads, team leads, staff engineer, fellows, principals, architects, managers, etc, so as you talk about more senior technical roles, there’s a higher-chance that you’re being very specific to your current organization. I asked on twitter about one facet of this too, as I thought about tech leads vs architects.

That I ask this question probably reveals a fair amount of how things work at TELUS Digital. But this also made me thing very specifically about the delta in those roles here, as I see it. I’ll talk about the tech lead role another time, but want to think about Software Architects, and the kinds of skills, focus and interests that make for good candidates.

Anakin Skywalker: The Solution Architect

Anakin Skywalker is confident, quick thinking – surging headlong into trouble and thinking creatively on his feet to find a solution to the problem in front of him. This is the kind of architect I’m the most comfortable speaking about because it is how I self-identified when doing this kind of work. It is a broad rather than deep role – a good solution architect can think creatively, laterally about a problem and propose a variety of potential outcomes to solve it. I’ve seen this role advertised many places as a web architect as well. If you’re a developer who loves the challenge of working in an unknown space, who prefers prototyping to refactoring or incremental improvements, this is a great fit. A solution architect has an obligation to keep current on shifting trends – be knowledgeable across a varied set of technologies, frameworks, languages, etc. More importantly than what you do know is a deep understanding of what you don’t know. A good solution architect will know to bring in other expert voices to stress-test and verify an idea. Because of this need, solution architects need to have pretty solid social skills as well to succeed, and should work more closely with developers on a day-to-day basis than others.

Of note: if you know the story of Star Wars, you’ll know that things do not end well for Anakin Skywalker, who falls to the dark side and becomes a force for evil. While this may be really stretching this metaphor, this is a useful thing for solution architects to think about too – too often we hear of Ivory Tower, or “architecture astronaut” if you don’t stay connected to the work happening.

Mace Windu: The Domain Architect

Mace Windu is a master of lightsaber combat, wise and careful of words, thinking deeply about the practice of his craft. He is a specialist, through and through. Domain Architecture is a path for deep specialization and knowledge. This is also variously called a practice lead. This is a good role to think long and deeply about a particular topic to develop unparalleled expertise in it. Spending time learning from, and talking to other experts in your domain is important in this role, to ensure that you do not end up so specialized in your particular company’s needs as to lose relevance. A key duty of this architect role is to impart knowledge to the people around you – both technical and non. More so than a solution architect, ensuring that there is a succession plan – that there is a clear apprentice to follow on is a good practice. Some examples of domains of specialization: Network Security, Testing, Telemetry, Performance, Data, etc. This role is still one of software, and so spending time writing, refining best-practice examples; pushing the state-of-the-art forwards are key outputs from a domain architect. Leading development of mission-critical implementations within your domain is also an important role for this kind of architect.

Obi-Wan Kenobi: The Integration Architect

Obi-Wan Kenobi always saw the underlying truth of a scenario as a way to find the way through it – never hurried, always already where others were going to. He understood, holistically, what was happening around him. This is a role for understanding what lays beneath: how different tools, architectures, endpoints, etc work together. It demands an incredible ability to keep hugely complicated systems in mind and be able to anticipate side-effects and unexpected outcomes from new additions. I’ve only encountered this type of architect at very large companies that have very complex, often legacy systems – a smaller scale operation is unlikely to require this kind of specialization. Interestingly, I’ve met several excellent integration architects who came into this from a business or system analyst role, as well as from a developer role. Integration architects, in my experience, make and maintain the best diagrams, are excellent teachers to others, and unparalleled in their ability to reduce complexity into more digestible chunks. If you’re a developer who likes working on edge-cases, who likes to find the weird exception to every rule, or who likes to think holistically about an entire system, this is an excellent role. It is very much a role of incremental operation of a whole system, rather than rapid prototyping or deep dives. It’s a great place to iterate on a particular system for a long time. If you want to have impact at scale through small incremental change, this is exactly that type of role.

Yoda: Principal Architect

Yoda guides the entire Jedi council with a clear vision of what a Jedi can be, should be, and helping everyone stay on the path to that vision. Including a Principal Architect may seem something of a cheat, in that I would consider this an additional tier of seniority than others – certainly at where I work now it is – but it isn’t always. Sometimes, it is the only architect. And this is largely a visionary role, to look forwards towards what might be, what can be, what must be for organizational success. It needs to be an architect who can think broadly about the range of opportunities to improve technology, who can work with other leadership to translate technological vision into business relevance. At some places, this role may well simply be the Chief Technology Officer (CTO). At somewhere large enough, there may be multiple principal architects, spread across the vast swathes of organizational complexity. A key duty of this role is to help support all the other architects as well – to provide support for their decisions, to provide rigour in decision-making, to ensure that everything roles up towards a coherent vision of good.

Do these kinds of role exist where you work? There’s probably all sorts of variants of this. For TELUS in particular, the software architect path is generally for people who want to stay primarily as individual contributors, rather than leads/managers. A path of bits, rather than heartbeats as it were. One thing I wish I had more insight is to what some key differences between something like a staff engineer and a software architect. Do places have both? My instinct is what I’m calling a solution architect may be akin to the staff engineer elsewhere, but YMMV.

Developer Levels: evaluating professional growth

This is one of those things that my instinct with developer levels is “I know an [X] developer when I see one” – but if you’re a developer reporting to me, that’s completely useless. It smacks of subjectivity, of hidden gatekeeping. It would be really hard to argue with me if my position is simply “you’re not it, yet”. And because I currently work with some of the absolute smartest, most skilled developers I’ve ever had the pleasure to work with, I’ve needed to think long and hard about this. Because while they’re all great, they’re not all at the same level of title-seniority. This is also a topic that has been written about many times. I’m focusing here on roles we have at TELUS. For a great wider/larger look at titles, please read @reiver‘s post “Software Engineer Title Ladder
At the same time, internally, we’ve been looking at building out a better career matrix in order to help guide these conversations across all disciplines. We’re still working on them – but with any luck, I’ll be able to share out at least our developer matrix (NB: in Canada, we don’t talk about engineers, but developers. If you’re elsewhere, you may substitute as per your comfort level). So with all those caveats, here’s some ideas I’m working through:

Problem Solving

  • A Junior Entry-Level Developer (I don’t particularly like that term junior – it feels vaguely pejorative – but that is another topic) is someone whom I can hand an identified, solved problem, and they are be able to implement the solution. I expect all asked-for particulars to be included, but I also expect questions to be asked, that the occasional thing might get missed, and that they would not necessarily be able to balance conflicting priorities in code without guidance.
  • An intermediate Developer is someone whom I can hand an identified problem, and they are be able to provide one or more solutions and implement it/them. They are be able to discuss the merits of each solution versus the identified problem’s parameters. I expect good testing habits, and a reasonable attempt to balance multiple concerns during implementation.
  • A Senior Developer is someone who can identify a problem that needs to be solved, include wider concerns when considering solutions and then guide implementation. They are able to help guide other developers when working through ideas, and help shape the work output that results. Senior developers can execute with a very strong understanding of the product lifecycle – so their work can have huge impact on the shape of the code base over all.

All of the above is not linear, and very open to interpretation. You’ll note I don’t talk about particular skills – in part because I’ve been looking for a through-line that would carry across different specialties, but also because my experience mostly tells me that skills and knowledge accumulate as you go. I’ve also several times encountered the inverse problem: deep specialization in one stack or skill leads to blind spots that I find troubling at more senior tiers of work. Either way, these conversations are hugely individualized and hard to generalize. But I think a useful way to put it might be: seniority is a combination of deep knowledge and broad application. Lateral thinking is important, as is deep knowledge and strong skills.


The other key ingredient in developer growth is on the mentorship side: Writing software is a team sport. Mentorship is multi-faceted, and can consist of a variety of things: lessons-learned, code practices, problem-solving skills, organizational-awareness, skills from other disciplines, leadership skills, etc, etc. This can be direct pairing, training opportunities, group work, special projects, etc. Mentorship is itself a program that can either reinforce existing biases or slowly shift them (that link is from 2008! sadly still feels relevant). So being incredibly intentional. both as an organization, and as a people-leader, about what is wanted out of a mentorship program is vital.
I believe that all levels can participate in this, in different ways:

  • An Entry-Level Developer will seek guidance, and share news ideas back into the community. If you’re learning, one of the best ways to learn is to do it publicly (see this very post. This is a lifelong thing). And asking questions demonstrates an important level of humility. And so junior developers looking to grow will proactively seek out opportunities to be mentored, or to surround themselves with senior developers. There’s… there’s a level of privilege associated with this idea that I’m still working through – just being comfortable asking for mentoring. The other side of this is the “new blood” idea: change is constant, and junior developers not set in their ways are amazing at surfacing new ideas, techniques and technologies otherwise dismissed by developers more used to “the way things are”.
  • An Intermediate Developer will share knowledge broadly and seek opportunities to mentor those following in their footsteps. This is the time in a career where confidence is high and more risk-taking has been earned. Be opinionated! But lean on data over opinions. And so writing, sharing internally, leading prototype builds, attending conferences. Because career mobility is very high, aligning resume development with org goals can be mutually beneficial. And in my experience, this is a time where personal ambition and organizational goals can be quite tricky to balance – investing in someone who will leave later is not the goal – but nor should it be deemed a failure. While knowledge at this tier is high, it is still being solidified, dedicated time and practice of mentoring more junior developers can help mature the intermediate developer.
  • A Senior Developer will lead patterns and practices, and stress the details with fellow developers. This may seem counter-intuitive – I’m largely saying intermediate-level should focus on board ideas, while senior developers focus on sweating the details. This is for a good reason: a senior developer will understand a level of nuance in problems that may escape a more junior developer. I often like to say that as a senior developer, the most important ability is to know what you don’t know. But you also may have wider organizational exposure, so leading initiatives in code review practices, testing patterns, performance techniques, etc will have huge impact. Lastly, if a senior developer is not actively mentoring one or more junior developers, they are not contributing enough – but the fault may not be theirs! One thing I’ve seen time and time again is that organizations get in the way of this practice – whether formalized or not – by demanding huge amounts of output from senior-level developers (arguing, perhaps, that they are paid a lot, so should write a lot), and not providing time to grow the rest of the team.

There’s obviously a huge amount that can be, that has been written, on this topic. And, because it is a complex relationship (and it might be another post?), I’m not including Software Architects (and all variants of them – principal or emeritus engineers, etc), who while generally more senior, represent a specialized career track in my opinion, as do engineering leaders (tech leads, managers etc). The question of “what happens next?” when you’re a senior developer is definitely one we struggle with a TELUS, and something I’m thinking a lot about.

One last note: willingness to be wrong is another axis I think is important, where both junior and senior developers are more willing to admit to being wrong than intermediates – and I think this curve is a good sign of growth.

Role Fit

This question comes up a lot in context of the above – what comes next when you’re a senior developer? But this actually a really important conversation to have at all levels. I’m a big believer in the Pioneer / Settler / Town Planner model of types of work (note: that particular phrasing gives me distinct qualms, due to the genocidal history of pioneers & settlers in North America. Bear with me, please), that I believe Simon Wardley coined (at least, his writing was my introduction to it).
People are not all the same, and are not excited by the same types of work. This may seem really obvious, but I have only twice, in 25 years of doing this, come in to a company that didn’t essentially consider all developers to be the same person in some basic way. Maybe distinguish between front- and back-end, or developer and QA roles. Very little is done, in my experience, to help developer self-interrogate as to which kind of work they like to do, and sell all kinds of work as being equally exciting and important (see: unconscious bias).

  • An Entry-Level Developer should be given opportunities to explore various roles: both in style-of-work models, but also in specializations. Early-specialization is as problematic as early-optimization.
  • An Intermediate Developer will develop a sense of their preferred model of work: indeed, this might be the key outcome of this portion of one’s career. Note that having a preferred mode doesn’t exclude others – but it can help inform all sorts of personal career decisions.
  • A Senior Developer will have an understanding of their preferred model of work. Senior developers have experience, knowledge and a level of self-awareness that informs this. Everyone understanding this can help prevent square-peg-round-hole syndrome.

Note: Preferred working models can definitely change, either via personal interest or organizational mandate. But if as a developer, you find yourself struggling to fit in on a new team, reflect on this particular axis of work-modelling. Same for leaders, who’re not seeing the results they were expecting of a newly joined team-member.


I innately reject time-based markers of seniority for engineers, but nor do I want to completely discount them. But time-spent is not spent equally. An organization firing on all cylinders will grow senior developers much faster than one that is in disarray. I’ve also seen developers who’ve got 15-20 years experience who simply have not kept up with changing practices.

So… how do you tell what “level” a developer is? it’s not here yet, but I think but I think there’s a series of variables above that can help define that, but also an individual could easily advance very differently in each category, making these titles feel increasingly inelegant and arbitrary. Mapping these to defined organizational role-titles remains important though, because that how I can talk to my current team, and it directly affects compensation for them.

Reflecting on my own experience, senior developer is still, in the arc of possibility, not even the midpoint of a developer’s potential career progression. And that next transition point remains deeply interesting to me to think about.

%d bloggers like this: