Building useful software means understanding your users, knowing their pain points and mental models.
With consumer software, this understanding often happens naturally. Have a bad taxi experience? Build a ride hailing app.
But when you’re building the next generation of business software, an “enterprise operating system” that fixes process inefficiencies in areas from finance and supply chain to IT and sustainability, that’s a tougher challenge. And as developer Alex Monroe told me, it’s also exciting, “gives you a chance to learn about new domains, learn these new industries” and build some very cool products.
Alex Monroe is a Senior Software Engineer at Celonis and a graduate of Johns Hopkins University. He’s also an adjunct lecturer at UCLA. I spoke with Monroe while visiting the Celonis Los Angeles office, located in Silicon Beach. He shared with me why he became a software engineer, how he and the Celonis team are building an operating system for the enterprise and his one piece of advice for new software engineers.
The following is a transcript of the interview edited for readability.
Bill Detwiler: What made you want to become a software engineer?
Alex Monroe: It's funny, it was a little bit of impatience. I started off in biology and biomedical research, and we would set up an experiment and then you just go to sleep and you'd come back the next day to see if it worked or not. I was pulling my hair out. And so once I got to college and saw my friends doing programming where you just had, you tried something, instant feedback, I just was, "All right, forget the biology. I want to do this. I want to get that feedback loop instant."
Bill Detwiler: What was the first line of code that you remember writing?
Alex Monroe: It was definitely on a TI-84 calculator when I was bored in math class, but honestly, it's so busy. I couldn't even tell you what code I wrote last week. I don't know about the first one, but yeah.
Bill Detwiler: What do you like most about the work you're doing now?
Alex Monroe: Yeah, I really love that we get to try to meet the users where they are. We have these really complicated domains, complicated industries and the users, we need to meet them where they are and use their mental model. And a lot of times the data doesn't really want to cooperate. We have these really complicated, huge data sets and a lot of semantic meaning that is just captured in the industry. It's not captured anywhere concrete. So it's really fun to be able to dive in, learn these new domains, learn these new industries to try to put in the automatic layers and the tech layers that we need to actually capture those semantic meetings to actually get to the point where the user is, the same way the users think about the problem is the same way that way that we're presenting the answers.
Bill Detwiler: Yeah. No, that's really tricky too, to translate that technical into something, to someone who's not technical, probably who's using the product.
Alex Monroe: 100% and they're not technical like us as software engineers, but they're speaking another language. They're speaking either in terms of accounting or in terms of supply chains, which is also foreign to me. Right. So yeah, it's a tough problem, but it's fun.
Bill Detwiler: So what are some of the tough technical challenges that you're working out right now, but that are also interesting and exciting.
Alex Monroe: Yeah. I touched on it earlier, but really mapping this domain specific institutional knowledge that Celonis has for any of these problems that I've never worked on before whether it's in accounting, or supply chains and turning that into intelligence in a product that can be scaled. That's what we're working on this week. We're just trying to get it done. And it's nice to take a step back every once in a while, because it's a very hard technical challenge to basically deal with data that was never supposed to be meant for intelligence. This is just data, this is just raw data. And we're building intelligence on top that traditionally has just been you just needed to work in the industry for 20 years and we're trying to encode that in our systems. And that's just incredibly difficult and we're working on it.
Bill Detwiler: But it makes you feel good to know that you're climbing that mountain. There are still mountains out there that no one's explored yet.
Alex Monroe: Yeah. Oh, absolutely. And as a software engineer you forget about it because software engineering is becoming just ubiquitous. But at the same time, there are a lot of industries that we as engineers have no vision into. Have no insight about. And the nice thing about Celonis is this execution management software is going to be ubiquitous. And then we start getting windows into different areas where we can help, right. Where we can build cool, useful products. It's really exciting.
Bill Detwiler: How have your past experiences helped you to prepare, to overcome tough technical challenges?
Alex Monroe: I worked on digital advertising tools for a few years. And that was a real microcosm of what I was talking about, which was that video marketing is an industry that's a hundred years old. And as a software engineer, you come out of college programming. That's what you know. So you have no idea about marketing at all, let alone video marketing, let alone digital media. So in order to build something useful, you can't just have your algorithms and say, "Hey digital marketing manager, come to me and I have these great algorithms for you." It's just never going to happen. You need to figure out how the marketing managers are thinking about the problem and then come to them, make sure that you match their mental model, which is really hard.
It's not way harder than I ever would've thought, but going through that exercise really taught me how to dive into a particular domain. How to dive into a particular domain, learn why things are done the way they are, why the mental models that people have exist in that way. And then once you have that, then you can figure out how to start mapping the underlying data and the more low level ideas to these 100 year old structures of how things are done.
Bill Detwiler: And so you have to become not an expert, but you have to understand what the user is going through and how they need the product to work too. That makes it exciting and interesting.
Alex Monroe: Yeah. 100%. There's that aha moment, I think, when you work on enterprise software for where after a few months of really diving into the domain, you realize exactly how painful it is for the end user. Which is weird on the consumer product. Maybe that pain point instantly, somebody just describes you with some problem and you go, oh yeah, I've had that happen to me. But I've never had any inefficiencies in my supply chains. So you need to get to that aha moment where you go, oh, that's why their job takes a week and how we can make it take five minutes.
Bill Detwiler: And tell me a little bit about how the team works together to solve those tough technical challenges.
Alex Monroe: Yeah. The team is great. And I think the biggest thing is the respect that we have for each other and the respect that permeates the workspace. And the reason that's important is we feel really comfortable throwing out ideas and questions. Right. It's really easy to take for granted when you are on a team like that. But as soon as it becomes taboo to ask a stupid question, then all of a sudden the communication just grinds to a halt.
We need to be comfortable proposing crazy things and seeing what sticks.
So for us, we're trying to learn. That's this whole thing. This whole product that we're trying to build, all the usefulness is we need to learn. We need to learn in order to build. So we need to be comfortable asking the questions. We need to be comfortable, proposing crazy things and seeing what sticks. And if there's no respect in the workplace there in the communication, just grinds to a halt. And if there's no communication, there's no product. So, yeah. I think that's it.
Bill Detwiler: What advice would you give to a new engineer who's starting out in their career to prepare them to solve tough technical challenges like the ones you've described?
Alex Monroe: Yeah. The number one advice I can give is to ask questions.
And I can tell a story. I helped teach a computer science class. And one of the other folks that I teach with was telling them, it was one of the first lectures and he was going on and on about server design. He goes, "What if your server has a thousand QPS, what if it has a million QPS, what are all the considerations you're going to have to have?" And then he sits down and the students are all writing down and I stand up and I go, okay, who can tell me what QPS means? Nobody, right? And I'm like, "What are you guys doing?"
We as software engineers have created these institutions, just the same thing as accounting or supply chains. And so we speak our own language. And this is something that we forget.
So as senior engineers, we just throw these terms around, we throw ideas around that. We just assume everybody knows, and then you have these junior engineers who are just scared. Oh boy, I better look this up.
Bill Detwiler: Just better look this up. Right?
Alex Monroe: Yeah. But it has nothing to do with them. It's all it all has to do with us. We're so in our own heads that we just forget. So that's what I just try to tell every engineer who's starting out, ask questions. Because I promise you, it has nothing to do with you. It's only because I'm speaking of foreign language that you're not picking it up. so, yeah.
Bill Detwiler: So ask those questions and just so I'm clear, queries-per-second?
Alex Monroe: QPS. See, look at that. I did it. Yeah. I did it right here. Even after telling you the lesson. So, yeah, queries-per-second.
At Celonis we’re building a new type of enterprise technology, called execution management. And, we’re recruiting the world’s best engineers to do it. Whether you’re a frontend or backend developer, full stack engineer, data scientist, DevOps specialist, QA analyst or engineering leader – we have technical challenges that need solving.
To learn more about how we’re pioneering advances in AI, machine learning, automation, analytics and data mining, and to see current engineering job openings, visit Celonis Engineering.