We sat down with Steven Butt, Senior Software Engineer in our San Francisco HQ, about the challenges he works on every day and the most interesting things he’s learned in his 3+ years at MuleSoft.
Question 1. Tell me about what you’re working on at MuleSoft.
I’m a full-stack software engineer, and in my over three years at MuleSoft, I’ve worked on a multitude of teams and projects. This work includes everything from front-end UI development, to creating back-end API services, to DevOps work building continuous integration pipelines and exploring the use of Docker containers to improve our operations.
Right now, I’m focused on building out and improving our Anypoint Platform UI. A while back we switched our primary front-end development framework from Angular to React to improve reuse of UI components across the different products in our platform, as well as to simplify the process of building UIs by taking advantage of React and Redux’s unidirectional data flow for state management and rendering components. We’ve successfully rolled out several parts of our UI built on React and we’re producing more all the time. The next steps will be to continue building out our library of reusable components to decrease the amount of time it takes to produce new interfaces, as well as find ways to continue to improve performance.
Question 2. What was your path to becoming a Senior Software Engineer?
Well that’s actually a fairly interesting story because I started off my career in hardware and not software! I graduated from UCLA with a degree in Electrical Engineering and went to build microprocessors (CPUs and GPUs). I also spent time creating software tools to make it easier for other engineers to build and optimize the chips to reduce power consumption or increase performance. After a number of years, I worked my way up the engineering ranks and even became a manager for a small team. Eventually, I decided that I wanted to leave the hardware field and pursue a career in full-stack software development.
Question 3. Why did you choose to come work for MuleSoft?
The main reason that I chose MuleSoft is that I wanted to gain hands-on experience using the most cutting-edge software technologies around and be surrounded by extremely smart, talented people that I could learn from.
Question 4. Take us through a typical day in the life in your role here.
Before work in the morning, I wake up and check my phone for any important emails or Slack messages that came in overnight from our Sales and Marketing teams around the world, or from the other engineering teams in Buenos Aires. Then in the office, I have a mix of meetings, interviewing candidates (come work with us!), or programming either on my own or with other team members. I’m actually on two different teams, so I have two daily scrums as well. The first is the Anypoint MQ team, which is an individual product team, and is about six people split between San Francisco and Buenos Aires. Anypoint MQ is our enterprise-grade cloud messaging service. Then I’m also on the UI team, which is a more cross-functional team, to discuss how we’re building UIs across the entire company, and our common frameworks methodologies, etc.
Question 5. What teams do you work with most, and how do you collaborate?
Most projects require coordination with at least a few different teams to bring them to a completeness and quality level for our production platform. For example, let’s say that I’m working on some new product feature for Anypoint MQ, which is our enterprise-grade cloud messaging service. First, I’ll have to work with our user experience designers and product managers to get the look, feel, and utility of the UI correct for our customers. Then I’ll need to work with a back-end team to implement the product features, as well as our Core Services team to get the authorization model right so that only properly authorized users can consume the service or make changes. Finally I’ll need to coordinate with our DevOps team to get the feature into our CI pipeline so that all of the different pieces that comprise the service are built and deployed properly.
Question 6. What’s your favorite activity outside of the office?
I grew up playing video games, which is one of the things that led me into engineering in the first place. It’s something that I still enjoy today, whether it’s playing an old Super Nintendo classic on an emulator or the newest AAA PC/console game. Also, my wife and I are really into exploring the amazing food scene in the Bay Area. We often dine out at the best new restaurants in town or cook a new recipe at home. In fact, one of the ways I was able to woo her when we first started dating was to write a program to get us reservations at a very popular restaurant in town 😉
Question 7. What’s your proudest accomplishment in your role here so far?
One of the more amazing things I worked on recently was a team hackathon project to show off the power of our platform by bringing an extremely old piece of technology, a Commodore 64, into the modern age of computing. We started with just the Commodore 64, a computer system from 1985 that has no capability to connect to the Internet, and paired it with a Raspberry Pi and a server on our cloud platform that ran Mule Runtime Engine to allow the Commodore 64 to receive and process HTTP API requests. Once we did that, the possibilities of what we could make the Commodore 64 do really opened up. It can send and receive Twitter updates, check the weather around the world, and even control Philips Hue internet-connected light bulbs! Check out my GitHub profile to see other projects I’ve worked on.
Question 8. What’s the latest technology you’ve learned to use?
Recently I got to learn Docker, which was pretty cool. It’s now a mandate at the company that our software needs to run on any type of data center infrastructure and we decided to use Docker containers as the platform for simplifying that process. Theoretically it should make life easier for customers deploying our software themselves as well as reducing costs and simplifying our own cloud operations. The real interesting part here is that with this technology engineering roles are starting to blend together. It’s becoming increasingly rare to have people solely dedicated to back-end, front-end, or operations work and instead any individual engineer might have to go full-stack and contribute in all of these areas. That’s pretty exciting because it makes people more productive and agile not to have those hard boundaries. For example, I can build a new Docker container with a new version of my code and deploy it on my own instead of having to ask a DevOps engineer to do it for me.
Question 9. What is your favorite thing about working on the Engineering team at MuleSoft?
I love that I’m constantly challenged to learn new things and have the opportunity to work with such amazingly talented and interesting people.
Our Engineering team is growing! Check out our open positions and see where you can make an impact.