Senior Software Developer

Job Summary:

CES Corporation is a growing, versatile company in the field of data center infrastructure. Our Intelliflex™ product line is a start to finish solution, purpose-built to support today’s data center. It includes modular, integrated systems in both air and liquid immersion cooling technologies. We’re looking for talented engineers and software developers to help us build systems to manage our products and take them to the next level in our drive to provide high-quality, reliable systems for our clients. Successful candidates will be working alongside a team of driven, skilled professionals with a passion for software engineering.

CES Corporation is located west of Edmonton, in the North View Business Park. Flexible arrangements can be made to accommodate a hybrid In-Office and Work-From-Home model of work. Due to the requirements for the systems to be constructed, including development against physical hardware, a partially or mostly remote Work From Home accommodation can be made. How much a candidate can work from home will depend on how well they can mock out the hardware in our system and isolate its development from the rest of the system.

Our team works in a comfortable office adjacent to the shop where our manufacturing team builds our IntelliFlex Modular Data Centers in-house. Working hours are standard 40-hour work weeks, with some occasional flex-time for accommodating customer support. Newcomers will enjoy 3 weeks of vacation per year to start.

Responsibilities and Duties:

As a senior software engineer at CES, your duties will include:

  • Working with our lead engineer to implement software systems designed to support our customers’ unique needs. This includes:
    • Supporting software that must integrate with physical hardware and firmware
    • Knowledge of web application frameworks and interactions with APIs.
    • Integrating with cloud-based systems, both 3rd party and in-house to bring together functionality requested by our clients.
  • Designing, implementing, testing, and deploying automation processes for effectively and efficiently deploying updates to our systems deployed at clients’ sites. This includes:
    • Developing automated build pipelines to consistently package systems and components.
    • Developing automated release pipelines for deploying systems both in-house and to clients.

You will be responsible and accountable for:

  • Coordinating system development with other members of the software development team and coaching junior members to assist them in growing their skill sets. This means:
    • Working with junior team members to review their code and suggest improvements in their development processes.
    • Providing detailed designs for supporting the lead engineer and instructing junior team members in how to build our systems.
  • Ensuring the successful delivery of high quality, reliable systems for our clients. This means:
    • Always keeping quality at the forefront of your thoughts and applying processes of continuous improvement to prevent recurrence of defects.
    • Assisting in the detailed development of components and systems to ensure they meet specific availability and correctness criteria.
    • Assisting in the implementation of deployment mechanisms for delivering our software to our clients and some other Site Reliability Engineering activities.
    • Providing feedback on and contributing to the delivery of monitoring systems for our products and services deployed at client sites.

Your day-to-day activities will include:

  • Building, testing and deploying the software components of our systems
  • Working with an electrical engineering team to integrate software and hardware components.
  • Closely coordinating activities and communication with your fellow teammates.
  • Working with our engineering leads to estimate the duration of system development activities.

You will be an essential member of the team that we will rely on for delivery of our systems to our clients.

Qualifications and Skills

This position is open to Canadian citizens and other applicants legally entitled to work in Canada.

Education:

  • A degree in Computer Engineering or Computing Science from an accredited Canadian post-secondary educational institution is required.

Must-Have Experience (Required):

  • Intimately familiar with Unix and Linux-based operating systems, specifically:
    • Understanding how processes and threads work, and Inter-Process Communication between them.
    • Deeply knowledgeable of how to use and write scripts in Bash, Python, or any other language in which you can demonstrate considerable proficiency.
    • Accessing hardware interfaces for UARTs and SPIs.
    • Communication concepts using CAN bus, modbus, profinet and other communication buses.
  • Well experienced in SSH and WinRM technologies
    • Must understand the fundamental workings of public and private key encryption
    • Must be capable of effective remote connection management.
  • Experience with C# and the dotnet platform.
  • Experience using Time Series databases and visual graphing tools to analyze data sets.
  • An engineering mindset with a drive for delivering quality systems, that you’re eager to teach to junior team members.

Nice-To-Haves (Optional):

  • Experience with deploying and using Virtual Networks, Virtual Machines and other cloud-based resources via Infrastructure-as-Code approaches. Microsoft Azure preferred.
  • Experience deploying and accessing storage in cloud providers. Microsoft Azure preferred.
  • Experience automating builds and deployments of software. Azure DevOps experience is preferred.
  • Microsoft Certifications in Azure, Networking, and Systems Administration.

Our office in North View Business Park is located at 28029 108 Avenue Northwest, Acheson, AB T7X 6P7. The successful candidate will require their own transportation as the business park is not serviced by public transportation.

Salary and Benefits

Our salary determinations are made based on a set of internal guidelines and policies. Our offered salary for this position is determined by proficiency and breadth of capability. As increased proficiency is demonstrated in areas of capability and responsibility, transfer into higher salary bands will be available. Benefits including health insurance are provided.

How to Apply:

Apply with a cover letter and resume (one file please) to apply@cescorp.ca.  Let us know how your experience and education will benefit CES Corporation. Links to any open-source projects you’ve worked on are of particular interest. Clearly outline pay and vacation expectations in your cover letter. Please note that candidates who lack full time permanent work experience will not be considered for the position.