The Development family is responsible for creating, designing, deploying, and supporting applications, programs, and software solutions.
May include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities related to software products used internally or externally on product platforms supported by the firm.
The software development process requires in-depth subject matter expertise in existing and emerging development methodologies, tools, and programming languages.
Software Developers work closely with business partners and / or external clients in defining requirements and implementing solutions.
The Software Engineering role specializes in planning, documenting technical requirements, designing, developing, and testing all software systems and applications for the firm.
Works closely with architects, product managers, project management, and end-users in the development and enhancement of existing software systems and applications, proposing and recommending solutions that solve complex business problems.
RESPONSIBILITIES
Act as a technical expert on one or more applications utilized by DTCC
Work with the Business System Analyst to ensure designs satisfy functional requirements
Partner with Infrastructure to identify and deploy optimal hosting environments
Tune application performance to eliminate and reduce issues
Research and evaluate technical solutions consistent with DTCC technology standards
Align risk and control processes into day to day responsibilities to monitor and mitigate risk; escalates appropriately
Apply different software development methodologies dependent on project needs
Contribute expertise to the design of components or individual programs, and participate in the construction and functional testing
Support development teams, testing, troubleshooting, and production support
Create applications and construct unit test cases that ensure compliance with functional and non-functional requirements
Work with peers to mature ways of working, continuous integration, and continuous delivery
Aligns risk and control processes into day to day responsibilities to monitor and mitigate risk; escalates appropriately
QUALIFICATIONS
Bachelor’s degree in Computer Science, Applied Computer Science, or related field
6+ years or related experience.
Passion for technology, a curious mind, and an entrepreneur mindset.
Expert in back-end and front-end application development.
Hands on experience in client/server and object-oriented software development utilizing Java/J2EE, Spring (Boot), Angular 6+, JSON, MQ, JMS, REST API, DB2, and Oracle DBs, Linux
Experience using the following tools: GIT, Bit Bucket, Jira, Maven, Jenkins.
Proven track record with WebSphere, Tomcat, JBoss or other Application servers
In-depth knowledge of relational databases including DB2, Oracle
Proficiency in various phases of the system development life cycle including project planning, analysis, design, development, and testing
Solid focus on software testing with tools such as Junit, Mockito, Jasmine, Karma.
Demonstrable experience in software development using CI/CD tools (Jenkins, Bitbucket, Nexus or similar)
Familiarity with different software development methodologies (Waterfall, Agile, Scrum, Kanban)
SOFT SKILLS
Works well as part of team. Self-motivated, tenacious learner
Curious and agile mindset
Strong communicator who is a self-starter and highly motivated individual
Able to support multiple projects and deadlines in a fast-paced work environment
Able to provide adequate guidance & governance to project teams during component integration
Excellent organizational, communication and leadership skills
NICE TO HAVE SKILLS
Experience in Financial industry a plus
Experience in Mainframe is a big plus
Experience with AWS (EC2, Kinesis, Route53, S3, CloudWatch) is a plus
Experience with Kafka/Solace is a plus.
ADDITIONAL QUALIFICATIONS
Fosters a culture where honesty and transparency are expected
Stays current on changes in his/her own specialist area and seeks out learning opportunities to ensure knowledge is up-to-date
Invests effort to individually coach others.
Builds collaborative teams across the organization.
Communicates openly keeping everyone across the organization informed.