A diagram is an early stage in every software development project. Photo illustration by Jonathon Berlin.
The work of Discovery Partners Institute is wide-ranging: from applied research to business building to tech education and workforce development. But whether it’s climate research, wastewaster surveillance for public health, any of DPI’s many various science teams working toward commercialization, or future projects delving deeper into AI, almost every project needs software to make it work.
That’s where DPI’s software development team comes in: Associate Research Software Engineer Marco Colombo, Research Software Engineers Anuj Gautam and Karan Jogi, and Software Engineering Lead Sumit Tokkar take a solutions-oriented approach to their work. From data processing to scalable system architecture, their team develops the engineering solutions that support DPI’s cutting-edge research.
“Every piece of research that we do here includes a digital and software footprint,” said Venkat Venkatakrishnan, DPI’s director of research. “The software team is the conduit for translating the many innovative ideas that are arising out of the R&D into tangible products and services.”
DPI has worked with software developers since its inception — particularly since the wastewater project began in 2020 — but they have only become a formalized team this year under Tokkar. All developers work on the wastewater project in addition to new projects that come in.
A project lifecycle
Projects come in to the software team through several channels:
- DPI researchers contact Venkatakrishnan or Tokkar directly
- Clients of DPI’s business building team ask for software support
- External industry partners ask the team to develop software solutions for their clients
- The software team itself writes grant proposals that sometimes get funded
The first step in a software development project is not unlike the first step in any project: initial meetings with the client, and then documents detailing the deliverables, scope of work, and timing. Once both parties have signed off on these frameworks, the next step is a list of software requirement specifications, also shared with the client.
Once that is approved, the team gets down to work. First, an engineering one-pager, outlining the project’s infrastructure and the architecture: what kind of programming languages and databases they’ll use, what kind of cloud infrastructure.
The next step is a roadmap for the project, broken down into what software developers call epics. For example, one project that began this fall is a search platform specifically for medical practitioners. One epic might be: gather all the sources from which data will be collected.
“It is not supposed to be super accurate, because things keep changing all the time,” Tokkar says. “But it is supposed to give us an idea of what things are we going to be working on for the next one month, two months, three months.”
The engineer or engineers take the project epic by epic. Each epic is broken down into tasks. The data-source epic might break down into:
- identify the source of the data
- set up an authentication mechanism with the data source
- verify the connection is successful
As most research projects require some sort of database model, the team starts there. They make sure the database works as intended, then move to the smaller modules, beginning with the most essential. That’s often user management, Tokkar says, “because without that, the product cannot move forward.”
Team spirit
On smaller projects, one engineer will take on all tasks, but each team member has his areas of specialization.
“We have common skills,” Jogi said. “But we each have our domain skills and soft skills in general.” Jogi specializes in consultations — “how can we solve that problem for you?” — as well as end-to-end data products.
Colombo and Gautam enjoy the research aspect of projects: how the software they develop will help researchers find and organize their data. Colombo has a strong interest in AI and neural networks; Gautam, who has a PhD in cybersecurity, also works on grant proposals for related prospective projects.
Usually only one or two team members will work on any given project, but the whole team reviews the one-pager, as everyone is likely to have ideas. And if anyone gets stuck on his project, the whole team is there to help, both informally and during twice-weekly standup meetings.
“If there’s a problem that we think needs more brains in it,” Gautam said, “we just bring it to the whiteboard and solve it together.”
“We help each other out almost on a daily basis,” Jogi said.
As the manager, Tokkar often chimes in, though he is typically not coding. His main responsibilities are meeting the clients, coming up with roadmaps, and prioritizing projects.
It’s not over till …
The engineer or engineers work through the epics, adding more features as the project goes on, while having regular client feedback sessions to ensure the project meets the client’s needs. Even once the project has been delivered, “a lot of times in software engineering, you’re never really done,” Tokkar said.
Once the software is delivered, there are bug fixes. There is maintenance. Sometimes there will be a need for additional features, but even if there isn’t, there are server crashes that require bringing the system back up, new users who need to be trained, and more.
Keeping current
Software development is an ever-changing field, meaning that official professional development courses are rare, and publications can grow outdated quickly.
While “the principles of software engineering are very well defined,” Jogi said, there are always new “stacks”: combinations of programming languages, frameworks, and other technologies to serve a particular software function.
Tokkar and his team keep current on the latest stacks through reading blogs, listening to podcasts, and just keeping in touch with friends elsewhere in the industry. The cycle of projects gives them a prime opportunity to experiment in real time. If the project is small, simple, or otherwise relatively low-stakes, Jogi says the team tries to “take a jab at these new tools.”
Gautam and his wife, who is also a software developer, will often experiment with new stacks on their travel blog.
“Every day there is something new coming out,” Tokkar said. “It’s just impossible to keep track of everything. It’s such a vast field; we do the best we can to keep things up to date.”
What’s next: people
Tokkar takes his role as a leader seriously. In the long term, he wants to help his team grow in their careers, to become senior staff–level engineers and principal engineers. In the short term, he needs to hire more permanent staff, as the team currently has more requests than it can handle.
“It has very quickly become a popular and sought-after team,” Venkatakrishnan said. “We now feel we have a critical mass of people that we can do some fun things with — and drive innovation further.”
In the meantime, to manage the current workload, two trainees from DPI’s Pritzker Tech Talent Labs have joined the team temporarily: Calvin Armstrong and Andrew Pham. Tokkar is well acquainted with PTTL trainees’ skills, having mentored previous trainees through PTTL’s mentorship program since his arrival in 2023. For each 12-week cohort he hosts two to three mentees. He meets with them every two weeks to discuss job searches, technical advice, performance reviews, or anything else that comes up.
“When I was starting back in 2011 or so, I don’t think there was this concept of ‘having mentors,’” he said. “You just had to go through it and learn everything the hard way, for me at least. I make sure that I find time to participate in this mentorship exercise, so that at least I can give back some of my knowledge to an upcoming generation of leaders.”
These hires are not his only involvement with the workforce accelerator side of DPI. After more than a decade in industry as a software developer, he has worked with PTTL on refining their curriculum with respect to industry needs. He also joins the group’s “riverside chats” with external industry partners who are interested in hiring trainees, providing an engineer’s perspective on the strengths of PTTL trainees in a work environment.
When engineering directors or principal engineers come looking to hire DPI trainees, “they need someone who can speak their language,” Tokkar said.
What’s next: products
A larger team will be necessary to carry out Tokkar’s vision for the team’s future work. He is looking for common themes across DPI’s many research projects. “A lot of these projects have a need for some kind of data management system,” he said. “If we build something like that, it can serve several different projects simultaneously.”
For example, retrieval-augmented generation, or RAG, is a technique to enhance the accuracy of generative AI using facts gleaned from external sources. Tokkar sees it as a potential use case for which the team could build one platform that could then be leveraged across several different projects.
This idea syncs with Venkatakrishnan’s idea of a group that is able to build and market software products in addition to services.
“There’s a lot of interesting research going on within DPI and within the U of I System,” Tokkar said. “It is one of my goals to look for opportunities to help package it in some way that industry can leverage it as well.”
Tokkar’s goal aligns with the broader DPI mission to find synergies between its core business units and between the expertise of its researchers and the wider business community. Ultimately, the software team is a vital link in DPI’s goal to provide value to the community in the form of new jobs, new products, and new solutions.
.
DPI’s software development team: Marco Colombo, Karan Jogi, Anuj Gautam, Sumit Tokkar, Andrew Pham, and Calvin Armstrong.
Author: Jeanie Chung