The Applied Research Institute (ARI) at the University of Illinois at Urbana-Champaign is seeking applicants for Staff Software Engineer and Senior Software Engineer positions. These positions will use software development methodologies, skills, and research to develop software to meet the needs and requirements of our customers and research partners. ARI has developed software and software platforms in the areas of agriculture, autonomy, defense, digital manufacturing, and medical imaging. All professionals hired into these positions will be involved in a variety of research and development (R&D) programming activities in the areas of applied science and engineering, technical training, software development and validation, and software architecture design. ARI translates innovation to practice as part of the thriving technology ecosystem at the University of Illinois. Its professional research staff provides translational, multidisciplinary solutions for real-world problems in defense and security, manufacturing and materials, and building science. ARI staff perform research and development leveraging their broad government- and industry-based expertise in algorithm and software development, materials development and characterization, and monitoring, diagnostics, and controls with sensors and data fusion, and workforce training. ARI possesses unique capabilities for open, proprietary, and classified projects and works with collaborators across government, industry, and academia. More information about ARI can be found at http://appliedresearch.illinois.edu/. The University of Illinois is an Equal Opportunity, Affirmative Action employer. Minorities, women, veterans and individuals with disabilities are encouraged to apply. For more information, visit http://go.illinois.edu/EEO. For the current positions, ARI is interested in hiring individuals with expertise in software development, distributed systems, and embedded systems as applied to areas such as: Full Stack Web Development (Flask, Django, NodeJS) Edge Device Image/Signal Processing Machine Learning/Artificial Intelligence Due to COVID-19, there is flexibility to work remotely if shelter in place orders are active. It is expected that hires will work onsite in Champaign, IL as soon as possible when these restrictions are lifted with suitable safeguards in place. STAFF SOFTWARE ENGINEER Our Ideal Candidate: Bachelor’s degree in Computer Science or Computer Engineering. Alternate degree fields will be considered if accompanied by equivalent experience, including time spent in relevant internships Experience with data structures, algorithms, and object-oriented programming Strong verbal, listening, and written communication skills Excellent problem-solving skills Preferred Qualifications 1-3 years software development experience, including time spent in relevant internships Demonstrated proficiency with C, C++, or Python Familiarity with the Test-Driven Development approach Prior experience with git-based version control or comparable (e.g., TFS, SVN) Working knowledge of Agile software development practices Experience with programming for embedded systems Experience with cloud-based architectures and distributed computing Duties and Responsibilities Work as part of collaborative, interdisciplinary research and development team to architect, design, implement, and test research-based software solutions in a range of application spaces. Translate specifications for software functions into application-specific codes used for research and professional field work. Write detailed supporting documentation including software requirements specifications system architecture specifications, operational requirements specifications, and user interface specifications. Prepare activity reports to monitor progress and track project status. Perform other duties as assigned. SENIOR SOFTWARE ENGINEER Our Ideal Candidate: Bachelor’s degree in Computer Science or Computer Engineering. Alternate degree fields will be considered if accompanied by equivalent experience, including time spent in relevant internships. 4 or more years of software development experience, including time spent in relevant internships Experience with data structures, algorithms, and object-oriented programming Working knowledge of Agile software development practices Prior experience with git-based version control or comparable (e.g., TFS, SVN) Strong verbal, listening, and written communication skills Strong leadership, research and development team management, analytic and strategic thinking skills Excellent problem-solving skills Preferred Qualifications Master’s Degree in Computer Science or Computer Engineering or a related field 5 or more years of software development experience, including time spent in relevant internships Demonstrated leadership skills Demonstrated proficiency with C, C++, or Python Familiarity with the Test-Driven Development approach Proficient in debugging methods and tools (GDB, Address Sanitizer, etc.) Experience developing software components in distributed systems, including research and/or production-quality tools Experience with machine learning programming techniques Experience with programming for embedded systems Experience with cloud-based architectures and distributed computing Ability to convey technical matters in a language understandable to non-researchers/engineers/scientists Ability to translate business requirements into technical requirements, including the ability to identify requirements that mandate further research and development activities Experience writing and developing proposals for external funding from public or private sources Duties and Responsibilities Collaborate with and lead interdisciplinary research and development teams to propose, architect, design, implement, and test research-based software solutions in a range of application spaces. Lead software development teams (including supervising staff, assigning tasks, performance management, etc.). Coordinate the translation of specifications for software functions into application-specific codes used for research and professional field work. Manage software development project planning, and as necessary, prepare activity reports to monitor progress and track project status. Assemble and finalize detailed supporting documentation including software requirements specifications, system architecture specifications, operational requirements specifications, and user interface specifications. Mentor software engineers and implement best practices across research and development software teams. Perform other duties as assigned. These positions are full-time, benefits-eligible academic professional positions appointed on a 12-month service basis (see https://www.hr.uillinois.edu/benefits for details). The expected start date is as soon as possible, based on the business needs of the organization. Salary and position level are commensurate with experience and qualifications. To apply for this position, please create your candidate profile at http://jobs.illinois.edu and upload your cover letter, CV/resume, and names/contact information for three references as a single PDF file by July 20, 2020. Interviews and hires will take place prior to the closing date and early applications are encouraged; however, full consideration will be given to complete applications received by the closing date. For further information regarding application procedures, contact Summer Redman at sredman@illinois.edu or 217-300-5400. The University of Illinois conducts criminal background checks on all job candidates upon acceptance of a contingent offer. As a qualifying federal contractor, the University of Illinois System uses E-Verify to verify employment eligibility. The University of Illinois must also comply with applicable federal export