Senior Software Engineer supporting the Corporate Reusable Software team (JBlocks). Position involves design, development and documentation of policy-driven software for use in cloud-based systems. Significant interaction with a wide variety of other programs is expected in this role; new requirements are levied regularly on the JBlocks team and are dynamic in complexity. Candidate must be able to create work plans from nebulous/conflicting requirements and communicate ideas and status updates to leadership. Candidate must have experience with Java programming, Smart Data, and access control. Intimate understanding of the Customer’s organization is critical for this role.Required Skills:
At least four of the following skills are required:
- Experience with Identity and Access Management (IdAM or IAM) – centered around authorization using policies
- Familiarity with XACML / other access control policy language
- Familiarity with OAuth / OIDC
- Experience with the SMP Register and Manual, and generally with data security policies and common data marking formats as they apply to classified environments
- Experience interacting with the corporate IdAM solution, specifically attributes and authorization
- Familiarity with object-oriented programming theory and best practices for the modularization and decoupling of complex processes
- Experience with UML diagrams and/or other methods of expressing the implementation and operation of software
- Experience implementing multi-threaded applications and with the optimization of complex processes and data structures
- 8 years of Software Engineering experience. An additional 4+ years of Software Engineering experience may be substituted for the degree for a total of 12 years.
- 2+ years experience with Linux, Eclipse, Maven, and Java
- 2+ years work experience in the SIGINT, IA, or IT domains.
- Must be able to work in a fast-paced environment where multiple projects are being developed simultaneously.
- Must be able to adapt quickly to new requests and react to unexpected results.
- Must be able to work well within a team environment, be organized and multi-task.
- Must have excellent interpersonal skills, be able to communicate in a professional manner both verbally and in writing, and have experience interacting with developers, system users, and the customer.Required Education:
Bachelor’s Degree or higher in computer engineering or in a field related to the computer engineering or computer science disciplinesRequired Clearance:
TS/SCI Clearance with polygraph