I'm a PhD student 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

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]
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), February 2019.     [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:
    • CS560 - Data-Driven Software Engineering (Fall 2020)
    • CS362 - Software Engineering II (Spring 2020)
    • CS419/579 - Usable Security (Winter 2020)
    • CS361 - Software Engineering I (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: