Skip to content

Senior Software Developer (Golang/Python)

  • Remote
    • Ottawa, Ontario, Canada

Job description

Location:         Remote: Canada

Term:               Full time employment

High Tech Genesis is looking for a Golang Software Developer to add features to an existing telecom-based application. The application is currently offered to internal customers of a large multinational telecom networking software and equipment company. It is used by thousands of people around the world.

 

This job is a great opportunity to work with some of the smartest people in the world in networking technologies. It presents a fantastic learning opportunity that will take your career to the next level.

Job requirements

  • 8+ years of software development experience

  • Experience working with Agile development processes

  • Engineer with experience in distributed systems.

    • Need to understand challenges with lost, delayed, or duplicated messages and how code needs to be written to deal with that.

    • Experience in writing appropriate test to discover corner cases and performance bottlenecks. 

  • Experience understanding memory and performance and reliability consequences on choosing a given API call (sync vs async) or a data structure over another 

  • Reasonable degree of autonomy. Should be able to own a feature, work along other team members on the high-level design, and successfully drive the feature to completion, including data migration, testing and deploy to green and brownfield deployments

  • Need to have experience in a low-level language (for example C). Current tech stack of Resource Services is 50% Golang 50% Python, but only Python experience is NOT enough. A seasoned C programmer can learn Go in very short time, and experience with a low-level language is needed to understand the implication on coding in a particular style: Memory allocation, efficiency, etc.

  • Understanding of how network devices operate. While a deep knowledge of networking is not required, the candidate should understand the basic operation of a network device. How images are loaded, difference between console and VTY access, difference between management ports and data ports, difference between Line Cards / RP, Chassis, etc.

  • Intermediate knowledge of SQL / Cypher database queries

  • Knowledge of REST and gRPC APIs: OpenAPI and protocol buffers

  • The engineer should have a 'can do' attitude. Should understand how different systems and technologies can operate together to produce the correct outcome. Should write small scripts/tools to improve the workflow as needed

  • Able to contribute to code reviews looking for potential/hidden problems in the code. Look for corner cases / "what if" scenarios on the code under review.

 

 

Bonus skills:

  • Experience writing production quality level code and test cases in Golang

  • Practical knowledge about Kubernetes, building container images (docker, kaniko, ko)

  • Experience with brokers or other pubsub technologies: Knative, kafka, Redis streams, etc.

  • While most of the Kubernetes related details are mostly abstracted from the developers, knowledge of Kubernetes helps understanding the product

  • Experience building network services in NSO (YANG models, callbacks)

  • Experience building network monitoring services (SNMP, Netconf, Restconf)

  • Experience building VPN network services using EVPN, QinQ or other VPN/tunneling technologies

  • Knowledge of OpenTelemetry

  • Experience writing K6 performance validation tests

High Tech Genesis Inc. is an Equal Opportunity Employer. Diversity and inclusion are at the core of our values.

Please be advised:

  1. Applicants must have the legal right to work in the Canada.

  2. Kindly submit your resume in MS Word format upon application for this position.

or