Research Software Engineering
The goal of the Research Software Engineering (RSE) effort at the University of Alabama is to support the growing need to develop high-quality research software, ranging from small scripts to complex modeling software, that are now an important part of research in many domains. We work with researchers from any domain where software plays an important role in the development, execution, or analysis of research. We are currently supporting researchers from Engineering, Arts & Sciences, Communication & Information Sciences, and the School of Social Work. Our RSE team is made up of professional software developers that work in line with academic aims, partnering with the supported research teams and taking on as large or small a role in software development as is appropriate for each situation, working alongside graduate students and/or postdocs.
CAPABILITIES
Our team can work with researchers on any of the following tasks:
- Development of new software – Research software can help answer a range of questions from a wide variety of research domains. This software can range from software focused on data collection to software for data analysis to software for complex computational modeling, and everything in between. We can work with researchers and/or their students to build readable, reliable, and efficient code.
- Testing and troubleshooting existing software – Once an initial version of the software exists, these activities are critical to helping ensure the software works properly. Testing helps to ensure that the software works correctly. Troubleshooting helps identify and fix aspects of the software that do not work correctly. We can work with researchers to write tests or troubleshoot software.
- Preparing software for public release – At some point in the research process, researchers may want to make their software available to the larger research community. Researchers can share their software via open-source platforms such as GitHub or its competitors. We can help researchers ensure their software is properly documented and ready to share publicly. We can also provide support with the software release process itself.
- Artificial Intelligence / Machine learning – With the tremendous growth in data in recent years, artificial intelligence, data science, and machine learning have become integral to the research process. These powerful tools use data to identify patterns, make decisions and provide insights to researchers. We can work with researchers to design appropriate artificial intelligence or machine learning solutions for their research problems.
- Deep learning – With increasing computational power and the popularity of GPUs, deep learning has become another very popular tool for researchers in many domains. Deep learning employs multiple layers of an artificial neural network architecture to detect patterns and identify underlying structure in data. It has been applied to fields including image recognition, computer vision, natural language processing, object detection, medical image analysis, and recommendation systems. We can help in developing deep learning models for a range of applications.
WORKING WITH US
There are two primary ways to make use of the research software expertise at UA. First, as researchers develop proposals that involve software, we will partner with you to include time for research software engineering in your budget and the text of your proposal (to strengthen the overall quality of your proposed work). Second, when a small amount of money remains at the end of a grant that is not sufficient to hire a new graduate student, researchers can spend this money to purchase research software engineering expertise.
For a list of current and past projects, see the list of project descriptions below. We are interested in learning more about and working with research groups across UA that use or develop software as part of their research. If you are interested in any of these services, please contact Dr. Jeffrey Carver or Dr. Karnesh Jain for more information and to set up a meeting.
CURRENT AND PRIOR PROJECTS
- Software development for CIROH – Work conducted with the Cooperative Institute for Research to Operations in Hydrology (CIROH) to develop multiple applications, including:
- An efficient pipeline to query the current National Water Model (NWM) forecast data from Google Cloud Storage and retrospective NWM model data from Amazon Web Services (AWS).
- A GIS web application using Django for interactive visualization of National Snow Model data generated using artificial neural network model. We are deploying this application using multi-Docker container.
- NarcoLogic Work with Dr. Kevin Curtin, Dr. Nicholas Magliocca, and Dr. Matthew Hudnall to develop agent-based software to model narco-trafficking networks and counterdrug interdiction forces. The Python project uses scientific computing packages (NumPy, SciPy), GIS software (ArcGIS) and Optimization package (Gurobi).
- Materials Database Update Work with Dr. Andreas Piepke to troubleshoot the software to update a materials database in CouchDB. The database must be configured using software such as Elasticsearch, Logstash, NGINX, and custom-developed Python libraries.
- GIS web app development – Work conducted with Dr. Hamid Moradkhani to develop an interactive GIS web application. The app visualizes downscaled satellite soil moisture data from a random forest machine learning model. The frontend and backend use JavaScript, HTML, CSS, GeoServer, and Leaflet. Visit the web application.
- Software development for the Alabama Water Institute – We are working with the Alabama Water Institute to develop software for data analytics, water modeling, and machine learning. We are using Django and the Tethys platform for this work.
- Image classification for 2D materials – In this project, working with Dr. Kasra Momeni, we have developed a deep learning (convolutional neural network) model for multi-label image classification of 2D materials. The model classifies pressure and flow velocity from an image database (comprising of 8156 images) obtained from performing multiscale simulations of 2D materials. The developed CNN model demonstrated excellent performance with a classification accuracy of 86% and hamming loss of 15%.
- Basic app development – We have worked with the School of Social Work to build mobile apps in support of various research projects. Available apps include:
- TreatmentFinder (Android, iOS) – helps people locate substance use and mental health treatment anywhere in Alabama
- GROW-AL (under development) – a progressive web app built with React and Firebase that uses geolocation (via the Google Maps API) to provide tailored information to healthcare providers and community members about Opioid Use Disorder
- RideShare (under development) – a web app to help people in rural communities find transportation to medical appointments