Play a key role in designing and creating Identity & Access Management (IAM) Solutions as well as developing applications written in Java/J2EE technologies. Work in a team to design, develop, test and maintain Telematics Software platform.
Duties and Responsibilities:
- Design and develop new technical Identity & Access Management (IAM) components.
- Work closely with Architecture Team to identify key IAM technical components, translate these into project requirements and assist in prioritizing development efforts.
- Design and develop secure web applications using the latest Web Standards and Specifications.
- Design and develop Single-Sign-On solutions for clients
- Analyze, design, and implement software solutions of varying complexity, including server-side and middleware.
- Work in an Agile S/W development environment with frequently changing requirements
- Provide technical mentorship and guidance to junior team members
- Provide well-written design documents from requirements documents (even loosely specified requirements)
- Support existing software including development of enhancements, defect resolution, determining and resolving performance issues, debugging, upgrading, deployment and migration.
- Participate in, coordinate, or conduct Software Engineering activities to mature the Telematics software infrastructure including architecture, design, methodologies, best practices, standards, etc.
- Performs all other duties as assigned.
- Design and create Identity & Access Management (IAM) Solutions using ForgeRock OpenAM, OpenIDM and OpenDJ/OpenDS.
- Perform assessments and performance analysis to support, design, and develop new technical Identity & Access Management (IAM) components.
- Ensure appropriate collection and analysis of technical/functional requirements based on critical client IAM use cases and expectations.
- Conduct in-depth technical IAM research.
- B.S. in Computer Science or related field is required.
Requirements and General Skills:
- Utilizes sound decision making skills and communicates well with other team members and business users.
- Identifies problems and recommends solutions.
- Performance will be measured by his/her ability to deliver quality applications on time.
- Works in a team environment, including cross-functional teams and teams with business users throughout the company.
- Excellent oral and written communication skills.
- Participates in meetings and conference calls with clients.
- Initiative to research and learn emerging technologies.
- Completes additional duties as required.
- Experience in secure web applications while adhering to OWASP and OASIS recommendations.
- Experience in designing and developing RESTful web services using both XML and JSON.
- Solid understanding of the architectural concepts of Identification, Authorization, and Authentication.
- Experience with SAML2, OAuth 2.0, and OpenID Connect.
- Strong understanding of directories, LDAPv3, LDAP Schema, and LDAP Replication.
- Strong understanding of PKI, encryption, certificate management etc.
- Basic understanding of RDBMS and relational databases.
- Java/J2EE software development experience in a UNIX/Linux environment
- Strong foundation in Object Oriented Design techniques
- Experience in: JDK 1.8, JUnit, JSP/Servlets
- Experience working with different Application servers
- Frameworks like Struts, Spring
- Knowledge of TCP/IP and related protocols – theoretical and also practical
- Experience in building and maintaining scalable and distributed systems
- Good SQL skills with knowledge of Oracle/DB2 RDBMS
- Experience with version control software such as Git, SVN, CVS etc.; experience with IDE such as Eclipse
- Excellent written and verbal communication skills, ability to work across organizational boundaries
- Proven success in delivering working solutions under tight deadlines
- At least 2 years of design and development experience in ForgeRock tools including OpenAM, OpenDJ, and OpenIDM.
- Basic knowledge of UMA.
- Experience in designing and building scalable web services
- Experience with NoSQL databases
- Server knowledge (at least one) : JBoss, Tomcat, Spring Boot, Jetty
- Test Driven Development: Experience using JUnit, and mocking frameworks like PowerMock and EasyMock