Seagate Technology recently acquired a UK based company named Xyratex, a leading provider of Enterprise Data Storage Solutions, delivering a broad range of advanced, scalable data storage platforms for the Original Equipment Manufacturer (OEM) community.
We are seeking an Intermediate level Software Developer in our bright and modern downtown Kitchener, Ontario office. You’ll be contributing to the delivery of revolutionary new high-performance storage system solutions with a focus on innovating configuration, deployment, and management of these complex multi petabyte, multi-rack systems. The office is primarily focused on software development, organized in several scrum teams. As a part of Seagate’s newly formed cloud division, this team plays an integral part in developing cluster automation and management solutions for the growing suite of large scale storage solutions.
Depending on the focus of the team and the skills of the candidate, the role could involve development for backend infrastructure, hardware automation, or user interface. The developers will also have the opportunity to be part of enhancements and development of solution frameworks. The candidates should be independent self-starters who will be part of a collaborative team, guided by senior developers and system architects. As part of distributed, worldwide organization, the candidates will be expected to interact with employees across North America and Europe.
Enhance and develop software framework and components with a cluster management system in mind.
Using requirements defined by architects and senior engineers, the developer will implement these requirements to expand the system solution.
Primary work will be on development and enhancement of Management Application Suite, configuration management and provisioning system.
Contribute to the Application Framework in collaboration with software architects and developers.
Design and develop high quality, well tested production level code.
Document code and maintain coding documents.
Work with test engineering, manufacturing, and customers to resolve bugs, performance issues, and gaps in requirements.
Collaborate with other development teams to ensure full integration of all parts of system.
5-6 years of system software development and integration experience is required; preferably with focus on backend hardware interaction.
Proficiency and preferably extensive experience in Linux environments.
Proficiency in Python.
Proficient in object oriented concepts and design patterns.
Experience working on a Scrum/Agile team.
Experience with ATDD, unit testing and/or other test driven methodologies.
Excellent verbal and written communication skills.
Experience with data source integration and data retrieval.
Bachelor's degree (Software Engineering, Computer Engineering, Computer Science or Math preferred) or equivalent work experience.
Experience with entirety of the software lifecycle.
Experience with JSON, YAML, Twisted, Rabbitmq.
Experience with Source Control tools; preferably GIT.
Proficiency in Linux scripting (eg bash
Experience with HPC and clustered environments is highly desired.
Knowledge of domain driven design.
Ability to create and understand UML diagrams.
Development experience with file systems and/or database storage, including SQL.
Career Level: Experienced
Industry: Computer Software
Job Function: Engineering