Teledyne Brown Engineering, Inc. is an industry leader in engineered systems and advanced manufacturing. The Company provides full-spectrum systems engineering, integration, manufacturing, and lifecycle sustainment solutions to the marine, aviation, aerospace, and defense, energy and environment markets. Teledyne Brown has expertise in systems integration, technology development, hardware design, prototype development, system test and evaluation, advanced manufacturing, performance-based logistics solutions, and operations and maintenance
Responsible for analyzing, designing, modifying, developing, writing, testing, and implementing software programming for user applications. Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle. Performs a variety of complicated tasks. Works on problems of diverse scope where analysis of data requires evaluation of identifiable factors. Relies on experience and judgment to plan and accomplish goals. Normally receives little instruction on day-to-day work, general instructions on new assignments.
Essential Duties and Responsibilities include the following. Other duties may be assigned.
• Writes software code and completes programming for graphical user interfaces, and may write firmware for embedded processes as required
• Performs design, analysis and verification testing of a functional component (e.g. software module, embedded software module) for new product design
• Participates in the testing process through test review and analysis, test witnessing, debugging, and certification of software
• Completes documentation and procedures for installation and maintenance
• May perform systems modeling, simulation and analysis in designing compilers, assemblers and utility programs
• Advises hardware designers on machine characteristics that may affect software systems
• Acts as a technical reviewer of existing designs and provides input for documentation of new or existing programs; integrates software with existing systems
• May interface with users to define system requirements and/or necessary modifications
• Supports, maintains and documents software functionality; documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code
• Proposes concepts for improvements to existing techniques
• Evaluates and identify new technologies for implementation; improves operations by conducting systems analysis; recommending changes in policies and procedures
• May prepare and install solutions by determining and designing system specifications, standards, and programming
• Provides information by collecting, analyzing, and summarizing development and service issues
• Briefs others on deliverables, status and progress
• Provides application support to other departments and personnel as needed
• Daily availability to include evenings and weekends when necessary to reach goals and deadlines.
This job has no supervisory responsibilities but may provide technical leadership to lower level engineers including carrying out lead responsibilities in accordance with applicable regulations and laws and the organization’s policies and procedures. This includes, but is not limited to training employees, planning, assigning, directing work and resolving technically related work problems.
This position is for a motivated software developer who desires to be part of a small team of other developers and engineers on a new and challenging maritime project. This position will involve software requirements development, design, code and test. Hands-on with real hardware, such as developing software to interface to maritime sensors, will be part of the task. Any work done on autonomy is a plus, but not required. A good knowledge of networking protocols, real-time coding concepts and publish/subscribe messaging is also desired. While not required, some background with cybersecurity as it relates to hardening operating systems is a big plus.
Education and/or Experience
Bachelor's degree (B.S.) from four-year college or university in a related field and a minimum of 5 years of directly related experience and/or training; or equivalent combination of education and experience.
Candidate must have experience as a C++ programmer on Linix operating systems. An intermediate knowledge and understanding of software design concepts and implementation techniques is required. Candidate will be assigned programming tasks and work under the direction of a senior software architect.