An Open Source Career with Tom Hatch (2/2)

Welcome to episode 155 of the Nerd Journey Podcast [@NerdJourney]! We’re John White (@vJourneyman) and Nick Korte (@NetworkNerd_), two Pre-Sales Technical Engineers who are hoping to bring you the IT career advice that we wish we’d been given earlier in our careers. In today’s episode we share part 2 of our interview with Tom Hatch, digging deeper into what it was like to maintain an open source project and its ecosystem, learn about life as an entrepreneur, and what it was like to have his company acquired.

Original Recording Date: 11-12-2021

Tom Hatch is the original creator of Salt, eventually founding a company called SaltStack, which was acquired by VMware in 2020. Catch part 1 of our interview with Tom in Episode 154

Topics – Learning the Open Source Community, Open Source Contributions as Career Accelerators, Two and Three Dimensional Thinking, Advice for the Entrepreneur, Getting Acquired

3:08 – Learning the Open Source Community

  • When Salt began it was just Tom. He had the most commits to the project until around 2019 but had almost completely stopped working on it in 2015.
  • Tom built the vast majority of the core features in Salt from scratch (architected and built). The contributions from others have been astonishing.
    • For a long time it was just Tom running the show. But he had the opportunity to work with some amazing engineers at SaltStack who did amazing things.
  • The open source community was new to Tom, and he had not worked on other projects before Salt.
    • Through 2011, there were not a lot of contributions to the project despite people starting to use it.
    • Salt began in February 2011. Tom did a podcast in November 2011 and received only 11 contributions from other people to that point.
    • By the end of 2011 the project had contributions from over 110 people. A little bit of marketing and exposure created the spike.
    • Suddenly Tom was reviewing code and trying to figure out how to communicate with the contributors.
  • Was it a challenge to protect the goals for the project while still being collaborative and respectful to contributors?
    • Tom had some self-confidence issues at first. He saw himself as a guy cranking out code, not believing he knew that much. As a result, he may have accepted more advice than he should have from community contributors.
    • Tom advises that in all of this (i.e. working we collaborators in this way), we should be diplomatic and understand what changing one portion of the code might break.
    • You can very quickly become a slave to the community. Many open source leaders have talked about this. There are so many voices wanting you to do certain things you get scared to say no.
    • Even if you are saying no, you spend your days looking through pull requests. Tom remembers days when there were over 100 pull requests.
    • While the code contributions were helpful, he wanted to spend more time driving the project forward.
  • Much of this experience shaped his view of what he feels open source should be. In the early days open source followed the Unix philosophy. For example, think about how Apache got started. Open source is built in a distributed way.
  • In the last 10-15 years, there has been venture capital and corporate investment into open source. We’ve started to develop open source through a corporate lens because of the size and scope of projects out there.
  • Tom’s view is that we need to re-think how we write highly distributed software.
    • One of the projects he is working on inside VMware is called Idem.
    • This is based on POP (plugin oriented programming), a construct within Salt.
    • The idea behind the project is that we need to free up engineers to innovate and keep building without getting bogged down in community governance or politics as projects get larger.
    • With POP, it’s about how code can be merged outside the dependency library model. There are still some downstream dependencies with POP, but it allows people to attach to and extend your software without needing to talk to you. Someone can take the plugin interfaces that you create, write their own code to merge into your software, and get the full benefit of their work.
      • This allows the person who wrote the software to own it instead of it becoming part of someone else’s project.
      • Contributors will come and go. Accepting contributions also accepts a certain liability.
      • From a POP perspective, Tom is trying to allow contributions to his software but have other people maintain the code. He can mainstream it into his software after it has established itself on its own merit.
      • This is similar to how Unix worked a long time ago.
      • We’re writing open source software inside of a cathedral now instead of a bazaar, and we’re making the people creating the software slaves to their own community.
    • Tom has seen a lot of friends go nuts maintaining open source projects.
  • Nick’s experience with open source contributions is limited to his work on Mangle documentation.

13:47 – Open Source Contributions as Career Accelerators

  • Tom shares a story of a job interview. The interviewer asked him how to do something specific. Tom referenced how it could be done with a specific module and then shared he had written it himself.
  • One of the interviewers realized they were already using Tom’s code and shared that with the hiring manager. Tom had an offer in his Inbox before he arrived at home, which was 30% more than what he was making at the time.
  • You can definitely make career improvements by contributing to open source, but a lot of people are contributing to open source.
    • What you get by contributing today has more to do with your exposure to getting a good code review, learning how the process works, and getting your hands dirty with code.
    • Ten years ago if you committed to open source projects it would make you stand out.
    • But these days it’s less of a wow factor than it used to be.
    • If Tom can see someone has contributed to a lot of projects and can then go look at the person’s contributions to determine competence.
    • In the same light, someone can look at your activity on GitHub (including conversations) and see indications of your character.
    • When you contribute to open source, remember that you are there to learn and grow. You’re not there to be smarter than everyone else or boss everyone around.
    • Be careful what you post in publicly available forums because it is a digital trail for your personal brand.
  • Tom has spent time doing acting during his career. There’s a video of Michael Caine giving an acting class in the 90s in which he says "establish a personal brand."
    • Movies and TV shows look for a specific personality to fill the role. If you have a really good brand, those making decisions will think of you for the role.
    • When you write open source software, you are establishing a person brand that communicates you are a certain type of expert and that you approach problems in a specific way.
    • The brand you create is something that will carry you forward in your career.
    • Hiring managers aren’t looking for just another run of the mill engineer. They know there are a specific set of problems to solve and need people who understand the problems and can function inside the roles.
    • You want to be hired by companies that are looking for a brand and not just a pile of engineers. You want a company that recognizes the brand you’re able to create.
    • But don’t let your ego get in the way.
  • Tom loves working for people who know things he doesn’t know. He loves working with people who want to learn, and he loves working with people who make good friends.
  • Our intelligences are spheres of things we know. Tom understands he has a lot to learn and is deeply interested in others’ knowledge outside of his scope. Intelligence is coming together in a collaborative way, understanding we are here to stand together and lift.

22:29 – Two and Three Dimensional Thinking

  • Tom did a session at VMworld 2021 called The SaltStack Story. You can watch the replay here.
    • It requires you create a free Customer Connect id if you do not already have one.
  • Tom did a talk at SaltConf 2021 about open source in the enterprise, and it encompassed 2 and 3-dimensional thinking.
  • We need to account for a very big ecosystem.
    • Take Tom’s example of Star Trek II: The Wrath of Kahn.
    • Someone thinking 2-dimensionally has the blinders on and is hyperfocused on things directly in front of them.
    • To think 3-dimensionally is to look at things more broadly and build things that function inside of a broader ecosystem. We need to think 3-dimensionally about open source software because they are critical to driving software adoption in the modern world.
    • If you’re creating proprietary software and not seeking an understanding of how open source software is driving people to your proprietary software, you may be missing the boat.
    • Consider overall strategic objectives of your software solution and the components of that objective which need to draw people to the solution in an open source way as well as in a proprietary way.
    • You must understand the nature of open source development vs. proprietary development.
      • Tom makes an interesting point about the year of the open source desktop.
      • The overall product strategy must take into account multiple veins and aspects of users. It’s not just a user problem. It’s an ecosystem problem.
    • We need to build software that builds communities and ecosystems. This is 3-dimensional thinking.
      • Who do I need to address with open source software?
      • What communities do I need to interact with?
      • What do I need to build on top of?
      • What are the strengths and weaknesses I get from utilizing this open source software?
      • Who are target customers driving this development toward?
      • How do I compensate for the liabilities I inherit from using open source?
    • The companies doing this well are the trillion dollar companies. That is the huge shift Microsoft made. They embraced open source, drive developer adoption, understood working in a larger ecosystem, and were ultimately able to accelerate their own solution architecture development by adopting open source. They created trust in markets where it did not exist before.
      • Apple may not say it, but they use tons of open source software inside MacOS. They did it with an understanding of the liabilities they inherited.
  • Nick thinks of participation in communities outside of your day job as analogous to the freemium version of a software package that drives you toward the paid version (a new job) – which is 3-dimensional thinking.
    • Your contributions make a brand that establishes you as part of a ecosystem which drives your career forward in a highly productive way.
    • Going to work and doing only what you’re told to do is 2-dimensional thinking.

31:31 – Advice for the Entrepreneur

  • If Tom could go back and give himself advice, he wouldn’t say anything. He needed to be on the path he was on and is grateful for the struggle.
    • This has given Tom more than any monetary success ever could have.
    • He is at peace with his struggles and his mistakes.
    • One of the most important parts of being human is understanding the struggles you have can be some of the most beautiful things in life.
  • Tom runs into a lot of people who are / want to be entrepreneurs.
    • He routinely provides advice to these folks, encouraging them to call him in a month. They almost never call him back, and none of them got anywhere.
    • You need tenacity and to accept the fact that others may think what you are doing is nuts. It also might actually be nuts.
    • Tom is working on a few things right now where he feels like he’s nuts / has people tell him he’s nuts.
  • Roll with the punches and walk through situations. Accept that things will not go the way you want all the time, and be willing to learn and grow.
    • Always be willing to look at things from a different angle.
    • Where you think you’re going isn’t where you’re going to be. Stop thinking it is.
    • Have goals, a vision, and a plan. Drive toward them. Accept that waves will push you in different directions.
    • When you go in a different direction, accept it, and understand where you are. Look around. Realize you know more about the lay of the land. How will it change your thinking? * What new opportunities are out there now?
  • While you build, don’t close doors.
    • We write software that makes it hard / blocks us in. Take 30 more minutes and consider not closing that door.
    • If you leave those doors open, you’ll have more opportunities, and you will be able to see the big picture. That’s what you have to do as an entrepreneur.
      • Listen to Tom’s observations of entrepreneurs who missed the big picture but had a win with their first venture.
    • If you want to be a good entrepreneur, don’t bet on luck.
  • Every time something goes wrong, there is some good in it. You have to find it and figure it out…because that is where the real opportunities are.

37:50 – Getting Acquired

  • Tom explains to his daughters that his job as a dad is to do everything he can to raise them so they can be self-sufficient humans with self-confidence.
    • Nothing will make him happier than for them to have their own lives.
  • With SaltStack getting acquired, Tom’s baby has gone off to college. It is able to run itself to a large degree.
    • Tom is still doing a ton of work around SaltStack these days, but he doesn’t have to be as hands on with day-to-day functionalities.
    • His goal, like a good parent, is for the project to not need him and be self-sufficient.
    • This opens up opportunities within VMware for Tom to "have more kids." He’s able to work on things like POP and Idem as mentioned earlier that enrich the Salt ecosystem.
  • Tom is not a big social media guy, but you can find him on LinkedIn or as thatch45 on most social media platforms.

Contact us if you need help on the journey.

Leave a Reply

Your email address will not be published. Required fields are marked *