The Associate Principal, Software Engineering will be responsible for the development and delivery of business features in the front end applications, integrating with a variety of upstream data-sources and presenting data through the user interface, all while enriching and advancing the platform. This software must achieve a blend of data-rich presentation, performance, user experience, and the capacity to support the busiest trading days in the world economy with rock-solid reliability. The candidate must be able to solve problems creatively, communicate effectively, and proactively engage in technical decision making to achieve these objectives. This individual will be a team player and work well with business, technical and non-technical professionals in an agile environment
- Contribute to design, technical direction and architecture including collaborating with various teams to build fit for purpose solutions
- Participates in code reviews, proactively identifying and mitigating potential issues and defects as well as assisting with continuous improvement
- Drives continuous improvement efforts by identifying and championing practical means of reducing time to market while maintaining high quality
- Must be a willing self-starter, independent and comfortable with a fast paced, dynamic environment
- A team player who assists the team as required to achieve collective goals & delivery milestones including knowledge-share
- Embraces and advocates for Agile best practices for software development discipline (be true to Agile Manifesto)
- Actively participates in creation and review of both business and technical user stories, providing constructive feedback and input on both work effort estimation as well as architecture/design improvements
- Integrating disparate data from REST and WebSocket services within a cohesive user interface
- Participating in innovative design and proof of concepts with emerging technologies and solutions
- Embrace industry best practices like continuous integration, continuous deployment, automated testing, TDD etc
- Follows agreed upon SDLC procedures to ensure that all information system products and services meet: both explicit and implicit quality standards, end-user functional requirements, architectural standards, performance requirements, audit requirements, security rules are upheld, and external facing reporting is properly represented
- Writes unit and integration tests based on chosen DevOps frameworks
- Performs application and project risk analysis and recommends quality improvements
- Assists Production Support by providing advice on system functionality and fixes as required
- Assist with departmental and new employee training
Are the essental duties of this job required to be performed in an OCC office location?No
Qualifications & Experience
- [Required] 7+ years of Front End, User Experience, development
- [Required] 3+ years of experience in React application development
- [Required] 5+ years of hands-on HTML5/CSS3 experience
- [Required] Experience with Java and/or Python
- [Required] Experience of working with websockets, HTTP 1.1 and HTTP/2
- [Required] Experience with RESTful APIs and JSON RPC
- [Required] Ability to write clean, bug-free code that is easy to understand and easily maintainable
- [Required] Experience with BDD methodologies & automated acceptance testing
Technical Skills & Background
- [Required] 7+ years hands-on experience in Java required, including good understanding of Java fundamentals such as Memory Model, Runtime Environment, Concurrency and Multithreading
- [Required] Past/Current experience of 3+ years working on a large scale cloud native project (platform: Unix/Linux, Type of Systems: event-driven / transaction processing / high performance computing) as Technical Lead. These experiences should include developing / architecting core libraries or framework used by the platform to support fundamental services like storage, alert notifications, security, etc.
- [Required] Experience with cloud technologies and migrations using public cloud vendor preferably using cloud foundational services like AWS’s VPCs, Security groups, EC2, RDS, S3 ACLs, KMS, AWS CLI and IAM etc.
- [Required] Experience with distributed message brokers using Kafka
- [Required] Experience with high speed distributed computing frameworks such as AWS EMR, Hadoop, HDFS, S3, MapReduce, Apache Spark, Apache Hive, Kafka Streams, Apache Flink etc.
- [Required] Experience working with various types of databases like Relational, NoSQL, Object-based, Graph
- [Required] Working knowledge of DevOps tools. Eg Terraform, Ansible, Jenkins, Kubernetes, Helm and CI/CD pipeline etc
- [Required] Familiarity with monitoring related tools and frameworks like Splunk, ElasticSearch, Prometheus, AppDynamics
Education & Training
- [Required] BS degree in Computer Science, similar technical field
- [Preferred] Masters degree in Computer Science
When you find a position you're interested in, click the 'Apply' button. Please complete the application and attach your resume.
You will receive an email notification to confirm that we've received your application.
If you are called in for an interview, a representative from OCC will contact you to set up a date, time, and location.
For more information about OCC, please click here.
OCC is an Equal Opportunity Employer