We seek passionate software engineers to design, develop, document, and maintain software solutions. The responsibilities associated with the position include developing high quality and maintainable software. Our ideal candidates are familiar with developing distributed control applications that comply with coding standards and technical design. Our culture encourages you to create innovative solutions and gives you the opportunity to work with some of the best and brightest in the industry.
Responsibilities:
Design high-quality, clean, efficient, and maintainable code, following best practices and coding standards, for complex analytical instrumentation
Identify, prioritize and execute tasks in the software development cycle
Partner with the project, scientific, and engineering teams
Collaborate with other software developers to create, maintain, and develop test cases for various applications deployed in a Linux-based target environment
Collaborate with other developers to create internal and external software interfaces for gRPC microservice applications
Integrate with CI/CD pipelines to enable automated testing, continuous integration, and continuous deployment of software applications
Troubleshoot and debug software defects and production issues, providing timely resolutions and root cause analysis
Minimum Qualifications:
A bachelor s degree in computer science, software engineering, computer engineering, or a related major is required
9+ yrs. of hands-on coding experience in Python as well as one or more of the following: C++ (C++17 preferred), C#, Java, Go.
Experience designing software for instrumentation
Experience with one or more distributed messaging platforms such as gRPC, ZeroMQ, MQTT, OMG DDS, REST API
Familiarity with asynchronous communication patterns such as Publish/Subscribe
Experience with creating multi-threaded and/or coroutine based applications
Experience with UNIX/Linux systems, including package management (Debian/Ubuntu preferred)
Excellent problem-solving and analytical skills, with the ability to debug complex issues and propose effective solutions
Experience using software engineering tools including Github and JIRA
Must have a visa to travel to the US and be willing to spend at least the first two months at Picarro headquarters in Santa Clara, CA
Preferred Qualifications:
Familiarity with object-oriented design patterns including interface abstraction and polymorphism
Experience with one or more interface definition languages, such as ProtoBuf or OMG IDL. Experience with build processes including integrated code generation
Experience building applications with Python AsyncIO
Experience with databases such as PostgreSQL or MongoDB
Solid familiarity with networking including IPv4/IPv6 fundamentals, routing/NAT, mDNS/service discovery
Knowledge of Docker based containers and Kubernetes based orchestration system