What are the responsibilities and job description for the Senior Software Developer position at Chemelex?
We are seeking a talented and experienced software developer with six or more years of professional programming experience and an interest in transitioning into Rust development. While direct Rust experience is not required, we are seeking someone with a background in systems programming, secure software development, and a desire to build high-performance, reliable, and secure software.
WHAT YOU WILL EXPERIENCE IN THIS POSITION:
Responsibilities:
Research, design, and develop software systems with a focus on performance, reliability, and security.
Collaborate with cross-functional teams to define, design, and ship a new software product tightly integrated into a cohesive product ecosystem.
Participate in code reviews, provide feedback, and maintain high coding standards.
Remain current with software development advancements and best practices.
Write and maintain technical documentation.
YOU HAVE:
Required Qualifications:
A Computing Science, Computer Engineering, Electrical Engineering, or equivalent degree.
Ideally 6 years of experience in software development, with demonstrated proficiency in one or more languages such as Rust, C, C , Go, Erlang, or Python.
Strong understanding of cybersecurity concepts, secure software development, systems programming concepts, including memory management, performance optimization, network communication, synchronous programming, and concurrency.
Strong understanding of Linux systems, including Linux software development, security, and system components.
Strong problem-solving skills and the ability to work independently on dedicated tasks, as well as on small and medium-sized teams.
Familiarity with development tools such as Git and GitLab.
Familiarity with DevOps principles and practices, including CI/CD.
Preferred Qualifications:
Exposure to Rust development with a willingness to learn and grow in the language is an asset.
Strong understanding of security and reliability engineering concepts is an asset.
Experience working with IoT, distributed systems, networking, or embedded systems is an asset.
Experience working with Modbus, Canbus, or similar protocols is an asset.
Experience working with Ubuntu, Ubuntu core, and Ubuntu snaps is an asset.