Mid Level Software Engineer
Role details
Job location
Tech stack
Job description
If you're interested in a Mid Level Software Engineer job, then this is the best role for you! The Global Breeding Automation Engineering Team is a group of technologists dedicated to building the systems that support the future of agriculture. The team is modernizing field and lab technologies for digital agriculture-systems that are geospatial, connected, automated, and data-driven. This role supports collaboration among machines, agronomists, breeders, scientists, and engineers to deliver innovative solutions that improve customer outcomes., * Join the Field Systems team to develop the next generation of automated R&D field equipment
- Gather, define, and translate system and software requirements into functional solutions
- Design, develop, test, and support research control software systems
- Build and maintain system capabilities including data acquisition from hardware and software systems, machine control, cloud connectivity, process control, and user interaction
- Collaborate closely with cross-functional teams to ensure technical alignment with project goals
- Provide technical leadership and mentorship to junior engineers
- Help set technical direction and organize development tasks within the overall project plan
- Ensure solutions are scalable, reliable, and well-integrated within broader system architectures
Requirements
- 7+ years of experience developing machine-to-machine (M2M) and electromechanical automation system software using C#, C++, C, or Python
- 7+ years of experience developing multi-threaded or multi-process applications and services
- Minimum of 4+ years of demonstrable experience owning the development of automated or control systems
- Strong software development skills
- Ability to drive software development through all phases of the product lifecycle, including planning, requirements definition, prioritization, delivery, and support
- Strong software and hardware troubleshooting and debugging skills
- Experience with object-oriented principles, unit testing, agile development, test-driven development (TDD), and continuous delivery
- Experience developing networked systems that communicate with data-generating devices and data aggregation or transformation services
- Experience working with network protocols such as TCP/UDP and MQTT
- Strong attention to detail and data-driven decision making
- Experience working on software projects that span multiple teams or organizations
- Experience developing applications across multiple operating systems, including Windows, Linux, iOS, macOS, and Android
- Preferred Skills
- 4+ years of experience developing with Microsoft technologies such as Visual Studio .NET, WPF, WinForms, and console applications
- 2+ years of experience developing software for Linux-based robotics or automation devices
- 2+ years of experience supporting products deployed in the field
- Experience using serial communication standards such as RS422, RS485, and RS232
- Experience developing data-driven systems using relational and/or NoSQL databases such as Oracle, SQLite, PostgreSQL, SQL Server, MongoDB, or Cassandra
- Experience using modern development tools such as Git, CVS, Subversion, Jenkins, NuGet, JIRA, Aha, and Azure DevOps
Education/Training/Certifications
- Bachelor's degree in Computer Engineering, Computer Science, Electrical Engineering, Mechanical Engineering, or a related discipline
Benefits & conditions
Additional Requirements
- Must pass a drug screening and criminal background check
- Shift Start Time: 08:000 AM
- PPE Requirements: No laboratory or field work required on a regular basis; work glasses, gloves, boots, and hats are provided
- Working Conditions: Office-based most of the time with occasional field work
- Driving Requirements: Less than 10% of travel required; may drive company vehicles such as full-size trucks or SUVs
- Lifting Requirements: Occasional lifting of light equipment, such as a field computer
Pay Rate/Salary
- Estimated Salary: $54.53 to $62.53 per hour based on qualifications.