* Note: This job can be located either in Boston, MA or in Hudson, MA
We are looking for a Senior Software Engineer to develop solutions that require significant innovation for our Amazon Dash Cart team, located in Hudson, MA.
Amazon Dash Cart is a new smart shopping cart that makes grocery trips quick and safe by allowing shoppers to skip the checkout line. Our team continually looks for ways to seamlessly utilize new technology to improve the shopping experience.
We seek a Senior Software Engineer to build automation solutions to improve the scale and pace of development and testing. The successful applicant will be experienced and highly committed to creating simulators and automation solutions, frameworks, and infrastructure. Responsibilities include understanding how all the various parts of the software and firmware ecosystem work, developing automation infrastructure and approaches that fit the overall strategy, building efficient and extensible solutions, and monitoring and reporting on the progress.
You will work with the rest of the Software, Vision, and Firmware teams, guiding the testability of our code architecture and hands-on driving and developing highly visible, robust automation tools and frameworks to tackle hard to solve problems and enable rapid iterative testing across the organization to better enable CI/CD workflows. You'll build frameworks that allow the team to write reliable, targeted, and extensible tests to support a fast-growing feature set. Most importantly, you enable good quality engineering practices among the Development team. We need our Sr. Software Engineer of Automation to be versatile, have deep understanding of automation frameworks, display leadership qualities and be enthusiastic to take on new problems across all features as we continue to push technology forward.
In this role, you will:
- Lead/contribute to engineering efforts from design to implementation, solving complex technical challenges around developer and engineering productivity and velocity especially as it relates to rapid test iteration.
- Lead the charge to ensure our architecture is testable, perform-ant, scale-able, and extendable
- Design and build advanced automated build, test and release infrastructure.
- Drive adoption of best practices in code health, testing, and maintainability
- Analyze and decompose complex software systems and collaborate with cross-functional teams to influence design for testability
- Build and ensure our code artifactories are building in Continuous Integration (CI) fashion so that we may soon realize our dream of Continuous Delivery (CD)
- Partner with our business drivers to help analyze our current data to build usage models for the future which will become the backbone of our test planning and strategy
- Contribute streamlined automated data for our engineering dashboards to allow our decisions to be data-driven
- Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or similar technical field.
- 5+ years experience in a large-scale software development environment, with major time designing and building automation framework, in either a SDE or SDET role
- 5 years+ experience in C++/C#/C/Python or other high-level programming language, with C++ or Python preferred
- Experience in at least one of the following: test automation, refactoring code, test-driven development, build infrastructure, optimizing software, debugging, building tools and testing framework
- Proficiency in development mock/stub services
- Track record of designing and building complex software systems
- Experience in communicating with users, other technical teams, and management to collect requirements, evaluate alternatives and develop processes and tools as needed to support the organization.
- Knowledge of industry standard test automation tools and experience in developing product test harnesses and instrumenting products to gather test results
- Deal well with ambiguous/undefined problems; superior analytical skills; ability to think abstractly
- Solid understanding of QA tool development chains and environments, automation best practices, tools/technology and methodology.
- Familiarity with service-oriented architecture (including Python, C++, Java, XML, messaging protocols, and Web Services).
- Advanced coding skills in Python and/or C++, preferred but expertise in any high level coding language accepted
- Proficiency with AWS including S3, EC2, and Lambda
- Experience writing code for multitasking operating systems.
- Experience with test driven development and establishing unit test infrastructures
- Experience creating and expanding powerful automated testing tools and frameworks.
- Experience with sampling and instrumented performance profiling tools.
- Experience with consumer devices or IOT devices preferred but not required
- Masters or PhD in a relevant technical field (CS, ME, EE)