Associate Principal, Application Developer (Java 8+) at OCC
The Application Developer works with business analysts, team leads and development team. Also, a major contributor in developing scalable and resilient hybrid and Cloud-based data solutions supporting critical financial market clearing and risk activities; collaborate with developers, architects and product owners to drive the strategy of transforming the enterprise into a data-driven organization. The Application Developer will be a team player and work well with business, technical and non-technical professionals in a project environment.
Primary Duties and Responsibilities:
Actively participates in requirement understanding, reviews to identify missing or incomplete requirements. Must always look for assumptions made in the models and must always validate those assumptions of the models.
Actively participates in design of highly performing, scalable, secure, reliable and cost optimized solutions.
Primarily responsibility is application design and development of big data application for business requirements in agreed architecture framework and Agile environment
Thoroughly analyzes requirements, develops, tests, and documents software quality to ensure proper implementation.
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.
Performs application and project risk analysis and recommends quality improvements.
Assists Production Support by providing advice on system functionality and fixes as required
Communicates in a clear and concise manner all time delays or defects in the software immediately to appropriate team members and management
Assist with departmental and new employee training
Experience integrating modelling libraries or risk analytics technology solutions a plus
Experience with resolving security vulnerabilities
Java 8+ experience required, including deep understanding of Java fundamentals as Memory Model, Runtime Environment, Concurrency and Multithreading.
Be an expert in computer algorithms and data structures, including ability to articulate and apply in practice different type of sorting, hashing, partitioning, and search operations.
Ability to identify both time and memory complexity for the written code.
Understand and apply in practice Object Oriented and Domain Oriented Design Patterns.
Experience following Git workflows
Experience writing unit and integration tests with testing frameworks like Junit, TestNG, Citrus etc.
‘Get stuff done’ and flexible mindset for greater good of the organization.
Intellectually curious and eager to learn.
Nice to have:
Experience with high speed distributed computing frameworks AWS EMR, Hadoop, HDFS, S3, MapReduce, Apache Spark, Apache Hive, Kafka Streams, Apache Flink etc. (a plus)
Experience with distributed message brokers Kafka, RabbitMQ, ActiveMQ, Amazon Kinesis, etc.
Experience with cloud technologies and migrations. Experience preferred with AWS foundational services like VPCs, Security groups, EC2, RDS, S3 ACLs, KMS, AWS CLI and IAM etc.
Experience developing and delivering technical solutions using public cloud service providers like Amazon, Google, etc.
Experience working with various types of databases like Relational, NoSQL, Object-based, Graph.
Working knowledge of DevOps tools. Eg Terraform, Ansible, Jenkins, Kubernetes, Helm and CI/CD pipeline etc.
Familiarity with monitoring related tools and frameworks like Splunk, ElasticSearch, Prometheus, AppDynamics
Education and/or Experience:
BS degree in Computer Science, similar technical field or equivalent experience
Certificates or Licenses:
OCP Java SE 8 Programmer Certification is a plus
AWS Certified Solutions Architect – Associate Level is a plus