Jump to Content
James Lin

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.
Authored Publications
Google Publications
Other Publications
Sort By
  • Title
  • Title, descending
  • Year
  • Year, descending
    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
    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
    Enabling the Study of Software Development Behavior with Cross-Tool Logs
    Ben Holtz
    Edward K. Smith
    Andrea Marie Knight Dolan
    Elizabeth Kammer
    Jillian Dicker
    Lan Cheng
    IEEE Software, vol. 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
    Argos: Building a Web-Centric Application Platform on Top of Android
    Rich Gossweiler
    Colin McDonough
    IEEE Pervasive Computing, vol. 10(4) (2011), pp. 10-14
    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
    No Results Found