Description:
Etsy is seeking a bright and seasoned PostgreSQL DBA to be in charge of our databases. We are looking for someone who is highly motivated to work in a fast paced small team environment. You will be involved in creating, maintaining and managing high availability PostgreSQL databases in a Linux environment.
Interested candidates should send their solutions to the problems at the bottom of this page, along with their resume, to work@etsy.com.
Primary responsibilities:
- Managing 24/7/365 high availability PostgreSQL databases
- Responsible for database data integrity
- Work closely with the development team to design optimal database schemas and stored procedures
- Work closely with System Operations to research and plan optimal hardware for growth
- Proactively research and avert database related issues
- Bachelor's Degree or equivalent
- 5-7 years PostgreSQL or related DB administration experience
- 2+ years in a 24/7/365 environment
- Experience tuning linux to get the best performance possible for PostgreSQL
- PostgreSQL configuration and performance tuning experience
- Experience in terabyte-sized OLTP environment
- Experience with database layouts on high performance disk subsystems
- Experience working with PostgreSQL backups
- Experience performing a full restore to a PostgreSQL database using dumps and transaction logs. Disaster Recovery Experience
- Experience with DB replication, clustering, and table partitioning
- Excellent SQL and PLpgSQL skills
- Knowledge of Stored Procedures, Triggers, Views, and Types
- Understand use of Normalization and Denormalization, benefits of each
- Networking Experience - TCP/IP Database Connectivity (JDBC, ODBC, etc.)
- Excellent communication skills, both written and verbal
- Strong interpersonal and relationship building skills conducive to team development
- Perl/Python/Shell scripting
General
- 1. Foriegn Keys. What are they, what are the benefits, what are the downsides?
- 2. Tablespaces. What are they and how are they usefull?
- 3. How do I figure out how large my database is, and what tables/indexes are the biggest?
- 4. Normalization. What are the benefits, and what are the drawbacks? Be sure to discuss join complexity.
- You have two identical machines with no shared storage between them. Your application currently uses one of them as a primary master database and leaves the second one is untouched. How would you set up the secondary machine to be a warm standby of the primary using Postgresql 8.1? How about Postgresql 8.2?
- Someone comes to you and says, "My PG database is slow!" How would you start the process of figuring out what was wrong? What tools would you use?
- You're looking through the pg log files and you come across this little gem: "Deadlock detected, Process 4893 waits for ShareLock on transaction 3372155030; blocked by process 10835. Process 10835 waits for ShareLock on transaction 3372152381; blocked by process 4893." What does it mean, and how would you go about resolving the issue?
No comments:
Post a Comment