The Software Engineer reports to the Director of Engineering
The role of the Software Engineer (SE) is to produce breakthrough software solutions for BouMatic’s product offering. This vital role supports short and long-term business goals by delivering solutions related to the following fields of expertise – camera and vision technologies, motion control, process control, GUI development, self-diagnostic architectures, performance analysis, sensor integrations as well as relational databases. This individual will analyze needs and requirements and then design and build software that meets and/or exceeds those requirements working with and through internal and external resources. The RSE will also assist in the integration testing and debugging of that software to ensure the highest product performance, customer experience and product sustainability. The RSE works within the guidelines established by BouMatic and will follow established procedures and assist in the development of new procedures as needed.
Essential Duties and Responsibilities include but are not limited to:
Software Development – compile requirements from stakeholders, analyze and communicate a development path that will meet/exceed those requirements. Follow industry best practices and work with other engineering departments to design, build and deliver these software solutions.
Testing/Validation – Assist in the performance of the quality checks on all software produced. Ensure that all software documentation is maintained (examples included release notes, bug tracking etc.). Work with the Robotics Systems Engineer to design and implement test designs to validate software, hardware and architectures. Ensure that all testing work is carried out as per the defined standards and procedures.
Tasks include but are not limited to:
Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle
Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
Documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code.
Prepares and installs solutions by determining and designing system specifications, standards, and programming.
Improves product functionality by conducting systems analysis; recommending changes.
Protects operations by keeping information confidential.
Provides information by collecting, analyzing, and summarizing development and service issues.
Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations.
Light troubleshooting of robotic systems, using knowledge of milking systems, microprocessors, programmable controllers, electronics, circuit analysis, mechanics, sensor or feedback systems, hydraulics, or pneumatics and software.
Key Responsibilities and Accountability include but are not limited to:
Software solutions for the full scope of robotic and conventional products
Modify software to deliver/improve performance.
Monitor system performance to ensure proper operation.
Manage individual work and projects or system activities.
Develop testing routines or procedures as needed.
Provide technical support for software maintenance or use.
Reports to Dave Dallman, Director of Engineering
Significant interaction with and support of:
Physical & Environmental Requirements:
While performing duties of this job, individual is routinely required to stand, walk, sit, reach with hands and arms, climb or balance, stoop or kneel, talk and hear, and use fingers and hands to feel objects, tools or controls.
Must be capable of public speaking in support of training efforts.
Environmental requirements include working in corporate offices as well as on dairy farms – indoors, outdoors, in all seasons on dairies in and out of the US.
Occasional travel including overseas (valid passport required).
Technical/Job Skill Qualifications:
Qualified candidates must meet the following qualifications, and have demonstrated the following technical or job skills:
Fluent in object-oriented languages, including C#, C. JAVA and IEC(6)1131 Languages
Strong understanding of API integrations and web service methods (REST, JSON, XML), knowledge of REACT Libraries
Understands interfacing to databases, preferably MS SQL and Postgres.
Knowledge of operating systems (Microsoft, UNIX, Linux)
Experience in product development and sustaining engineering is preferred.
Understanding of multi-threaded programming and their concepts such as mutexes, semaphores and message queues.
Familiarity with vision algorithms using heavy mathematics and network IO is highly desirable.
Familiarity with processing 3D data is desirable.
Knowledge and experience with GIT software development and management practices is desirable.
Proficient with Ethernet communication and Ethernet based automation protocols as well as competent in sockets and inter-process communication.
Competent in parallel and threaded processing with timely UI updates.
Data scientist / statistical analysis capabilities are important skills for a successful candidate.
Minimum 4-year engineering degree (with background in computer sciences, software development, electronics and/or robotics).
Ability to travel domestically and internationally.
Effective, tactful / diplomatic written and verbal communications skills and ability to work in both office and dairy farm environments.
Agricultural related technical degree and familiarity with dairy farm industry is desirable.
Expert level knowledge of personal computers, and PC based applications such as Skype, word processing, spreadsheets and databases, and other related equipment.