Amazon has a culture of data-driven decision-making and demands business intelligence that is timely, accurate, and actionable.
The Customer Behavior team’s role is to answer who did what, where and when it was done, and how key metrics were impacted.
Ultimately, we want to answer why customer behavior changes, and how to influence it.
Our analytics group is responsible for processing big data sets of website and mobile traffic and interactions, in order to identify and understand customer behavior.
By understanding traffic flows and customer behavior across Amazon websites, Customer Behavior data creates multi-million-
dollar business opportunities allowing Amazon strong and sustained growth rates. Our traffic, customer interaction and attribution datasets power personalization, A / B testing, content optimization, internationalization, marketing spend allocation, product demand, customer conversion, selection reach and application performance (latency, errors, crashes).
We are looking for a passionate software development engineer to help us develop a robust, scalable distributed system supporting the needs of our analytics platform (data streaming, storage, processing) on top of native AWS serverless technologies.
This team is innovating using big data technologies. We are innovating through the architecture decisions we make, systems and components that we build which always push the limits of what’s been done before in order to keep the pace with our track record of double the load at half the costs.
As part of this team you will share in the ownership of the technical vision and direction for advanced analytics products.
You will work with top-notch technical professionals developing complex systems at scale and with a focus on sustained operational excellence.
Above all, you should bring your passion for design, optimizations, scalability, operational excellence and clean code. Excited?
We are looking forward to you joining us!
In this role, you will have the opportunity to display your skills in the following areas :
Create (design, code, deliver) and maintain software solutions that solve complex problems and generate positive feedback
Work backwards from customer needs into improvements, features and new components for the platform.
Create and manage software that runs on native AWS resources including EC2, EMR, Redshift, Athena etc.
Creates metrics, implements automation and other improvements, and resolves the root cause of software defects
Tuning application and query performance using Unix profiling tools
Thinks through functional, technical, security, performance, and scaling requirements
Explore and learn AWS technologies to provide new capabilities and increase efficiency
Address problems at the root cause, improving processes and create software gates that prevent issues
Bachelor's degree in Computer Science / Informatics, Human Computer Interaction or equivalent experience
Comfortable working in a Unix / Linux environment with experience in a scripting language for managing large data sets.
Experience with at least one object oriented programming language (such as Java or C++ / C# / .NET)
Knowledge of data management fundamentals and data storage principles
Knowledge of distributed systems
Knowledge of engineering and operational excellence best practices
Proficient in one or more software languages (C, C++, C#, Java, Python, Objective-C, Swift, etc.), data structures, and design approaches.
Track record delivering solutions that are correct, stable, performant, and secure
Can think through a software problem, identify alternatives, and see potential roadblocks or challenges with a chosen solution
Knows how to test code and why different testing methods are important
Real passion for Operational Excellence
Good understanding of software architecture and systems design issues
Knowledge of at least one scripting language (Perl, Ruby, Python) and UNIX / Linux operating system with its command-line tools
Knowledge of software engineering best practices across the development lifecycle, including agile methodologies, coding standards, code reviews, source management, build processes, testing, and operations
Advanced level of written and spoken English
At least 2 years of experience in developing high-performance systems in a complex, multi-tiered environment
Proficient in a broad range of software design approaches. Does things with the needed level of complexity the first time (or at least minimizes incidental complexity).
Can create flexible solutions without over-engineering.
Understands how to make appropriate trade-offs. Can balance customer requirements with technology requirements. Knows when to re-
use code. Is judicious about introducing dependencies.
Can influence a team’s technical strategy. Understands not all problems are new (or require new solutions) and how short-
term workarounds impact a team’s long-term ability to invent and maintain software. Makes appropriate trade-offs.
Understands system limitations, scaling factors, boundary conditions, and / or the reasons for architectural decisions.
Q. Why did we build X this way? What assumptions were made? Do we need to build something else if so why?).
Understands how to be efficient with resource usage (e.g., system hardware, data storage, infrastructure etc.)
Experience with AWS services including S3, Dynamo, EMR, Athena and RDS
Experience with Big Data Technologies (Hadoop, Hive, Hbase, Pig, Spark, etc.)
Experience in working and delivering end-to-end projects independently
Experience working with AWS big data technologies (Redshift, S3, EMR)
Excellent written and verbal communication in English