Job Specifications
Title: SW Engineer
Location: Ottawa, Canada (onsite)
Description:
T1:Develop software components in in C,C++ and Java language 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...).
At least 4 years of experience in development using development in C, C++, Java, Python.
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 software components in in C,C++ and Java language 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.
What are the Mandatory skills and skill proficiencies required for this position?
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
About the Company
Welcome to USG - Pioneering IT & Engineering solutions provider. Nurturing legacy of 22 years, USG has grown into a global powerhouse, distinguished for its expertise in Information Technology. As a leading IT & Engineering Solutions company, we've cultivated diversified revenue streams and a reputation for excellence. We are an Minority Business Enterprise with focus on diversity and inclusion, proudly serving Global Clients in Banking, Financial, Insurance, Manufacturing, Engineering, Healthcare, Transportation, Communicat...
Know more