Senior Software Engineer

Austin, TX | Full-time | Computer/Software



Job Description

TACC designs and deploys the world's most powerful advanced computing technologies and innovative software solutions to enable researchers to answer complex questions like these and many more. Every day, researchers rely on our computing experts and resources to help them gain insights and make discoveries that change the world.


TACC's environment includes a comprehensive cyberinfrastructure ecosystem of leading-edge resources in high performance computing (HPC), visualization, data analysis, storage, archive, cloud, data-driven computing, connectivity, tools, APIs, algorithms, consulting, and software. In addition, our skilled experts work with thousands of researchers on more than 3,000 projects each year.


Purpose
The senior software engineer position will be responsible for leading the development of one or more web application projects in the Advanced Computing Interfaces area of the Texas Advanced Computing Center.


Essential Functions
Develop familiarity with TACC, assigned projects, project leadership and the development team. Maintain familiarity with the code base and attend development and planning meetings. Organize and lead project meetings as necessary to address development tasks, e.g. user issues, bugs, and feature requests. Coordinate release versions and work with project leadership to design new features and map out development timelines. Determine project requirements and desired results and develops procedures to be used to attain such results. Responsible for the direction and completion of original research development projects, and for providing direction to research staff. Engage with collaborators to promote the project to the community through workshops, presentations, and conference participation. Participate as part of a team involved in the design, development, and deployment of highly available web portal, science gateways, and software as a service capabilities. Support the TACC mission of engaging the advancement of science and research with advanced computing interfaces.


Required Education/Experience
Ph.D. in computer science, information science, mathematics, or a computational science or engineering discipline and two years of related experience or a Master's degree and four years of experience in software development.

Required qualifications

  • Demonstrated success leading a small team of developers (3-5 persons) to develop, test, deploy, and maintain a large-scale web application

  • Experience leading software development projects

Preferred Qualifications

  • Expert understanding of web application architectures

  • Experience with multiple programming languages and frameworks

  • Experience with software testing and continuous integration

  • Excellent communication and interpersonal skills

  • Willingness to learn new skills

  • Willingness to assist and/or mentor other developers

  • Experience working with distributed systems

  • Experience programming in Python and JavaScript

  • Experience with Python web frameworks such as Django or Flask

  • Experience using JavaScript frameworks such as Angular.js or Backbone.js

  • Experience with task queues such as Celery

  • Experience using REST APIs. Experience with MySQL databases.