unit logo

Research Software Engineer III

Summary

This role is crucial for driving innovative research that involves complex computations, large data analysis, and artificial intelligence in science, engineering, mathematics, statistics, finance, language, history, and fine arts. The role is to create software to solve complex problems in close collaboration with research teams and make sure the software meets software design principles to ensure stability, security, and maintainability. The Research Software Engineer III will work with minimal supervision, applying software engineering principles and providing guidance to design software to improve research processes, participate in project planning and execution, and assist in reporting.

Examples of Work

Job functions are specific duties that would be included in the essential functions of the job description.  These functions are not all-inclusive nor do they cover the full extent of the duties performed.

  • Provide expertise and consulting in collaboration with a researcher team in gathering software requirements from researcher-provided use cases and project goals
  • Develop software architecture and design within a team, delivering flow-charts and diagrams
  • Develop modular software architectures independently
  • Design software for parallel processing of high-performance computing and high-performance data analytics workflows
  • Incorporate usability and performance considerations into software designs independently
  • Incorporate cybersecurity principles in software designs apply them in coding with supervisor and collaborators
  • Write software in high-level languages like C/C++, Java, Scala, Julia, Fortran independently
  • Build software frameworks by assembling components using scripting languages like Python independently
  • Build software using frameworks and libraries independently
  • Create software documentation independently
  • Develop software testing methods within a team and program them independently
  • Use software version tracking and continuous integration tools
  • Design and implement software maintenance processes
  • Work with project management to set milestones for software engineering projects and to provide project reporting
  • Architect and manage complex software engineering projects within an open-source research community in collaboration with others

Education and Experience

A Bachelor’s Degree in computer or physical science, statistics, bioinformatics, analytics, or similar field and five years of experience; Master’s Degree in computer or physical science, statistics, bioinformatics, analytics, or similar field and three years of experience; Doctoral Degree in computer or physical science, statistics, bioinformatics, analytics, or similar field and one year of experience.

Licensure and Certification

N/A

Supervision

This position will not have supervisory responsibilities. Responsible for the leadership of small/medium sized projects and the direction of project efforts of 1-2 people. May be responsible for mentoring student interns.

Competencies

To see common career pathways for each position at the University of Florida please visit the Career Paths section of the UFHR website.