I am a User Experience Specialist at the Mathworks, which is the company that makes the engineering and scientific computing software suites MATLAB and Simulink. Previously, I was a researcher in the areas of software engineering and human-computer interaction at Oregon State University (OSU) in Corvallis, Oregon.
My research background is in human-computer interaction issues in software engineering. During my postdoctoral work, I collaboratively investigated how to help end user programmers overcome problem-solving and programming barriers, information foraging by professional software developers, and helping end users problem-solve about intelligent agents (e.g. music recommenders) that help users understand the system’s reasoning. With respect to methodologies, I have co-designed qualitative and quantitative studies, used parametric and non-parametric statistics, mentored both graduate and undergraduate students and am currently leading a team to prototype our approach to help end-user programmers understand just enough problem-solving to learn how to help themselves complete their tasks. My contributions in these projects have resulted in numerous publications, including an Honorable Mention at the ACM Conference on Computer-Human Interaction (CHI 2012).
During my Ph.D, I employed multiple research methods, including case study research, social network analysis, and statistical analysis on software projects to understand the effects of aligning work and communication, network position, and domain knowledge distribution on global software teams. My dissertation work has also led to numerous publications in the software engineering community.
Industry Projects (Current)
- The MathWorks – Embedded Coder. Embedded Coder® generates readable, compact, and fast C and C++ code for embedded processors used in mass production. I continue to research and understand the needs of customers in enterprise-scale organizations that support model-based design and code generation from Simulink. I design experiences that are easy for end users, but powerful enough to meet strict performance and quality guidelines.
- The MathWorks – MATLAB Coder. MATLAB Coder™ generates C and C++ code from MATLAB®code for a variety of hardware platforms, from desktop systems to embedded hardware. It supports most of the MATLAB language and a wide range of toolboxes. You can integrate the generated codeinto your projects as source code, static libraries, or dynamic libraries.
Research Projects (2006-2013)
I have worked with Dr. Margaret Burnett of the EUSES group at OSU. My research currently involves four projects:
- Idea Gardening for End Users which supports end users in programming environments by providing context-sensitive advice, mini-patterns and problem-solving strategies that helps these users learn in the context of their own activities.
- Information Foraging Theory in Software Engineering which examines how a behavioural theory for how humans seek information from a computing environment can be applied to software engineering tasks, including debugging and communication.
- Explanation and feedback design for intelligent agents which examines how end users problem solve their intelligent agents. How can the user provide feedback to the intelligent agent? How can we improve interfaces to explain to the end user how an intelligent agent operates so they can make their own useful corrections?
- Gender differences in human-computer interaction which explores how men and women process information differently and how to present user interfaces in such a way that everyone benefits. This isn’t about political correctness: There’s a wealth of evidence that shows how men and women interpret and tackle problems differently. If we make adjustments to computer interfaces that take advantage of these differences, we might be able to ensure that everyone benefits.
In addition to these research projects, I have ongoing interests in topics from my Ph.D with Dr. Daniela Damian, which include:
- Collaboration and coordination in distributed software development. Distributed software development is building software when people and teams are geographically separated. This introduces delays in communication, potential misunderstandings, and political issues. However, as open-source projects and various industrial projects have illustrated, it is very possible to build great software despite being distributed. I have an ongoing interest in studying how teams are successful (and not successful) by examining their coordination and social processes.
- Postdoctoral scholar, Oregon State University, Corvallis, Oregon/li>
- Ph.D in Computer Science, University of Victoria, Victoria, Canada, 2011
- Master’s of Mathematics (in Computer Science), University of Waterloo, Waterloo, Canada 2006
- Baccalaureate of Software Engineering (co-op), University of Ottawa, Ottawa, Canada, 2002
- Program Committee member, International Conference on Program Comprehension (ICPC) 2012
- Reviewer, Journal of Systems and Software (JSS) 2011/2012
- Reviewer, Empirical Software Engineering Journal (ESE) 2011
- Program Committee member, Mining Software Repositories (MSR) Challenge 2011
- Program Committee member, Mining Software Repositories (MSR) Challenge 2010
I also have an ongoing interest in how to simplify life, especially from a technology standpoint. I love music production and computer-based music and encourage people to learn music in supportive communities such as ThaSauce.net. I play with music technology such as Eurorack modular synthesizers and I love video games and board games.
I enjoy playing role-playing games such as Final Fantasy XIV: Online, team-based first-person shooters such as VALORANT and Overwatch, and strategy and tactics games. I enjoy strategy board games including Caverna, Root, and Scythe.
- Irwin’s Linked In Profile
- @irwinkwan on Twitter
- Irwin’s publications on Google Scholar
- Irwin Kwan – ACM author profile page.