Software Development Engineer - Silicon Optimization
7 months ago(1/1/2018 8:27 PM)
Annapurna Labs (U.S.) Inc.
Software Development Engineer, AWS Silicon Optimization As a member of the AWS Silicon Optimization Engineering Team you’ll be responsible for the design and optimization of integrated hardware and software customer-focused solutions and technologies in our data centers. You’ll develop software technologies in the application of new technologies to large scale server, network, and storage deployments in a continuous effort to deliver a world-class customer experience. This is a fast-paced, intellectually challenging position, and you’ll work with thought leaders in multiple technology areas.
You will be responsible for developing technologies and capabilities in the lowest layers of the AWS software stack. Development will be primarily focused on firmware / embedded software, Linux application development, cloud-scale monitoring, and could include Linux driver development. You’ll collaborate with a range of AWS teams to develop and deploy comprehensive cloud-scale AWS solutions incorporating these technologies.
· Bachelor’s degree or higher in Computer Science, Computer Engineering, or related field
Computer Science fundamentals in object-oriented design, data structures and algorithm design, complexity analysis, scalability and availability
High degree of proficiency as a Linux user and Linux application development
Proficiency in the development of embedded software or firmware, and the development of corresponding automated tests.
Proficiency in hardware / software integration
High degree of proficiency in C or C++
Proficiency in one or more modern scripting languages like Python or Ruby
Experience with professional software engineering practices and best practices for the full software development life cycle, including coding standards, code reviews, source control management, and continuous integration and testing.
· Familiarity with SOC configuration, bringup, calibration, and diagnostics especially as relates to DDR and PCIe.
Familiarity with developing hardware functional or performance modeling, leveraging environments like SystemC, QEMU, or Simics.
Familiarity with Linux or RTOS driver development
Familiarity with software bringup on custom hardware using hardware simulators or emulators.
Development of automated test, continuous integration, and deployment frameworks.
Development of embedded device monitoring and device management software
Familiarity with secure-boot and other embedded security focused technologies.
Familiarity with application and kernel performance profiling and optimization
Domain experience in an area related to high-scale data center technologies such as compute, storage, networking, or accelerators.
Proficiency in multi-threaded and concurrent programming