Software Engineer
You will demonstrate breadth and flexibility by contributing at various levels of software development including firmware, device drivers, real-time operating systems (RTOS) and application software. You will be part of a team that solves the most complex networking and communications challenges facing the U.S. Federal Government. You will help deliver groundbreaking research, and advanced networking and communications solutions that provide an information advantage that contributes to the mission and operational success of CACI customers.
Responsibilities :
- Design, develop, integrate, test, and maintain complex software solutions in telecommunications and IP / computer networking equipment in the cyber security domain
- Work with a product development team to develop concepts, identify creative solutions to user requests and assess feasibility of these solutions
- Consult on technical activities spanning multiple technical disciplines including security analysis, software / tool development, software test, lab environment, development environment and system infrastructure
- Act as the technical liaison to customers in representing key issues
- Operate effectively and comfortably in a team environment, as a team member and as a team leader. This includes the ability to work across organizational boundaries, as necessary
- Assist technical management in facilitating process changes needed to meet customer quality and schedule requirements
- Interact with product development teams, project managers and partners
- Prioritize work including meeting schedules, identifying risks and delivering high quality software
- Understand and adhere to all CACI ethical and compliance policies
- Proactively ensure a safe work environment and adhere to CACI EH&S policies and procedures
- Perform other duties as required
Qualifications Required :
Bachelor's and / or Master's Degree in Computer Engineering, Computer Science, Electrical Engineering or related technical disciplineMinimum of 5 years of experience or an equivalent combination of education, skills, and experienceFamiliar with development in either Windows, Linux and / or Unix-based operating systemsSoftware development skills in languages such as : C, C++, Python or comparable languagesUse of development tools (e.g. editors and compliers)Willingness and ability to quickly learn new technologiesDesired :
Familiarity with software security concepts such as intrusion detection, cryptography, authentication, firewalls, secure coding practices.Understanding of network hardware, systems and software application.Knowledge of Internet routing protocols, TCP / IP stack and toolsExperience developing software for embedded systemsFamiliarity with multi-threaded applications and multi-processor systemsFamiliarity with low-level programming such as device-driver and OS programmingUnderstanding of processor architectures (ARM, MIPS, x86, PowerPC) and associated assembly language programmingExperience with reverse engineering of binary applications, protocols and formatsExperience debugging system-level issues with various lab equipment.Strong oral and written communication skillsAbility to work both independently and as a collaborative team memberFlexibility to adapt to new and changing environmentsKnowledge of telephonyFamiliar with software engineering process concepts from requirements reviews, code inspection to component delivery and sign-offKnowledge of Microsoft software applications and other software applications as requiredA TS / SCI clearance is required to begin employment.