This month, Steve Eddins is retiring from MathWorks after 30+ years on the job. When he joined, MathWorks was only 10 years old and had 190 staff. Recently, we just celebrated our 40th anniversary and have almost 7,000 staff working all over the world. Steve has seen some massive transformations.
Long before I joined MathWorks, I knew Steve through his popular blog, Steve on Image Processing with MATLAB which started way back in 2006. He is actually one of the people who inspired me to start blogging back then. As such, it has been a privilege to work alongside him as one of MathWorks’ official bloggers over the last couple of years. Sometimes, it really is a good thing to meet your heroes. I recently had a chat with Steve, asking him about his time at MathWorks. A write up of this conversation is below.
MathWorks Career
Tell us about your career before MathWorks and how did it lead you here?
Mike, before I dive in, I want to say that I was an avid follower of your work in research software engineering. I always enjoyed your Walking Randomly blog. I am so happy that you have found a place with MathWorks, and especially that you are writing our MATLAB blog!
I was introduced to MATLAB sometime around 1988, when I was pursuing my Ph.D. in the digital signal processing research group at Georgia Tech. When Jim McLellan joined the DSP faculty, he brought with him his enthusiasm for MATLAB, and he convinced some of us grad students to join for a group purchase of MATLAB. I used MATLAB for some of my graduate studies, and there are some MATLAB plots in my dissertation.
In late 1990, I joined the faculty of the Electrical Engineering and Computer Science department at the University of Illinois at Chicago (UIC). I used MATLAB for image processing research work and for preparing course materials.
By 1993, I was ready to move on from UIC, and I was considering leaving academia. MathWorks came to mind because of my MATLAB experience. I was impressed with how company and MATLAB development leaders Jack Little, Cleve Moler, Loren Shure, and Clay Thompson actively participated in the new Usenet newsgroup, comp.soft-sys.matlab. I met Loren at a signal processing conference that spring, and I sent her my resume.
When Loren told me that no positions were available, I asked to participate in the beta program for the new Image Processing Toolbox. I was a highly motivated beta tester, providing detailed reports, algorithm suggestions, and MATLAB code. Shortly after the beta program ended, I was invited to interview. That went well, and I joined MathWorks in December 1993.
What was your first role here?
I took over development of Image Processing Toolbox. I spent my first MathWorks decade working to make the toolbox faster and more memory efficient and adding the algorithms and visualization tools needed for general research and development. Because the development organization was so small then, I also had an opportunity to do MATLAB work. I created the second-generation MATLAB profiler, optimized multidimensional array processing functions, implemented image and scientific data I/O functions, helped to design image display improvements, and integrated the FFTW library.
What was your final position at MathWorks?
The same as my first position! In the summer of 2020, the first pandemic year, I realized that I really missed doing image processing and toolbox development work. I approached Julianna, the manager of the team responsible today for the Image Processing Toolbox, about coming back to the team. I am grateful to her and to the other development managers who smoothed the way for me to rejoin the Image Processing Toolbox team in February 2021.
For about a dozen years prior to that, I was mostly doing MATLAB development. I managed several MATLAB teams. I was on the language design team, and I was one of a small group of senior designers who reviewed every feature going into MATLAB. I also helped create design standards for MATLAB.
What is it about MathWorks that made you stay so long?
It’s been the same answer throughout my career: I love making tools that make a real difference in the worlds of engineering and science, and I love doing that work with the kind of people who are here at MathWorks.
What advice would you give to a new MathWorker?
Now you’re really making me think hard, Mike. I hesitated for a long time about this, wondering what I could say that could be useful to any new MathWorker, whatever they might be doing and wherever around the world they might be doing it.
It finally dawned on me that MathWorks works hard to give helpful information to new MathWorkers, and the best thing I can do is to add my own perspective to that.
First, look at the company’s mission, which tells you the fundamental things that the company is trying accomplish in the technology, business, human, and social spheres. These have not changed during my 30 years with the company. With my engineering background, I tend to focus on the technology piece: “Our purpose is to change the world by accelerating the pace of discovery, innovation, development, and learning in engineering and science. We work to provide the ultimate computing environment for technical computation, visualization, design, simulation, and implementation. We use this environment to provide innovative solutions in a wide range of application areas.” But all four areas are important. Your next step is to think about the company’s values. These tell you about the kind of people that MathWorks prefers to hire, and how MathWorks expects them to behave. If you can align your work with the company mission and plans, and if your personal approach to work life and interaction with others is consistent with the company values, then you have a great chance for a long, rewarding MathWorks career. Blogging
You started the blog in 2006. What led you to do this?
I have always enjoyed taking time to think carefully about something and then write an explanation. Blogging within MathWorks became a thing sometime around 2005, and I actively participated in that. Also, this was soon after the publication of Digital Image Processing Using MATLAB, which I co-authored. So, when Ned Gulley (who writes over at the MATLAB Community blog) started talking about creating technical blogs on mathworks.com, I approached him about it. I want to thank Ned for convincing MathWorks to create this technical blogging space, and I also want to express my gratitude for his encouragement of me, then and in the years since. What have you got out of blogging over the years?
The biggest thing is a sense of connection with people around the world who are interested in MATLAB and image processing. This connection has been rewarding and motivating for me.
I also find it rewarding to be able to help other people in meaningful ways. It has been a joyful coincidence that some of the things that I personally find interesting have been also interesting and helpful to others. As I have been preparing for my retirement over the last couple of months, I have been delighted to hear from many MathWorkers that my blog helped them to learn about MATLAB and image processing. In some cases, it helped them to find their career here.
Also, the process of working out and writing an explanation of some technical topic almost always teaches me something new about it. So, writing the blog has helped to advance my own knowledge.
What was your most popular blog post?
Popularity is a bit hard for me to measure, as web traffic measurements are affected by search in unexpected and hard-to-interpret ways. If you don’t mind, let me just offer some highlights (from approximately 600 posts over 18 years).
Some fun deep dives:
Most controversial topics:
Technical Computing
What skills do you have now that you couldn’t imagine having 30 years ago?
Well, that must be, believe it or not, naming things. I actually created a course for teaching software developers how to name API elements expressively, accurately, and effectively. I have taught that course about three dozen times.
Do you have a favourite function that you helped develop?
It’s impossible for me to pick a single favourite (or favorite) function. Here are a few that have special meaning to me.
- repmat Before repmat came along, MATLAB power users replicated a vector to form a matrix using a using a peculiar-looking indexing expression that was called “Tony’s Trick.”
- fftshift (support for arbitrary number of dimensions) When MATLAB 5 expanded the MATLAB world from matrices to multidimensional arrays, I worked on adding multidimensional array support to several functions. This experience taught me how to think about and implement generic multidimensional array manipulation, which in turn influenced Image Processing Toolbox designs.
- imresize I have revisited image resizing several times over the years. The heart of this Image Processing Toolbox function is now doing some heavy lifting in several ways throughout MATLAB, and I think it has influenced implementations elsewhere in the world, such as in deep learning. My colleague Alex and I jokingly ask ourselves whether it is possible to make an entire career about image resizing. I think the answer might be yes.
- poly2mask I have learned repeatedly, during my career, how difficult computational geometry problems can be when working on a discrete grid. I enjoyed finding creative algorithms to solve this particular problem in a way that is geometrically self-consistent and free from floating-point issues. The resulting function has been a central workhorse in Image Processing Toolbox for years.
What is up next for you?
There are two things coming up next. The first is playing French horn. I have been working intensively to improve my horn playing for about the past eight years, and I will be studying and playing even more after retirement. Today, I play in the Concord Orchestra and the Melrose Symphony, both near Boston, Massachusetts. I will continue to do that and also look for other opportunities to perform and study. I write about studying and playing horn in the Horn Journey blog. Second, I will continue working with MATLAB and image processing. It will be as a hobbyist, though, and not as my day job. I look forward to continuing to contribute to the MATLAB community. Look for me at MATLAB Answers, the File Exchange, and Discussions. My new MATLAB Central profile is here, and my LinkedIn profile is here. I plan to continue writing about MATLAB and image processing on my new Matrix Values blog.
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.