AWS Infrastructure Automation assists in the procurement, construction and maintenance of data centers around the world. We are looking for a software developer able to translate hard constraints into functional systems with sufficient abstraction to support ongoing rapid innovation. As a Software Developer on the team you will be responsible for designing and building distributed systems utilizing well-known patterns (Micro services, SOA) that leverage existing AWS platforms and services. You will also mentor, guide and motivate fellow engineers in the team and help them realize their full potential.
Candidates for this position should have strong software engineering fundamentals as well as real-world experience. You will be able to demonstrate a variety of architectural approaches and design patterns and have a demonstrated competence in designing maintainable and scalable software written in a high-level language. You will show your ability to adapt to changing business and technical environments and devise creative solutions to vexing software problems. Candidates must have the ability to communicate effectively, both in writing and orally, to engineers and executives.
Bachelor’s Degree in Computer Science or related field
Equivalent experience to a Bachelor's degree based on 3 years of work experience for every 1 year of education
4+ years professional experience in software development
Computer Science fundamentals in object-oriented design
Computer Science fundamentals in data structures
Computer Science fundamentals in algorithm design, problem solving, and complexity analysis
Proficiency in, at least, one modern programming language such as Scala, Haskell, Erlang, C, C++, C#, Java, or Perl
Experience with Linux
Meets/exceeds Amazon’s leadership principles requirements for this role
Meets/exceeds Amazon’s functional/technical depth and complexity for this role
Preferred Qualifications: • Experience taking a leading role in building complex software systems that have been successfully delivered to customers • Knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations • Experience with distributed computing and enterprise-wide systems • Experience in communicating with users, other technical teams, and senior management to collect requirements, describe software product features, technical designs, and product strategy • Experience mentoring junior software engineers to improve their skills, and make them more effective, product software engineers • Experience influencing software engineers best practices within your team • Hands-on expertise in many disparate technologies, typically ranging from front-end user interfaces through to back-end systems and all points in between • Experience with NoSQL or Graph databases • Experience with Scala or another functional or mixed mode programming lanaguage