I'm a PhD candidate advised by Anita Sarma in the Electrical Engineering & Computer Science department at Oregon State University, where I also obtained my BS in Computer Science in June 2015. As an undergraduate, I interned at Intel Corporation and Hewlett Packard Enterprise, and conducted my senior project with Garmin AT. Previously, I was a Research Intern at Microsoft in the PROSE team (mentored by Titus Barik), and a Systems Analyst in healthcare IT and DevOps (see my CV here).

My research interests are at the intersections of software engineering, human-computer interactions, and developers tools. I am currently exploring the effects of designing integrated development environments (IDEs) with human cognition and spatial interactions as core tenets of problem-solving within software. I also conduct research into software development processes such as merge conflicts, continuous integration, and test-driven development (TDD).

Publications

2022
April
  Cognitive Biases in Software Development
Souti Chattopadhyay, Nicholas Nelson, Audrey Au, Natalia Morales, Christopher Sanchez, Rahul Pandita, Anita Sarma.    
Communications of the ACM, Volume 65, Issue 4. pp 115-122.    
2020
August
  Supporting Code Comprehension via Annotations: Right Information at the Right Time and Place
Marjan Adeli, Nicholas Nelson, Souti Chattopadhyay, Hayden Coffey, Austin Henley, Anita Sarma.    
VL/HCC'20, Dunedin, New Zealand, August 10, 2020 (AR: 30.0%).     [Conference] [Pre-print (May'20)] [Slides]

May
   A Tale from the Trenches: Cognitive Biases and Software Development
Souti Chattopadhyay, Nicholas Nelson, Audrey Au, Natalia Morales, Christopher Sanchez, Rahul Pandita, Anita Sarma.    
ICSE'20, Seoul, South Korea, May 23, 2020 (AR: 20.9%).     [Conference] [Pre-print (Feb'20)] [Distinguished Paper Award]
[2020 SIGSOFT Research Highlights]
2019
May
  Latent Patterns in Activities: A Field Study of How Developers Manage Context
Souti Chattopadhyay, Nicholas Nelson, Yenifer Ramirez Gonzalez, Annel Amelia Leon, Rahul Pandita, Anita Sarma.    
ICSE'19, Montreal, Canada, May 25, 2019 (AR: 20.6%).     [Conference] [Pre-print (Feb'19)] [Artifacts]

February
  The Life-Cycle of Merge Conflicts: Processes, Barriers, and Strategies
Nicholas Nelson, Caius Brindescu, Shane McKee, Anita Sarma, Danny Dig.    
EMSE, Empirical Software Engineering Journal (Springer)....     [Journal] [Pre-print (Feb'19)] [Artifacts]
2018
May
  Context in Programming: An Investigation of How Programmers Create Context
Souti Chattopadhyay, Nicholas Nelson, Thien Nam, McKenzie Calvert, Anita Sarma.    
CHASE'18: Short Paper, Gothenburg, Sweden, May 27, 2018.     [Conference] [Pre-print (Apr'18)]
2017
September
   Software Practitioner Perspectives on Merge Conflicts and Resolutions
Shane McKee, Nicholas Nelson, Anita Sarma, Danny Dig.    
ICSME'17, Shanghai, China, Sept. 17-22, 2017 (AR: 27.8%).     [Conference] [Pre-print (Aug'17)] [Slides] [Artifacts] [IEEE Software Blog] [Distinguished Paper Award]
   Trade-Offs in Continuous Integration: Assurance, Security, and Flexibility
Michael Hilton, Nicholas Nelson, Timothy Tunnell, Darko Marinov, Danny Dig.    
ESEC/FSE'17, Paderborn, Germany, Sept. 4-8, 2017 (AR: 24.4%).     [Conference] [Pre-print (Aug'17)] [Artifacts] [Distinguished Paper Award]

July
  Towards an IDE to Support Programming as Problem-Solving
Nicholas Nelson, Anita Sarma, AndrĂ© van der Hoek.    
PPIG'17, Delft, Netherlands, Jul 1-3, 2017.     [Conference] [Session] [Slides] [Project Code]
  Problem-Solving Applications in Developer Environments
Nicholas Nelson.    
PPIG'17: Doctoral Consortium, Delft, Netherlands, Jul 1-3, 2017.     [Conference] [Session]
2016
May
  TDDViz: Using Software Changes to Understand Conformance to Test Driven Development
Michael Hilton, Nicholas Nelson, Hugh McDonald, Sean McDonald, Ron Metoyer, Danny Dig.    
XP'16, Edinburgh, United Kingdom, May 24-27, 2016.     [Conference] [Pre-print (Mar'16)] [Project Code]

Teaching

  • Teaching Assistant:
    • CS567 - Laboratory Studies in Software Engineering and Human-Computer Interaction (Fall 2021)
    • CS560 - Data-Driven Software Engineering (Fall 2020)
    • CS419/579 - Usable Security (Winter 2020)
    • CS362 - Software Engineering II (Spring 2020, Spring 2022)
    • CS361 - Software Engineering I (Winter 2022, Fall 2017, Winter 2017, Winter 2016)

Service

  • PC Member:
    • PROMISE 2020 Replication Challenge Track
  • Reviewer:
    • IEEE Transactions on Software Engineering Journal (TSE) 2020
    • Empirical Software Engineering Journal (EMSE) 2020
  • Sub-Reviewer:
    • IEEE/ACM International Conference on Automated Software Engineering (ASE) 2019, 2018, 2017, 2015
    • ACM Joint European Software Engineering Confrence and Symposium on the Foundations of Software Engineering (ESEC/FSE) 2020, 2019
    • IEEE/ACM International Conference on Program Comprehension (ICPC) 2020
    • Mining Software Repositories (MSR) 2017
    • IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) 2019
    • ACM Symposium on User Interface Software and Technology (UIST) 2017
  • Student Volunteer:
    • International Conference on Software Engineering (ICSE) 2019
  • Mentor: