Lead Java Developer
Job Purpose
This role is within the clearing technology team, who build and maintain the software that allows ICE’s clearing houses to process millions of transactions a day, reliably and efficiently. Our clearing houses finalize trades, settle accounts and collect margin payments every day. The Lead Developer will focus on working with our clearing houses, around the world, to build and maintain systems to calculate margin payments and monitor clearing house risk. They will mentor developers on the team and collaborate with both testing and project management teams to ensure top quality delivery. The ideal candidate for this position will be a self-directed individual with a passion for technology and excellence. The role requires solid knowledge of server-side technologies, good experience with iterative development and SDLC tools, and the ability to lead and work well with others.
Responsibilities
- Understand complex business systems and workflows and explain them to other developers
- Develop component designs that work cohesively in the context of existing architecture
- Mentor other developers including reviewing designs and code.
- Exercise judgment within defined standard practices and procedures to analyze, test, design, program, debug, modify and implement system requirements
- Work closely with the business units and stakeholders on gathering and understanding system requirements
- Plan and estimate the development for key components, applications and systems
- Balance design considerations with delivering specified requirements
- Solve business problems through the use of applied proven technologies
- Work with system operations, database administration and systems software in production support and defining system recovery procedures
- Develop high performance and business critical applications that work on large data sets in a clustered environment
- Identify root causes and develop solutions for program failures
- Collaborate with business analysts and QA analysts in the design and execution of business feature, regression and integration testing
- Plan and execute unit tests to ensure the developed code is free of functional defects
Knowledge and Experience
- Bachelor’s degree in Computer Science or related field required
- 6+ years of experience developing with Java technologies
- Strong working knowledge of:
- Java 8+
- Data structures, Algorithms, OOD and Design Patterns
- Distributed messaging, JMS
- Spring and its frameworks like Spring Boot, Spring Data
- Relational Databases (such as Oracle), SQL, PL/SQL, JDBC, and JPA
- Multi-threaded server side development
- Experience in Java performance tuning, debugging and memory profiling
- Experience with HTML5/JavaScript UI frameworks
- Able to work productively under pressure
- Able to multi-task effectively
- Strong collaboration and technical skills in articulating technical infrastructure and concepts
- Strong interpersonal skills and able to work well in a team environment
- Excellent communication skills
- Excellent technical documentation skills
Preferred
- Exposure to the financial services technologies domain, particularly in futures and options
- Experience implementing Big Data pipelines for Data Ingestion, Storage, Distributed Processing & Consumption using frameworks like Hadoop, Spark, Flink, Storm, etc
- Experience with distributed storage solutions and/or NoSQL databases – e.g. HDFS, Cassandra
- Experience with Container and Cloud technologies – e.g. Docker, Kubernetes, AWS, leading PaaS solutions
Intercontinental Exchange, Inc. is an Equal Opportunity and Affirmative Action Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, sexual orientation, gender identity, national origin or ancestry, age, disability or veteran status, or other protected status.