Job Description:
In this role, you'll join an Agile Scrum team responsible for the design and development of real-time embedded systems for automated cutting and assembly machinery. The Senior Software Developer will lead and participate in all areas of development including design, coding, and testing in collaboration with the team.
Primary Responsibilities:
Responsible for the design and development of real-time embedded systems for advanced cutting and assembly machinery used by the component manufacturing industry
Collaborate with Product Owners and Software Development Managers to help translate business and customer needs into technical requirements and actions
Consult with other cross-functional engineering staff (mechanical, systems, electrical) to evaluate and develop interfaces between hardware and software
Mentor and encourage the use of best practices, application of Computer Science fundamentals and facilitate collaboration within the team
Prepare software documentation including technical diagrams and manuals on the design, use and operation of the software
Develop automated unit tests for applications according to company standards
Participate in peer review sessions of solutions and related code, ensure software quality throughout the complete SDLC
Qualifications:Bachelor’s degree or higher, preferably in Computer Science or Engineering related fields
At least 6 years prior experience developing software for machinery
Knowledge and proven experience with various Development Methodologies and Frameworks such as Agile and Scrum
Complete understanding of multiple SDLC and ability to mentor others on SDLC
Expert level with C# programming language
Solid understanding of relational database design and development
Solid understanding of Computer Science fundamentals
Expert knowledge and application of SOLID design principles
Excellent problem solving and strong analytical skills, ability to work on complex development tasks and large modules/features
Excellent written and verbal communication and organizational skills; ability to generate and deliver presentations
Ability to work in teams and independently, able to coach new or less experienced developers in day to day operations as well as technical knowledge