|
All about Etsy FAQ Series: The Ins and Outs of Engineering
As part of our All about Etsy FAQ Series, Chris aka RevolvingDork — one of Etsy's founders and a member of the Engineering Team — answers questions below. Engineering is perhaps the most complex and specialized team within Etsy. It's our job to keep the site speedy, secure, and online. We are also charged with implementing changes to the site, and developing new features. Here are some answers to questions you may have about Etsy engineering! Q. Why do some features take so long to be released? Why aren’t you building the ideas I’ve posted into the forums? A. The overwhelming majority of the work we do goes unnoticed by the Etsy population. Because Etsy has been growing at a breakneck pace throughout the past two years, it has required constant and sweeping changes to the lower levels of the site. We're always monitoring the speed at which the site operates and working to shave down the execution time on problem features. Adding new features to a site that grows as fast as Etsy is a delicate balancing act. There are hundreds of factors that come into play, ranging from community demand to programmer availability to the concerns of the business. One of the most pressing concerns when it comes to building new features is database load. The databases are the repository of all of the information on Etsy — every user, every listing, and every forum post is stored in a database. There are currently billions of records stored in the databases, so making any change to the way they are structured requires a great deal of technical foresight and planning. Saving any kind of new information requires a change to the database structure, and any change to the database structure needs to be tested thoroughly before being deployed into the live site. Not all site additions require database work. Many of the flash applications on the site, for instance, make use of existing calls into the system and can be developed more quickly and with a smaller team. The time required to finish a new feature depends on how many layers of the site have to change to make it work. Some features require new machines to be purchased and installed into our server farm, which can mean longer lead times. The bottom line is that at our size, there is no such thing as a “simple” change. Even seemingly innocuous changes can require development of the site’s markup, front end code, middle layer, caching, network structure, databases, and hardware. We do our best to keep development rapid enough to meet the needs of our users, but measured enough to keep the system running fast and error-free. Q. Why can’t you provide a list of planned features and when you expect them to come out? A. Development on Etsy can be a tumultuous process. Features routinely get their timelines rescheduled, accelerated, or even dropped entirely from development. Because we cannot be sure of when features will be released or even if they’ll ever see the light of day, we cannot disclose our development schedule with the community. If a feature is nearly complete and has passed preliminary testing, we may release details about it through the Storque before it has launched. Q. What do I do if I discover a bug on the site? A. If you think you’ve found a bug while using Etsy, the first place you should go is the bugs forum. Check the first page of posts to see if anyone else has already posted a thread about your issue; if so, you can post additional information about the bug in the existing thread. If none of the threads match your issue, you can start a new thread. The bugs forum is monitored several times throughout the day, so you can feel confident that your issue is being seen by those that can help you. Q. What is the development process like? A. All major site changes start out as a requirements document from the Product Team. This usually comes in the form of a collection of mockup screens and walk through documentation (read more about this in Kelly's post in this series). A team leader is picked for the project. After reviewing the requirements document, he or she determines what changes will have to be made to the system and how many people will need to be recruited for the project. An engineering roadmap is drawn up by the team leader, and a timeline is set. All actual development work is performed on what we call a “planet,” which is a copy of the entire Etsy website. This allows us to get our hands dirty and break things without affecting the public site. Planets are like little developer playgrounds, where we can experiment with ideas and test out our hypotheses. Once all of the development is done, the new code is handed off to QA. It’s QA’s job to test out changes and make sure they work properly (read more about the QA process in Annette's post in this series). Once the green light is given by QA, the changes are pushed onto the live servers by Site Ops, and we have a new feature! Engineering in Etsy is a tough job, but it’s also extremely rewarding. There’s no feeling quite like knowing that hundreds of thousands of people are using the tools you’ve built. If you have any further questions about the engineering process, comment below. I’d love to answer any of your queries in a future Storque article!
Related Items
This article was reported by:
|
||||||||||||||||||||||||||||||||||||||||||||




