SENIOR SOFTWARE ENGINEER Data Services
Ancestry.com (NASDAQ: ACOM) is the world's largest online resource for family history. We have helped pioneer the market for online family history research, taking a pursuit that was expensive and time-consuming and making it easy, affordable and accessible to anyone with an interest in their family history. The foundation of our service is an extensive collection of billions of historical records that we have digitized, indexed and put online over the past 15 years. These digital records and documents, combined with our proprietary online search technologies, tools and collaboration features, have enabled our more than one and half million subscribers to create nearly 34 million family trees that contain nearly 9 billion profiles, make meaningful discoveries about the lives of their ancestors.With over 1,000 employees around the world, we are committed to hiring the very best talent. We are known for our cutting-edge technology, phenomenal innovation, and we offer a compelling and rewarding workplace where you will thrive. We seek out passionate people to join our mission of helping people discover, preserve and share their family history. We invite you to explore and discover the many opportunities that await you at Ancestry.com.
Job Description:
We are looking for an experienced Senior Software Engineer to join the new Data Services Team in San Francisco. We are the key part of Ancestry's Big Data Strategy to improve Business Intelligence, Product Intelligence, Machine Learning, Forensics, 1 on 1 marketing, etc.
- Key Responsibilities / Performance Requirements:
- Design and implement Data Storage of operational data, behavioral data and other unstructured data and Data Services to access them
- Interact with stakeholders in various Big Data initiatives, understand the Data needs and define Data Services product requirements
- Translate requirements into highly available, sometimes low latency systems by using modern distributed data storage or key-value store technologies, applying SOLID programming principles and working in Agile (Scrum) environment.
- Implement Distributed ETL tool for data load and transformation, facilitate the data cleansing, serve as consulting staff for other engineering teams in designing data flow and API.
- Provide experimental BI solution for stakeholders like Business Analyst to access and analyze unstructured data; create reports by implementing MapReduce jobs or similar techniques
- Collaborate with Ops to build the solution in-house or cloud based and support the Data Services solutions in production
- Required Skills:
- Prior experience of implementing Data Platform or Data Services by using commodity hardware scalable technologies such as Hadoop Family, BigTable/GFS, Dynamo, Cassandra, etc.
- Hands-on experience with Hadoop, including MapReduce, HBase, Hive and Pig
- Implementation level knowledge of ETL solution, Hadoop based ETL is preferred.
- Expert of software development principles and processes, including object oriented analysis, design and implementation. SOLID principles preferred
- Programming experience with Java, reading ability in C++.
- Proficiency in SQL, database schema design and implementation (tables, queries, triggers, views, and stored procedures). Experience with MySQL is a plus
- Development in Linux environment
- Knowledge of Perl, Python or other scripts.
- Good communication skills that can deal with diverse types of people from Data Science, Marketing, and Testing groups
- A self-starter willing to learn
- Other Relevant Background/Exposure:
- Any NoSql or high availability low latency implementation
- Experience creating and using web services, SOAP and Restful
- Java Tools and the Java Runtime Environment, JBoss, Spring, Hibernate, etc.
- Business Intelligence and Data Warehousing background a plus
- Familiarity with Microsoft Technologies and Frameworks a plus