One year ago today I joined Temporal as the Director of Education. So, how’d the last year go?
Pretty well overall. I built an education team and function at a startup. I developed a program plan, helped build plans for a couple of courses, learned about the platform, wrote a ton of code, implemented a learning platform and an LMS, set up some metrics, hired some people, and did two performance review cycles. And I learned a ton along the way. Our customers are building some pretty cool apps.
Temporal is an open-source platform that lets you build complex workflows in the programming language you already know, without writing complex retry logic or tons of callbacks. If you’ve had to write a process where you have to talk to multiple systems, or had to create processes that run for months or even days that still require interaction from users, you should look at Temporal.
Temporal’s leadership believes in developer education and is making significant investments in docs, developer relations, support, and education. My task when I joined was to build out an education function that helped developers build applications with Temporal. The documentation function was already established when I got there, but there was a lot more to do.
The thing is, in order to teach Temporal, you have to learn Temporal first, so that was the first challenge. I started out with one direct report who started a couple of weeks before I joined. He’s an excellent teacher and trainer with many years of experience. Together, we worked out the plan for our first course using the performance-based learning approach, where we defined competencies and outcomes and then aligned the contents to those outcomes. We then both had to start really learning how Temporal worked. We watched videos, interviewed the experts, and started developing our own mental models. I worked on building a couple of apps, while my teammate started building example exercises and content for our first course.
When I joined, I had an idea of what Temporal could do, but the more I dug in, the more I saw how powerful it is. Over my career, I’ve built complex apps that talked to multiple APIs in sequence, and the code was always a nightmare. What do you do when one API call works but the next fails? You have to roll things back, and the logic gets more difficult. Temporal’s model lets you write workflows that are easier to follow, and thus, easier to maintain. It’s a common enough problem that we’ve got some pretty big customers using us either by self-hosting our open-source cluster, or by becoming a customer of Temporal Cloud, our SaaS offering.
With a clearer understanding of the product and our customers’ problems, I built out a comprehensive program plan, with program outcomes that we’ll use to align the rest of the content we create. These program outcomes represent the skills and knowledge we believe developers need to have to build successful Temporal Applications. With help from my manager, I then started building a more specific strategy for how Education works at Temporal, and how it fits in with the other functions. This was a fantastic learning experience for me.
I then built out our learning site and started fixing up the introductory tutorials with help from the documentation team and other internal subject-matter experts.
While I was doing that, my teammate built Temporal 101 in Go which he delivered live at our Replay conference to around 100 developers. We then released the course in a self-paced version in October with videos and hands-on exercises. Over 1000 developers have enrolled in the course since, with more each day.
Another member joined the team in October to help us move faster. I’d worked with her previously and was delighted to have her join, as she’s a fantastic teacher. She got up to speed and rewrote our getting started tutorial for TypeScript which quickly became a popular piece of content. Last week she delivered a TypeScript version of Temporal 101.
I hired a third team member in January of this year who I’d also worked with previously. He’s learning his way around the platform and our SDKs and he’s got some great things coming soon, especially if you like Java. And we’ve got a Temporal 102 course on the way which will dive even deeper into the core concepts.
In addition to producing courses and tutorials, I’ve spent a lot of time writing example code in Go and Python this year, two languages I don’t have a ton of experience with. It’s been challenging, but the engineers and solution architects at Temporal are incredibly smart and very willing to provide help, insight, and feedback. Since we’re still a small team, it’s important that I’m hands-on with the technology so I can make the right kind of decisions for our curriculum going forward. The problems Temporal customers face are complex, and so we need to be able to meet them where they are.
This role challenges me to use all of the skills and experience I have, from content creation to people management, while giving me the opportunity to level up in other areas I’ve not experienced yet. I’ve received excellent positive feedback on our work from customers and staff, and I’ve identified some areas for growth that I’m excited to tackle next. The other functional leaders I work with are experienced and talented people who push me to be better every day. As Chad Fowler put it in the book The Passionate Programmer,
Always be the worst guy in every band you’re in. - so you can learn. The people around you affect your performance. Choose your crowd wisely.
This next year should be even better. We’ve got more courses planned in more languages, and I’m thrilled to continue learning and growing with the exceptional folks across the organization.