Role overview
About this role
The Apps@Research team builds the tools that IBM Researchers need to accelerate their work. Whether it's compute, agents, models, data or support; we work closely with our research teams to build what they need. We are an AI-native team and looking for a design engineer intern who can collaborate with product managers, engineers, and stakeholders to deliver new experiences from sketch to software. Design and ship UI work for production applications, from first sketch to merged code. Extend our component library and the Storybook that documents it, so patterns stay reusable and other people can find them. Prototype in code. Put something clickable in front of researchers in days, not weeks, and let what you learn change the design. Work alongside AI coding agents as a normal part of the job, and improve how the team runs them. Carry IBM Research's voice into the interface — its tone, restraint, and vocabulary — while bringing your own aesthetic judgment to the work. A portfolio of design work. Show craft: typography, layout, color, motion, interaction states. Include at least one thing you designed and built and put in front of real users. Live links beat static files. Working knowledge of HTML, CSS, JavaScript, and component frameworks. You can take a design from Figma to a working component without waiting for someone else. Exposure to design systems in practice. Component variants, design tokens, and writing a component's documentation so a stranger uses it correctly. Building or running a Storybook counts; so does any comparable component workbench. Hands-on use of AI coding tools such as Claude Code, Cursor, Copilot, or v0 past one-off prompting and into repeatable setups. Two specific practices we care about: loop engineering (designing a process that keeps an agent working toward a stated goal and checks its own output, rather than typing every prompt yourself) and agent swarms (splitting a job across several agents running in parallel, each with a narrow scope). These practices are new and still changing. A few honest attempts and an opinion about what broke will carry you further here than a polished method. Enough back-end familiarity to feed a front end — Python, Go, or Node.js. You can read an API response and shape the data an interface needs. A point of view about software, and the language to explain why an interface works or fails. Evidence you can write in someone else's voice: brand, editorial, or client work where the tone was not your own. Accessibility fundamentals: keyboard navigation, contrast, semantic markup, basic screen reader testing. Git, pull requests, and code review. Cloud development exposure: containers, Kubernetes or OpenShift. Agile development practices. Interface writing: empty states, error messages, release notes.