Position Summary:
Software Engineer, a key member of the data integrations team, will design and develop many types of software to specifications including software and tooling for data manipulation and intelligent high-performance web applications. The engineer will be responsible for managing operations of various aspects of the data integration platform and making high-level architectural decisions. The engineer will also oversee and mentor a small team of developers and be able to perform task-reporting functions.
Essential Duties/Responsibilities:
- Strong programming skills; logical, critical, and disciplined thinker; focus on developing algorithms; analyzing and solving programming problems
- Meet with project stakeholders to obtain or develop application requirements as well as desired application performance and capabilities. Additionally, collaborate with customer and internal team to estimate time schedule, cost constraints, and feasibility to accomplish required outcome
- Collaborate with stakeholders and software development team to design application and its subsystems as part of the overall integration platform.
- Design, develop, and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
- Modify existing software to correct errors, add new features, or to improve its performance.
- Perform administration functions on the platform’s development and staging environments.
- Manage participation in production operations activities such as change requests, change control boards, and change windows.
- Manage participation in weekly IT Working Group meetings for group reporting and high-level decision-making.
- Manage platform authentication and authorization components using agency SSO systems.
- Participate in internal code reviews and manage the software build and integration pipeline.
- Participate in and review data modeling activities.
Other Job-related Duties As Assigned.
Required Qualifications:
Education: Bachelor of Science in Computer Science required or equivalent years or experience
Experience:
- 7+ years of software development experience
- 2+ years of Big Data software management/support
- Demonstrable proficiency with programming languages and data formats: Node.js, JavaScript, JSON/XML
- Experience with UI technologies such as HTML5, CSS, and templating languages (XSLT knowledge desired)
- Experience with multiple operating systems: Linux, Windows
- Experience in software source control, inter-process and network communication, and protocols such as HTTP
- Experience with Amazon Web Services, Maintenance and Deployment
- Experience with Agile Method
- Experience in software source control, inter-process and network communication, and protocols such as HTTP
- Experience in software source control, inter-process and network communication, and protocols such as HTTP
- Experience with web APIs (i.e. REST APIs)
- Experience with AI and Machine Learning
- Experience with User Interface and Appealing Graphical Displays
- Experience with Data Management and Data Mining Techniques
- Familiarity with Single Sign-On systems such as Google Authentication
Licenses, Certifications:
Knowledge, Skills & Abilities:
- In-depth knowledge of software development cycle, object-oriented software design and development, inter-process and network communication
- Excellent written communication skills along with strong organizational, critical thinking, and interpersonal skills.
- Ability to think independently and strategically and assess solutions for short- and long-term goals.
- Demonstrated ability to interact effectively in an interdisciplinary team of scientists as well as independently.
Attributes:
- Establish effective collaboration and interactions with diverse levels of staff
- Ability to assist team with schedules and task management
- Eagerness to coach and mentor junior developers
Technology:
- High-performance Java servlet-based web applications
- Proficiency in Microsoft Office and its applications
- Languages: Node.js, JavaScript, Java, Scala, XSLT, HTML, CSS
- Infrastructure: VirtualBox, AWS, Linux, Windows
- Software and data stores: Elasticsearch, MySQL, Apache web server, Alfresco Content Management System
Working Conditions: This job operates in a professional office environment. This role routinely uses standard office equipment such as computers, phones, photocopiers, etc. Extensive online usage. This is largely a sedentary role.
Travel: Minimal travel.
The Universities Space Research Association (USRA) has a mission to advance space-related sciences and exploration through innovative research, technology, and education programs that involve universities, governments, and the private sector for the benefit of humanity. Supporting that mission, the USRA Research Institute for Advanced Computer Science (RIACS) supports multiple NASA teams through USRA’s management of the NASA Academic Mission Services (NAMS) Program at NASA’s Ames Research Center. This includes support for projects with the NASA Aeronautics Research Institute (NARI), the NASA Aviation Systems Division, the NASA Intelligent Systems Division, and the NASA Advanced Supercomputing Division.
The hiring range displayed is specifically for those who will work in or reside in the location listed (Mt. View, CA). In extending an offer, USRA considers factors including, but not limited to, the candidate’s job-related skills, experience, knowledge, internal staff equity, and relevant education/training. The hiring range for this job may be adjusted based on primary work location outside of Mt. View, California. This adjusted range will be provided to candidates by the HR Business Partner when applicable. The full time equivalent annual hiring range for this job in Mt. View, California ($89,200-$140,490)