Software Development Engineer, Bespoke Solutions; ADC Hardware & Software Team
About the role
Amazon is expanding Amazon Web Services (AWS) connectivity and is looking for help. AWS seeks a Software Development Engineer with experience developing embedded software on custom hardware including the most advanced FPGA SoCs. They will help develop, integrate, and test scalable high assurance embedded systems in the AWS technology ecosystem. We develop AWS owned hardware solutions in order to scale globally, minimize cost, and maximize value for our customers. We are a growing team of hardware, software and FPGA engineers with a dedicated product development lab. By working together on behalf of our customers, we are building the future one innovative product, service, and idea at a time. Are you ready to embrace the challenge? Come build the future with us.
Key job responsibilities
- Develop embedded software using Rust, and integrate with third party libraries to build end to end high assurance 400G+ solutions
- Develop low level drivers for ARM and RISC-V targets, Linux drivers and kernel modules, business logic, and scalable software solutions to interoperate with AWS services
- Implement cryptographic and security requirements from government standards into embedded software designs
- Implement keying functionality including key generation, establishment, distribution, storage, and zeroization in embedded software to meet government certification standards
- Collaborate with design and system engineers to perform tradeoffs and implement solutions for customers
- Participate in design meetings to plan development and review peer designs
- Write and maintain unit tests, integration tests, and hardware-in-the-loop tests using CI/CD pipelines
- Debug issues across the hardware/software boundary including RTL, firmware, and driver interactions
A day in the life
You will work on a cross-functional team of hardware and software developers, writing embedded software in Rust to interact with custom hardware. You will use and develop CI/CD pipelines to automatically run your own unit tests, and hardware in the loop tests. You help deploy embedded software onto hardware targets and help debug issues that come along in RTL, hardware, or software. You will develop and document software sub-systems and components in Rust, you will coordinate with the team daily to make design decisions, resolve blockers, and review code.
About the team
Our team is dedicated to supporting new members. We have a broad mix of experience levels and tenures, and we're building an environment that celebrates knowledge-sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects that help our team members develop your engineering expertise so you feel empowered to take on more complex tasks in the future.
Basic Qualifications
- Bachelor's degree in computer science or equivalent
- 3+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience
- 2+ years of experience with at least one system programming language such as C, C++, or Rust
- Current, active US Government Security Clearance of Top Secret with SCI eligibility or above
Preferred Qualifications
- 3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
- 2+ years of embedded firmware development experience
- 2+ years of experience in Rust
- Strong knowledge of networking, security, and cryptographic algorithms and protocols; knowledge of government security implementation assurance standards, evaluation methodologies, and approval processes