Job Purpose
Intercontinental Exchange, Inc. (ICE) presents a unique opportunity to work with cutting-edge technology and business challenges in the financial sector. ICE team members work across departments and traditional boundaries to innovate and respond to industry demand. The ideal candidate will be able to multitask in a dynamic team-based environment demonstrating strong problem-solving and decision-making abilities and the highest degree of professionalism.
This role will be part of a team responsible for developing the tools to the Enterprise Ticker Plant. It involves right from participating in the requirements discussions, technical design, setting up the development environment, developing the applications and deploying the applications to the configured environment. In addition, the Software Engineer will be responsible for supporting the QA staff and any production issues that may come for the deployed applications.
We are looking for a senior C++ developer to be a part of an experienced team of professionals taking technical ownership of the projects related to Enterprise Ticker plant tools. A commitment to collaborative problem solving, sophisticated design, and quality product is essential. They should be willing to learn or work on Go language.
We are also looking for an experienced software engineer with technical proficiency as well as an eager attitude, professionalism, and solid communication skills.
Responsibilities
Develop and support applications related to the in-house Enterprise Ticker Plant applicationsWrite scalable, robust, testable, efficient, and easily maintainable codeTranslate software requirements into stable, working, high performance softwarePlay a key role in architectural and design decisions, building toward an efficient micro services distributed architecturePassionate technologist, keen to innovate, learn and share knowledge with othersShould have strong knowledge of Computer Science fundamentals such as OOP, data structures and algorithmsShould be strong on Linux based application developmentShould be experienced in Systems programming, multithreading and in writing the Client-Server based applicationsMentor or guide the junior developers by doing code reviewsDocument changes and author documentation on software functionalityKnowledge and Experience
Bachelor’s degree in technology, engineering or equivalent experience6 to 9 years’ experience in Software DevelopmentDemonstrably strong C/C++ programming skills – 5+ years of development on Unix/Linux platformsHands-on knowledge of GCC/G++, GDB, Valgrind, and system profilersWilling to learn and work on languages like Go and PythonTop class ability to understand complex systems and how to debug problemsGood working knowledge of TCP and Multicast programming paradigmsDemonstrated experience with Linux/Unix and shell scriptingShould be familiar with network engineering and socket programmingExperience with NoSQL (MongoDB), Redis, etc.Plan and implement model data structures for scalability.Work on the maintenance or enhancement of existing data structures.Designing REST APIs which will be used by multiple clients.Experience with programming and scripting languages is preferred like: Python, Perl, Bash Shell or similar languages.Should have strong knowledge of low level Linux with experience of pthreads and locking.Should have strong knowledge about the TCP/IP stack, packet capturing tools like tcpdump, tshark or dumpcapExperience with Git - version control systemAbility to work independently as well as within a team environment.Use of AI tools such as GitHub copilot, Cursor, or Claude a plus