We are looking for an Principal Software Engineer to assist in the definition of the application architecture for web and mobile banking applications. This role would set strategy and provide hands on development to build capabilities and maintain the existing Java applications and the next generation application architecture. This person would also guide development of the next generation of mobile banking at Citizens Bank. The right individual for this role must be capable of building applications in Java, using modern architectures. You should be comfortable application patterns Ie: CQRS, application coding based on design and specifications. You should also be comfortable working with application protocols such as JSON RPC, SOAP, ReST API’s and single page architectures. You should have some experience and background with AWS services and the capabilities they provide. The candidate must have been a top-notch Java developer committed to becoming an integral part of, and fostering growth within our development team. This person would help lead the development, implementation and support of individual applications, including analysis, detailed design, development/coding, testing and implementation of the components.
In this role as a Principal Software Engineer, you will direct a staff of application developers ensuring that common architecture decisions are implemented consistently across business and IT in order to support the business and IT strategy.
Primary responsibilities include:
Responsible for researching, analyzing, designing, and delivery of IT architecture solutions that are appropriate for the business and IT strategies in one or more domains.
Oversee the effort to provide integrated systems analysis and recommends appropriate hardware, software, and communication links required to support IT goals and strategy. This may include coordinating activities of the project team and assisting in the monitoring of project schedules and costs.
Define patterns and development frameworks for junior developers
Manage the effort to support, resolve and document issues that arise in the architecture. This may include reviewing designs and recommending improvements to the architecture.
Responsible for being aware of IT industry trends, and enterprise standards and methodology and being able to react to issues that arise.
Define, implement and maintain technology security infrastructure, policies, processes and procedures to proactively protect, monitor, investigate and resolve threats to a secure user environment and company assets.
6+ years of Java development experience, ideally in a team lead role
Demonstrated experience with defining application architectures in the distributed java world.
Experience with REST API Domain Driven Design
Demonstrated experience with the design and development of REST API
Experience with Amazon AWS and containerization technologies ie: Docker
Exposure to AWS Services (SQS/RDS/S3) including knowledge of CQRS application architectures.
High level skills in Java, using the latest SDKs and tools and frameworks such as Spring, RxJava, etc.
Some exposure to frameworks like Python, Node.js, angular.js and other .js frameworks for application creation is a plus.
Ability to develop functional, technical and user interface designs for an application that meets the defined requirements (business, system performance and standards)
Demonstrates expertise in specific coding concepts and/or languages, especially around modern event based application architectures, CQRS, Kafka, Kinesis
Experience with implementing Java, Spring Boot, Hibernate, HATEOAS, Gradle/Maven, JSON, ReST/Resource Oriented Design
Experience with configuring highly automated CI/CD pipelines.
Experience interfacing with back-end applications using MQ, SOAP, RESTful services, and JSON.
Experience with Agile/Jira, Jenkins/Cobertura/PMD/FindBugs.
Experience with web applications that use responsive design to better support mobile browsers.
Experience in highly-secured online environments that use n-tier designs and extensive firewalling to enhance security.
Some exposure with Wiremock, JUnit/Mockito/Assert4J, JMS/MQ, Functional Reactive/ Lambdas/Streams
Experience in multi data center physical implementation models for scalability and resilience.
Experience partnering with others to solve problems quickly and efficiently.
Some exposure to the Financial Services Industry is a plus.
Educational, Certifications and/or Other Professional Credentials:
Bachelor’s degree or 10-15 years IT Experience in lieu of Degree
Hours & Work Schedule
Hours per Week: 40
Work Schedule: M-F
Why Work for Us
At Citizens, you'll find a customer-centric culture built around helping our customers and giving back to our local communities. When you join our team, you are part of a supportive and collaborative workforce, with access to training and tools to accelerate your potential and maximize your career growth.
Equal Employment Opportunity
It is the policy of Citizens Bank to provide equal employment and advancement opportunities to all colleagues and applicants for employment without regard to race, color, ethnicity, religion, gender, pregnancy/childbirth, age, national origin, sexual orientation, gender identity or expression, disability or perceived disability, genetic information, citizenship, veteran or military status, marital or domestic partner status, or any other category protected by federal, state and/or local laws.
Equal Employment and Opportunity Employer/Disabled/Veteran
Citizens Bank is a brand name of Citizens Bank, N.A. and each of its respective subsidiaries.