I am a software developer and researcher. In February 2024, I defended my PhD in Computer Science at Oregon State University, where I also obtained my BS in Computer Science in June 2015. As a graduate student, I was a Research Intern at Microsoft in the PROSE team (mentored by Titus Barik). As an undergraduate, I interned at Intel Corporation and Hewlett Packard Enterprise, and conducted my senior project with Garmin AT. Previously, I was a Systems Analyst in healthcare IT and DevOps.

My research interests are in enabling software developers to intuitively interact with their development environment. I explored the effects of providing spatial interactions and barrier-free version control within an integrated development environment (IDE) called Synectic as part of my dissertation work. I have also conducted research into software development processes such as merge conflicts, continuous integration, and test-driven development (TDD). I enjoy exploring research within the realms of software engineering, human-computer interaction, software systems for developer tools, and programming languages constructs for rapid and efficient software development.


  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.     [Author Copy]
  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]

   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]
  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]

  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), February 2019.     [Journal] [Pre-print (Feb'19)] [Artifacts]
  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)]
   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]

  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]
  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 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)
    • CS344 - Operating Systems I (Winter 2023, Fall 2022)


  • PC Member:
    • PROMISE 2020 Replication Challenge Track
  • Reviewer:
    • ACM Transactions on Software Engineering and Methodology (TOSEM) 2023
    • Empirical Software Engineering Journal (EMSE) 2022
    • 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: