Java Developer

As a Java Developer co-op, you will get the opportunity to learn valuable development skills using cutting edge technologies from highly skilled and professional peers. You will also be given the opportunity to contribute to the core technology and products. This is an opportunity to work alongside some of the best Java developers and apply your craft in an environment that encourages creative thinking and autonomy. Our software is developed by small, focused agile teams. We encourage our developers to think beyond a single component to build complete system solutions. Our developers take part in all aspects of the SDLC including design, development, testing and deployment. Challenge yourself by learning new technologies, and apply your skills across our different projects and application domains. If you are committed to code that is clean, well-tested, well-reviewed, performant and secure then you’ll fit in.

In this position, we are looking for a student or recent graduate, who has some sound understanding of core Java technology and software development methodologies.

Your Job:

  • Work as part of an agile development team to write Java code for enterprise services
  • Write unit and integration tests for your Java code
  • Collaborate with QA in development of test cases for Java code
  • Document code and document detail designs
  • Collaborate with product owners on user story generation and refinement
  • Participate in knowledge sharing activities with colleagues

About You:

  • Student or recent graduate from a Computer Science or related field (those with co-op experience would be considered an asset)
  • Course work or work experience with Java
  • Experience with any of the following is an asset:
    • Agile development methodologies
    • Test driven development
    • Continuous integration systems
    • Dependency injection containers
    • Network protocols such as HTTP, TLS, TCP
    • Service oriented architecture
    • Web services technology such as REST, JSON, or Thrift
    • Multi-threaded programming
    • Design patterns

Technologies that we work with on a daily basis include:

  • Message Brokers (Kafka, Pulsar)
  • Object Storage (MinIO, Scality)
  • Build Automation (Ansible)
  • Containerization & Orchestration (Kubernetes, Docker)
  • CI/CD (Jenkins)
  • Security (SSL, OAuth)
  • Dependency injection frameworks (Spring)
  • Code Security & Quality (SonarQube, Xray)