Hello! What's your background and what do you do?
I’ve been independent for over eight years, and come from a very hands-on background. I taught myself how to code around when I was nine years old, and have been enamored with technology ever since. Between then and now I’ve served in Unit 8200, worked in IBM, and was the first employee in a startup. I got a bachelor’s degree in CS from Israel’s Open University while working a full-time job.
Initially, when I struck out on my own, I used to do high-end software projects for startups here in Israel. That covered most tech areas and industries you can think of, and I had years where I got paid to write code in over a dozen different programming languages. With time I’ve transitioned to helping tech companies worldwide create world-class engineering teams.
How was your transition from software development to management like?
My first leadership experiences were very informal, such as receiving the responsibility to lead projects with a couple of teammates, often spanning 3-6 months. In a young startup environment, these were areas where someone was needed and I was asked to do it. It did not entail any real training or discussion, and I had to wing it. I think the first instance of this happened just a couple of years into my professional career.
In my consulting career, I’ve managed for periods of time organizations ranging from a small team to several teams and dozens of engineers. Being there as a consultant, there’s no hand-holding—I was being brought to hold others’ hands! Luckily, I’ve been able to invest a lot in my own personal growth along the way, such as working with the finest coach money could buy. This, along with my background being of self-education, has made me believe that we shouldn’t rely on our managers to be active in our growth. Instead, I advise managers and executives to demand feedback, mentoring, and coaching.
What does your day-to-day work look like, and what motivates you to do it every day?
I believe that in this regard I’m completely different from “regular” engineering managers. As a consultant, I regularly work with up to a dozen clients or so at the same time. For most, I only serve as an advisor and coach. This leads to a dichotomy where I spend my time working “in” the business and working “on” it.
Working “in” the business is my regular calls with my clients, who are usually CEOs, CTOs, and VPEs. Most days I have 2-3 scheduled calls where I’m helping them tackle their tactical day-to-day problems as well as taking time to consider the long-term strategic issues that they should be working on. I have a system to track what each client’s assignments and commitments are, so I can keep them accountable and ensure that we maintain the right momentum to achieve our goals. This probably accounts for 50% of my weekly work time, especially as I work with clients worldwide and try to be flexible with office hours.
When I work “on” the business, on the other hand, this is the regular sort of tasks you’d expect a one-person business to look like. I follow a strict content schedule with my weekly article, podcast, and newsletter, along with general time for thinking “big” and creating content (such as my recently published book, The Tech Executive Operating System).
This time also includes hundreds of calls a year with leaders throughout the tech industry of companies of all sizes. I do what I do because I love working with these people and talking to them. That’s why I’m always hitting up people who write to me about the success they’ve had with my book and approaches to chat and hear firsthand what they are going through. I’d also say that I have roughly one interview/podcast/talk a week, which I extremely enjoy as it’s another way to talk to interesting people. The only thing I miss, though, is that I hardly get to code nowadays. When I do, it’s mainly when I’m poking around in personal projects.
What are the biggest challenges you've faced so far? What did you do to overcome them?
One challenge I’ve seen again and again is one I’ve already mentioned above: engineering management is not treated with the professionality it should be. People are spontaneously promoted to management roles, without the proper training and support along the way. This is partly the reason why I do what I do: I want to set up managers to succeed, no matter how much background they’ve already got. Whenever I hear from someone telling me things like “your latest podcast was more helpful than the last five years of feedback from my managers,” (that’s a quote!) I know that we’ve still got a long way to go.
The biggest challenge I’m facing, though, is one that virtually all of my executive clients talk about: teams getting “slower” as they grow. The reasons and solutions differ from one company to the next, but there’s no denying that even with all the extra tooling and advancements that are available to teams nowadays, we still see teams complaining about mounting tech debt and “legacy code” even after as little as a single year. My general approach is one where we go back to basics and rewire organizations in a way that unlocks the ICs’ full potential. No other way seems to work.
What has been the biggest surprise so far? Something you didn't expect?
I used to think that engineers are engineers, no matter where. I was surprised to see how different cultures can vastly impact the way things are done in companies. I saw that things like the Israeli chutzpah that I take for granted made people from Asian cultures cringe. I was caught off guard when I saw that CTO forums in Sweden raise completely different questions than those in the UK or Italy. I’m not talking about stereotypes, but about cultural differences that translate into different mindsets. These make international organizations more complex to manage, but also a lot more likely to create something wonderful and novel.
What's the best advice you've received about being a manager?
Teams and organizations often go through rapid growth in tech. Their managers have to grow even faster so they don’t become a burden or create bottlenecks. Never stop investing in your own self-development to ensure this. I find it liberating to accept that we’re never really “done” learning—none of us are. Just like we don’t expect ICs to declare they’ll never learn another framework or programming language in their careers, we shouldn’t expect to stop evolving.
What do you tell developers who are considering making the switch or new to the role?
As I mentioned above, such a move should be treated with the right professionalism to succeed. Realize that this is a whole new and different profession that you will need to learn and become good at. Practically, I highly recommend setting expectations with your managers about what it means to be a manager in your company—the roles tend to vary quite a bit. And whatever you do, make sure that you have a good support system, even as simple as a few friends who are already managers or joining one of the many great online communities for managers. Don’t “go it alone.”
Final call to action! Where can we go to learn more about you?
I cover a lot of these topics in depth in my book, and you can get a free sample chapter here. Other than that, I have a weekly newsletter, the Tech Exec Podcast, and I tweet a bunch. I really do love hearing from people, so feel free to reach out: email@example.com