Software Engineer Machine Control and Automation
Title: Software Engineer – Machine Control and Automation – Mid Level
Location: St. Louis, MO (100% ONSITE from Day 1)
Duration: Long term contract
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 reimagining and rebuilding our entire suite of field and lab technologies for the world of digital ag, a world that is geospatial, connected, automated, and 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 an experienced software engineer to join our Field Systems team to help create the next generation of automated R&D field equipment. Your responsibilities will include requirements, design, development, test, and support of our research control software systems. Systems capabilities include data acquisition from other hardware/software systems, machine control, cloud connectivity, process control and user interaction. You will also be looked upon to be a technical leader and mentor to junior engineers. You will be a member of a cross functional team, expected to set technical direction and organize how tasks fit into the overall project.
This position requires a bachelor’s degree in computer science, computer engineering, electrical engineering, mechanical engineering, or related discipline with 4+ years of demonstrable experience owning the development of automated/control systems.
Required Skills:
Strong software development skills
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.
7+ years’ experience developing machine to machine (M2M) and electromechanical automation system software in C#, C++, C, or Python
7+ years’ experience developing multi-threaded/process applications/services and the common constructs and patterns associated with them.
Excellent system (software and hardware) troubleshooting and debugging skills
Experience with and an understanding of the value of modern development concepts and practices including OO principles, unit testing, agile development, TDD and continuous delivery
Experience developing networked systems that communicate with data generating devices and data aggregation and transformation services
Experience developing with network protocols such as TCP and UDP over IP
Attention to detail and data driven decision making
Experience in developing applications on multiple operating systems such as Windows, Linux, iOS, Mac OS, Android.
Preferred Skills:
Experience developing IoT, and data driven systems
4+ years’ experience developing with MS technologies such as Visual Studio .NET, WPF, WinForms, console applications, etc.
Experience using serial communication standards such as RS422, RS485, and RS232
Experience developing data-driven systems using relational and/or NoSQL database technologies such as Oracle, SQLite, PostgreSQL, SQL Server, MongoDB, Cassandra
Experience with and understanding of the value of modern development tools such as Git, CVS, Subversion, Jenkins, NuGet, JIRA, Aha, and Azure DevOps
NOTES-
Overview of the role: What is a day like in this role? Candidate gets to develop software to automate machinery and communicate with cloud infrastructure. This enables new capabilities in digital agriculture and R&D.
• Who will this person work with on a daily basis? Software development teammates.
• Tell me about the team dynamic/culture – long standing team that has worked together for years or fairly new team? How does the team work together? Small team, lots of ambiguity. Candidate must take initiative.
• List top 5 must haves to be successful in this role.
Solid software development skills
General knowledge of Physics and Engineering principles
Ability to self-organize
Problem solving skills
Ability to communicate effectively without being asked.
• What kind of soft skills are you looking for? Ambition, communication, reliable