We are looking for a Full Stack Java Software Engineer The position will be based in Jersey City, NJ and will be working within Fidelity's Brokerage Technology Group.
Since 1997, Fidelity Corporate Actions Solutions (FCAS), a Fidelity Investments company, has been a trusted source for comprehensive, accurate, and timely corporate action data. Firms today are seeking new ways to cut costs, increase productivity, and meet new levels of regulatory oversight. To accommodate those needs, we have adapted our model to deliver more intelligent corporate actions data and solutions to our clients.
We are looking for a disciplined, experienced full stack software engineer, ideally with prior Corporate Actions experience to join our technology team. As a member of our team, you will be directly supporting the corporate action system platforms used by FCAS and our commercial clients. This role will be based in Jersey City, NJ.
You will interact daily with a technology organization of architects, business analysts and developers along with business team members responsible for data delivery and support of corporate actions data and software as a service platform.
Having strong technical chops, understanding our systems, and having empathy for our customers is a given. You have a proven track record of successfully delivering projects which had a positive impact on systems, product, team, and customers. You are well steeped in the Fidelity culture and values. You have strong, educated and pragmatic, opinions both on what we do and how we do it. You also have the pragmatism and experience to yield the floor and allow better ideas to prevail. You continue to grow your skills as a professional developer. Great products come from the fusion of rock-solid engineering, clear product vision, and a hypersensitivity to the customer experience. You live our design and development methodologies, understand our business, and are on a continued pursuit to build empathy for our customers. While you are entrenched in the development, maintenance, and testing of one product area, your view expands to the product vertical your team operates in. You work with your team's Architect to ensure sound technical direction.
· Capable of designing and building Java and Angular components for the product which meets or exceeds our high threshold for quality
· Defines, maintains and supports development environments while adopting industry best practices and tools
· Ensures code reviews, unit testing and integration testing is completed efficiently and effectively
· Helps coordinate the delivery of technical components across internal/external technical squads.
· Plays a leading role in coordinating and collaborating on distinct development work streams integration and ensures scale, security and extensibility in our offering
· Mastery of professional practices and methodologies (Agile/Scrum, Test Driven Development, Pair Programming, Code Reviews, Refactoring Techniques)
The Value You Deliver
o Ability to quickly learn and Analyze complex Systems
o Very Good Analytical Skills
o Strong Financial / Brokerage Knowledge
o Ability to work independently
o Excellent technical and communication skills
o Ability to create and maintain documentation wherever necessary
o Should be innovative and works as collaborator with Scrum team
o Analysis, design, development, unit testing and execution with coding standards
Technical / Behavioral
- Web Front end skills - Angular
- Java / J2EE
- Spring / Spring AOP / Spring Batch / Spring Integration
- Oracle / PL-SQL / Hibernate
- Exposure to MQ or Active MQ
- CI/CD tools such as Shell scripting, Maven, Git/Stash, Jenkins, Artifactory, uDeploy etc.
- Heavy experience using Angular 4+ (Angular 4 made some changes to how some of the modules were organized, compared to Angular 2).
- How to properly architect an Angular application (e.g. what to put in a component, vs what to put in a service).
- Functional and unit testing using Karma and Protractor.
- Knowledge of RxJS streaming operations (admittedly we're not using too many of these, but they are very useful for some operations).
- Good knowledge of style and layout using CSS/SCSS.
- Flexbox, CSS Grid layouts.
- Reusable SCSS code with mixins and variables.
- Knowledge of functional programming and techniques.
- Data-oriented programming, vs. Object-oriented or Functional programming.
- When would you use an Interface vs a Class.
- Exposure using application servers like WebSphere, Tomcat etc.
- Exposure / experience in cloud tech, docker / kubernetes, PCF, AWS
- Self-motivation/drive to get things done and deliver on team commitments.
- Strong understanding of our systems, customers, and business goals as it pertains to the assigned vertical
- In-depth understanding of the context of the assigned Scrum team.
- Can adapt to changing conditions and coach others through change.
- Possesses ability to communicate efficiently verbally and through written documentation.
- Maintains a broad understanding of our systems, customers, and business goals. Has a deep understanding of these contexts for assigned team.
- B.E./B Tech in Computer Science, Computer Engineering, Software Engineering, or equivalent experience.
- 6-9 years of strong software engineering experience in financial services or corporate actions
- A proven track record of success in working with dynamic technology focused project teams
- Ability to data-mine and troubleshoot issues
- Familiarity with SWIFT messaging structure a plus
The Skills that are Good To Have for this role
- Embody and live the Scrum values of commitment, courage, focus, openness, and respect in all interactions, both within and outside of the team.
- Be a team member. Listen a lot. Ask questions to seek clarity. Take the floor when you have information, experience, or perspective to share. Communicate impediments as they arise.
- A Scrum team collectively delivers on their sprint goals and commitments. All team members are expected to always be intimately familiar with, and working towards delivery of those commitments, never against.
- In partnership with Product Management, actively seek to gain a deeper understanding of the business context under which your team operates. Leverage this understanding to present feature recommendation to your Product Owner.
- Complete modifications, refactoring, and bug fixes to existing functionality without the need for oversight.
- Perform complex changes and complicated refactoring without the need for direction of an experienced team member.
- While made up of many disciplines, the team delivers on commitments together. Perform documentation, design, and testing tasks as required by the team.
- Actively participate and contribute to technical discussions and code reviews.
- Evangelize and promote the successes and learnings of your team in formal ceremonies, such as sprint demos, as well as in casual conversation.
- Write queries, scripts, and data upgrades.
- Take point on supporting deployments and releases.
Apply on company website