Enable job alerts via email!

Skill 2 SW engineer

Recutify Inc.

Ottawa

On-site

CAD 80,000 - 100,000

Full time

14 days ago

Job summary

A software company in Ottawa is seeking a skilled Software Engineer to develop Java components and microservices. You will collaborate with teams to ensure quality and security of applications, troubleshoot issues, and participate in the feature development cycle. Ideal candidates should have strong Java programming skills and experience with microservices architecture.

Qualifications

  • Proficient in Java with experience in developing microservices.
  • Strong understanding of software security and cryptography.
  • Ability to collaborate with QA for testing and scenario development.

Responsibilities

  • Develop Java software components and microservices.
  • Collaborate with teams to implement solutions based on requirements.
  • Troubleshoot and resolve issues within feature or design testing.

Skills

Java Development
Strong proficiency in Java programming
Experience with Java-based microservices
Microservices Architecture
Containerized microservices (Docker, Kubernetes)
Clustering features and distributed systems
gRPC and REST API development
SQL databases and data storage mechanisms
Cryptographic libraries
Unit testing and BDD (Behavior-Driven Development)

Tools

Docker
Kubernetes
SQL
Job description
Overview

Role: Skill 2 SW engineer Ottawa

Work location: Ottawa.

Background and Meet and Greet: MANDATORY

Job Description
  • T1: Develop Java software components for the LCC subsystem, using containerized micro-services, network and data storage (SQL) functions, clustering features, cryptographic libraries, gRPC and REST API interfaces, common data formats (JSON, YAML, XML, Protobuf).
  • T2: Collaborate with senior developers, architects, and the engineering manager to implement components based on architectural requirements: draft designs, propose solutions, review in weekly design syncs, and finalize through code inspections.
  • T3a: Define unit tests for components, support the team in BDD feature definition, and assist with automation goals.
  • T3b: Collaborate with QA to develop BDD feature definitions (e.g., Gherkin files), translating acceptance criteria into executable scenarios.
  • T4a: Apply common practices to ensure code quality and maintainability.
  • T4b: Ensure thread safety, proper memory management (no leaks or undefined behavior), as well as code security.
  • T4c: Document your code with inline comments or lightweight documentation for public interfaces.
  • T5a: Provide clear effort estimates during planning and flag any deviations in daily scrums.
  • T5b: Update status daily on the team board (e.g., Jira), and in standups, flag any deviation greater than 10% from the original estimate; if you exceed 20%, notify the engineering manager and suggest a corrective action.
  • T6: Ensure designs facilitate troubleshooting of field issues.
  • T7a: Troubleshoot and resolve issues uncovered during feature or design testing.
  • T7b: When a QA feature or design test uncovers a defect, reproduce the issue locally, perform a brief root-cause analysis (noting steps and findings in the ticket), and categorize its impact.
Key Responsibilities
  • T1: Develop Java software components for the LCC subsystem, using containerized micro-services, network and data storage (SQL) functions, clustering features, cryptographic libraries, gRPC and REST API interfaces, common data formats (JSON, YAML, XML, Protobuf).
  • T2: Collaborate with senior developers, architects, and the engineering manager to implement components based on architectural requirements: draft designs, propose solutions, review in weekly design syncs, and finalize through code inspections.
  • T3a: Define unit tests for components, support the team in BDD feature definition, and assist with automation goals.
  • T3b: Collaborate with QA to develop BDD feature definitions (e.g., Gherkin files), translating acceptance criteria into executable scenarios.
  • T4a: Apply common practices to ensure code quality and maintainability.
  • T4b: Ensure thread safety, proper memory management (no leaks or undefined behavior), as well as code security.
  • T4c: Document your code with inline comments or lightweight documentation for public interfaces.
  • T5a: Provide clear effort estimates during planning and flag any deviations in daily scrums.
  • T5b: Update status daily on the team board (e.g., Jira), and in standups, flag any deviation greater than 10% from the original estimate; if you exceed 20%, notify the engineering manager and suggest a corrective action.
  • T6: Ensure designs facilitate troubleshooting of field issues.
  • T7a: Troubleshoot and resolve issues uncovered during feature or design testing.
  • T7b: When a QA feature or design test uncovers a defect, reproduce the issue locally, perform a brief root-cause analysis (noting steps and findings in the ticket), and categorize its impact.
Mandatory skills and skill proficiencies
  • Java Development
  • Strong proficiency in Java programming.
  • Experience with Java-based microservices.
  • Microservices Architecture
  • Containerized microservices (e.g., Docker, Kubernetes).
  • Clustering features and distributed systems.
  • Networking & APIs
  • gRPC and REST API development.
  • Understanding of network protocols and service communication.
  • Data Storage & Formats
  • SQL databases and data storage mechanisms.
  • Familiarity with data formats: JSON, YAML, XML, Protobuf.
  • Security & Cryptography
  • Use of cryptographic libraries.
  • Code security best practices.
  • Testing & QA Collaboration
  • Unit testing and BDD (Behavior-Driven Development).
  • Writing Gherkin scenarios and collaborating with QA teams.
  • Code Quality & Performance
  • Thread safety and memory management.
  • Code maintainability and inline documentation.
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.