Lead Application Developer
One North Wacker Drive Suite 500 Chicago, IL 60606
Acts as an expert technical resource to the development staff in all phases of the development and implementation process. Responsible for program design, coding, testing and implementation.
Primary Duties and Responsibilities:
- Architecture, design and development of risk management systems
- Acts as an expert technical resource to the development staff in all phases of the development and implementation process.
- Provide leadership and highly technical consultation in identifying and implementing new uses of information technologies that assist the functional business units in meeting their strategic objectives.
- Research and evaluate alternative solutions and recommends the most efficient application programming solution.
- Formulate solutions to solve complex problems associated with servers, capacity, limitations, and performance.
- Performing innovative design and proof of concepts on nascent technologies and solutions
- Responsible for program design, coding, testing, debugging, and documentation, including assisting with impact tracking and deployment planning.
- Work with management to provide cost estimates for projects, provide input to creating project plans, and to provide input to update project plans throughout the development cycle.
- Act as a mentor to junior members of the team on design choices, development standards and soft skills, transferring application, business, systems and architectural knowledge.
- Strong advocate of industry best practices like continuous integration, continuous deployment, automated testing, TDD etc.
- Works closely with Enterprise Architecture in development and review of architecture blue prints, solution architecture, detailed designs and development and governance of standards
- Collaborates with Technology Infrastructure and Security Infrastructure teams in designing and development of application components
- Proponent of agile methods and practices and leads team meetings and discussions
- Strong team player and collaborator with a leadership style based on influencing team members, business and technology stakeholders and management
- Stay current on emerging technology trends.
- Work with Production Support staff to provide, when necessary, real time support.
- Participate in code reviews and application transition to support team.
- Build strong and lasting relationships with business and technology stakeholders while negotiating business requirements and priorities.
- Perform other duties as assigned.
- Solid experience designing and implementing business applications which includes building systems starting at the initial conception phase
- Must be competent at the highest technical level in all phases of application development and implementation.
- Strong communication skills, analytical thinking, sound judgment and management skills are a must
- Ability to work effectively with various stakeholders and all levels of management and staff is a must
- Effective communicator with strong written and oral communication skills – should be very comfortable in writing technical documentation and making group presentations.
- Extensive knowledge and practice of Agile principles and strong expertise in use of tools like JIRA is a must. Scrum master certification is a plus.
- Strong background in Event Driven Architecture and complex distributed systems that are highly available and scalable is a must.
- Solid experience in enterprise architecture patterns, integration patterns, messaging patterns and design patterns is a must.
- Design and development of distributed services using APIs and REST Services is a must.
- Expert in application development in C++ and Java and use of common development tools.
- Varied experience in development of Web User Interfaces with a focus on User Experience is a plus.
- Good knowledge of various message transport protocols (Unicast, Multicast, TCP/IP etc.) is a plus
- Experience working in the Derivatives or Stock Lending area of the Financial Industry is a plus
- Very high level of proficiency in C++ along with Java with extensive experience in multi-threading, collections, high performance programming.
- Messaging (MQSeries/Tibco), Data Management (RDBMS, HDFS, In Memory Databases etc.), SQL.
- REST services, HTML5, ExtJS
- Scripting languages (Python, Perl etc.)
Education and/or Experience:
Bachelor’ s degree in Information Systems, Computer Science or related field or an equivalent combination of education and work experience
- At least 10 years of experience as a programmer/analyst using common programming languages like Java, 4-6 years of solid Java experience is a must