Showing posts with label Etsy Inc. Show all posts
Showing posts with label Etsy Inc. Show all posts

Wednesday, September 19, 2007

Performance Engineer at Etsy Inc.

Location: United States, Bay Area of California

We are looking for a Performance Engineer to join our team. You will be responsible for setting up performance metrics to regression test our code. The metrics will be used to determine whether the system has
regressed in terms of scalability and speed. In addition to certifying builds, you will be responsible for profiling and improving the scalability and speed of our current system.

You must be a self-starter with a strong record of success in identifying and fixing performance bottlenecks and scalability issues in a web (ideally) or other software environment.

This job is in the Bay Area of California.

Qualifications:
  • 2+ years experience as a performance engineer in a high-traffic web company (preferred) or other software company
  • Solid knowledge of load testing frameworks such as Load Runner or Silk automation (for load testing) test tools
  • Ability to code in one of Java/C/C++/Python
  • Ability to write shell and/or Perl scriptsWe are looking for a Performance Engineer to join our team. You will be responsible for setting up performance metrics to regression test our code. The metrics will be used to determine whether the system has
    regressed in terms of scalability and speed. In addition to certifying builds, you will be responsible for profiling and improving the scalability and speed of our current system.

    You must be a self-starter with a strong record of success in identifying and fixing performance bottlenecks and scalability issues in a web (ideally) or other software environment.
Pluses:
  • Knowledge of CPU profiling for C/C++/Java/Python using Quantify or similar tools
  • Knowledge of Memory profiling for C/C++/Java/Python using Purify or similar tools
Link

System Administrator at Etsy Inc.

Location: United States

Etsy is seeking a bright and seasoned mid-level System Administrator to help build and maintain our network and systems. We are looking for someone who is highly motivated and fun to work with. As a member of Etsy's Site Operations, you will be on call at regular intervals to support our high-availability/high-traffic web environment and need to commute as needed to our data center in northern New Jersey. You must have at least 3 years of experience in managing high-availability/high-traffic web systems.

Job Responsibilities:

Support and collaborate with development team on product architecture and capacity planning
Work together with systems administrators and engineering to resolve technical and capacity issues on the site

Job Requirements:
  • Experience running large applications with a 100% uptime requirement in large scale distributed environments
  • Extensive experience administering Linux environments focusing on
  • production stability, deployment, centralized authentication, et cetera
  • Provide performance tuning and automation for applications, systems, and network using Perl/Python/shell/Java
  • In depth knowledge of how web services and web frameworks operate
  • Proven leadership / technical troubleshooting abilities
  • Strong hardware and software diagnostics skills
  • Excellent oral and written communication skills, able to produce
  • written documentation for a technical and non-technical audience
  • Positive attitude and willingness to take on new responsibilities
  • Significant build/release experience a plus
Required Technologies:
  • Linux (Ubuntu, Gentoo)
  • OpenBSD
  • Cisco Hardware
  • Lighttpd
  • Squid
  • Shell scripting
  • Nagios
Additional Technologies:
  • GFS (Global File System)
  • SAN Administration
  • Python
  • PostgreSQL
Link

Senior Software Engineer at Etsy Inc.

Location: United States

There are over 500,000 items listed on Etsy, and they need to be indexed in near-real-time. We're looking for an engineer who has a solid foundation and who loves talking about algorithms over lunch.

This job opening is in our San Francisco office. Interested candidates should send their solutions to the problems at the bottom of this page, along with their resume, to work@etsy.com.

Qualifications:
  • BS or MS in Computer Science (preference given to a strong program)
  • 5+ years of software development experience
  • 2+ years of writing production-class, maintainable, multi-threaded, performant C/C++ code on Unix
  • Prior network programming experience
  • Facility with data structures/algorithms and complexity estimation
Pluses:
  • Experience with Unix/Linux or Windows environments, distributed systems, machine learning, information retrieval, network programming and/or developing large software system
Technical Problems:
  • Provide Memory and Time Complexity for your solution to both below. Use Java, C/C++ or Python.
  • Given 2 strings, determine whether one is an anagram of the other. Implement this in a function "bool isAnagram(str1, str2)" which should be production-worthy code. It is OK to assume the normal English alphabet.
  • Given a list of integers in no particular order, return when you find 3 that sum to 0. You can return any 3.
  • Imagine a graph that consists of directional links between nodes identified by small non-negative integers <>
  • Imagine an application that allows insertion of links, but wants to prevent insertion of links that close cycles in the graph.
  • For example, starting from an empty graph, inserting links 1 -> 2 and 2 -> 3 would succeed; but inserting a third link 3 -> 1 would fail, since it would close the cycle 1 -> 2 -> 3 -> 1. However, inserting a link 1 -> 3 instead would succeed.
  • In Java or C/C++, declare data structures to represent your graph, and give code for an "insert link" function that fails if a new link would close a cycle. What, roughly, is the space- and time-complexity of your solution?
Link

Sr. PostgreSQL DBA at Etsy Inc.

Location: United States

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
Qualifications:
  • 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
Technical Problems:

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.
A bit more specific
  • 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?
Link