Senior Software Engineer (C#, APIs, Automation - M2M/IoT/PLCs, SQL Server/Oracle)
Profession:Senior Software Engineer (C#, APIs, Automation - M2M-IoT-PLCs, SQL Server-Oracle)
Must be able to work as our W2 Employee.
Our Global Breeding Automation Engineering Team is a group of technologists passionate about creating the systems that fuel the farm of the future. We are re-imagining and rebuilding our entire suite of field and lab technologies for the world of digital ag, a world that is geospatial, that is automated, that is cognitive. A world where every plant matters. A world where machines, agronomists, breeders, scientists, and engineers work collaboratively to deliver products that revolutionize the experience of our customers.
We're looking for a Senior Software Engineer to join our Single Seed Systems team and help create the next generation of automated research equipment. Your responsibilities will include involvement in the architecture, design, development, test, and support of our software systems. Systems where capabilities will include data acquisition from other hardware/software systems, machine control, and a user interface aspect. You will also be looked upon to be a technical leader and mentor to junior engineers.
* Design and development of single seed automation/control systems
* Ability to drive software development in all phases of the product lifecycle as part of a small multi-disciplined engineering team. This includes project planning, deriving requirements from system objectives, organizing and prioritizing work, delivering results, and providing support.
* Collaboration with domain experts and engineering support teams to set prioritization of work
* Interfacing partner and customer business units to ensure seamless enterprise integration of field automation platforms
* A Bachelors degree in Computer Engineering, Electrical Engineering, Computer Science, Mechanical Engineering, or related field
* Proven technical expertise (typically 7+ years) including:
o Developing machine controlling software systems
o Programming in C# (3.0 and greater)
o Developing software interfacing motion controllers, linear/stepper/servo motors, drives, and PLCs
o Developing multi-threaded/process applications and patterns associated with them
o Developing in the .NET ecosystem
o Developing software interfacing web services (REST, SOAP)
o Developing networked software systems that communicate with data generating devices and data aggregation services (protocols over TCP/IP)
* Proven professional experience (typically 7+ years):
o Effectively communicating to technical and non-technical audiences
o Learning domain specific technologies in order to build efficient and effective systems
o Delivering production quality, testable, re-usable software
* Attention to detail and data driven decision making
* Programming in C++ and Python (v2 & v3)
* Experience using fieldbus protocols such as EtherCAT, SynqNet, DeviceNet, ControlNet, Modbus, Profibus, CANopen
* Experience developing data driven systems using persistence technologies such as SQL Server, Oracle, SQLite, PostgreSQL
* Experience with modern development tools such as Git, JIRA, NuGet.