University of Minnesota
Master of Science in Software Engineering

You are here

Donald Sawyer

Current Job:
Software Engineering Leader
Target Corporation

Donald's Story:
Donald Sawyer works in the “wilderness” of big data. Working with Target’s Business Intelligence (BI) Engineering group and often leveraging complex distributed architectures, he helps process, store, and analyze the petabytes of data Target generates daily. When Sawyer was at the University of Minnesota, he was enrolled in the Masters of Science in Software Engineering program (MSSE) focusing on growing the skills required for leading these engineering efforts.

“I felt that before going to Target, the fields of BI and data science needed some help in building systems and tools that employed quality engineering practices,” Sawyer said.

Leveraging his strong passion for data science, his undergraduate background in artificial intelligence, and his recent experiences from MSSE, he seeks to build well-engineered data pipelines for one of the largest retailers in the United States. This work gives him the opportunity to analyze architectures and data models, implement robust testing, communicate technically complex systems through design, and, ultimately, lead agile projects.

Starting in 2017, Sawyer will join the Department of Computer Science and Engineering to help spread his deep knowledge on Big Data.

Tell us a little bit about working with large-scale systems, both in terms of the amount of data being mined and the computational resources being used on top of it.

The systems that are used for ingesting, storing, processing, and analyzing large amounts of data have a fascinating collection of architectural patterns that are different from traditional relational/transactional systems. Each component of a big data architecture has specific strengths and quality attributes it is solving for, thus requiring an understanding of whether it is best suited for storage, delivery, analysis, or some other use case. When choosing components of the system, one must understand what problem(s) each component solves, as well as what it doesn’t solve. Processing data at scale requires you to understand how to store data effectively so systems can leverage these data for analysis, while conserving processing resources.

The resources used for data processing and computation are not just one or two database servers. In many cases, there are dozens, hundreds, or thousands of servers in a cluster to handle the storage and processing. It is very important to design data storage and tools to leverage efficiencies, like splitting and partitioning, to be able to spread out the processing across the cluster in parallel.

Another note is that data doesn’t just come from tables, it comes from the “wild” (e.g. clickstream, logs, or APIs). These data require a lot of processing to cleanse or prepare for analysis and is difficult to do manually. I’ve found that building these systems requires a lot of automation and automated testing to ensure that data is being processed properly. It is very hard to find a bad data record among millions/billions of records if the testing isn’t automated.

What drew you to software engineering as opposed to the other fields within computer science?

I was a software engineer and architect for many years and I knew that having a well-rounded software engineering background allowed me to contribute in many ways beyond technical innovation. An architect is involved in just about every facet of software creation, including analysis, design, testing, and project management. First and foremost, I wanted to be able to be a person that could contribute wherever I was needed, rather than just the technical space. In addition, the MSSE program accommodated my schedule to minimize time away from my family and job.

What were your early experiences with computing that inspired you growing up and convinced you to pursue computer science as a career?

Growing up, I wanted to be a mechanical engineer or mathematician. I loved solving problems and figuring out how things worked and how to build new things. I was always interested in technology, but I assumed programming would be too hard. When I took my first computer science class as part of the M.E. major, I loved that I could solve any problem a variety of innovative ways, which tapped into my creative side. I realized that with the passion I had for computer science, success was much easier to attain. Lastly, I was always fascinated by the brain and was always reading about learning and cognition, so being exposed to artificial neural networks only drove my interest in computer science further.

What is one of your fondest memories from your time at the U of M?

I really connected with my classmates and professors. The students in the MSSE program had a diverse set of backgrounds and we learned so many things from each other. My fondest memory of my time there was the excellence that my classmates and I strived for to have the best deliverables, presentations, and grades. It was great to be around other people who valued excellence in what they did. I am very thankful for the relationships I’ve created with everyone in the MSSE program, and for Jenny for making life very easy for us.

What are some unique challenges you face working in a highly specialized technical field for a customer-focused retailer like Target, a company that usually is not the first to come to mind when one thinks of the traditional tech industry?

The largest challenge for a technical person like myself is trying to understand and communicate with business-focused individuals. I like to speak in bits, bytes, and code, and there are times when it can be frustrating to communicate because many of our technologies aren’t trivial to a non-technical individual. It is also very difficult to communicate the cost of a project to your stakeholders who finance your projects when you only know the end goal. On the flip side, it can be easy to understand the business because I love shopping at Target and I understand how a Target guest thinks. I can put myself in a guest’s shoes, literally.

What is it about computer science that keeps you excited and motivated for the future?

I love data and engineering. I love how we’re using huge scales of data to make smarter systems and help people make more informed decisions. It’s really fascinating to see how artificial intelligence, algorithms, and mathematics are being applied to everyday problems. For example, it’s amazing to think that using computer science we’ll find medical treatments that are highly effective for a specific 5% population, rather than just treatments that are effective 95% of the time across the general population.