CACI is looking for a Java Software Engineer that will work in a small team working on a data visualization desktop application. This application supports ongoing research and development efforts involving diverse subject areas (computer networks, electro-magnetic spectrum, orbital mechanics, air traffic patterns, etc), and as such requires flexibility on the part of the development team to support.
Duties and Responsibilities
This is a research and development environment, so changing technical requirements driven by proof-of-concept needs are common. There is a constant need to refresh skills and learn new technology.
Additionally, basic software engineering skills will be expected:
Interface with developers and clients
- Identify needs and translate into software requirements
- Discuss design/architecture choices with engineering team
- Make presentations to non-technical or somewhat technical audiences
- Take initiative to ensure requirements are met
- Collaborate with team for task decomposition and assignment
Must be a U.S. Citizen.
We rely heavily on Java 8 language enhancements, and are constantly exploring new technologies. However, there are few basic requirements, namely a strong understanding of the following areas:Java
- Data Structures
- Concurrent Programming
- Graphical User Interfaces (Swing)
A bachelor's degree in Computer Science or related field.
- File I/O
- NetBeans Platform
- Lambda Expression
- Design Patterns
- Human-Computer Interaction principles
EDUCATION & EXPERIENCE:
Typically requires bachelor's degree or equivalent and zero to two years of related experience.
Normal demands associated with an office environment. Ability to work on computer for long periods, and communicate with individuals by telephone, email and face to face. Some travel may be required.