Upbound reached General Availability on Tuesday and today is my last day at the company. It feels surreal to write that, despite knowing this day was coming for quite some time. With my time coming to a close, I wanted to take a moment to reflect on one of the most wonderful and impactful experiences of my life.1

Joining Upbound Link to heading

Inception is one of my favorite movies.2 I’ve always loved the scene, and the subsequent callback to it, where Cobb is deciding whether to accept Saito’s proposal.

COBB: If I were to do it. If I could do it… how do I know you can deliver?

SAITO: You don’t. But I can. So do you want to take a leap of faith, or become an old man, filled with regret, waiting to die alone?

One of the many things I’ve learned through the ups and downs of life in a startup is that the ability to make correct decisions at an above average rate is perhaps the most impactful attribute of a leader. We’ll avoid making any judgments about Cobb’s leadership qualities, or Saito’s ethics for that matter, but one thing we can take from this exchange is that, in a few sentences, a decision transforms from looking quite ill-advised to potentially a no-brainer.

How does this happen? It’s all about Saito’s framing. Highly compelling leaders are great at framing. It’s how they can convince a group of people to invest a lot of time and effort into something that has a low statistical probability of success. This is fairly well understood. What is somewhat more subtle is that great leaders also must be able to navigate other’s framing. In this situation, Saito is using a negative alternative to compel Cobb to do what he wants. However, the alternative is not a threat, it is a legitimate negative outcome of making the decision to not accept the deal, and Cobb knows it. Ultimately, standing on the tarmac considering the possibility of seeing his childrens’ faces again, he takes the deal. Most of the decisions we make in life are presented through some framing.3

In my final year of college, I was sitting at the kitchen table in the off-campus apartment I shared with a few friends reading through the news from a conference I had stumbled upon4. A new startup had launched, touting an open source project that would “open up the cloud.” That startup was Upbound, and the open source project was Crossplane. I had worked for a few companies throughout college, both full time and as an intern, and I seemed to gravitate towards infrastructure automation. I remember it was around this time that I started using the motto “I like writing code that writes code.5

I was also attracted to Crossplane because of its proximity to Kubernetes, which was starting to reach the point where it could be considered a “sure thing.” So I did what any developer in my shoes would do: opened a pull request with a docs update.6 I love that I can link to this as an artifact, not because I added something to the project, but because you can see Jared’s positive feedback and welcoming spirit, which I have had the privilege of experiencing every day since. Jared is truly one of the kindest folks that I have ever met, and much of the success of Crossplane and the community can be attributed to his leadership.

That positive feedback was enough to keep me contributing on nights and weekends as I graduated early from school, started a full time job, and got engaged(!). As I continued contributing, I started to build a relationship with Jared, Illya, and Nic, who had recently joined Upbound and was starting to take on more technical leadership in Crossplane (plenty more on this in a bit). I developed a deep respect for the way they approached software architecture and learned a great deal from them in a few short months. Eventually, Jared reached out about me potentially joining Upbound.

We were talking about Inception, right? Ah yes, this was the first decision point for me. Let me tell you, Bassam is a great leader, and as expected, is incredible at framing. Though extremely excited about the possibility of working on open source, and specifically Crossplane, full time, I was hesitant to join because I had only been in my current job for a few months, and I was concerned about lack of company diversity in the community. I can’t speak for Bassam, but from my perspective it seemed like he knew I had a “startup mindset7” because we jumped on a Zoom call and it took him about 5 minutes to convince me.

I remember the general theme of my conversation with Bassam. He didn’t ask me if I “wanted to become an old man, filled with regret, waiting to die alone8”, but he did ask whether I wanted to help create something new. Creating something new comes with inherent risk—you are forfeiting the certainty that comes with working on a known quantity—but the upside is, if I can lean into the dramatic for a moment, changing the world. In other words, creating something new requires “taking a leap of faith.” With a few sentences, Bassam had framed the decision in a way that made my answer obvious. However, though the immediate decision was whether to join Upbound or not, the framing took a deeper root that would impact how I would look at many future decisions.

A few weeks later, I was in a hotel in Seattle9 wrapping up a large Crossplane PR, looking forward to meeting the team in person the next day.10

This is a tangent, and I doubt you are even reading this, but if you are… Justin Honold, thank you for everything you did during this time. I’ll forever be grateful for your wisdom and kindness.

Building Crossplane Link to heading

Nic Cope had been hired at Upbound a few months before me. Nic and I have very different backgrounds. One such difference at the time I joined Upbound was that Nic had somewhat of a who’s who of prestigious tech companies on his resume, while I had, umm, done some stuff in college I guess? I had already interacted with Nic while working on Crossplane, but I remember meeting him on my first day at Upbound and immediately being blown away by his thoughtful approach to tackling complex engineering problems.

Shortly after I joined Upbound, Muvaffak would also start at the company. Nic, Muvaffak, and I became the team working on the “core” Crossplane components, designing many of the features that users know and love11 today, such as packages and composition. I learned so much from both Nic and Muvaffak during this time, and we had a ton of fun. Bassam and other leaders in the company entrusted much of the Crossplane package manager work to me, which turned out to be an incredibly formative engineering experience. I developed and refined my own approach to software architecture and implementation, being guided and course corrected along the way by folks who had decades of combined experience.

It was also during this time that I got involved in the upstream Kubernetes community. There are too many folks to thank for the guidance and mentorship I received12, but I would encourage anyone to apply to the SIG Release shadow program. As a result of my involvement through multiple release cycles, I learned a great deal about how to build open source software, and perhaps more importantly, how to build open source communities. I was fortunate enough to bring some of the same practices that I saw demonstrated in upstream Kubernetes to the Crossplane community.

My most significant involvement in the Crossplane project culminated with the v1.0 release, and the donation of the project to the CNCF.

Building Upbound Link to heading

In the Summer of 2021, Upbound was growing and the engineering organization was evolving. As part of this transition, there were opportunities for folks to take on new challenges and responsibilities. For the first two years I had been at Upbound, I had been solely focused on Crossplane, both the project and the community. However, I missed running production services and getting woken up in the night by PagerDuty.13 There was an opportunity for someone to step into a leadership position in product engineering, and I took it. I feel now, and felt then, extremely fortunate to have been trusted in this role, and I hope that all of the awesome engineers I worked with feel as though I made a positive impact.

We built a number of products over the next ~18 months, some of them more successful than others. We worked extremely hard and cared about each other—kind of the ideal scenario if you asked me. We did a lot of things wrong, a few things right, and a ton of things right after we saw that we had initially done them wrong. Some of the highlights include building a self-hosted version of Upbound (which I hope you’ll see again someday), launching the Upbound Marketplace, which has some pretty fun OCI goodness behind the scenes, and this week’s launch of the console and managed control planes.

We were also building the company, with head count more than doubling in size, and a bunch of new folks coming in and taking over functions that folks like me were previously doing poorly.14 I like to call this the “hiring professionals” phase. Folks like Sumbry, Kelsey, and Tom joined, each bringing a wealth of experience and defining what engineering, marketing, and sales look like at a successful enterprise technology company. They each brought in whole groups of other awesome new folks as well. I wish I could name them all here, but I’m already well over the limit of words that anyone would read about me just doing the normal thing of changing jobs. Y’all know who you are though.

While it feels like we built so much, it will likely amount to a mere fraction of all that will be built at Upbound. I won’t be responsible for most of it, but hopefully when folks go far enough back with their git blame they’ll say “this Dan guy made some sound decisions given the constraints at the time.” That’ll be enough for me.

Some Shout Outs Link to heading

I’ve mentioned a few of the incredible people at Upbound already, but I would be remiss if I didn’t take a moment to thank many of the product and engineering folks I had the privilege to work alongside for an extended period of time:

Thank you Muvaffak, for navigating every stage of Upbound with me.

Thank you Dalorion, for being the number 1 Crossplane user both before you joined Upbound and after.

Thank you Ezgi, for your methodical approach to problem solving.

Thank you Sergen, for your consistency.

Thank you Piotr, for your never ending excitement about all technology.

Thank you Alper, for thinking deeply and showing kindness.

Thank you Hasan, for being the definition of a professional engineer.

Thank you Taylor, for all the late nights and weekends. I hope that I was around long enough to experience the last of them at Upbound.

Thank you Aaron, for being customer 0, even before the product existed.

Thank you Michael, for being an excellent “middle stack engineer” and an even better human being.

Thank you Pete, for driving all the way to Durham just to get lunch with me and not to visit your family.

Thank you Matt, for being as cool as they come.

Thank you Bulat, for asking the right questions.

Thank you Shane, for letting the technology inform the design.

Thank you Yury, for your enthusiasm about the mission of Crossplane.

Thank you Daren, for your snarky function names.

Thank you Nathan, for dreaming about startups with me.

Thank you Jason, for being the best listener I know.

Thank you Alain, for your honesty and willingness to provide feedback.

Thank you Craig, for the beach chat.

Thank you Sam, for venting on Wednesdays.

Thank you Jean, for your pragmatism.

Thank you Matthias, for advocating for the user.

And thank you to Grant. You showed me the ropes.

Why leave? Link to heading

It can feel strange to paint a wonderful picture of a situation, then intentionally remove yourself from the frame. However, I’m not sure I would be able to leave Upbound today if the picture didn’t look as great as it does. I feel proud of what we have built, and I feel confident that the team will continue to build incredible products and technology (and likely clean up many of my messes along the way).

I’ve long been passionate about areas of technology that are not on the critical path for Upbound, namely hardware and low-level software. While I would love to explore them in the context of Upbound, I am much too pragmatic to venture down roads that wouldn’t be in best service of the company’s mission. Furthermore, though there is still much to build at Upbound, I miss the days of being in a (sometimes virtual) room with a small group of folks and betting on ourselves.

But the real reason I’m leaving, the reason I am walking away from a company, product, and group of people that I love, is framing. It’s the same framing that transformed the decision to join Upbound four years ago from questionable to obvious. I care deeply about an area of technology, and a set of problems that accompany it, and I’m taking a leap of faith.

What’s next? Link to heading

A few logistical items:

  • I will continue to be involved in the Crossplane community and will remain a maintainer of the project for the time-being.
  • I will not be at Kubecon EU in Amsterdam this year. There are a variety of factors contributing to me not being able to make it, but I hope to be back at Kubecon again soon.
  • We’ll see what happens with doc.crds.dev. If you have an opinion, feel free to weigh in here.

As for what is next for me… you’ll have to wait until Monday :)

  1. I let Katie (my wife) read this post before I published it, and she said the hook was much too dramatic. She’s right. She also has had her writing accepted by multiple publications. She’s the kind of person you listen to when they give you feedback on your writing. Yet here I am, existential drama and all, spilling this out on the public internet. It must be super frustrating to live with me… ↩︎

  2. Well this likely isn’t where you saw this going… ↩︎

  3. If you don’t believe this then you probably don’t have a lot of experience with how advertising works. ↩︎

  4. Yep, it was Kubecon. ↩︎

  5. If I had stuck with this motto it would be paying off quite nicely in the current AI climate. That being said, I made the switch to “big fan of computers and human beings”, and I don’t think I’ll be getting rid of it any time soon. ↩︎

  6. I have written a large portion of the Crossplane code base and I can assure you that documentation has been one of the hardest problems we have tackled. Thankfully we now have an awesome person (Pete) focused on making Crossplane docs better than they ever have been! ↩︎

  7. Well that felt pretty cringe to write down. ↩︎

  8. That would have been quite the Zoom call. ↩︎

  9. We used to have an office! ↩︎

  10. Shout out to Marques, who was onboarding around this time as well. I think you were the first person I had an extended conversation with, and troubleshooting why your XPS was overheating in your backpack calmed a lot of my first day nerves. Working with you at Upbound (and elsewhere!) has been a true pleasure. ↩︎

  11. Most of the time. ↩︎

  12. I mention a few in this post↩︎

  13. Alright, alright I’ll calm down. There is a certain joy in a well-handled incident though. ↩︎

  14. Special shout out to the marketing and sales teams. Also, sorry. ↩︎