Scott Goodson

Head of Core Experience at Pinterest

THIS CHAT HAPPENED ON May 04, 2016

Discussion

Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
Hi — I’m Scott Goodson, head of Core Experience at Pinterest. My teams are responsible for the overall user experience of the Web, Android, and iOS Apps, alongside the critical API layer of the server stack. Most recently, I lead the company-wide engineering effort that overhauled our iOS App - including consistent usage of the high performance AsyncDisplayKit framework that I open sourced two years ago. Previously, I managed the Facebook Paper and Instagram iOS engineering teams, and helped lead the native code rewrite of the core Facebook app. I also spent four years at Apple where I was one of the first ten engineers to work on iPhone OS 1.0, and was the primary author of the Calculator and Stocks apps. ------------------- UPDATE: Thanks for all of the great questions! I will continue to answer them as I can so check back later if I didn't get to your question during the hour :)
Brendan Ryan@brendan_j_ryan · Engineer
Hey Scott! I've noticed you wearing some pretty cool shirts in some of your Wired articles. Where do you get them from?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@brendan_j_ryan Ha! My favorite shirts are from an innovative company called the Imaginary Foundation, which has an interesting process that allows them to print on all sides of the shirt. Although some relatives think they make me look like a punk skater boy, I love patterns and colors that challenge the visual cortex! https://www.imaginaryfoundation....
Joon Sohn@joon_sohn · Software Engineer, NFL
Do you have any tips for people beginning to learn more of the inner workings of ASDK?
Connor Montgomery@connor · Product engineer @pinterest. High-fiver.
@joon_sohn I learned ASDK (with Scott and the rest of our team's help!) over the past few months with the new app we just released. Scott's got several videos from talks he's given about ASDK online, a few of my favorites are:
(Behind AsyncDisplayKit)
(AsyncDisplayKit 2.0: Intelligent User Interfaces) That being said, examples are the most helpful and fortunately the ASDK repo has several. Check those out here: https://github.com/facebook/Asyn...
Kazuya Nakamura@kzynakamura · Catapult Suplex
@connor @joon_sohn Thank you! I may try ASDK for iOS version of my app :)
Ayrton De Craene@ayrton · Code @ Product Hunt
Can you talk a bit about Pinterest’s open source contributions?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@ayrton Although I have personally only contributed to the iOS projects, Pinterest has many open source projects across several different platforms and programming languages For iOS - check out PINRemoteImage, PINCache, and AsyncDisplayKit (where Pinterest is the lead organizer & contributor). We also have plans for a new project launch this summer, as well as the long-anticipated 2.0 release for AsyncDisplayKit. On the server side, some of our most loved projects are pinlater, terrapin, and teletraan. Check out the full list at https://github.com/pinterest/ Companies like Pinterest have always used a tremendous amount of open source technology in their systems. Engineers are inherently grateful for the opportunity to benefit from another’s hard work writing feature-rich, stable code — and among people that I love working with, there is a true dedication to contributing back our own innovations. This really gets to the notion of layers of abstraction in engineering systems. Pinterest was able to start from a higher level of abstraction than companies founded 10 years earlier, and largely because of open source projects. From that basis, we are able to build higher than others have before, and feel honored to enable a community of people to take those capabilities in new directions that we wouldn’t be able to implement (or even imagine) ourselves. In many cases, this tight work with the community directly benefits Pinterest. With the recent push of work in AsyncDisplayKit, contributions from over 80 members of the community frequently helped us achieve the incredibly broad range of features and capabilities necessary to build out all of the corners of the Pinterest experience using it. Not only would we have wanted to hold all of this work to ourselves - it motivates us to see our contributions used by 3,600 apps, after all! - but we wouldn’t have been able to achieve it alone. In my role, I am dedicated to ensuring Pinterest leads in client technology on Web, Android, and iOS, and a core part of that strategy will continue to be increasing engagement with Open Source in the future.
Kristian Angyal@kristianangyal
Hey Scott. What improvements if any in ASDK are a direct consequence of addressing challenges you faced in Pinterest rewrite?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@kristianangyal A whole lot! Here are a handful of things we needed to do: - Support for custom collection view layouts, including all of the great intelligent preloading features of ASDK even with very complex non-flow layouts. - Much more advanced memory management for very deep navigation stacks and complex node hierarchies - New Accessibility features that allow integrating with VoiceOver and Integration testing even with layer-backed or rasterized node trees - Integration with PINRemoteImage to support Progressive JPEG and dynamic download priority - Entirely new components like ASVideoNode, ASMapNode, etc. - Animated GIF support, HTTP Live Streaming Video Thanks for asking, wish I could go into more detail - but there's so much more to say beyond ASDK!
Hey Scott! I know you've talked a bit already about ASDK improvements at Pinterest.. but I'm curious how you're using it. Are you guys using it in 100% of the app replacing all UIView's or only where performance was a problem, i.e.: collection views, complex nav, etc?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@pixel4 For consistency, we are using ASDK everywhere. This allows us several key advantages. - We have implicit trust that any performance challenge will be solvable. We have not encountered a reasonable design requirement that has been unsolvable, even on iPhone 4S. We strive for a highly usable experience on the oldest devices, and once the new version is finished rolling out later this month, we'll be most of the way there. There's still more improvement coming for the app, including on the performance side. - We have a layer of abstraction that we can build new features into, and rely on them being present and consistent across all iOS versions, and every part of the app. We don't need to take special measures to add a new app-wide behavior, even quite dramatic ones. - User interface layout is hard, especially when loading multiple stages of data (like more details for a pin after you open it). ASLayoutSpec, once a developer is familiar with using it, is an astoundingly powerful tool — you can automatically animate between any two layout states, even if they add or remove elements in the hierarchy, and do so with asynchronous computation of the new layout state. Being able to rely on our layout code scaling correctly across all device sizes without special measures is essential, particularly as new device sizes like 6+ and iPad Pro have been introduced. - By sitting on ASDK at the navigation layer, we've benefitted from even broader memory management features that can control how much space a view controller consumes in RAM. We use a model of "number of taps away", so a controller buried in the back stack of another tab is progressively purged of its rendered contents, downloaded data, etc. These kind of structural features allow us to eliminate complex and suboptimal heuristics around managing global caches, which can't really consider what the user needs from the app at the present moment. The challenges of this approach primarily relate to the initial ramp-up of developers. This is getting much better as new documentation is published in the docs section of asyncdisplaykit.org, but is still a cost. ASLayoutSpec in particular is seeing a ton of work to make it more intuitive to new users. Nonetheless, the right approach to adopting these advanced engineering techniques in an existing app is to look for incremental, stable intermediates, converting one or two view controllers at a time.
Thomas Stöcklein@tomstocklein · FoundersFundersFuture.com
When working on iOS 1.0 during your time at Apple, did you have a chance to work directly with Steve Jobs? Or have you been in meetings with him? What was that experience like?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@tomstocklein Although I did not work directly with Steve Jobs, I had the opportunity to meet him several times, first at MacWorld 2004 when I was 14 years old. Even a year before that, I reached him in a phone call through one of the clients of a small mac repair business I ran in my hometown. Working on the iPhone team, there were many times we felt Jobs' guiding influence on the project, typically through key decisions that affected our engineering work. For example, he made the final call to start work on a public API for native applications — the first step towards an App Store. I had many opportunities to work directly with Scott Forstall, one of Steve’s closest collaborators, and found his guidance to be very meaningful in my work.
Andrey@andreyz · Founder
What's your view on rise of Rx or Reactive inspired style development?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@andreyz Our new architecture for Pinterest on Web is based on React, although of course with many customizations to suit our use case. Still, it does fundamentally follow the Reactive design paradigm. On iOS, AsyncDisplayKit does have many elements of a declarative design pattern, which is in general aligned with reactive patterns. ASLayoutSpec is a good example of this. My preferred mental model for development is not specific to a single paradigm, however. I think there's a great deal of value in thinking of developers expressing their _intent_ for the software to execute, and have generalized frameworks give rise to _behaviors_ that are driven by the user's realtime interactions. For example, we consider high level conceptual elements like a Pin to be a component that can be dropped into many situations — a fullscreen view of it, a grid of many scrolling vertically, a horizontal carousel, etc — and in all of these cases our frameworks ensure that the right data is fetched ahead of time & that memory is managed appropriately for the user's interactions. We do this based on simple metrics like whether the user's travelling downward, or if they pause scrolling and then start interacting with a horizontal element. Here's a visual example of that. https://youtu.be/RY_X7l1g79Q?t=1... The thing that makes this mental model of development great — broader in concept than just how AsyncDisplayKit implements it — is that it allows developers to think in much more human terms, and deliver a result that is truly centered around the user experience.
Gary@garytokman · developer
Hey Scott! Can you give some tips for junior iOS developers entering the industry? What does Apple, Facebook, or Pinterest look for in developers?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@garytokman You might know this, but contributing to open source is one of the very best ways to take pressure off of interviews - it allows people at that company to see your work in detail!
Ryan Hoover@rrhoover · Founder, Product Hunt
Hey, Scott! Welcome. 😊 You recently launched Buyable Pins in order to drive revenue and close the gap between discovery to purchase. How's it going and have you noticed a significant difference in behavior between mobile and desktop users?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@rrhoover The ability to make purchases on Pinterest was one of the most highly requested features from Pinners. Since its launch last year we’ve continued to invest in making it easy to shop and buy from the Pinterest app. There are now more than 10k+ merchants selling millions of products through Buyable Pins, and the number of Buyable Pins has doubled to more than 60M. In talks with merchants, we’ve found they’re seeing improved mobile conversion rates, new customers through Pinterest, and greater sales. When we first built Buyable Pins, we found the greatest need was for an easy way to purchase on mobile, and so that’s where our focus has been. You’ll see more updates from us here soon.
Kim Vij@educatorsspin · Owner of Vij Consulting LLC #PinChat
@scottgoodson how to does Pinterest plan to maintain the balance of inspirational content to buyable content to create a continual atmosphere that we fell in love with oh so many years ago that droves millions to the platform?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@educatorsspin It’s absolutely something we’re thinking about. Part of making the product useful is understanding when people are in shopping mode, and when they’re not. Every Pin on Pinterest is there because someone was inspired by it put it there, and that element of human curation is what makes Pinterest so meaningful. We have a talented user research team that’s doing a ton of work in identifying these trends and giving recommendations to the product and engineering teams. Some of the results of this work are creating a dedicated Shop space and search. And when you search, you’ll see all of those inspirational Pins that are most relevant to your search, with the option of filtering by buyable, if you’re intent is to shop. We’ll be doing much more here, and always welcome feedback.
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@educatorsspin One more thing - Buyable pins are not the same as promoted pins (ads) - many pins that users love may happen to be buyable, without disrupting their ability to collect or enjoy those objects on the service. In fact, the vast majority of buyable pins are not promoted, and Pinterest makes absolutely 0 cents per buyable pin purchase (we have no commission / overhead for any seller)
Sash Zats@zatss · Software engineer
Hi Scott, as an engineer with many years of experience, what can you say about staying in engineering vs moving into a more managerial position - sometimes it seems like latter is the ultimate career development, while I really want to stay hands on. What is your approach to this?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@zatss I've coached many coworkers, very often close friends, through this decision. It's very individual and may depend on the company or project you're involved with, including the team's needs, growth opportunities in each track, etc. Pinterest has a confident philosophy that the Technical and Management tracks should be parallel, to some of the highest levels in the company (it is only at the founder / senior VP level that they may diverge). This isn't true at all companies, but fortunately, is increasingly common. On the management track, there is often opportunity to remain technically engaged with your team. I've found it to be a tremendously interesting challenge that has allowed me to grow as a person _and_ an engineer. I feel really inspired to be at the intersection of so many brilliant peoples' ideas and efforts, and love the opportunity to discuss hard technical challenges with those people. Feel free to email me at asyncdisplaykit@gmail.com if you'd like more advice in this respect!
Nitish Kumar Meena@nitishq · UX Designer, Microsoft
Hey Scott, Can you share your thoughts on Design at Pinterest and how that's a part of overall success? Also, how do you measure the success of new experiences. Thanks!
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@nitishq We have one of the most talented, but humble design teams in the business, so they’ve been a huge part of our success. Additionally, “Knitting” is one of our core values as a company. This means close collaboration between all disciplines, but this is especially important when it comes to design, product and engineering. Many companies talk about themselves as design led, or engineering driven, but at Pinterest we believe and place a high value on this close collaboration which to us results in the best, highest quality products for people. We look at both quantitative data as well qualitative data ( user experience testing, reviews etc.) to measure success.
Tanmay Desai@tanmaydesai89 · will always go the extra mile.
Hi Scott, glad to have you here. :) Can you describe your typical day at Pinterest?
Thomas Stöcklein@tomstocklein · FoundersFundersFuture.com
Are there any patterns in terms of UI and UX that many apps are consistently not getting quite right in your opinion? What are the most common flaws you're noticing when trying out new apps?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@tomstocklein Phenomenal question. In the very most general terms, I see a widespread lack of attention to detail. This is very often manifest in the interactions a user has with an app - animations, gestures, etc. However, it's often also present in static design, with little consideration for typography or balanced layout. Some designs were clearly made for ideal, mock content and ignore realities of the content they'll hold for users. This extends into engineering implementation details, including poor performance, buggy behaviors, etc. But the common element is interdisciplinary attention to detail.
Daniel Lee@dleesta · Product Manager
Hi Scott, Pinterest is wildly popular among women but doesn't resonate as strongly with the male audience. As Head of Core experience, how are you thinking about this?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@dleesta Great question! This is a preconception that people have about Pinterest. There are more than 75 billion Pins in the system now, so there are ideas for people no matter what their gender, interest, location, or language. We look at growth more in terms of reaching all types of people than just male vs. female. We’ve made improvements to search so that you see the most relevant results for you, and not just what’s most popular on the service as a whole. In the past year we’ve seen greater diversity in the types of people on the site - meaning more men and also a more international audience. In fact, more than 50% of the people on Pinterest now come from outside the U.S. In addition to making the product more personalized for each person, we’ve also made changes to design. For example, the recent iOS overhaul uses a design that we found to resonate more with both genders.
Vincent Ngo@vincentngo2 · iOS Developer
Hi Scott, is Pinterest written in objc or swift with the new overhaul?
Connor Montgomery@connor · Product engineer @pinterest. High-fiver.
@vincentngo2 (chiming in for Scott here) We're written in Objective-C. One of our engineers wrote an immutable modeling system in Swift, so we definitely don't shy away from it. With the migration to ASDK and a new visual design language, we wanted to limit the number of things that could potentially slow us down.
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@vincentngo2 This is a very interesting reference: https://medium.com/art-marketing... Pinterest is in the top 25 apps in many countries, and on average, 90% of apps in this category don't use Swift. This is currently true for Pinterest, where our only usage of Swift is to write a code generator: our app's data model is Objective-C code that is created as the output of a Swift program! There are many reasons why Swift is not ready for large scale use. One of the biggest is that dynamic frameworks, required by Swift, load so slowly (about 50x slower than static libraries) that our app would not be able to finish launching without the operating system killing it...on about 30-40% of devices we support! Even on the faster devices, launch time would be dramatically extended. However, Swift is improving very rapidly. We expect to start using it in a few areas of the app around the end of this year, and are anticipating some great announcements at WWDC and with Swift 3 in the future. Although we don't predict a time where Objective-C will be completely eliminated, Swift will be the most common language for new iOS development at Pinterest in 2017.
Elizabeth Lijia Hong@elizabethhong115
What do you see the difference (of challenges) in three platform: Web, Android, iOS App? Followup: in Pinterest, after iOS is re-written using AsyncDisplayKit platform, what is plan to improve web and Android? Will you still focus on improving performance or some other perspectives? Basically, what is the next step for core-experience team?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@elizabethhong115 There are absolutely different strengths and challenges on these three platforms, and it's one of the greatest joys and complexities of my job. Although my deepest personal experience is with iOS, and we approached this deep investment in attention to detail there first, we actually first looked to focus on Web and Android before eventually deciding that the team was best positioned to execute quickly on iOS. We're extensively investing in the other two platforms as well, both technically and in the design and user experience. My ambition is for the Pinterest engineering teams on these platforms to set a new standard for architecting large-scale applications in JavaScript and Java. This will take months, not weeks, but we'll be sure to share our experiences along the way!
Sahana Ullagaddi@itsmesahana · Marketing at One Medical
Hey Scott! What will the Pinterest experience look like in 5 years? What challenges do you foresee in realizing this vision?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@itsmesahana The vision for Pinterest is to make it a personalized catalog of ideas for each person who uses it. One of the greatest values of Pinterest is it can help you discover things you didn’t know existed, and so in the next few years the hope is we’ll be showing these objects in a more relevant and speedy way than ever before. So when you open the app, no matter what country you’re in, what device you’re on, or what language you speak, you’ll see the best ideas for you, using improvements in visual search and leveraging all that mobile devices will have to offer at that point. We want to not only show you these ideas, but make it easy for you to take action on them. Transitioning to a global company and service is one of the biggest challenges we’ve faced since transitioning from web to mobile, and so we’ll need to continue to move fast on making updates, scaling, and being relevant for people around the world.
Bin Liu@bin_liu · iOS@Pinterest
How did you managed to work almost 24-7? Is it that your passion is driving you? What's your favorite thing to do besides work?
Scott Goodson@scottgoodson · Head of Core Experience @ Pinterest
@bin_liu :-D Funny that you noticed. No one makes me work hard, besides myself. I'll shyly admit that I spent several hours on a Sunday improving the user experience of the Settings view in a way that would only be noticeable to users of old-generation iPads. If you're a person who sees the details, you can't un-see them. Combined with the fact that I think everyone should take great pride in their work, particularly when it is used by millions of users, it seems inconceivable to me that someone wouldn't be motivated to do their very best to create a really magical experience for as many people as possible. The numbers mean something to me here. Steve Jobs once said something that inspired me in this respect: http://www.folklore.org/StoryVie... "Well, let's say you can shave 10 seconds off of the boot time. Multiply that by five million users and thats 50 million seconds, every single day. Over a year, that's probably dozens of lifetimes. So if you make it boot ten seconds faster, you've saved a dozen lives. That's really worth it, don't you think?" It turns out at the scale of services with tens or hundreds of millions of users like Pinterest, saving just 1/10th of a second in key areas can literally add up to lifetimes of human experience in even just a few days. That may sound silly or dramatic, but it's something I think about when pushing for the very best I know how to achieve.
Emily Hodgins@ems_hodge · Operations @ Product Hunt
You recently launched an overhaul of the Pinterest iOS framework. Why now? What prompted the update?