Software Engineer, Data Management Zillow
HotPads is looking for an experienced Java developer that is already well versed in database technology and would like to become an expert in it. We have a modern data access platform but will benefit from having someone specialize in it and improve it. This role will focus on providing a fast, simple, and safe storage interface to the rest of the developers at HotPads.
We primarily rely on MySQL, Memcached, and HBase served off of EC2, and experience with at least 2 of these storage engines is required.
HotPads provides all listing data to Zillow.com, the nation's largest housing website, and to many other rental websites, so you will be responsible for keeping the nation's rental housing data safe!
- create and maintain "databeans" used throughout the code base
- structure data with locality, indexes, partitioning, and hot spots in mind
- create and maintain non-repetetive, performant DAO layer code
- as the in-house expert, educate other devs how to do the same
- contribute to our data access framework which favors java iterators and type-safety over SQL (we have little SQL)
- write code to migrate data between databases and formats
- design and orchestrate complex schema changes and migrations spanning several deployments
- configure and administer production, test, and development database servers with the help of our general linux admins
- automate installation and seeding of test and dev databases
- add features to our existing automatic schema-update tool
- investigate technologies like RDS, CloudSQL, DynamoDB, CloudDataStore, Phoenix
- ensure databases are secured and access lists are maintained
- automate and test backup and recovery processes
- automate replication and failover
- perform periodic test failovers and train others how to do the same
- constantly monitor for performance, qps, or data size problems
- fix them!
- BS in computer science or equivalent
- experience with at least two of MySQL, Memcached, or HBase
- experience with data sets large enough to require a partitioned schema
- 4 years of professional java development
- comfort in a 100% Linux environment
||San Francisco, CA |