20 Years of Software Engineering with Malte Ubl
Learnings from working eleven years working at Google, what tenure teaches you, and the similarities between framework and product teams.
👋 Hi, this is Gergely with a subscriber-only issue of the Pragmatic Engineer Newsletter. If you’re not a full subscriber yet, you missed the second part of Inside Facebook’s engineering culture and the one The tech boom potentially being over and a look at what companies are still ‘business as usual’ in this turbulent market. Subscribe to get this newsletter every week 👇
For this edition, I caught up with a very impactful software engineer. It’s no exaggeration to say his work directly affects the online experience of billions of people – right down to how fast a large number of webpages take to load.
Malte UbI has been a software engineer for more than 20 years, He spent 11 years at Google, starting as a Software Engineer III (L4), was promoted several times, and then left Google at the Principal Engineer level (L8).
At Google, Malte built a framework called Wiz that powers Search, Gmail, Photos, Drive, Meet, and other consumer UIs. He was central to creating AMP, and then applied the lessons from it to the Page Experience ranking system based on Core Web Vitals, helping to make the web faster in the process.
A notable announcement he made was that Google Search was to stop supporting Microsoft’s legacy web browser, Internet Explorer 11, late last year. This announcement caused a ripple effect, with other companies quickly following suit.
Malte recently left Google and joined Vercel, a platform which enables frontend teams to work with an improved and smooth workflow.
I grabbed the opportunity to catch up with him and talk about the learnings from his career, what he found surprising about working at Google, his thoughts on working on frameworks, why he decided to leave Google for a fast-growing scaleup and what’s different about working at Vercel compared to Google.
Visualizing Malte’s career so far, this is how it would look like:
In this issue, we cover:
Quick questions. Including what is the best thing that happened in software engineering since Malte entered the software industry.
Eleven years at two companies. Learning from this time.
From a small company to Google. What was a thing where Google stood different from the previous places?
Eleven years at Google. On promotions, career progression and what tenure teaches you.
Infrastructure vs product engineering. What overlaps do they have?
From Google to Vercel. Why make the move, what’s exciting about Edge computing and what was surprising to observe at Vercel?
1. Quick questions
I asked Malte three quick questions to warm things up.
1. What is your favorite programming language and why?
‘Smalltalk. It’s the first language I learned well, and I still think the language has good ideas. I picked it up when working an after-school job in a small software shop, when I was 14 years old in the mid ‘90s.
‘Even today, I’d recommend the language as one to start out with. It’s a good environment to explore things interactively and to get quick feedback. You don’t have these ‘traditional’ cycles where you write code, then compile it, then run it, and then if it doesn’t work you add logging statements.
‘The language has disappeared over time, though. The company developing the language was good at engineering, but bad at marketing. Sun beat them with marketing and Java took their market.’
2. What is a hard problem in software engineering that is still not solved?
‘Automated testing, especially for higher levels than unit testing. If you need to test anything that goes beyond a very well defined boundary, you’ll get frustrated.
‘For example, whenever I am working on a backend, this problem might come up as it might need an end-to-end test, or I might want to completely fake it out, or mock it out. Doing so is never straightforward. I’ve never seen creating non-trivial automated tests make anyone happy.
3. What do you think is the best thing to happen in software engineering since you entered the industry?
‘Twitter, meetups, and conferences. It was around 2009 — 13 years ago — when the JavaScript community became a thing. Before that time, people wrote JavaScript in isolation. However, off the tail end of the AJAX revolution, JavaScript started to gain momentum, and a community started to form around it.
‘Back then, I wanted to do a meetup for JavaScript developers. But then I had the problem of how can I find anyone in my city interested in the same problem space? 15 years ago, there was no good way to find these people.
‘This was the time when Twitter was becoming popular, and it helped create this early JavaScript community. People could discover like minded others based on professional interests. Twitter made all of this not just possible, but also easy.’
2. Eleven years at two companies
‘I spent the first nine years of my professional career at one company in Hamburg, Germany. This might sound like a long time, but, as context, this was a more common model in Germany. I went to a private university and the company paid my tuition. In return, they expected me to stay for a few more years after graduating.
‘I started working at this company called Schaffhausen ITC Solutions when I was 18, and still in high school. I worked throughout my four years of college, and then four more years after that.
‘One of my biggest regrets is that I never had time off work. I’ve been basically continuously employed since aged 14; working part-time through school, and with this first job since college.
‘Schaffhausen ITC Solutions was an agency. I was the second employee in their web unit. This group grew to about 30 people by the time I left.
‘Something I learned there which helped my career later on, was sales. I was not a salesperson, but it was a small enough company that I had to participate in this process. This is one advantage smaller companies have, versus ones with hundreds of people.
‘At smaller companies, you get to play different roles and try out different things. You learn things quicker than if you’re working in a corporation with a very well-defined role, and one that moves slowly.
‘Seven years later, I decided it was time to move companies. I wanted to do more engineering work and joined this digital agency called SinnerSchrader. This was in 2009, when the JavaScript community was taking off. I managed to convince my manager that we needed to fly to Washington DC to attend the first ever JSConf. At the event, I met another person from Germany and we decided we’d organzie our own conference in Berlin.
‘The JSConf in Washington DC was during the spring of 2009 and we organized the first JSConf in Berlin in November 2009. I was then involved with organizing all of the JSConfs until the last one which was in 2019.
‘I became very involved with the JavaScript scene through JSConf. By the time I moved to San Francisco, I knew more people there through these events, than I did in Hamburg, Germany.
‘One thing I learned from organizing conferences is working under a stressful timeline. A conference has a fixed “ship” date, and you have to ship whatever you have on that date, whether you are ready or not.
‘However, organizing conferences also gives a sense of iteration. Every year, you get to start from scratch and redo how you organize the conference. We talk a lot about iterating in software and doing rewrites. With a conference, you actually get to do all of this.’
On becoming a manager
‘I became a manager at my first employer, and ended up managing the whole web unit. Becoming a manager was basically trial-and-error. One day I was told I’d become a manager. I now joke that my entire career has been a seven-year oscillation between management and IC (individual contributor). I always saw management as a necessary evil — as in someone needs to do that job — more than a passion.
‘My view on management is that moving into management should never be bundled with a promotion. Becoming a manager should always be a sideways move. This is a benefit of larger companies; once people move into a management role, if it doesn’t work out, they have the flexibility to move back to being an IC.
‘For small companies, this can be challenging, as there’s often a pressure for you to keep doing the manager job, even if this position does not sit well with you.’
3. From a small company to Google
‘I joined Google in Hamburg, Germany in 2010. I talked with Google a few times before, and also failed interviews once before. The second time, I got the job. I was excited to start, but my start did not go as I’d planned: