Job Title: Software Engineer
Location: Chandler, AZ or Oregon
Duration: 12 Months
C/C# are Musts
C is optional
Candidate will be responsible for rapid prototype and proof of concepts (POC) of software designing concepts that prior to integration in a larger software stack used in manufacturing; expected to participate in all phases of software development lifecycle of the prototypes and POCs; expected to develop both the prototypes/POC and supporting code/unit tests to demonstrate the key concepts being explored; engage with members of the team to understand the boundary conditions/key attributes of the prototype/POC and the appropriate performance metrics associated with the Prototype/POC. Partner with cross functional team to understand implementation constraints; Research design implementation options and propose implementation details. After each prototype/POC summarize the findings and review with cross functional teams. As needed, propose a design iteration to optimize the implementation. Implement and test different Middleware communication methodologies (RabbitMQ, gRPC, others) to characterize their overall performance/capability within the larger software stack. Other communication/integration touch-point involve the interaction between higher level software and lower level software which includes interaction with lower level device drivers and FPGA implementations.
Daily Responsibilities/ Required Skills not limited to the following:
Architect, develop, test, and document code and results for each Prototype/POC iteration.
Develop, test and analyze results of Prototypes/POC in the middleware and lower level software.
Optimize the code as needed and document performance trade-off consideration for final integration.
Implement both Unit Test and System Level Testing Strategies to provide insight into the architectural and developmental model for the software concepts.
6+ years of Software experience in C/C/C#.
Strong understanding of Object-Oriented Principles;
Able to leverage language specific methodologies like Template (C),
Public/Private Headers; Familiar software interfaces practices appropriate for the C/C#.
Experience with Standard Library and Boost.
Experience with Unit Test Frameworks (Microsoft, GTest/Gmock);
Familiar with CMAKE and able to generate a C project with public/private .h settings, cross project linking;
Experience with standard dev tools: revision control (GIT), issue tracking, profilers, debugging, Visual Studio, 3rd party build infrastructures
Additional Desired Skills:
Experience with gRPC/Protobuf/RabbitMQ highly desired; Understanding of 3rd party tools (CMAKE, Chocolatey, DOCKER);
Degree Required: B.S or M.S in Computer Science, or Electrical Engineering, or Computer Engineering or equivalent; BS + 6 yrs. of experience, or MS + 4 years.