Interning as a UX Engineer
Discovering the intersection of design and development
As a Computer Science major at UC San Diego, I found myself drifting away from becoming a pure coding developer. While the challenges presented were both interesting and complex, figuring the solutions to these problems became less and less rewarding. I enjoyed the thrill of making software work, yet immersing myself in algorithms and data structures felt mundane and abstracted from reality. I began to supplement my coursework with design classes and immediately fell in love with the human-centered process. From research to testing, there was an empathetic aspect to design that I was desperately missing in my curriculum.
With a passion for coding and an eagerness to design, where does someone like me deliver value in the industry?
When applying for internships, job descriptions typically draw a fine line between designer and developer. As a college student, you might imagine that facing this binary decision can be a bit daunting. But I never settled. Through research and insightful conversations, I quickly found that opportunities exist for those interested in a more hybrid role. At Salesforce, we embrace the ability to wear both hats on our UX Engineering team.
What is UX Engineering?
UX Engineering can be a confusing term by nature of its infancy. As a prototyping intern on the team, I wasn’t completely sure what sort of challenges I’d be faced with.
Here at Salesforce, the goal of UX Engineering is to bridge the gap between design and development. It’s about providing engineering support to designers, and enabling them to deliver the best possible experience to our customers. On our team, we’re realizing this goal by building Living Design Systems, incorporating Design System Ops, and providing prototyping as a service.
But Why Prototype in Code?
Today’s technology has become so advanced that designers must think about interactions and affordances that weren’t feasible just a few years ago. Whether it’s a simple hover animation or complex voice integration, the user experience layer has quickly outgrown the constraints of tools like Sketch and Photoshop. If your designs will eventually reach a developer, why not prototype with a similar technology stack?
By prototyping in code, we de-risk designs.
The risk lies in shipping designs that leave our customers worse off than before, costing the company’s time and resources. Leveraging our Lightning Platform and modern web frameworks, we are able to minimize that risk by bringing our designs to life quickly and accurately. This empowers researchers with more effective user testing, and provides a platform for designers to better communicate their solutions to developers.
Prototyping Search: A Case Study
When redesigning the Salesforce search functionality earlier this year, our UX team quickly found static prototypes to be the bottleneck in the process. Search inherently yields a myriad of results, and the manner that content is displayed often varies based on user input. In the scenario that the user’s query returned hundreds of results, static prototypes simply could not scale to reflect real world usage. Prototyping in code was key. With a functional prototype in hand, research participants were able to properly walk through different interactions and provide quality feedback on their results. In addition, our team provided a layer of feedback, from a developer’s perspective, about whether the design was feasible and scalable. By taking prototypes beyond static images and hotspots, UX Engineers enabled researchers and designers to create the best solution.
As design scales to new heights, utilizing technologies like artificial intelligence and IoT, the need for UX Engineers will only continue to grow. As more and more companies begin to value this hybrid role, I encourage students like me to continue exploring the intersection of both practices. With skills in design and development, the potential for building better experiences is endless.
Looking back at my internship here at Salesforce UX, I’ve been put in a position where I never settle and am constantly learning. Exposure to technologies like React, Sass, and Swift has helped me expand my skills in development. Similarly, working closely with designers has furthered my understanding of the process, and what it means to design at an enterprise level. The most exciting part, however, was realizing the real world potential for a skill set in design and development. With an open mind and greater understanding of the industry, I’m excited for what lies ahead.