Summer 2020 Intern Spotlight: Barcode Scanning and Shareable Worklists with Lilly

We had seven (remote) interns join us at Benchling this summer. We also welcomed back Karen and Rebecca from last year’s intern class as full-time engineers! In this post, we’ll dive into Lilly’s summer internship. For more 2020 intern spotlights, check out the blog posts highlighting Krystopher’s and Nikash’s experiences. A little about myself Name: LillySchool: […]

We had seven (remote) interns join us at Benchling this summer. We also welcomed back Karen and Rebecca from last year’s intern class as full-time engineers! In this post, we’ll dive into Lilly’s summer internship. For more 2020 intern spotlights, check out the blog posts highlighting Krystopher’s and Nikash’s experiences.

A little about myself

Name: Lilly
School: University of Chicago
Fun fact: While at school, I spend much of my free time upside down, fifteen feet in the air, or both, as part of my school’s circus club, Le Vorris & Vox.
Team: Inventors (Inventory, Registry, Schemas)

Why Benchling

Prior to this summer, I had interned at large tech companies, so I wanted to experience the culture and work environment of a startup. I wanted to work at a company where I was interested in and cared about the mission, and where my coworkers would too. I don’t have much of a biology background, but when I started researching Benchling and learning about the product, it sounded very intriguing and I wanted to learn more. Benchling supports research being done in so many cool areas, from developing antibodies to making lab-grown meat. I felt that I could make a difference on this impactful research, even as an intern. Everyone I spoke with ahead of time — my interviewers, recruiters, future manager Vineet and mentor Aliza — was also very friendly and passionate about the work they were doing. It seemed like a culture where I would learn a lot, make a positive impact on the world, and work with some amazing people.

What I built this summer

My first project was to implement barcode scanning of samples and plates into Benchling worklists. This was a highly requested feature for labs using Benchling to carry out COVID-19 testing. These labs have hundreds of patient samples from hospitals organized into 2-D grids called (micro)plates. A plate has hundreds of small test tubes, each with a patient sample, ready for testing in bulk. The labs need to scan these samples into Benchling and follow them through their testing pipeline: extract, process, and check for viral genes indicating a positive COVID-19 test.

Imagine you’re a scientist at one of these labs. You’re testing a lot of DNA samples all at once, and you want to keep track of each action you performed on every one of them and the associated result. For samples that will be processed in a group, it would make your life a lot easier to be able to act on those samples all together, using bulk actions in Benchling. Worklists are a feature that help support bulk workflows of this nature. They allow users to create a grouping of items (like DNA samples for a testing run) and act on them as a unit within the product, be it to move them around, record results or other data, create tables, etc.

One particularly efficient way for users to create a worklist is by scanning from barcodes. As a scientist working with sensitive or potentially volatile materials, it may not be feasible to do lab work with your computer right next to you. This can make it difficult to record the samples you’re working with into Benchling, and writing them down on paper and then transferring into Benchling later is a major time suck. Barcode scanning provides a helpful solution to this problem: scientists can use a barcode scanner to scan their physical samples in the lab and upload them to Benchling, which then identifies the matching samples and adds them into a worklist.

Prior to my internship, this barcode scanning feature was not widely available. It was only supported for containers like test tubes, but not for other types of data like biological entities (patient samples or DNA), or plates. This meant that labs had to use inconvenient and more error-prone workarounds to create worklists of samples in Benchling. I was able to ship support for barcode scanning these other types of data, which enabled customers to use worklists in new ways: not just for COVID-19 testing, but also for designing DNA in bulk, managing plate inventory, and more.

Screenshot of barcode scanning into a worklist
Through this popup, users can scan biological entities by their unique identifiers, and add them to a worklist.

Another product improvement I worked on was to make worklists shareable. Previously, only the creator of a worklist could view, edit, or use it; worklists were essentially just private lists for facilitating an individual’s own work. For the COVID-19 case, this meant the same lab technician would have to both scan the patient samples, and then follow them through the entire testing pipeline (plating the samples, performing the extractions and further processing, etc.) — tasks that had to take place in entirely different rooms to avoid sample contamination! Now, users can choose to share their worklists with other scientists, teams, or even their entire organization. This not only enables worklists to better facilitate COVID-19 testing, but also unlocks the potential for worklists to support lots of more complex patterns of collaborative work in customer labs.

One particularly interesting component of this work was that I added the concept of worklists to Benchling’s GraphQL schema. Previously, worklist-related features in the product were using Redux/Flux-based data-fetching, but Benchling is in the process of migrating its front-end data fetching to GraphQL. By adding worklists, and the ability to query for specific attributes such as their owner or collaborators, to GraphQL, I was able to fetch — and cache, as appropriate — just the information necessary for a specific action. Among other benefits, this noticeably improved the performance of the product: previous versions of the worklist settings pane took a couple seconds to load, but now it’s nearly instantaneous.

Screenshot of configuring  a worklist’s permission settings for sharing
Worklist administrators can share worklists with and set access permissions for other users, teams, and organizations.


Benchling hosts an annual hackathon, where people from all across the company (not just engineers!) spend a couple days building out and demoing a product from scratch.

As part of the company-wide hackathon, I joined the Benchling Fitness Challenge team. Our goal was to get fellow Benchlings off their screens and participating in more physical activity while working from home, while also building a stronger Benchling community by having people work together on teams to meet exercise goals and encourage each other. I helped to build an integration with Strava’s app for tracking running and biking, so that data from Strava could be pulled into Benchling to track people’s activity for the challenge. This involved working with the Strava API to pull the relevant information about people’s activity, as well as setting up authentication so that we could access this data once people authorized the app to share it. We did a live demo of the integration as part of our hackathon presentation, and even won the Best WFH/Quarantine Hack award! While the full-blown Strava integration hasn’t been deployed yet (Hackathon follow-up is hard!), the Fitness Challenge is alive and well, bringing Benchlings together to get more physical activity and to compete to meet — or exceed — their fitness goals.

Screenshot of Fitness Challenge leaderboard within the Benchling Insights application
The Fitness Challenge company leaderboard, with team “combat wombats” in the lead, built using Benchling

Working at Benchling

At the beginning of the summer, I wasn’t entirely sure what to expect from a remote internship, or if I’d be able to get a good idea of what it’s like to work at Benchling. I wouldn’t get a chance to meet any of the people I was working with in person — and I wasn’t even in the same timezone! Three months later, while I haven’t met anyone in person, or been able to just walk over and talk to someone about my project, I’ve still gotten to know my teammates, the other interns and new grads, and even other people from different departments across the company. As a team, we had remote “offsites” where we would play games like and Codenames, and the interns/new grads had a Murder Mystery party where we all played characters at a high school reunion and had to figure out who the murderer was. These were a fun way to get to know people outside of a work context. Communication through Slack and Zoom calls made it possible to ask questions, pair program, get help with debugging, or just learn about what someone else was working on. Company and team-wide meetings held over Zoom, as well as lunch Zoom calls for demos, presentations, or even just chatting, helped to maintain the company culture and lines of communication that would ordinarily be there in person.

A remote internship is definitely different, but it doesn’t have to be bad. It’s more tempting to not get involved or engaged in your work — don’t let that happen! Message people when you have questions, don’t be afraid to ask to get on a quick Zoom call, and show up to some of the optional social events to get to know people. It may not be the same, but you can still form connections, have fun, and learn a lot!

If you’re interested in interning or working full-time at Benchling, we’re hiring!

Thanks to Aliza, Chanel, and Somak for reading drafts of this. For more 2020 intern spotlights, check out the blog posts highlighting Krystopher’s and Nikash’s experiences.

Discuss on Hacker News

Summer 2020 Intern Spotlight: Barcode Scanning and Shareable Worklists with Lilly was originally published in Benchling Engineering on Medium, where people are continuing the conversation by highlighting and responding to this story.

Source: Benchling