J.P. Morgan is a leading global financial services firm, established over 200 years ago:
o We are the leader in investment banking, financial services for consumers and small businesses, commercial banking, financial transaction processing, and asset management.
o We have assets of $2.5 trillion and operations worldwide
o We operate in more than 100 markets.
o We have more than 243,000 employees globally.
Our wholesale businesses include J.P. Morgan’s Asset Management, Commercial Banking and the Corporate & Investment Bank which provide products and services to corporations, governments, municipalities, non-profits, institutions, financial intermediaries and high-net worth individuals and families.
Our corporate functions support the entire organization and include the following functions: Accounting, Audit, Finance, Human Resources, Operations, and Technology.
J.P. Morgan in India provides a comprehensive range of Corporate & Investment Banking, Commercial Banking, Asset & Wealth Management, and Corporate functions services and solutions to our clients, executing some of the most important financial transactions and providing essential strategic advice to our clients such as the government, large domestic and multi-national corporations, non-government organizations and financial institutions and investors. India is a key market for JPMorgan Chase globally and our employees in India are a critical part of how we do business globally and are integrated within our businesses. Our Global Service Centers (GSCs) are strategically positioned in Mumbai, Bangalore and Hyderabad to support the firm’s operations regionally and globally. The centers provide comprehensive strategic support across technology and business operations processing to all lines of business and the corporate functions.
The Technology team at our GSCs service all Lines of Business and Enterprise Technology in helping build and operate innovative industry leading solutions. The breadth of capabilities within the Technology team at the GSC enables it to support the firm in leading edge areas such as Digital, Big data analytics, Robotics & Machine Learning.
An experienced Software Engineer is sought to support the delivery of the strategic Run-Time Metadata Repository and associated Application Development Tools & Metadata Services. The individual must have excellent Java Application Development skills coupled with a detailed understanding of model driven development, metadata management and information architecture.
The primary function of the role is to work as part of the Global Banking Information Architecture team to provide development support in order to deliver and maintain components and tools that support the wider function of Data Management.
This role will function across Global Banking and will collaborate across the firm-wide Information Architecture team in order to create and instill Information Architecture engineering best practice design patterns, standards and methods.
The Senior Software Engineer will work closely with Information Architects, Software Developers, Data Management Owners and Stewards.
The successful candidate will be required to interchange between operating independently and in conjunction with other team members as required, whilst working on a number of assignments simultaneously.
· Creation and maintenance of Metadata Management tools and components to ensure conformance of UML Models against the defined Meta-Model
· Creation and maintenance of Software Tools for forward engineering software source code from UML Models
· Creation of Data Distributions Services to deliver a wide range of Metadata into run-time applications on demand.
Producing documentation, guidance & training materials for all of the above.
An understanding of (in no particular order):
Forward engineering approaches to software production
Eclipse (5.x and above) Macro & Plug-In development
Development of decoupled Software Architectures such as Component-Based Architecture, Service-Oriented Architecture, Model-View-Controller, N-Layer Architecture, Aspect Oriented Development etc. (The more, the better)
Java API design with Passive Data Objects
Meta-Object Frameworks (OMG MOF, Eclipse ECORE) and Factory Classes
UML and UML Customizations as source models for software specifications
Schema-less Messaging i.e. Java serialization / deserialization to/from a range of data transfer formats e.g. JSON, XML using @Annotations, XMI
Data Driven Applications (where we avoid hard-coding as much as possible and drive configuration and behavior from rules & configuration metadata)
Creation of Data Access Layers using standard Java libraries such as JPA
Experienced Java Developer with specific knowledge of:
Ideally plus knowledge of at least one non-Java language e.g. C#, C++, Smalltalk, Python
Agile Architecture and Software Development
Continuous Integration & Testing (CIT) environments
Automated Build and Release environments
Design for Change approaches i.e. designing non-breaking solutions to continually evolving requirements.
Ability to identify software implementation patterns common across multiple programing languages and technology stacks
Abstraction and generalization of solutions into design patterns
Able to envisage and compare potential solutions prior to implementation.
Construction of Domain Specific Languages and mapping into Target Specific Languages.
Effective communication and facilitation with Technical stakeholders to translate requirements into software that represent progress towards a target state of best engineering practice, simplification and standardization
Ability to unambiguously communicate through multiple channels such as Presentations, Word Documents , Workshops and Agile Development Meetings
Collaborate with the business technical teams, exchanging and transferring technical knowledge, and developing and evolving standards, guidelines, etc..