James Lin
James Lin is a senior software engineer at Google. He is a member of the Google Design Platform team, working on Relay. His past work at Google includes software engineering productivity research and software infrastructure for Google Search and A/B experiments. His research interests include end-user programming and user interface design tools. James has a PhD in computer science from the University of California, Berkeley and previously worked at IBM Research.
Research Areas
Authored Publications
Sort By
Relay: A collaborative UI model for design handoff
Kris Giesing
ACM Symposium on User Interface Software and Technology (2023)
Preview abstract
The design handoff process refers to the stage in the user interface (UI) design process where a designer gives their finished design to a developer for implementation. However, design decisions are lost when developers struggle to interpret and implement the designer’s original intent. To address this problem, we built a system called Relay that utilizes concrete UI models to capture design intent. To our knowledge, Relay is the first system described in the academic literature to take artifacts from an existing design tool and generate a UI model.
View details
Enabling the Study of Software Development Behavior with Cross-Tool Logs
Ben Holtz
Edward K. Smith
Andrea Marie Knight Dolan
Elizabeth Kammer
Jillian Dicker
Caitlin Harrison Sadowski
Lan Cheng
Emerson Murphy-Hill
IEEE Software, Special Issue on Behavioral Science of Software Engineering (2020)
Preview abstract
Understanding developers’ day-to-day behavior can help answer important research questions, but capturing that behavior at scale can be challenging, particularly when developers use many tools in concert to accomplish their tasks. In this paper, we describe our experience creating a system that integrates log data from dozens of development tools at Google, including tools that developers use to email, schedule meetings, ask and answer technical questions, find code, build and test, and review code. The contribution of this article is a technical description of the system, a validation of it, and a demonstration of its usefulness.
View details
Predicting Developers’ Negative Feelings about Code Review
Emerson Murphy-Hill
Elizabeth Kammer
International Conference on Software Engineering (2020)
Preview abstract
During code review, developers critically examine each others’ code to improve its quality, share knowledge, and ensure conformance to coding standards. In the process, developers may have negative interpersonal interactions with their peers, which can lead to frustration and stress; these negative interactions may ultimately result in developers abandoning projects. In this mixed-methods study at one company, we surveyed 1,317 developers to characterize the negative experiences and cross-referenced the results with objective data from code review logs to predict these experiences. Our results suggest that such negative experiences, which we call “pushback”, are relatively rare in practice, but have negative repercussions when they occur. Our metrics can predict feelings of pushback with high recall but low precision, making them potentially appropriate for highlighting interactions that may benefit from a self-intervention.
View details
Preview abstract
How do you combine the strengths of the Web with the native capabilities of the phone? Anyone who has learned how to write a native mobile application knows that it's not straightforward. If developers could apply their knowledge of designing Web applications to smartphone application design, they could leverage years of experience to rapidly accelerate phone application development. In this article, we describe the approach, introduce the Argos system, compare Argos with related platforms, detail its architecture, and discuss current conclusions and future work.
View details