Company Name: BITS, a CACI Company
Summary: Under minimal direction, performs as a fully experienced Software Developer in design, development, coding, testing, and debugging new software or providing complex enhancements to existing software. Works with technical staff to understand and to develop resolution of software problems. Participates in the development of software user manuals. Assists in the training of less experienced software development staff and may act as a team leader on less complex projects.
In CACI's Cyber Capabilities and Development Division (C2D2), there isn't a day that goes by where you won't be challenged and have the opportunity to grow in an environment of innovation and fun! Although CACI is a mid- to large-sized company, C2D2 operates like an independent small agile business, developing and executing on both long-term projects, as well as, Quick Reaction Capability development, rapid acquisition, and short-term deliverables. We approach our Customers as mission partners and focus on mission-oriented capabilities that deliver tip-of-the-spear force multiplying effects. In short, we believe in our mission, our team, and our solutions!
Duties and Responsibilities:
- Writes code to create single-threaded or user interface event driven applications, either stand-alone or those which access servers or services.
- Develops code necessary to complete the assigned project(s) in the specified time frame according to departmental standards and guidelines.
- Writes, modifies, and debugs software for client applications.
- Identifies and reports problems in new and existing software. Recreates reported software problems to facilitate solutions. This includes validating the fix for the software problem. Resolves customer complaints with software and responds to suggestions for software modifications or enhancements.
- Assists in the preparation of internal software design documentation.
- Develops the critical components of the solution, including but not limited to, security, rules infrastructure, custom adapter implementation, and application interfaces.
- Uses source debuggers and visual development environments.
- Architects and codes multi-environment system solutions utilizing various programming languages.
- Profiles, analyzes and optimizes the software he/she is responsible for implementing.
- Employs best practices for design, development, unit testing and test plan development.
- Supports completed software throughout the Software Development Life Cycle and in production.
- Seeks to improve personal job related knowledge and departmental process by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities, and reading professional publications.
- Assists in the training of less experienced software development staff and may act as a team leader on less complex projects.
- Develops software system testing procedures, programming, and documentation.
- Consults with customer concerning maintenance of software system.
- Provides support for the acquisition, installation, maintenance and operations of computer systems hardware, software and networks within assigned customer work stations and facilities.
- Supports proposal efforts by significantly contributing technical material to selected proposals and reports to substantiate and secure program funding.
- Identifies creative solutions to improve system and product offerings. Represents the organization in providing solutions to difficult technical problems associated with specific projects
- Researches problems discovered by quality assurance or product support and develops solutions to the problems.
- Works with engineering and management team to collectively meet market requirements.
- Documents engineering work as input for company collateral and patent requirements.
- Collaborates with technical writers to create customer-relevant documentation.
- Coordinates with project work teams to ensure adherence to policies, achievement of quality targets and delivery on schedule milestones.
- Collaborate with other software developers, business analysts and software architects to plan, design, develop, test, and maintain web- and desktop-based business applications
- Conduct security assessments of systems, networks and software.
- Knowledge of C, C++, C#, Java, Python
- Extensive experience designing and developing enterprise grade software
- Experience with source control management systems and continuous integration/deployment environments
- Experience with automated testing
- Experience with agile development methodologies including Kanban and Scrum
- Experience with multi-threading and concurrency
- Experience with debugging, performance profiling and optimization
- Comprehensive understanding of object-oriented and service-oriented
- US Citizenship and the ability to obtain a TS/SCI clearance
- Android development.
- Embedded development.
EDUCATION & EXPERIENCE:
Typically requires bachelor's degree and five to seven 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.