The Senior Software Engineer is a self-directed leader that works on team projects to provide a broad range of software development expertise for various applications. The candidate will be responsible for all software engineering lifecycle processes including requirements gathering, analysis, design, documentation, programming, debugging, unit testing, new development, and sustaining existing applications. They solve the most challenging problems and may assist with managing other software engineers. This position includes involvement with the customer, internal hardware and software teams, and subcontractors. Other responsibilities include planning, tracking, and meeting work commitments.
Primary Duties & Responsibilities:
Programming in Java using IntelliJ
New development and sustaining of existing applications
Desktop and Server Ubuntu 22.04 for development and deployment
Source code management using Git
Issue tracking using Jira
Written communication (e.g., Jira, Confluence, documents, spreadsheets, presentations, email)
May be responsible for any/all stages in the software engineering lifecycle: requirements gathering, analysis, design, documentation, programming, debugging, and unit testing
Estimate, track and report scope and effort for tasks
Managing and coordinating tasks for an engineering team
Developing software in a team
Developing software in a larger integrated system
Apply troubleshooting techniques and overcome challenges
Work at a Teledyne office with access to project hardware
Work within a geographically disperse team
Periodic travel for integration sessions at other sites and supporting build, test, or customer events
Continual growth as tools and technologies advance
Develop and maintain an understanding of the system and equipment that is controlled.
Support the engineering change process used by Teledyne FLIR
Required Job Qualifications:
Applicants must be a U.S. citizen
BS or MS degree in Computer Science or equivalent
Minimum 10 years relevant experience in software development
Expert at Java
Expert problem-solving skills
Expert at multi-threaded programming and debugging
Expert at Git
Experience with network configuration and tools (e.g., ssh, scp)
Experience managing a team of engineers
Excellent written and verbal communication skills
Ability to develop detailed plans for a task, accurately estimate the effort, and track progress
Ability to track issues/changes with or without an issue tracking system and generate a change log
Ability to overcome challenges and make tradeoffs between an ideal solution and what is possible given project constraints
Desired/Preferred Job Qualifications:
Expert at integrating and working with network and serial devices
Expert with Ubuntu 22.04 (or newer) OS.
OS and package configuration
Development, debugging, and deployment tasks from a remote console (e.g., ssh)
Experience with C++ and Bash scripting
Experience with Android and Windows OS.
Experience with Android Studio and developing Android applications
Experience with ATAK plugin development
Experience with Integrated Sensor Architecture (IAS)
Experience with Military Standard Software Development and Documentation (MIL-STD-498)
Ability to create mockups and rapid prototypes
Ability to read schematics and mechanical drawings
Understanding of software security practices