Hello, I'm Brad Dennis. I'm a husband, father, teacher, entrepreneur, and researcher. I have a wife and two sons.

My research interests include low cognitive load software processes and techniques, mobile development, agile development, and learning technologies. My business interests include mobile applications, learning technologies, and health & nutrition.


MSwE – Master of Software Engineering

Auburn University


BSwE – Bachelor of Software Engineering

Auburn University

Sep 2014 - May 2019

Milwaukee School of Engineering (Milwaukee, WI)

Assistant Professor

I was an Assistant Professor at MSOE in the Electrical Engineering and Computer Science Department. I teach, or have taught Databases (CS386), Software Requirements and Specifications (SE3821), Software Verification (SE2832), Software Process II (SE3800), Software Development I and II (SE1011, 1021), Software Maintenance (SE498).


Kirkland Science Labs, LLC (Seattle, WA)


Oversee all operations for a dietary supplement small business.


Graded Labs, LLC (Reno, NV)


A small business environment that provided software support for network training including hardware automation, learning technologies, and customer support.


Internetwork Expert, Inc. (Reno, NV)


Oversaw all operations of $6M+ annual revenues Cisco professional training firm while owner was on sabbatical, continued to manage many operations upon owner’s return.


Matria Healthcare (Marietta, GA)


Department manager in IT for in-house software projects. Primary project was an Enterprise Disease Management call center solution.


PriceWaterhouseCoopers (San Francisco, CA)

Project Lead

Led a team of 13 developers on an Enterprise Disease Management call center solution.


Computer Sciences Corp. (San Bruno, CA)

Project Lead

Technical lead for Y2K testing efforts of Catholic Healthcare West’s Year 2000 project. Oversaw 60 analysts in 15 teams located across California.


SAIC, Inc. (Walnut Creek, CA)

Technical Lead

Managed a team of five engineers engaged in Y2K remediation of Kaiser Permanente’s healthcare systems.


Ocular Sciences, MIS (San Francisco, CA)


Development and support for several manufacturing and ANSI X.12 EDI systems.


Regents Medical Claims, (Huntsville, AL)


Had multiple duties in a small business environment including: lead programmer and manager, support, and customer relations.

2014 Cohort

Auburn University (Auburn, AL)

Preparing Future Faculty

The goal is to prepare future faculty to meet the challenges of the 21st century by increasing Auburn University graduate student readiness to assume faculty roles, helping graduate students understand the expectations and functional realities of faculty life, developing wider institutional and personal networks, and making graduate study even more responsive to disciplinary and professional needs. Read more.

2012 – 2013

Auburn University (Auburn, AL)

Graduate Teaching Assistant

GTA for COMP4710 Senior Design, the Software Engineering capstone course for Fall and Spring semesters.

SPR 2012

Auburn University (Auburn, AL)

Graduate Teaching Assistant

GTA for COMP5700/6700 Software Process for the spring semester. Primarily assisted with grading.

SPR 2005

Auburn University (Auburn, AL)

Graduate Teaching Assistant

Substitute lecturer for COMP3710 Wireless Software Engineering for one semester.

FALL 2004

Auburn University (Auburn, AL)

Graduate Teaching Assistant

GTA for COMP4710 Senior Design, the Software Engineering capstone course for one semester.


Investigating the Impact of Peer Code Review and Pair Programming on Test-Driven Development

Rajendran Swamidurai, Bradley Dennis, Uma Kannan



Repatterning: Improving the Reliability of Android Applications with an Adaptation of Refactoring

Brad Dennis

This is my dissertation on Repatterning. It is also available online at Repatterning is a reengineering adaptation of the refactoring process. My dissertation adviser is David Umphress.


Repatterning: Adapting the Refactoring Model for Reengineering

Brad Dennis, David Umphress

This is an unpublished persuasive essay that was written as part of paper for the XP2013 conference. I did not get results in time for the deadline and the co-authors felt an essay stuffed into a paper was not a good fit for the conference , but I like the argument as presented.

SUM 2004

Auburn University (Auburn, AL)

Graduate Research Assistant

Developed a J2ME micro-browser for commercial client. Our research goal was to develop a asynchronous pair-programming variant called CAP (Collaborative Adversarial Programming).

Teaching Statement

My experiences at Auburn, as well as my time with a professional training company, have solidified a very hands-on, pragmatic philosophy to teaching software engineering. The primary pedagogical approach at Internetwork Expert, Inc. was to introduce networking concepts, then demonstrate them via exercises. The material was reinforced through the repetition of hands-on labs and troubleshooting exercises. This strategy unintentionally incorporated five of the six learning domains in the revised Bloom’s Taxonomy; remembering, understanding, applying, analyzing, and evaluating. It was learning by seeing then doing. I believe this type of teaching strategy is especially effective for software engineering, as it introduces the concepts and gives the students exposure to the application of them in practice.   Download the full statement here (PDF).

Research Statement

Imagine in 1994 the Bridge Building Group released a report that bridge builders spent $250 billion in 1993, building 175,000 bridges. Of these 31% had to be cancelled, 52% overran their budgets by nearly 200%, and only 16% of the bridges built were on-time and on-budget. Now imagine that in 2013 the Bridge Building Group announced that over the past twenty years bridge engineers had improved these numbers to only 18% failures, 43% over budget and late, and 39% on-time and on-budget. It’s disturbing that a profession could have such abysmal outcomes, yet that’s where we are with Software Engineering. These statistics were taken from the Standish Group’s 1994 and 2013 Chaos Reports on the state of software development. While their analysts attribute much of these gains to the advent of agile software development practices, it is clear that we need to continue improving our practices. I believe research into low-cognitive load techniques such as repatterning, can contribute to the agile body of knowledge, while ideas like process minimalism can shift agile to new places.  Download the full statement here (PDF).

Proposal Defense

Proposal Defense (Prezi)

Prezi for my proposal defense on 11/12/13.

Early repatterning talk

Early repatterning talk slides(PDF)

Slides for an early Repatterning talk given to the Senior Design students in FALL 2012 & SPR 2013.

PFF Fellow

Preparing Future Faculty Fellow – 2014 (URL)

Member of the PFF 2013-2014 cohort.

Repatterning Research Poster

CEGS Poster Competition Fall 2013

This is my submission for the Council of Engineering Graduate Students poster competition, I was also our departments volunteer on the council.

3 Minute Thesis Competition (Sum 2012)

3 Minute Thesis Competition in July 2012 (Youtube)

I messed up by memorizing the entire three minutes. I was very uncomfortable and nervous.

Three Ideas for Software Process

Three Ideas for Software Process(Youtube)

A talk I’ve been giving on process minimalism, minimally viable process and repatterning.

Proposal Defense

Proposal Defense

Prezi for my proposal defense on 11/12/13

3 Minute Thesis Competition (Sum 2012)

3 Minute Thesis Competition (Sum 2012)

I messed up by memorizing the entire three minutes. I was very uncomfortable and nervous.