Monday, April 29, 2024

Two Things to Avoid - Politics and Religion

I was having a discussion with a peer today and this topic came up - only a couple hours later that I realized that it did.

They say two topics to avoid at work politics and religion. Taking religion out of this discussion lets talk politics - team politics.

Power Struggles. Favoritism and Bias. Toxic Work Environments. 

I wish I had a formula for dealing with or avoiding work politics. I don't. I think I do the next best thing - model what it looks like to work with respect, empathy, and communication. 

We hung up the phone agreeing that work politics suck.

Monday, April 8, 2024

Feed Tuna Fish Mayonnaise

Classic voice tape recorder

You may not have heard this line from a movie before; but you certainly have heard of Michael Keaton, the actor who said it. Quickly, the context is that Michael Keaton plays a goofy character who carries a mini voice recorder with him all the time so that he can record his ideas and not forget them. He is an "idea man". One of his ideas is to feed tuna fish mayonnaise so that tuna fish salad sandwich is that much quicker to make. Not funny? Guess you had to be there.

I never carried a voice recorder around with me. I have tried Post-It notes, a journal, OneNote, and Notepad. But remembering my ideas isn't the hard part. It's the execution. For instance, I have been a part of starting up two companies. It was a lot of work, took considerable money, and came with considerable risk. But the biggest barrier was fear.

Reminds me of Elizabeth Gilbert's book Big Magic. I went to see her talk a few years back (pre-COVID) here in Seattle and she talked at length on working with the fear to ensure the ideas keep coming. I remember that fear. Losing my savings, quitting my job, and don't forget just failing. Failure, ugh. That is a biggie. I wish I had some wisdom or smart sounding to say about fear - I don't. We all just have to figure out our own way. Me? I'm a big thinker. I try to outsmart my fears. When that doesn't work I try ignoring them. Enter Dr. Phill - and how's that working for you?

I don't want to count the number of ideas I've had that I was too afraid to do something about. That didn't have to mean going all the way. Even if I just flushed them out a little more.


Wednesday, March 20, 2024

Public vs. Private

I am a big Ted Lasso fan. I didn't want to be at first, I thought it was going to be a goofy sports based show. I could not have been more wrong and found myself laughing harder than I had in a long while. Over the last few months I have been reminded of this episode where Roy Kent gives an example of not knowing what is going on each other's lives.

Roy Kent at Press Conference

[...] And none of us know what is going on in each other's lives. So for Isaac to do what he did today, even though it was wrong... I give him love. And as for why he did what he did... that's none of my f?cking business. [...]

If you don't know this one, please check out the link above with this scene. It's a great story.

Recently I found myself thinking about this - we don't know what is going on in each other's lives. I think the way this manifests is when observing another's behavior we fill in their story with our own story about what must be going on for that person. Like most stories, we tend to create them from our past experiences; many times assuming the worst.

I bet you have created a story to explain someone else's behavior; parents, colleagues, friends, direct reports, strangers. And how many times was the story a "negative" one? As much as I try not to, I know I have. This is where another Ted Lasso lesson pops for me. When Ted is playing darts with Rupert (Mannion not Giles) and shares "Be curios, not judgmental" as part of a story he is relating. My experience is that my stories are often close my judgement and therefore short circuit my curiosity. It's just about treating others as people, with respect and compassion. That doesn't mean that we shouldn't hold them accountable. But it may change the way you hold them accountable or whether you hold them accountable at all. 

I like to write these down as something for myself to continue to be mindful of as opposed to expecting anyone else to benefit from them. If you do, then great, love that.

Friday, March 15, 2024

The Easy Fallacy

easy key on keyboard enter key

I was talking to one of the younger engineers at work recently and he said that he appreciated my experience. After I realized that it wasn't one of those - your so old moments. I laughed and told him that is probably more true than he realized. For instance, we were talking about an a fix that he labeled as "easy". I told him that in my experience easy changes can be a fallacy. I could see in his expression that he knew what I saying but he didn't know what I was saying.

I can't count the number of times when me, my colleagues, and/or team fell for this one. It looks something like - the change is a small one, often innocuous - like a configuration change. If you're nodding you're head right now, then you too have fallen or been witness to this one.

This happened recently a couple of times. One looked like a change that when merged to to the main branch, inadvertently picked up an unrelated change. This change was not something that was caught until it was promoted to production and resulted in a performance impact. As a result we had a week delay two weeks before the larger launch because we had to do even more work to earn trust that it would not happen a second time.

A contributor to falling for this fallacy is that making simple changes in a complex system isn't about how small the change is - it's about everything else after the change.

Which begs the question, how do you not fall for this one? I feel like this one hurts the most when your under a time crunch and your belief in the fallacy convinces you that you should make "easy" last minute changes. Ouch. Or that you let your guard down on the "easy" change and miss something. The answer for these two is - don't do this. I am sure you have your version of this. 

Thursday, September 7, 2023

Careers - Timing is a Thing


I am no daredevil, but I have taken risks in my career. The types of risks I am referring to here are the job / role moves I have made to explore opportunities and/or interests. Over my career I have made some moves that have paid off and others that have not. I have learned from both, but that is a different post. In retrospect the timing of some of those moves was important. Sometimes that timing was related to business / market timing. For instance, I have started two companies; the second one was, in large part, the victim of the the early 2000's tech bubble pop. More recently in AWS, the product I transferred onto was absorbed into another product with a different charter. It was a risk when I transferred - I knew that the product had challenges. In each case, the timing was factor. 

Timing is not something we can always do something about. But it's worth considering, especially if you have a low risk tolerance. Flipping it around, if you have a low career risk tolerance you're probably considering the timing. A lot. Me? I would say that I have a relatively low risk tolerance, but looking back at my career - I have made a lot of leaps.

No matter how much consideration I have given to the viability of a career change, there are simply things outside of my control. If I could have predicted the first tech bubble crash, I could have made a ton of money and I probably would not be writing this. Sure I was crushed at the time when something didn't go my way. That promotion I didn't get after the reorg because the people evaluating me didn't "know me". The timing was wrong and entirely out of my control. Reorgs happen.

In the end, my career is more about the experience than the career. I have always had this notion that the money is less important that what I am doing and who I am doing it with. So the timing is something that I see in retrospect, but not the top of my considerations.

Tuesday, May 10, 2022

What does it mean to lead?

Leadership is always something on my mind; whether personally or professionally I find it an interesting topic to continuously be humble around and strive to improve. 

Leadership comes in so many forms and I find it hard to define. More important than the definition is what leaders actually do is how they do it. There is one thing that I have brought over from my spiritual journey to my professional life that I feel is the key. 

It's not about you stupid. Let me 'splain. The most important thing I continually remind myself is that it's about others. Putting anything else first weakens leadership. First and foremost people want to feel safe; when people feel safe then good stuff follows. Think about all the ways that this influences outcomes. When people feel safe they are happy and happy people are capable of amazing things. First, and most importantly, is that happy people create a multiplying effect of creating more happy people.

The times that I think back to when I liked my job the most it was because I was happy and I worked with a group of people that made it it fun; even when it was hard.

Tuesday, June 8, 2021

It works on my machine

One truth I had to come to terms with earlier in my career was the "it works on my machine" anti-pattern. It's a close cousin to the name of my blog - sometimes words DO mean something.

This was back in the days before Windows (yes there was such a thing) and I was writing a custom TSR (terminate and stay resident) module that we used to communicate with the custom database engine we wrote on NetWare (starting to get a sense of the decade yet?). Long story short there was a problem with the code that prevented it from working on one machine - just one. And it wasn't like it always didn't work, it only didn't work sporadically.

In my arrogance at the time, I was slow to take a look at this issue. My arrogant thinking went like (1) this is the only machine to have the issue (2) I spent alot of time on this code and especially testing it (3) this code has been running on hundreds of other machines without an issue (4) so it must be something particular to the machine or user. Fast forward a couple of weeks and surprise a couple more people report having the issue. It was then that a colleague and I were talking and I woke up from the spell - "this is something I need to look into" I finally told myself.

Turns out the issue was an interrupt conflict with a badly behaved driver that was slowly be rolled out in a pilot and very soon would released across the entire org and would impact my, now thousands, of customers. Once I figured this out (which was actually pretty hard to do) - the fix was simple; I just switched to a different interrupt. There were other times when I fell under the spell of my own perfume, each time learning something and making me more humble.

Computers and software have grown much more complex since then. developers have much less control over all the code they are dependent upon. In the example above, I was dependent on the CPU microcode, the BIOS and MSDOS - all of which I had the source code for. I could usually discount the microcode (I only recycled the manual last year) which meant that any issue was either with my code or the few dependencies I had. The lack of dependencies and illusion of control was part of where my arrogance came from. But today there are dependencies on dependencies; it's such a complex ecosystem. And yet developers still have quite a bit of arrogance. 

Why am I writing about this now? This time I was the one user for which the application did not work - last year (mid-2020) it started  and I would constantly send logs and traces to the development team and nothing would happen. I told them that my fear is that my experience was the "canary in the coal mine" and that either (1) other people are also having the issue and not reporting it OR (2) that at some time in the not too distant future it would become more urgent. 

The later was this week.

It now works on my machine.

Tuesday, April 13, 2021

Personal Air Traffic Control

Last year was a long delivery march at work for me and I had to drop many of the "fun" things I was doing. With that delivery in the rear view mirror I have been exploring some of the things I "bookmarked". Some of them are aviation related since I have a personal interest in the aviation field AND its related to my day job.

Turns out there are lots of ways that aircraft communicate with the ground and that ground uses to track aircraft - like radar and transponders. I have been digging into ADS-B which aircraft use to transmit basic data like GPS location, altitude and air speed. The interesting this is that ADS-B signals are transmitted "in the open" over VHF 1090 MHz.

Long story short - I setup my own receiving station using FlightAware PiAware. It's solution running on Raspberry Pi and a USB receiver that translates the raw radio signals to data. The whole thing is packaged up by FlightAware and they make it super simple to get it up and running.

I have been hacking around trying to get my own Python script to pull the data just to play; but it way more fun just to watch.


Saturday, April 6, 2019

Old school gaming

I have been thinking about gaming a bit lately. In some part because of Twitch and it's association with Amazon and because someone on my team is working on a project that they conceived of during a Hackathon and was so cool we decided to turn it into a product. And it involves Twitch.

My history with gaming goes way back to high school. There I was learning BASIC on an Apple II. Monochrome monitor with a built in keyboard and cassette tape drive for storage. My go to computer game was the Star Trek game - an ASCII character based game where you would navigate/fire using a cross (up-down-left-right) pattern on the keyboard (there were no arrow keys yet). Once you typed in your command the program would then execute it and show you the resulting state. This was the definition of an interactive game at this time.

I was so amazed by this that I would beg my parents for a Sinclair ZX80 computer. At the time they cost like $200 - which was about $199 more than I had from my crappy paper route. So I would go grocery shopping with my mom so that I could go into the Radio Shack next door and program away on the TRS80s they had on display. Ironically my parents were willing to drop about the same amount of money on the original Atari game console. Although they bought one so early that the joysticks had not come out yet and all that it came with was the knob/dial controller for Pong.



Fast forward through all the arcade time I spent to when I had graduated and started a real job doing programming. Within a couple years Wolfenstein was released and I was hooked. The cool thing about this game was that if you had a local network you could play with up to four other people. Well it didn't take long for my friends and I to setup our IBM PCs around a kitchen table and start slinging Token Ring cables. More than once we would be missing a Token Ring terminator and have to delay playing until we found one.

The new games rarely hook me the way those old ones did. I am not sure why. The graphics these days are amazing - when I see screen shots from Red Dead II it blows me away. I feel a little like Richard Dreyfus at the end of "Stand by Me" when he writes “I never had any friends later on like the ones I had when I was 12. Jesus, does anyone?”. Maybe this is the embodiment of nostalgia.

Wednesday, April 3, 2019

What does a TPM do anyway?



At Amazon we have a role called TPM - of which I am one. It's not a role that I was familiar with until I started here.

As I talk to more and more people, candidates and peers my definition/description of this role have drastically evolved. Here are my current ramblings on this.

You may or may not know that Amazon.com (the website) is made up of hundreds (maybe more) of micro-services. Generally a service is owned by a 2-pizza team - that is a team you can feed with 2 pizzas. This creates a challenge for teams that build features that consume those services. And gets even more complex when you consider lineage of services, that is the hierarchy of service dependency.

In past jobs, we used to talk about things like service bus and services directories. These were ways that we were trying to tame service based architectures. In the end these met with marginal success (I am being generous). Actually they were very complex, obscure, hard to keep accurate. I remember spending months arguing over a service taxonomy. Yuck.


At Amazon we don't try to tame this environment. The rationale? It's a Day 2 type of mentality.

If you're thinking like a startup you aren't spending a lot of time trying to organize all your services. You're not trying to stamp out duplication. Day 1 companies are innovating, trying new things, letting things evolve and deprecating the stuff that doesn't "survive".

TPMs have to live in this world and make it possible for everyone else to as well. It is our job to architect technical solutions in this environment. To negotiate with others to get things done. Sometimes it means that we have to get scrappy. Your ability to do this and deliver something great for our customers is what makes a great TPM and what keeps Amazon...well being Amazon.

Saturday, October 7, 2017

Sometimes Words Do Mean Something

Sent an email yesterday to a colleague asking for a link to something his team created on the website. A couple of people +1 the ask. The reply was that he was going to put a link to the item I asked for and others (I didn’t) on a wiki. He included a document that has a table with the format the wiki will take, but doesn’t have the data I was asking for.

After an email thread of 6 or more responses - I still don’t have the link.


Thursday, October 5, 2017

Would You Like Frosting on That?

When delivering a project - I find the final weeks the most stressful. Everything that comes up during the final stretch has way more gravitas than had it happened earlier; making them that much harder to overcome. So much has been written about this over time (e.g. Mythical Man Month, etc.) that I won't go into here. Suffice to say that many times there is just a finite list of things that can be done. Sometimes it's just a roll-forward - stay the course strategy and just launch when you can.

Can you tell this is where I am at in the current delivery cycle? The weeks before the Thanksgiving Holiday (here in the US) are the busiest for us in the retail world. As a consumer I assume you are aware of the reason why. What you may not aware of is that we have a practice of locking down much of the website for weeks to ensure stability. That is my current deadline - make it before we freeze.


Considering the resource triangle where time and cost (resources) are fixed then clearly my only alternative is to cut scope. I have been asked a couple of times now what we can cut and still make the launch. My answer - if you want something that people actually get a benefit from - not much. I am not trying to deliver a sever layer cake here where it's still tasty with only 6 layers. Unfortunately, this is a 1 layer cake and one without frosting at that.

It does beg the question, is there a way we could have broken this thing down into more parts - each adding value but able to stand on their own. Off the top of my head I would say no - but it is something that I will take up during the retrospective phase of this project.

So we keep moving forward - clearing obstacles, escalating, communicating. A little luck wouldn't hurt either.

Saturday, September 30, 2017

Do I Keep This Blog?

I have had to spend a bunch of time maintaining this blog over the last month and it has me thinking if blogging - on an actual blog - is still a thing. With tumblr, Facebook (list other social media tech here) do we still need blogs, RSS and that stack of tools (including Wordpress - the app I am writing this with). For that matter, do I even need a personal domain name (e.g. <my name>.com, .org, etc.)?



To disambiguate this a little more, I am not questioning the value of blogs in general. I believe that as a way to publish things for those that are semi/professional bloggers - blogging still has a role. Personally, I read fewer blogs; but I feel that the reason for this is more a factor of the changes in the type of information I consume. My personal life has undergone a great deal of change and my career continues to evolve where I don't find the need/time to subscribe to blogs. What I am contemplating here is do I need to the custom website, blog, infrastructure that is needed to have my own blog? As just some person in the world who has some things to say and assumes that no one is actually interested/reading what I write. Which means that much of what I write is for myself rather than anyone else. This is the context of my contemplation.

For a very long time I have been racing other people for logins/identifiers. My default for this is "ckoppang" - a left over from long ago network logins. Turns out that I have 2 brothers whose first name also starts with a "C" and there is at least one other person who likes to use ckoppang. So of course in the early days of the Internet I went out and reserved my person domain name; which I have renewed year after year at not an insignificant cost for something which only exists in electrons.

So why do I keep this? Especially since I seem to get hot/cold on blogging. Why spend the money or invest the mind space to something that has questionable value? To answer this I feel like it's worth trying to explore why I blog. Is it just a good intention with low value it ends up getting pushed to the end of my priority queue? Case in point, as I have been trying to type this entry it has taken me over a day due to interruptions and "real" work. But I do find value in thinking about things "out loud" and being able to see my thoughts. Granted they don't come out of my head in a very coherent way - so the act of organizing/processing thoughts can be helpful. Stated another way - I am arguing or convincing myself sometimes. This is actually a practice I do a lot; just no always in a public way. I am a fairly self-reflective person looking for ways to improve the way I "move through the world" and I tend to do quite a bit of writing around this. So this feels like an extension of that. Looking at the frequency of writing I have been doing on that front - it too has suffered recently with life's priorities.

So where does this leave me? Or stated another way - I feel like I need to wrap this thing up. At least before the next interruption.

I am going to keep this going since I do like writing - as much as my 11 grade English teacher may be cringing right now (she really didn't like me - but that's whole other story). Being someone with the knowledge and means I and going to work on utilizing technology (e.g. WordPress on my iPad) to make use of those moments I do have where I can quickly put something out there. Hey they don't always have to be as long as this one. Even something with twitter length is valid. So if writing is important, then why continue to do it here? Is there some reason that my own standalone blog is somehow better? Am I actually building something larger - like a personal brand?

As I sat here and contemplated these questions (and more) I reached a place where I was just like "maybe I just like having this quiet little island to go and play on". But those are all good questions to consider if you are thinking about this "problem". I feel a little like I am just abandoning this whole discussion while at the same time admitting that it is possible to just overthink things.