6005 lines
266 KiB
HTML
6005 lines
266 KiB
HTML
<!doctype html>
|
||
<html xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en-US" >
|
||
|
||
<head>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
<!-- This is Squarespace. --><!-- noideadog -->
|
||
<base href="">
|
||
<meta charset="utf-8" />
|
||
<title>Conference Report: SRECon Americas 2019 — No Idea Blog</title>
|
||
<meta http-equiv="Accept-CH" content="Sec-CH-UA-Platform-Version, Sec-CH-UA-Model" /><link rel="icon" type="image/x-icon" href="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1517839521640-6WOSTDGLZNUI4GTBG6F6/favicon.ico"/>
|
||
<link rel="canonical" href="https://www.noidea.dog/blog/srecon-americas-2019"/>
|
||
<meta property="og:site_name" content="No Idea Blog"/>
|
||
<meta property="og:title" content="Conference Report: SRECon Americas 2019 — No Idea Blog"/>
|
||
<meta property="og:latitude" content="40.7207559"/>
|
||
<meta property="og:longitude" content="-74.00076130000002"/>
|
||
<meta property="og:locality" content=""/>
|
||
<meta property="og:url" content="https://www.noidea.dog/blog/srecon-americas-2019"/>
|
||
<meta property="og:type" content="article"/>
|
||
<meta property="og:description" content="SRECon Americas was in Brooklyn this year! SRECon has always emphasised the human side of reliability and I appreciated the focus on learning and teaching, psychological safety and avoiding burnout, as well as a bunch of tech topics around keeping sites running."/>
|
||
<meta property="og:image" content="http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w"/>
|
||
<meta property="og:image:width" content="262"/>
|
||
<meta property="og:image:height" content="228"/>
|
||
<meta itemprop="name" content="Conference Report: SRECon Americas 2019 — No Idea Blog"/>
|
||
<meta itemprop="url" content="https://www.noidea.dog/blog/srecon-americas-2019"/>
|
||
<meta itemprop="description" content="SRECon Americas was in Brooklyn this year! SRECon has always emphasised the human side of reliability and I appreciated the focus on learning and teaching, psychological safety and avoiding burnout, as well as a bunch of tech topics around keeping sites running."/>
|
||
<meta itemprop="thumbnailUrl" content="http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w"/>
|
||
<link rel="image_src" href="http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w" />
|
||
<meta itemprop="image" content="http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w"/>
|
||
<meta itemprop="author" content="Tanya Reilly"/>
|
||
<meta itemprop="datePublished" content="2019-04-01T20:11:12-0400"/>
|
||
<meta itemprop="dateModified" content="2019-04-02T21:54:24-0400"/>
|
||
<meta itemprop="headline" content="Conference Report: SRECon Americas 2019"/>
|
||
<meta itemprop="publisher" content="No Idea Blog"/>
|
||
<meta name="twitter:title" content="Conference Report: SRECon Americas 2019 — No Idea Blog"/>
|
||
<meta name="twitter:image" content="http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w"/>
|
||
<meta name="twitter:url" content="https://www.noidea.dog/blog/srecon-americas-2019"/>
|
||
<meta name="twitter:card" content="summary"/>
|
||
<meta name="twitter:description" content="SRECon Americas was in Brooklyn this year! SRECon has always emphasised the human side of reliability and I appreciated the focus on learning and teaching, psychological safety and avoiding burnout, as well as a bunch of tech topics around keeping sites running."/>
|
||
<meta name="description" content=" SRECon Americas was in Brooklyn this year! SRECon has always emphasised the human side of reliability and I appreciated the focus on learning and teaching, psychological safety and avoiding burnout, as well as a bunch of tech topics around keeping sites running. " />
|
||
<link rel="preconnect" href="https://images.squarespace-cdn.com">
|
||
<link rel="preconnect" href="https://use.typekit.net" crossorigin>
|
||
<link rel="preconnect" href="https://p.typekit.net" crossorigin>
|
||
<script type="text/javascript" src="//use.typekit.net/ik/Mv68_Z25-ahz9CPxja9GraS3ZZBBR8gRcbjEKx24uMMfeCCgfFHN4UJLFRbh52jhWDmyw2m8jhmRZ29ujRbUFRmcwR93ZRMDwyGMJ6U3ScNt-AuyOAozicIKfAZuiYmkjPu3ifG4fHCgIMMjMPMfH6qJtKGbMg62JMJ7fbKzMsMMeMb6MKG4fJCgIMMjgkMfH6qJtkGbMg6FJMJ7fbKwMsMMegI6MKG4fJZmIMIjMkMfH6qJyB9bMs6IJMJ7fbKgmsMgeMS6MKG4fJFmIMIj2PMfH6qJym9bMs65JMJ7fbKfmsMgegI6MTMglCV9l6j.js" async fetchpriority="high" onload="try{Typekit.load();}catch(e){} document.documentElement.classList.remove('wf-loading');"></script>
|
||
<script>document.documentElement.classList.add('wf-loading')</script>
|
||
<style>@keyframes fonts-loading { 0%, 99% { color: transparent; } } html.wf-loading * { animation: fonts-loading 3s; }</style>
|
||
<script type="text/javascript" crossorigin="anonymous" defer="true" nomodule="nomodule" src="//assets.squarespace.com/@sqs/polyfiller/1.6/legacy.js"></script>
|
||
<script type="text/javascript" crossorigin="anonymous" defer="true" src="//assets.squarespace.com/@sqs/polyfiller/1.6/modern.js"></script>
|
||
<script data-name="static-context">Static = window.Static || {}; Static.SQUARESPACE_CONTEXT = {"betaFeatureFlags":["enable_modernized_pdp_m3_fluid","enable_modernized_standalone_pages_kill_switch","contacts_and_campaigns_redesign","output_template_css_assets","campaigns_merch_state","order_status_page_checkout_landing_enabled","enable_form_submission_trigger","member_areas_feature","marketing_automations","campaigns_discount_section_in_automations","marketing_landing_page","i18n_beta_website_locales","enable_modernized_standalone_pages","campaigns_new_image_layout_picker","enable_modernized_pdp_m3_layout_ux","json_tweaks","campaigns_discount_section_in_blasts","modernized-pdp-m2-enabled","campaigns_table_v2","campaigns_thumbnail_layout","campaigns_import_discounts","commerce_product_payment_plan_editing"],"facebookAppId":"314192535267336","facebookApiVersion":"v6.0","rollups":{"squarespace-announcement-bar":{"js":"//assets.squarespace.com/universal/scripts-compressed/announcement-bar-df4516beb5aa0028-min.en-US.js"},"squarespace-audio-player":{"css":"//assets.squarespace.com/universal/styles-compressed/audio-player-b05f5197a871c566-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/audio-player-2c392274facfe228-min.en-US.js"},"squarespace-blog-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/blog-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/blog-collection-list-3a5374d437fc6d00-min.en-US.js"},"squarespace-calendar-block-renderer":{"css":"//assets.squarespace.com/universal/styles-compressed/calendar-block-renderer-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/calendar-block-renderer-26d8e9b90fb9f480-min.en-US.js"},"squarespace-chartjs-helpers":{"css":"//assets.squarespace.com/universal/styles-compressed/chartjs-helpers-96b256171ee039c1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/chartjs-helpers-522a53304a318d5d-min.en-US.js"},"squarespace-comments":{"css":"//assets.squarespace.com/universal/styles-compressed/comments-23ce383529b75c4f-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/comments-e7efb03b263e7183-min.en-US.js"},"squarespace-custom-css-popup":{"css":"//assets.squarespace.com/universal/styles-compressed/custom-css-popup-ff86295ac1cc1d28-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/custom-css-popup-6b1928f63f535a38-min.en-US.js"},"squarespace-dialog":{"css":"//assets.squarespace.com/universal/styles-compressed/dialog-86aacd645d83874c-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/dialog-5a370ceb3b783b61-min.en-US.js"},"squarespace-events-collection":{"css":"//assets.squarespace.com/universal/styles-compressed/events-collection-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/events-collection-53a2a66e197347e0-min.en-US.js"},"squarespace-form-rendering-utils":{"js":"//assets.squarespace.com/universal/scripts-compressed/form-rendering-utils-4d2ae44cbdf7308c-min.en-US.js"},"squarespace-forms":{"css":"//assets.squarespace.com/universal/styles-compressed/forms-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/forms-6d9e12a028dd1efc-min.en-US.js"},"squarespace-gallery-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/gallery-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/gallery-collection-list-e50dc2cea7153bb8-min.en-US.js"},"squarespace-image-zoom":{"css":"//assets.squarespace.com/universal/styles-compressed/image-zoom-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/image-zoom-0ca1efc2ac068abc-min.en-US.js"},"squarespace-pinterest":{"css":"//assets.squarespace.com/universal/styles-compressed/pinterest-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/pinterest-17423cbbf8d04380-min.en-US.js"},"squarespace-popup-overlay":{"css":"//assets.squarespace.com/universal/styles-compressed/popup-overlay-b742b752f5880972-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/popup-overlay-d14ed9411116d82d-min.en-US.js"},"squarespace-product-quick-view":{"css":"//assets.squarespace.com/universal/styles-compressed/product-quick-view-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/product-quick-view-292b172c00faedda-min.en-US.js"},"squarespace-products-collection-item-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-item-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-item-v2-7fbb3f7b25936e86-min.en-US.js"},"squarespace-products-collection-list-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-list-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-list-v2-a0f681feaaa1d600-min.en-US.js"},"squarespace-search-page":{"css":"//assets.squarespace.com/universal/styles-compressed/search-page-90a67fc09b9b32c6-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/search-page-1af2c4e17252dac5-min.en-US.js"},"squarespace-search-preview":{"js":"//assets.squarespace.com/universal/scripts-compressed/search-preview-0b8ae236f536a890-min.en-US.js"},"squarespace-simple-liking":{"css":"//assets.squarespace.com/universal/styles-compressed/simple-liking-701bf8bbc05ec6aa-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/simple-liking-75b6582783ed07a5-min.en-US.js"},"squarespace-social-buttons":{"css":"//assets.squarespace.com/universal/styles-compressed/social-buttons-95032e5fa98e47a5-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/social-buttons-322494b0519c3493-min.en-US.js"},"squarespace-tourdates":{"css":"//assets.squarespace.com/universal/styles-compressed/tourdates-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/tourdates-268b851e0659685f-min.en-US.js"},"squarespace-website-overlays-manager":{"css":"//assets.squarespace.com/universal/styles-compressed/website-overlays-manager-07ea5a4e004e6710-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/website-overlays-manager-b34cb8a41e4a5843-min.en-US.js"}},"pageType":50,"website":{"id":"5a05ececd55b4165f250f032","cloneable":false,"contentModifiedOn":1762120381109,"formattingLocale":"en-US","fullSiteTitle":"Conference Report: SRECon Americas 2019 \u2014 No Idea Blog","identifier":"noideadog","imageMetadataProcessingEnabled":false,"isHstsEnabled":false,"language":"en-US","primaryDomain":"www.noidea.dog","screenshotId":"d4834ee0fb1eb7c3e11de8d09d2322e6ecf96e07fe9bf0415eb1ab406875f343","shareButtonOptions":{"4":true,"2":true,"8":true,"3":true,"6":true,"1":true,"7":true},"showOwnerLogin":false,"siteDescription":"","siteStatus":{},"siteTagLine":"","siteTitle":"No Idea Blog","sslSetting":3,"timeZone":"America/New_York","translationLocale":"en-US","typekitId":"","websiteType":1,"hasBeenCloneable":false,"statsMigrated":false,"authenticUrl":"https://www.noidea.dog","baseUrl":"https://www.noidea.dog","internalUrl":"https://noideadog.squarespace.com","machineTimeZoneOffset":-14400000,"socialAccounts":[{"serviceId":23,"userId":"743789","userName":"whereistanya","screenname":"Tanya Reilly","addedOn":1517794309777,"profileUrl":"https://github.com/whereistanya","iconUrl":"https://avatars3.githubusercontent.com/u/743789?v=4","iconEnabled":true,"serviceName":"github"},{"serviceId":20,"userId":"blog@noidea.dog","screenname":"blog@noidea.dog","addedOn":1517794328029,"profileUrl":"mailto:blog@noidea.dog","iconEnabled":true,"serviceName":"email"},{"serviceId":74,"screenname":"URL","addedOn":1671819872551,"profileUrl":"https://hachyderm.io/@whereistanya","iconEnabled":true,"serviceName":"url"},{"serviceId":62,"screenname":"Twitter","addedOn":1640573966780,"profileUrl":"http://twitter.com/whereistanya","iconEnabled":true,"serviceName":"twitter-unauth"}],"timeZoneAbbr":"EDT","timeZoneOffset":-14400000},"websiteSettings":{"id":"5a05ececd55b4165f250f034","websiteId":"5a05ececd55b4165f250f032","type":"Personal","subjects":[],"country":"US","state":"NY","simpleLikingEnabled":true,"mobileInfoBarSettings":{"style":1,"isContactEmailEnabled":false,"isContactPhoneNumberEnabled":false,"isLocationEnabled":false,"isBusinessHoursEnabled":false},"announcementBarSettings":{},"commentLikesAllowed":true,"commentAnonAllowed":true,"commentThreaded":true,"commentApprovalRequired":true,"commentAvatarsOn":true,"commentSortType":2,"commentFlagThreshold":0,"commentFlagsAllowed":true,"commentEnableByDefault":true,"commentDisableAfterDaysDefault":0,"disqusShortname":"","commentsEnabled":true,"businessHours":{},"storeSettings":{"returnPolicy":null,"termsOfService":null,"privacyPolicy":null,"expressCheckout":false,"continueShoppingLinkUrl":"/","useLightCart":false,"showNoteField":false,"shippingCountryDefaultValue":"US","billToShippingDefaultValue":false,"showShippingPhoneNumber":true,"isShippingPhoneRequired":false,"showBillingPhoneNumber":true,"isBillingPhoneRequired":false,"currenciesSupported":["USD","ARS","AUD","BRL","CAD","CHF","COP","CZK","DKK","EUR","GBP","HKD","IDR","ILS","INR","JPY","MXN","MYR","NOK","NZD","PHP","PLN","RUB","SEK","SGD","THB","ZAR"],"defaultCurrency":"USD","selectedCurrency":"USD","measurementStandard":2,"showCustomCheckoutForm":false,"checkoutPageMarketingOptInEnabled":false,"enableMailingListOptInByDefault":false,"sameAsRetailLocation":false,"merchandisingSettings":{"scarcityEnabledOnProductItems":false,"scarcityEnabledOnProductBlocks":false,"scarcityMessageType":"DEFAULT_SCARCITY_MESSAGE","scarcityThreshold":10,"multipleQuantityAllowedForServices":true,"restockNotificationsEnabled":false,"restockNotificationsMailingListSignUpEnabled":false,"relatedProductsEnabled":false,"relatedProductsOrdering":"random","soldOutVariantsDropdownDisabled":false,"productComposerOptedIn":false,"productComposerABTestOptedOut":false,"productReviewsEnabled":false,"displayImportedProductReviewsEnabled":false,"hasOptedToCollectNativeReviews":false},"minimumOrderSubtotalEnabled":false,"minimumOrderSubtotal":{"currency":"USD","value":"0.00"},"addToCartConfirmationType":2,"isLive":true,"multipleQuantityAllowedForServices":true},"useEscapeKeyToLogin":true,"ssBadgeType":3,"ssBadgePosition":4,"ssBadgeVisibility":1,"ssBadgeDevices":1,"pinterestOverlayOptions":{"mode":"disabled"},"userAccountsSettings":{"loginAllowed":false,"signupAllowed":false}},"cookieSettings":{"isCookieBannerEnabled":false,"isRestrictiveCookiePolicyEnabled":false,"cookieBannerText":"By using this website, you agree to our use of cookies. We use cookies to provide you with a great experience and to help our website run effectively.","cookieBannerTheme":"DARK","cookieBannerVariant":"BAR","cookieBannerPosition":"BOTTOM","cookieBannerCtaVariant":"ICON","cookieBannerCtaText":"Accept","cookieBannerAcceptType":"OPT_IN","cookieBannerOptOutCtaText":"Decline","cookieBannerHasOptOut":false,"cookieBannerHasManageCookies":false,"cookieBannerSavedPreferencesLayout":"PILL"},"websiteCloneable":false,"collection":{"title":"Blog","id":"5a77a36ef9619a31bd5b1fd2","fullUrl":"/blog","type":1,"permissionType":1},"item":{"title":"Conference Report: SRECon Americas 2019","id":"5c9911ba419202198ce91978","fullUrl":"/blog/srecon-americas-2019","publicCommentCount":2,"commentState":1,"recordType":1},"subscribed":false,"appDomain":"squarespace.com","templateTweakable":true,"tweakJSON":{"TGutter":"3%","TMaxWidth":"400","TPerRow":"3","gallery-auto-play":"false","galleryPlaySpeed":"3","hide-thumbnail-titles":"false","outerPadding":"75px","pagePadding":"50px","product-gallery-auto-crop":"false","product-image-auto-crop":"true","thumbnail-layout":"Basic Grid","topPadding":"10px","tweak-v1-related-products-title-spacing":"50px"},"templateId":"4fd11f32c4aad9b01c9e624c","templateVersion":"7","pageFeatures":[1,2,4],"gmRenderKey":"QUl6YVN5Q0JUUk9xNkx1dkZfSUUxcjQ2LVQ0QWVUU1YtMGQ3bXk4","templateScriptsRootUrl":"https://static1.squarespace.com/static/ta/4fd1028ee4b02be53c65dfb3/1363/scripts/","impersonatedSession":false,"tzData":{"zones":[[-300,"US","E%sT",null]],"rules":{"US":[[1967,2006,null,"Oct","lastSun","2:00","0","S"],[1987,2006,null,"Apr","Sun>=1","2:00","1:00","D"],[2007,"max",null,"Mar","Sun>=8","2:00","1:00","D"],[2007,"max",null,"Nov","Sun>=1","2:00","0","S"]]}},"showAnnouncementBar":false,"recaptchaEnterpriseContext":{"recaptchaEnterpriseSiteKey":"6LdDFQwjAAAAAPigEvvPgEVbb7QBm-TkVJdDTlAv"},"i18nContext":{"timeZoneData":{"id":"America/New_York","name":"Eastern Time"}},"env":"PRODUCTION","visitorFormContext":{"formFieldFormats":{"initialNameOrder":"GIVEN_FIRST","initialPhoneFormat":{"id":0,"type":"PHONE_NUMBER","country":"US","labelLocale":"en-US","fields":[{"type":"SEPARATOR","label":"(","identifier":"LeftParen","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"1","identifier":"1","length":3,"required":false,"metadata":{}},{"type":"SEPARATOR","label":")","identifier":"RightParen","length":0,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"2","identifier":"2","length":3,"required":false,"metadata":{}},{"type":"SEPARATOR","label":"-","identifier":"Dash","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"3","identifier":"3","length":14,"required":false,"metadata":{}}]},"countries":[{"name":"Afghanistan","code":"AF","phoneCode":"+93"},{"name":"\u00C5land Islands","code":"AX","phoneCode":"+358"},{"name":"Albania","code":"AL","phoneCode":"+355"},{"name":"Algeria","code":"DZ","phoneCode":"+213"},{"name":"American Samoa","code":"AS","phoneCode":"+1"},{"name":"Andorra","code":"AD","phoneCode":"+376"},{"name":"Angola","code":"AO","phoneCode":"+244"},{"name":"Anguilla","code":"AI","phoneCode":"+1"},{"name":"Antigua & Barbuda","code":"AG","phoneCode":"+1"},{"name":"Argentina","code":"AR","phoneCode":"+54"},{"name":"Armenia","code":"AM","phoneCode":"+374"},{"name":"Aruba","code":"AW","phoneCode":"+297"},{"name":"Ascension Island","code":"AC","phoneCode":"+247"},{"name":"Australia","code":"AU","phoneCode":"+61"},{"name":"Austria","code":"AT","phoneCode":"+43"},{"name":"Azerbaijan","code":"AZ","phoneCode":"+994"},{"name":"Bahamas","code":"BS","phoneCode":"+1"},{"name":"Bahrain","code":"BH","phoneCode":"+973"},{"name":"Bangladesh","code":"BD","phoneCode":"+880"},{"name":"Barbados","code":"BB","phoneCode":"+1"},{"name":"Belarus","code":"BY","phoneCode":"+375"},{"name":"Belgium","code":"BE","phoneCode":"+32"},{"name":"Belize","code":"BZ","phoneCode":"+501"},{"name":"Benin","code":"BJ","phoneCode":"+229"},{"name":"Bermuda","code":"BM","phoneCode":"+1"},{"name":"Bhutan","code":"BT","phoneCode":"+975"},{"name":"Bolivia","code":"BO","phoneCode":"+591"},{"name":"Bosnia & Herzegovina","code":"BA","phoneCode":"+387"},{"name":"Botswana","code":"BW","phoneCode":"+267"},{"name":"Brazil","code":"BR","phoneCode":"+55"},{"name":"British Indian Ocean Territory","code":"IO","phoneCode":"+246"},{"name":"British Virgin Islands","code":"VG","phoneCode":"+1"},{"name":"Brunei","code":"BN","phoneCode":"+673"},{"name":"Bulgaria","code":"BG","phoneCode":"+359"},{"name":"Burkina Faso","code":"BF","phoneCode":"+226"},{"name":"Burundi","code":"BI","phoneCode":"+257"},{"name":"Cambodia","code":"KH","phoneCode":"+855"},{"name":"Cameroon","code":"CM","phoneCode":"+237"},{"name":"Canada","code":"CA","phoneCode":"+1"},{"name":"Cape Verde","code":"CV","phoneCode":"+238"},{"name":"Caribbean Netherlands","code":"BQ","phoneCode":"+599"},{"name":"Cayman Islands","code":"KY","phoneCode":"+1"},{"name":"Central African Republic","code":"CF","phoneCode":"+236"},{"name":"Chad","code":"TD","phoneCode":"+235"},{"name":"Chile","code":"CL","phoneCode":"+56"},{"name":"China","code":"CN","phoneCode":"+86"},{"name":"Christmas Island","code":"CX","phoneCode":"+61"},{"name":"Cocos (Keeling) Islands","code":"CC","phoneCode":"+61"},{"name":"Colombia","code":"CO","phoneCode":"+57"},{"name":"Comoros","code":"KM","phoneCode":"+269"},{"name":"Congo - Brazzaville","code":"CG","phoneCode":"+242"},{"name":"Congo - Kinshasa","code":"CD","phoneCode":"+243"},{"name":"Cook Islands","code":"CK","phoneCode":"+682"},{"name":"Costa Rica","code":"CR","phoneCode":"+506"},{"name":"C\u00F4te d\u2019Ivoire","code":"CI","phoneCode":"+225"},{"name":"Croatia","code":"HR","phoneCode":"+385"},{"name":"Cuba","code":"CU","phoneCode":"+53"},{"name":"Cura\u00E7ao","code":"CW","phoneCode":"+599"},{"name":"Cyprus","code":"CY","phoneCode":"+357"},{"name":"Czechia","code":"CZ","phoneCode":"+420"},{"name":"Denmark","code":"DK","phoneCode":"+45"},{"name":"Djibouti","code":"DJ","phoneCode":"+253"},{"name":"Dominica","code":"DM","phoneCode":"+1"},{"name":"Dominican Republic","code":"DO","phoneCode":"+1"},{"name":"Ecuador","code":"EC","phoneCode":"+593"},{"name":"Egypt","code":"EG","phoneCode":"+20"},{"name":"El Salvador","code":"SV","phoneCode":"+503"},{"name":"Equatorial Guinea","code":"GQ","phoneCode":"+240"},{"name":"Eritrea","code":"ER","phoneCode":"+291"},{"name":"Estonia","code":"EE","phoneCode":"+372"},{"name":"Eswatini","code":"SZ","phoneCode":"+268"},{"name":"Ethiopia","code":"ET","phoneCode":"+251"},{"name":"Falkland Islands","code":"FK","phoneCode":"+500"},{"name":"Faroe Islands","code":"FO","phoneCode":"+298"},{"name":"Fiji","code":"FJ","phoneCode":"+679"},{"name":"Finland","code":"FI","phoneCode":"+358"},{"name":"France","code":"FR","phoneCode":"+33"},{"name":"French Guiana","code":"GF","phoneCode":"+594"},{"name":"French Polynesia","code":"PF","phoneCode":"+689"},{"name":"Gabon","code":"GA","phoneCode":"+241"},{"name":"Gambia","code":"GM","phoneCode":"+220"},{"name":"Georgia","code":"GE","phoneCode":"+995"},{"name":"Germany","code":"DE","phoneCode":"+49"},{"name":"Ghana","code":"GH","phoneCode":"+233"},{"name":"Gibraltar","code":"GI","phoneCode":"+350"},{"name":"Greece","code":"GR","phoneCode":"+30"},{"name":"Greenland","code":"GL","phoneCode":"+299"},{"name":"Grenada","code":"GD","phoneCode":"+1"},{"name":"Guadeloupe","code":"GP","phoneCode":"+590"},{"name":"Guam","code":"GU","phoneCode":"+1"},{"name":"Guatemala","code":"GT","phoneCode":"+502"},{"name":"Guernsey","code":"GG","phoneCode":"+44"},{"name":"Guinea","code":"GN","phoneCode":"+224"},{"name":"Guinea-Bissau","code":"GW","phoneCode":"+245"},{"name":"Guyana","code":"GY","phoneCode":"+592"},{"name":"Haiti","code":"HT","phoneCode":"+509"},{"name":"Honduras","code":"HN","phoneCode":"+504"},{"name":"Hong Kong SAR China","code":"HK","phoneCode":"+852"},{"name":"Hungary","code":"HU","phoneCode":"+36"},{"name":"Iceland","code":"IS","phoneCode":"+354"},{"name":"India","code":"IN","phoneCode":"+91"},{"name":"Indonesia","code":"ID","phoneCode":"+62"},{"name":"Iran","code":"IR","phoneCode":"+98"},{"name":"Iraq","code":"IQ","phoneCode":"+964"},{"name":"Ireland","code":"IE","phoneCode":"+353"},{"name":"Isle of Man","code":"IM","phoneCode":"+44"},{"name":"Israel","code":"IL","phoneCode":"+972"},{"name":"Italy","code":"IT","phoneCode":"+39"},{"name":"Jamaica","code":"JM","phoneCode":"+1"},{"name":"Japan","code":"JP","phoneCode":"+81"},{"name":"Jersey","code":"JE","phoneCode":"+44"},{"name":"Jordan","code":"JO","phoneCode":"+962"},{"name":"Kazakhstan","code":"KZ","phoneCode":"+7"},{"name":"Kenya","code":"KE","phoneCode":"+254"},{"name":"Kiribati","code":"KI","phoneCode":"+686"},{"name":"Kosovo","code":"XK","phoneCode":"+383"},{"name":"Kuwait","code":"KW","phoneCode":"+965"},{"name":"Kyrgyzstan","code":"KG","phoneCode":"+996"},{"name":"Laos","code":"LA","phoneCode":"+856"},{"name":"Latvia","code":"LV","phoneCode":"+371"},{"name":"Lebanon","code":"LB","phoneCode":"+961"},{"name":"Lesotho","code":"LS","phoneCode":"+266"},{"name":"Liberia","code":"LR","phoneCode":"+231"},{"name":"Libya","code":"LY","phoneCode":"+218"},{"name":"Liechtenstein","code":"LI","phoneCode":"+423"},{"name":"Lithuania","code":"LT","phoneCode":"+370"},{"name":"Luxembourg","code":"LU","phoneCode":"+352"},{"name":"Macao SAR China","code":"MO","phoneCode":"+853"},{"name":"Madagascar","code":"MG","phoneCode":"+261"},{"name":"Malawi","code":"MW","phoneCode":"+265"},{"name":"Malaysia","code":"MY","phoneCode":"+60"},{"name":"Maldives","code":"MV","phoneCode":"+960"},{"name":"Mali","code":"ML","phoneCode":"+223"},{"name":"Malta","code":"MT","phoneCode":"+356"},{"name":"Marshall Islands","code":"MH","phoneCode":"+692"},{"name":"Martinique","code":"MQ","phoneCode":"+596"},{"name":"Mauritania","code":"MR","phoneCode":"+222"},{"name":"Mauritius","code":"MU","phoneCode":"+230"},{"name":"Mayotte","code":"YT","phoneCode":"+262"},{"name":"Mexico","code":"MX","phoneCode":"+52"},{"name":"Micronesia","code":"FM","phoneCode":"+691"},{"name":"Moldova","code":"MD","phoneCode":"+373"},{"name":"Monaco","code":"MC","phoneCode":"+377"},{"name":"Mongolia","code":"MN","phoneCode":"+976"},{"name":"Montenegro","code":"ME","phoneCode":"+382"},{"name":"Montserrat","code":"MS","phoneCode":"+1"},{"name":"Morocco","code":"MA","phoneCode":"+212"},{"name":"Mozambique","code":"MZ","phoneCode":"+258"},{"name":"Myanmar (Burma)","code":"MM","phoneCode":"+95"},{"name":"Namibia","code":"NA","phoneCode":"+264"},{"name":"Nauru","code":"NR","phoneCode":"+674"},{"name":"Nepal","code":"NP","phoneCode":"+977"},{"name":"Netherlands","code":"NL","phoneCode":"+31"},{"name":"New Caledonia","code":"NC","phoneCode":"+687"},{"name":"New Zealand","code":"NZ","phoneCode":"+64"},{"name":"Nicaragua","code":"NI","phoneCode":"+505"},{"name":"Niger","code":"NE","phoneCode":"+227"},{"name":"Nigeria","code":"NG","phoneCode":"+234"},{"name":"Niue","code":"NU","phoneCode":"+683"},{"name":"Norfolk Island","code":"NF","phoneCode":"+672"},{"name":"Northern Mariana Islands","code":"MP","phoneCode":"+1"},{"name":"North Korea","code":"KP","phoneCode":"+850"},{"name":"North Macedonia","code":"MK","phoneCode":"+389"},{"name":"Norway","code":"NO","phoneCode":"+47"},{"name":"Oman","code":"OM","phoneCode":"+968"},{"name":"Pakistan","code":"PK","phoneCode":"+92"},{"name":"Palau","code":"PW","phoneCode":"+680"},{"name":"Palestinian Territories","code":"PS","phoneCode":"+970"},{"name":"Panama","code":"PA","phoneCode":"+507"},{"name":"Papua New Guinea","code":"PG","phoneCode":"+675"},{"name":"Paraguay","code":"PY","phoneCode":"+595"},{"name":"Peru","code":"PE","phoneCode":"+51"},{"name":"Philippines","code":"PH","phoneCode":"+63"},{"name":"Poland","code":"PL","phoneCode":"+48"},{"name":"Portugal","code":"PT","phoneCode":"+351"},{"name":"Puerto Rico","code":"PR","phoneCode":"+1"},{"name":"Qatar","code":"QA","phoneCode":"+974"},{"name":"R\u00E9union","code":"RE","phoneCode":"+262"},{"name":"Romania","code":"RO","phoneCode":"+40"},{"name":"Russia","code":"RU","phoneCode":"+7"},{"name":"Rwanda","code":"RW","phoneCode":"+250"},{"name":"Samoa","code":"WS","phoneCode":"+685"},{"name":"San Marino","code":"SM","phoneCode":"+378"},{"name":"S\u00E3o Tom\u00E9 & Pr\u00EDncipe","code":"ST","phoneCode":"+239"},{"name":"Saudi Arabia","code":"SA","phoneCode":"+966"},{"name":"Senegal","code":"SN","phoneCode":"+221"},{"name":"Serbia","code":"RS","phoneCode":"+381"},{"name":"Seychelles","code":"SC","phoneCode":"+248"},{"name":"Sierra Leone","code":"SL","phoneCode":"+232"},{"name":"Singapore","code":"SG","phoneCode":"+65"},{"name":"Sint Maarten","code":"SX","phoneCode":"+1"},{"name":"Slovakia","code":"SK","phoneCode":"+421"},{"name":"Slovenia","code":"SI","phoneCode":"+386"},{"name":"Solomon Islands","code":"SB","phoneCode":"+677"},{"name":"Somalia","code":"SO","phoneCode":"+252"},{"name":"South Africa","code":"ZA","phoneCode":"+27"},{"name":"South Korea","code":"KR","phoneCode":"+82"},{"name":"South Sudan","code":"SS","phoneCode":"+211"},{"name":"Spain","code":"ES","phoneCode":"+34"},{"name":"Sri Lanka","code":"LK","phoneCode":"+94"},{"name":"St. Barth\u00E9lemy","code":"BL","phoneCode":"+590"},{"name":"St. Helena","code":"SH","phoneCode":"+290"},{"name":"St. Kitts & Nevis","code":"KN","phoneCode":"+1"},{"name":"St. Lucia","code":"LC","phoneCode":"+1"},{"name":"St. Martin","code":"MF","phoneCode":"+590"},{"name":"St. Pierre & Miquelon","code":"PM","phoneCode":"+508"},{"name":"St. Vincent & Grenadines","code":"VC","phoneCode":"+1"},{"name":"Sudan","code":"SD","phoneCode":"+249"},{"name":"Suriname","code":"SR","phoneCode":"+597"},{"name":"Svalbard & Jan Mayen","code":"SJ","phoneCode":"+47"},{"name":"Sweden","code":"SE","phoneCode":"+46"},{"name":"Switzerland","code":"CH","phoneCode":"+41"},{"name":"Syria","code":"SY","phoneCode":"+963"},{"name":"Taiwan","code":"TW","phoneCode":"+886"},{"name":"Tajikistan","code":"TJ","phoneCode":"+992"},{"name":"Tanzania","code":"TZ","phoneCode":"+255"},{"name":"Thailand","code":"TH","phoneCode":"+66"},{"name":"Timor-Leste","code":"TL","phoneCode":"+670"},{"name":"Togo","code":"TG","phoneCode":"+228"},{"name":"Tokelau","code":"TK","phoneCode":"+690"},{"name":"Tonga","code":"TO","phoneCode":"+676"},{"name":"Trinidad & Tobago","code":"TT","phoneCode":"+1"},{"name":"Tristan da Cunha","code":"TA","phoneCode":"+290"},{"name":"Tunisia","code":"TN","phoneCode":"+216"},{"name":"T\u00FCrkiye","code":"TR","phoneCode":"+90"},{"name":"Turkmenistan","code":"TM","phoneCode":"+993"},{"name":"Turks & Caicos Islands","code":"TC","phoneCode":"+1"},{"name":"Tuvalu","code":"TV","phoneCode":"+688"},{"name":"U.S. Virgin Islands","code":"VI","phoneCode":"+1"},{"name":"Uganda","code":"UG","phoneCode":"+256"},{"name":"Ukraine","code":"UA","phoneCode":"+380"},{"name":"United Arab Emirates","code":"AE","phoneCode":"+971"},{"name":"United Kingdom","code":"GB","phoneCode":"+44"},{"name":"United States","code":"US","phoneCode":"+1"},{"name":"Uruguay","code":"UY","phoneCode":"+598"},{"name":"Uzbekistan","code":"UZ","phoneCode":"+998"},{"name":"Vanuatu","code":"VU","phoneCode":"+678"},{"name":"Vatican City","code":"VA","phoneCode":"+39"},{"name":"Venezuela","code":"VE","phoneCode":"+58"},{"name":"Vietnam","code":"VN","phoneCode":"+84"},{"name":"Wallis & Futuna","code":"WF","phoneCode":"+681"},{"name":"Western Sahara","code":"EH","phoneCode":"+212"},{"name":"Yemen","code":"YE","phoneCode":"+967"},{"name":"Zambia","code":"ZM","phoneCode":"+260"},{"name":"Zimbabwe","code":"ZW","phoneCode":"+263"}],"initialAddressFormat":{"id":0,"type":"ADDRESS","country":"US","labelLocale":"en","fields":[{"type":"FIELD","label":"Address Line 1","identifier":"Line1","length":0,"required":true,"metadata":{"autocomplete":"address-line1"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"Address Line 2","identifier":"Line2","length":0,"required":false,"metadata":{"autocomplete":"address-line2"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"City","identifier":"City","length":0,"required":true,"metadata":{"autocomplete":"address-level2"}},{"type":"SEPARATOR","label":",","identifier":"Comma","length":0,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"State","identifier":"State","length":0,"required":true,"metadata":{"autocomplete":"address-level1"}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"ZIP Code","identifier":"Zip","length":0,"required":true,"metadata":{"autocomplete":"postal-code"}}]}},"localizedStrings":{"validation":{"noValidSelection":"A valid selection must be made.","invalidUrl":"Must be a valid URL.","stringTooLong":"Value should have a length no longer than {0}.","containsInvalidKey":"{0} contains an invalid key.","invalidTwitterUsername":"Must be a valid Twitter username.","valueOutsideRange":"Value must be in the range {0} to {1}.","invalidPassword":"Passwords should not contain whitespace.","missingRequiredSubfields":"{0} is missing required subfields: {1}","invalidCurrency":"Currency value should be formatted like 1234 or 123.99.","invalidMapSize":"Value should contain exactly {0} elements.","subfieldsRequired":"All fields in {0} are required.","formSubmissionFailed":"Form submission failed. Review the following information: {0}.","invalidCountryCode":"Country code should have an optional plus and up to 4 digits.","invalidDate":"This is not a real date.","required":"{0} is required.","invalidStringLength":"Value should be {0} characters long.","invalidEmail":"Email addresses should follow the format user@domain.com.","invalidListLength":"Value should be {0} elements long.","allEmpty":"Please fill out at least one form field.","missingRequiredQuestion":"Missing a required question.","invalidQuestion":"Contained an invalid question.","captchaFailure":"Captcha validation failed. Please try again.","stringTooShort":"Value should have a length of at least {0}.","invalid":"{0} is not valid.","formErrors":"Form Errors","containsInvalidValue":"{0} contains an invalid value.","invalidUnsignedNumber":"Numbers must contain only digits and no other characters.","invalidName":"Valid names contain only letters, numbers, spaces, ', or - characters."},"submit":"Submit","status":{"title":"{@} Block","learnMore":"Learn more"},"name":{"firstName":"First Name","lastName":"Last Name"},"lightbox":{"openForm":"Open Form"},"likert":{"agree":"Agree","stronglyDisagree":"Strongly Disagree","disagree":"Disagree","stronglyAgree":"Strongly Agree","neutral":"Neutral"},"time":{"am":"AM","second":"Second","pm":"PM","minute":"Minute","amPm":"AM/PM","hour":"Hour"},"notFound":"Form not found.","date":{"yyyy":"YYYY","year":"Year","mm":"MM","day":"Day","month":"Month","dd":"DD"},"phone":{"country":"Country","number":"Number","prefix":"Prefix","areaCode":"Area Code","line":"Line"},"submitError":"Unable to submit form. Please try again later.","address":{"stateProvince":"State/Province","country":"Country","zipPostalCode":"Zip/Postal Code","address2":"Address 2","address1":"Address 1","city":"City"},"email":{"signUp":"Sign up for news and updates"},"required":"(required)","invalidData":"Invalid form data."}}};</script><script type="text/javascript">SQUARESPACE_ROLLUPS = {};</script>
|
||
<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-51e4c647fcd6492e-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-visitor_site_error_reporter');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-51e4c647fcd6492e-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-a4332a63120beb09-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_runtime');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-a4332a63120beb09-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_moment_js_vendor');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-cldr_resource_pack');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors_stable');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-b318b15483dd810a-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-b318b15483dd810a-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-1f548bccd2e8d69c-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-1f548bccd2e8d69c-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/commerce-cd85e6ecc41abac7-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-commerce');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/commerce-cd85e6ecc41abac7-min.en-US.js" defer ></script><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].css = ["//assets.squarespace.com/universal/styles-compressed/commerce-d50e5960dc9fd059-min.en-US.css"]; })(SQUARESPACE_ROLLUPS, 'squarespace-commerce');</script>
|
||
<link rel="stylesheet" type="text/css" href="//assets.squarespace.com/universal/styles-compressed/commerce-d50e5960dc9fd059-min.en-US.css"><script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/performance-250bbc5f8404d61f-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-performance');</script>
|
||
<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/performance-250bbc5f8404d61f-min.en-US.js" defer ></script><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"/><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/18018.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-manager.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autocolumns.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/embed-video-player.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-carousel.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-stacked.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-strip.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/43528.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autogrid.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.visitor.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-grid.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-list.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.visitor.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"></script><script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-slideshow.js"></script><script type="module">Squarespace.load(window);</script>
|
||
<script data-sqs-type="imageloader-bootstrapper" type="module">if(window.ImageLoader) window.ImageLoader.bootstrap({}, document);</script>
|
||
<script type="module">Squarespace.afterBodyLoad(Y);</script>
|
||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="https://www.noidea.dog/blog?format=rss" />
|
||
<script type="application/ld+json">{"url":"https://www.noidea.dog","name":"No Idea Blog","description":"","@context":"http://schema.org","@type":"WebSite"}</script><script type="application/ld+json">{"openingHours":"","@context":"http://schema.org","@type":"LocalBusiness"}</script><script type="application/ld+json">{"name":"Conference Report: SRECon Americas 2019 \u2014 No Idea Blog","url":"https://www.noidea.dog/blog/srecon-americas-2019","datePublished":"2019-04-01T20:11:12-0400","dateModified":"2019-04-02T21:54:24-0400","headline":"Conference Report: SRECon Americas 2019","author":"Tanya Reilly","publisher":{"name":"No Idea Blog","logo":{"@type":"ImageObject"},"@context":"http://schema.org","@type":"Organization"},"image":"http://static1.squarespace.com/static/5a05ececd55b4165f250f032/5a77a36ef9619a31bd5b1fd2/5c9911ba419202198ce91978/1554256464579/Screen+Shot+2019-03-30+at+11.16.59+PM.png?format=1500w","@context":"http://schema.org","@type":"Article"}</script><link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/sitecss/5a05ececd55b4165f250f032/160/4fd11f32c4aad9b01c9e624c/5cbe0beae79c70bc6bff45e5/1363/site.css?nocustom=true"/><script>Static.COOKIE_BANNER_CAPABLE = true;</script>
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-89340221-1"></script><script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('set', 'developer_id.dZjQwMz', true);gtag('config', 'UA-89340221-1');</script><!-- End of Squarespace Headers -->
|
||
</head>
|
||
|
||
<body class="blog-sidebar-display-auto index-thumb-title-position-below index-item-layout-auto thumbnail-layout-basic-grid thumbnails-on-open-page-show-all layout-style-left page-borders-none underline-body-links gallery-page-controls-tiny-thumbnails social-icon-style-normal show-category-navigation event-show-past-events event-thumbnails event-thumbnail-size-32-standard event-date-label event-list-show-cats event-list-date event-list-time event-list-address event-icalgcal-links event-excerpts event-item-back-link product-list-titles-under product-list-alignment-center product-item-size-11-square product-image-auto-crop product-gallery-size-11-square show-product-price show-product-item-nav product-social-sharing tweak-v1-related-products-image-aspect-ratio-11-square tweak-v1-related-products-details-alignment-center newsletter-style-dark hide-opentable-icons opentable-style-dark small-button-style-solid small-button-shape-square medium-button-style-solid medium-button-shape-square large-button-style-solid large-button-shape-square image-block-poster-text-alignment-center image-block-card-dynamic-font-sizing image-block-card-content-position-center image-block-card-text-alignment-left image-block-overlap-dynamic-font-sizing image-block-overlap-content-position-center image-block-overlap-text-alignment-left image-block-collage-dynamic-font-sizing image-block-collage-content-position-top image-block-collage-text-alignment-left image-block-stack-dynamic-font-sizing image-block-stack-text-alignment-left button-style-solid button-corner-style-square tweak-product-quick-view-button-style-floating tweak-product-quick-view-button-position-bottom tweak-product-quick-view-lightbox-excerpt-display-truncate tweak-product-quick-view-lightbox-show-arrows tweak-product-quick-view-lightbox-show-close-button tweak-product-quick-view-lightbox-controls-weight-light native-currency-code-usd collection-5a77a36ef9619a31bd5b1fd2 view-item collection-type-blog collection-layout-default mobile-style-available site-title has-primary-nav" id="item-5c9911ba419202198ce91978">
|
||
|
||
<div id="canvas">
|
||
|
||
|
||
<div id="mobileNav" class="">
|
||
<div id="mobileNavWrapper" class="wrapper">
|
||
<nav class="main-nav mobileNav">
|
||
<ul>
|
||
|
||
|
||
|
||
<li class="index-collection">
|
||
|
||
<a href="/">Projects</a>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class=" external-link">
|
||
|
||
|
||
<a href="https://noidea.dog/staff">Book</a>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class=" external-link">
|
||
|
||
|
||
<a href="/blog">Tech blog</a>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class=" external-link">
|
||
|
||
|
||
<a href="https://noidea.dog/tipperary">nature/farm blog</a>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
<a href="/talks">Talks</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
<a href="/about">About</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
<a href="/contact">Contact</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
<div id="mobileMenuLink"><a>Menu</a></div>
|
||
|
||
|
||
|
||
<header id="header">
|
||
<div id="logo" data-content-field="site-title">
|
||
|
||
<h1 class="logo"><a href="/">No Idea Blog</a></h1>
|
||
|
||
|
||
</div>
|
||
<script type="module">
|
||
Y.use('squarespace-ui-base', function(Y) {
|
||
Y.all("#header .logo, #header .logo-subtitle").each(function (text) {
|
||
text.plug(Y.Squarespace.TextShrink, {
|
||
parentEl: Y.one('#header'),
|
||
triggerWidth: 750
|
||
});
|
||
});
|
||
});
|
||
|
||
// Show spinner on page load if loading bookmarked url
|
||
if (window.location.hash && window.location.hash !== '#') {
|
||
document.querySelector('body').className += ' index-loading';
|
||
}
|
||
</script>
|
||
<div id="topNav" data-content-field="navigation">
|
||
<nav class="main-nav">
|
||
<ul>
|
||
|
||
|
||
|
||
<li class="index-collection">
|
||
|
||
|
||
|
||
<a href="/">Projects</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://noidea.dog/staff">Book</a>
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="/blog">Tech blog</a>
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://noidea.dog/tipperary">nature/farm blog</a>
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
|
||
|
||
|
||
<a href="/talks">Talks</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
|
||
|
||
|
||
<a href="/about">About</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li class="page-collection">
|
||
|
||
|
||
|
||
|
||
<a href="/contact">Contact</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
|
||
</header>
|
||
|
||
<div class="page-divider"></div>
|
||
|
||
<div class="extra-wrapper page-header">
|
||
<div class="sqs-layout sqs-grid-12 columns-12 empty" data-layout-label="Header Content: Blog" data-type="block-field" data-updated-on="1688375686910" id="page-header-5a77a36ef9619a31bd5b1fd2"><div class="row sqs-row"><div class="col sqs-col-12 span-12"></div></div></div>
|
||
</div>
|
||
|
||
<section id="page" role="main" data-content-field="main-content">
|
||
<!-- CATEGORY NAV -->
|
||
|
||
<div class="article-wrapper">
|
||
|
||
|
||
|
||
<article class="hentry promoted promoted-block-image category-trip-report tag-conferences tag-srecon tag-systems-engineering author-tanya-reilly post-type-text" id="article-5c9911ba419202198ce91978" data-item-id="5c9911ba419202198ce91978">
|
||
|
||
<!--SPECIAL CONTENT-->
|
||
|
||
|
||
<div class="special-content"><div class="sqs-layout sqs-grid-12 columns-12" data-layout-label="Promoted Block" data-type="promoted-block" id="promoted-block-5c9911ba419202198ce91978"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block image-block sqs-block-image" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553921486399_46311"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:34.92000198364258%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg" data-image-dimensions="2500x873" data-image-focal-point="0.5,0.5" alt="Psychological safety leads to faster incident response. From Logan McDonald’s SRECon talk, “Optimizing for Learning”." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg" width="2500" height="873" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554143456634-U5473SVNMDJXKJYYP14Z/IMG_20190327_092406.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Psychological safety leads to faster incident response. From Logan McDonald’s SRECon talk, “<strong>Optimizing for Learning”.</strong></p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div></div></div></div></div>
|
||
|
||
|
||
|
||
<!--POST HEADER-->
|
||
|
||
<header>
|
||
<h1 class="entry-title">
|
||
|
||
<a href="/blog/srecon-americas-2019" data-content-field="title">Conference Report: SRECon Americas 2019</a>
|
||
|
||
</h1>
|
||
<div class="meta">
|
||
<span class="date"><time class="published" datetime="2019-04-01">April 1, 2019</time></span>
|
||
</div>
|
||
</header>
|
||
|
||
<!--POST BODY-->
|
||
|
||
|
||
<div class="body entry-content"><div class="sqs-layout sqs-grid-12 columns-12" data-layout-label="Post Body" data-type="item" data-updated-on="1553562407201" id="item-5c9911ba419202198ce91978"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-embed embed-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"]" data-block-type="1337" data-definition-name="website.components.embed" data-sqsp-block="embed" data-website-component-id="yui_3_17_2_1_1554002380149_28581" id="block-yui_3_17_2_1_1554002380149_28581"><div class="sqs-block-content">
|
||
|
||
|
||
<div
|
||
class="sqs-embed-container"
|
||
data-localized="{"embedInvalid":"Enter a valid embed URL or code.","embedTitle":"Embed Block","embedUninitialized":"Add an embed URL or code.","enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","invalidThumbnail":"Custom featured images only available with embedded videos. Go back into embed settings to turn off featured images.","invalidVideo":"Invalid video embed.","playButton":"Play","scriptDisabled":"Script Disabled"}"
|
||
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">WHAAAAAAAAAAAT. Yes please.</p>— Tanya Reilly (@whereistanya) <a href="https://twitter.com/whereistanya/status/969076316476715008?ref_src=twsrc%5Etfw">March 1, 2018</a></blockquote>
|
||
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-b270d7e674049751f786"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">SRECon was in Brooklyn this year for the first time, and it sold out <strong>fast</strong>. Watch and learn, industry. Brooklyn is where it’s at! </p><p style="white-space:pre-wrap;">This was my first time on the program committee, and I enjoyed that a lot. I’ve been doing a personal retrospective on what we ended up picking, re-reading my reviews of abstracts and comparing them to the talks I saw. Being on a program committee gives you a fascinating look at the inside of a conference and a chance to <em>very</em> slightly influence what the industry is talking about. It was a lot of work, but worth the time and I’d do it again.</p><p style="white-space:pre-wrap;">I’ve noted in other years how ideas have suddenly appeared across a lot of talks at a conference at once. I remember the year at LISA where everyone suddenly believed in centralized config management (newer people in the industry: you would be horrified at how we used to do it), the year we got to the acceptance phase of the IPv6 stages of grief, the year containerization happened for real, and so on.</p><p style="white-space:pre-wrap;">This year’s emergent topic was Safety-II, the idea (from medical research) that we should study the everyday performance of complex systems, not just the failures. Safety-II emphasises human flexibility and innovation as part of a resilient system, discarding the idea that the squishy meat component of the machine is the one most likely to break.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-quote quote-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.visitor.js"]" data-block-type="1337" data-definition-name="website.components.quote" data-sqsp-block="quote" data-website-component-id="yui_3_17_2_1_1553973876633_79009" id="block-yui_3_17_2_1_1553973876633_79009"><div class="sqs-block-content">
|
||
|
||
|
||
<figure class="sqs-quote-block-contents block-animation-none">
|
||
<blockquote data-animation-role="quote"
|
||
>
|
||
<span>“</span>Yet the way ahead lies not in a replacement of Safety-I by Safety-II, but rather in a combination of the two ways of thinking. It is still the case that the majority of adverse events are relatively simple—or can be treated as relatively simple without serious consequences—and that they therefore can be dealt with in ways that are familiar. But there is a growing number of cases where this approach will not work. <span>”</span>
|
||
</blockquote>
|
||
<figcaption class="source">— From Safety-I to Safety-II: A White Paper. Professor Erik Hollnagel, Professor Robert L Wears, Professor Jeffrey Braithwaite</figcaption>
|
||
|
||
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
<style id="container-styles">#block-yui_3_17_2_1_1553973876633_79009 {
|
||
|
||
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1553973876633_79009 {
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1553973876633_79009 {
|
||
mix-blend-mode: var(--tweak-quote-block-blend);
|
||
border-radius: var(--tweak-quote-block-radius);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</style>
|
||
|
||
<style id="override-container-styles">
|
||
@media screen and (max-width: 767px) {
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1553973876633_79009 {
|
||
|
||
}
|
||
}
|
||
|
||
|
||
@media screen and (max-width: 767px) {
|
||
#block-yui_3_17_2_1_1553973876633_79009 {
|
||
|
||
}
|
||
}
|
||
|
||
@media screen and (max-width: 767px) {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}</style>
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_94328"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">I read the “<a href="https://www.england.nhs.uk/signuptosafety/wp-content/uploads/sites/16/2015/10/safety-1-safety-2-whte-papr.pdf" target="_blank">From Safety-I to Safety-II”</a> paper this weekend. It’s both interesting and approachable and there’s a ton we can learn from it. I would note though that the paper says that Safety-II comes<em> in addition to</em> Safety-I; the old approach is still fine for a lot of situations.</p><p style="white-space:pre-wrap;">By contrast, the several talks that mentioned Safety-II really concentrated on discarding existing practices, in some cases taking extreme positions: don’t do post-mortem action items, don’t use error budgets, don’t dig into failures, don’t measure availability. Without concrete alternatives, it felt a little unsatisfying, and I think it landed badly with an SRE crowd. The backchannel conversations were skeptical to say the least.</p><p style="white-space:pre-wrap;">My read is that this has been covered in more depth in chaos engineering conferences, so the ideas were assumed to stand alone, the nuance assumed to be implied. And, as <a href="https://twitter.com/nycdubliner" target="_blank">Tiarnan</a> pointed out afterwards, “‘Actually it's more complicated than that’ doesn't make for an inspirational slide.” </p><p style="white-space:pre-wrap;">Now that I understand the topic better, I’m wishing that we’d had a a deep and nuanced treatment of it at SRECon. I’d suggest that near-future SRECons and LISAs and so on take a step back and tell this story from the start (perhaps inviting an outside expert), as well as emphasising practical ways to apply the philosophy to running software in production. We shouldn’t just talk about which parts of established SRE doctrine we need to discard (though we should talk about that!), but we should bring suggestions for what to do instead. The paper, for example, proposes scheduling time to study systems that are working normally. I’m not sure what this means for us — what form should the study take? — and I’m looking forward to reading more about that.</p><p style="white-space:pre-wrap;">Other observations: SRECon has always emphasised the human side of reliability and I appreciated the focus on learning and teaching, psychological safety and avoiding burnout. Other highlights included <a href="http://twitter.com/deniseyu21" target="_blank">Denise Yu</a>’s gorgeous sketchnotes (see some of them inline (with permission!)), having lunch with the lovely Etsy delegation, and many good hallway track conversations. Yelp’s <a href="http://dorothyjung.com/oncall-game/" target="_blank">on call game</a> got some well-deserved love on Twitter; I think it was referenced in Chie Shu, Dorothy Jung, and Wenting Wang’s workshop “<a href="https://www.usenix.org/conference/srecon19americas/presentation/shu" target="_blank">What I Wish I Knew before Going On-call</a>”, which I didn’t see but heard good things about. </p><p style="white-space:pre-wrap;">As always my greatest difficulty with SRECon is that a hundred people I know and like are in one place for three days, so I don’t get time to catch up with everyone I want to. A pretty good problem to have, all things considered :-) </p><p style="white-space:pre-wrap;">I had other stuff I needed to do this week and missed some sessions (including all day Tuesday) but here’s what I saw and liked. If I misrepresented anything, or if you know extra livetweets or slides I could link, please let me know (mail heytanyafixyourblog@noidea.dog or leave a comment here) and I'll fix it.</p><h1 style="white-space:pre-wrap;"><strong>What Breaks Our Systems: A Taxonomy of Black Swans, Laura Nolan, Slack.</strong></h1><p style="white-space:pre-wrap;">Black swans are outlier events that are hard to predict and very severe. A black swan event can blow your error budget for a decade. Laura introduced six types of black swan outages, illustrating each with true stories of industry outages. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553520492984_35336"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:1842px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button
|
||
data-sqsp-image-classic-block-lightbox-button
|
||
class="
|
||
sqs-block-image-button
|
||
lightbox
|
||
|
||
|
||
|
||
"
|
||
data-description="<p>Preparing for scary things can make them kind of cute and fluffy.</p>"
|
||
data-lightbox-theme="dark"
|
||
>
|
||
<span class="v6-visually-hidden">View fullsize</span>
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:57.654720306396484%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg" data-image-dimensions="1842x1062" data-image-focal-point="0.5,0.5" alt="Preparing for scary things can make them kind of cute and fluffy." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg" width="1842" height="1062" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553562541529-8451GVSAZG9L10U53SF6/IMG_20190325_085945.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Preparing for scary things can make them kind of cute and fluffy.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553520492984_39615"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<ul data-rte-list="default"><li><p style="white-space:pre-wrap;">Unexpected physical or logical <strong>limits</strong>, like the <a href="https://medium.com/making-instapaper/instapaper-outage-cause-recovery-3c32a7e9cc5f" target="_blank">filesystem limit that took down Instapaper</a> or the day <a href="https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres.html" target="_blank">Sentry ran out of Postgres transaction IDs</a>. We can defend against them with load and capacity testing, and by adding monitoring for limits we know about.</p></li><li><p style="white-space:pre-wrap;"><strong>Spreading slowness</strong>, e.g., the <a href="https://www.hostedgraphite.com/blog/spooky-action-at-a-distance-how-an-aws-outage-ate-our-load-balancer" target="_blank">amazing Hosted Graphite outage</a> where AWS connectivity issues took them down even though they don't use AWS. Failing fast and limiting retries can add resilience.</p></li><li><p style="white-space:pre-wrap;"><strong>Thundering herds</strong> and coordinated demand, like <a href="https://circleci.statuspage.io/incidents/hr0mm9xmm3x6" target="_blank">CircleCI’s surge</a> after a GitHub outage ended. We should plan for this kind of traffic and test it.</p></li><li><p style="white-space:pre-wrap;">The kind of <strong>automation interactions</strong> which make complex systems even more complex. Google sending its CDN to be disk-erased is a famous example. There should be constraints to limit what the automation can do, and it should be easy to disable it completely. [ed: <a href="https://noidea.dog/blog/srecon-americas-2018-day-2?rq=schulman" target="_blank">Christina Schulman and Etienne Perot</a> had a great talk about this at SRECon Americas 2018!]</p></li><li><p style="white-space:pre-wrap;"><strong>Cyberattacks</strong>, like the malware that disabled the Maersk shipping company and cost billions in its effect on global shipping. Restricting how much systems trust each other, like Google’s <a href="https://cloud.google.com/beyondcorp/" target="_blank">Beyond Corp</a>, can reduce the blast radius here.</p></li><li><p style="white-space:pre-wrap;">Finally, <strong>dependencies</strong> can cause outages, as <a href="https://tech.trello.com/aws-outage-post-mortem/" target="_blank">Trello found out</a> when their servers refused to start without a component they didn’t actually need. Circular dependencies are particularly bad as they can lock you out of your systems. Laura recommended dependency management and layering (and I will <a href="https://noidea.dog/#/have-you-tried-turning-it-off-and-turning-it-on-again/" target="_blank">hubristically link to my own work on this topic</a> :-)) as well as making sure that communication during incidents won’t depend on services the incident might take down.</p></li></ul><p style="white-space:pre-wrap;">Other ways we can defend against black swan events include using formal incident management, practicing how we communicate during outages, and being alert to human psychology: we recover faster if oncallers can easily get help and escalate, and if they’re getting enough rest. </p><p style="white-space:pre-wrap;">I’d read the slides for this talk before, and seen the rave reviews for it, so it was excellent to see it firsthand and discover that it’s as good as promised. I love how it respectfully examines other people’s outages and pulls out broad lessons we can all learn from. </p><p style="white-space:pre-wrap;"><br><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/nolan-taxonomy" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/nolan-taxonomy</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_nolan.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_nolan.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/lizthegrey/status/1110163951441059840" target="_blank">https://twitter.com/lizthegrey/status/1110163951441059840</a> , <a href="https://twitter.com/msuriar/status/1110163767936061440" target="_blank">https://twitter.com/msuriar/status/1110163767936061440</a> <br><strong>Laura recommends:</strong> <a href="http://shop.oreilly.com/product/9780978739218.do" target="_blank">Release It! by Michael T. Nygard</a>.<br><strong>Article</strong>: <a href="https://opensource.com/article/18/10/taxonomy-black-swans" target="_blank">https://opensource.com/article/18/10/taxonomy-black-swans</a><br><strong>Follow:</strong> <a href="https://twitter.com/lauralifts" target="_blank">@lauralifts</a></p><h1 style="white-space:pre-wrap;"><strong>Complexity: The Crucial Ingredient in Your Kitchen. Casey Rosenthal, Verica.io.</strong></h1><p style="white-space:pre-wrap;">Why is software all about disruption? Why are we drawn to burning things to the ground to change them? Because we know at some gut level that the current system is wrong.</p><p style="white-space:pre-wrap;">A complex system is one where no single human can understand how all the parts fit together, or how a change made in one place will affect another. Even if every human involved in building a system makes sensible local decisions, you can still end up with an unreliable system.</p><p style="white-space:pre-wrap;">A common approach to reliability is "add redundancy". But the Challenger disaster showed us that the redundancy (plus some normalisation of deviance) just made people feel more comfortable taking risks. The redundancy <em>contributed</em> to the disaster. A study on squirrels showed that groups of squirrels who crossed <em>more</em> streets were actually <em>less</em> likely to be hit by cars. Avoiding risk backfires. Exposure to risk is necessary for learning to remediate risk. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-left" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553909927526_104013"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Accidental complexity builds over time and this looks like the wiring in every Brooklyn back yard." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914292798-Z7V3237HL13VC8X19HMV/IMG_20190325_094503.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Accidental complexity builds over time and this looks like the wiring in every Brooklyn back yard.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553909927526_109699"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">Another approach is to aim for simplicity. But complexity is inevitable. <strong>Accidental complexity</strong> keeps accumulating. While you can stop what you're doing and clean it up, there's no sustainable mechanism to keep it under control. And <strong>essential complexity</strong> grows with the requirements of the problem that needs to be solved. For example, high availability means extra components. We have to learn to navigate complexity. </p><p style="white-space:pre-wrap;">Safety researcher Jens Rasmussen’s wrote that <a href="https://risk-engineering.org/concept/Rasmussen-practical-drift" target="_blank">systems are subject to competing priorities</a>: operations must be profitable, workers must be safe, and workers must have manageable workloads. We have an intuitive sense of economics and workloads, but our outages show that we don't have an intuitive sense of safety limits. <a href="http://principlesofchaos.org/" target="_blank">Chaos engineering</a> experiments can help us find those limits and teach us about the weaknesses in our systems.</p><p style="white-space:pre-wrap;">We have four configurable "Economic Pillars of Complexity: states, relationships, environment and reversibility. We should limit the number of possible states and configurations, and prefer reversible decisions.</p><p style="white-space:pre-wrap;">With this many factors and this much change, we need to be able to improvise. It’s the “kitchen model of organisation”: in a well run kitchen, everyone operates independently, but they’re working towards a shared goal. Everyone should know where they’re going and how much they can improvise.</p><p style="white-space:pre-wrap;">Takeaways: embrace and navigate complexity, provide opportunities for teams to practice working together, optimise for reversibility, communicate the safety margin. I also took away that more talks should be illustrated with pictures of squirrels driving cars. Get on that, everyone.</p><p style="white-space:pre-wrap;">Shoutout to the person in the audience who asked why Casey had an infinity gauntlet on his arm. “Why don’t you have one?” was the profound response. (We LOLed.)<br></p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/rosenthal" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/rosenthal</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_rosenthal.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_rosenthal.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/msuriar/status/1110173241006530562" target="_blank">https://twitter.com/msuriar/status/1110173241006530562</a>, <a href="https://twitter.com/lizthegrey/status/1110171987152945152" target="_blank">https://twitter.com/lizthegrey/status/1110171987152945152</a><br><strong>Follow:</strong> <a href="https://twitter.com/caseyrosenthal" target="_blank">@CaseyRosenthal</a><br><strong>Read:</strong> <a href="https://www.oreilly.com/ideas/chaos-engineering" target="_blank">https://www.oreilly.com/ideas/chaos-engineering </a></p><h1 style="white-space:pre-wrap;"><strong>Case Study: Implementing SLOs for a New Service. Arnaud Lawson, Squarespace.</strong></h1><p style="white-space:pre-wrap;">Service Level Objectives are the performance and reliability targets for a service over time. Service Level Indicators are the metrics we use to decide whether we’re meeting our SLO. Arnaud presented a case study of choosing SLIs and SLOs for his service, Ceph Object Store.</p><ul data-rte-list="default"><li><p style="white-space:pre-wrap;"><strong>Determine which SLI types would capture user experience.</strong> Ceph is a request-driven HTTP Server with a storage backend. The HTTP server needs availability and latency SLIs. The storage backend needs durability SLIs. </p></li><li><p style="white-space:pre-wrap;"><strong>Define the SLIs.</strong> Be clear about what you’re measuring. For example, the availability SLI is “the percentage of HTTP requests that don’t fail.”</p></li><li><p style="white-space:pre-wrap;"><strong>Choose how to measure them.</strong> They collected SLIs from load balancer logs, added instrumentation to client programs, and deployed probers to measure user actions.</p></li><li><p style="white-space:pre-wrap;"><strong>Collect SLIs for a few weeks to get a performance baseline and use this to set SLOs.</strong> They collected success metrics and latency metrics for four weeks and based their SLO on them. A sample availability SLO: “99.9% of requests will complete successfully over 4 weeks”. A sample latency SLO: “90% of requests will complete successfully in < 300ms over 4 weeks.”</p></li><li><p style="white-space:pre-wrap;"><strong>Infer error budgets. </strong>This is the amount of headroom there is above an SLO. For example, 99.9% availability means that 0.1% of requests can fail. </p></li><li><p style="white-space:pre-wrap;"><strong>Publish the SLOs</strong>. Arnaud wrote documentation about the types of SLIs being measured, and what the SLOs were, including a rationale for why they were chosen.</p></li></ul>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553909927526_125484"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:30.759998321533203%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg" data-image-dimensions="2500x769" data-image-focal-point="0.5,0.5" alt="Don’t strive for 100% reliability, understand your system, understand how users interact with it, collect SLIs that actually matter to users, use SLO results to prioritise the work." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg" width="2500" height="769" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914599409-JA8P31P6HPGNJIZA19PO/IMG_20190325_105213.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Don’t strive for 100% reliability, understand your system, understand how users interact with it, collect SLIs that actually matter to users, use SLO results to prioritise the work.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553909927526_122915"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">SLIs inform decisions for prioritisation, capacity planning, etc, and can also identify service issues. SLOs also help users make decisions about whether the service fits their use case. Collect SLIs that matter to users and never strive for 100% availability.</p><p style="white-space:pre-wrap;">Arnaud is my colleague so I’m biased, but I thought this was a great treatment of the subject, with actionable steps to take. I also appreciated the message that the ultimate goal of SLOs is to make your users happy. It’s easy to forget that when we’re deep in the implementation mines.</p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/lawson" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/lawson</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides__lawson.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides__lawson.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/tammybutow/status/1110188600161959936" target="_blank">https://twitter.com/tammybutow/status/1110188600161959936</a><br><strong>Follow:</strong> <a href="https://twitter.com/arnolawson">@arnolawson</a></p><h1 style="white-space:pre-wrap;"><strong>Fixing On-Call When Nobody Thinks It's (Too) Broken. Tony Lykke, Hudson River Trading</strong></h1><p style="white-space:pre-wrap;">When Tony started at Hudson River Trading, they received hundreds of pages every week. He tried to convince coworkers that they didn’t have to live like this, but received everything from “it’s not realistic to reduce noise unless you’re Google” to “look, it’s better than it used to be”. Here’s the nine step plan that worked for him:</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553909927526_152032"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:58.15999984741211%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg" data-image-dimensions="2500x1454" data-image-focal-point="0.5,0.5" alt="51,908 alerts nbd." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg" width="2500" height="1454" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553914833425-F2LJFR4TG5KHLC73FC5Q/image-asset.jpeg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>51,908 alerts nbd.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553909927526_157526"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;"><strong>1. understand your audience.</strong> Respect that people here consider alerts to mean “things are working”. Accept that nobody else believes there’s a problem.</p><p style="white-space:pre-wrap;"><strong>2. understand the problem.</strong> Create visualizations to show the number of pages. He discovered there was always a spike in alerts caused by data consolidation just after the markets closed. </p><p style="white-space:pre-wrap;"><strong>3. understand the system.</strong> They’re running Nagios 3, last released in 2012, with 200k lines of (often stale) configs. It’s deployed manually (and tediously) via rsync.</p><p style="white-space:pre-wrap;"><strong>4. devise a game plan.</strong> It doesn’t have to be comprehensive, but you need some project management and some good communication. Focus on low risk/high impact changes first. </p><p style="white-space:pre-wrap;"><strong>5. get permission.</strong> Or forgiveness, if you have that kind of position in your organisation. Use the data you collected to convince people. Know how much time you can spend on this before getting in trouble. You will inevitably break something, so communicate a lot and in particular make sure oncallers are aware. </p><p style="white-space:pre-wrap;"><strong>6. lay the groundwork.</strong> Make it trivial to add/change configs. This is not an immediate impact on the thing you want to change, but it’s necessary. He replaced 15k duplicate lines with templates. He added automated build and deploy.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-left" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553916323441_233160"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:62.31999969482422%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg" data-image-dimensions="2500x1558" data-image-focal-point="0.5,0.5" alt="#7: you silence some alerts and are ready to be hailed as a hero but… “what did you do, Ray?!” (This cracked me up.)" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg" width="2500" height="1558" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553971288285-YXBU8FV1YZVNP8283756/IMG_20190325_113031.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>#7: you silence some alerts and are ready to be hailed as a hero but… “what did you do, Ray?!” (This cracked me up.)</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553916323441_240466"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;"><strong>7. choose the lowest hanging fruit.</strong> Visualizations help choose high impact changes, but also look for low risk ones. For them, the first step was silencing a set of alerts which were always ignored. This should have felt like a huge win but people were anxious so…</p><p style="white-space:pre-wrap;"><strong>8. communicate more!</strong> Silence made people uncomfortable: they worried that the monitoring stack was broken. He redirected alerts to a slack channel to mitigate silence anxiety.</p><p style="white-space:pre-wrap;"><strong>9. goto 7.</strong> Find another low hanging fruit and go again!<br><br>This was a funny and relatable story full of good advice. Kudos to Tony for pushing through everyone’s complete lack of belief in his project and making it work.</p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/lykke" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/lykke</a><br><strong>Slides: </strong><a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_lykke.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_lykke.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/tammybutow/status/1110194448472989697" target="_blank">https://twitter.com/tammybutow/status/1110194448472989697</a></p><h1 style="white-space:pre-wrap;"><strong>Lessons Learned in Black Box Monitoring 25,000 Endpoints and Proving the SRE Team's Value. Aaron Wieczorek, United States Digital Service</strong></h1><p style="white-space:pre-wrap;">The US Digital Service started in 2014 when President Obama called in engineers and designers to fix healthcare.gov. They’re a small agency (less than 200 people), and agile enough to step in while a crisis is still happening. A recent example is restoring service to <a href="https://airnow.gov" target="_blank">https://airnow.gov</a> during the California wildfires. But they often find out about these outages from Twitter or the Wall Street Journal. </p><p style="white-space:pre-wrap;">They wanted to deploy monitoring to get ahead of the problem. But there are 26,049 .gov and .mil services, so monitoring’s not trivial.</p><p style="white-space:pre-wrap;">They created a minimal product using Python scripts, then expanded it using existing software: Prometheus, HAProxy, Alertmanager, InfluxDB, Grafana, Prometheus Blackbox Exporter. Alerts went to a Slack channel.</p><p style="white-space:pre-wrap;">Tuning Prometheus is harder when you have more than 20k endpoints. Expensive queries took down Prometheus. AWS contacted them to say they were scraping too aggressively from EC2. They moved to an AWS Lambda solution.</p><p style="white-space:pre-wrap;">Now charts show service uptime and allow them to react quickly.</p><p style="white-space:pre-wrap;">Lessons learned: </p><ul data-rte-list="default"><li><p style="white-space:pre-wrap;">Proactive monitoring allows immediate incident response and allows you to train teams.</p></li><li><p style="white-space:pre-wrap;">Dashboards with this many endpoints are hard: you can crash your browser. Instead alerting should guide you to more specific dashboards.</p></li><li><p style="white-space:pre-wrap;">Tuning Prometheus with this many services involves a lot of guessing. </p></li><li><p style="white-space:pre-wrap;">Be nice to the services you're trying to help; don’t accidentally be an abusive user.</p></li></ul><p style="white-space:pre-wrap;">USDS stories are always a mix of “wow” and “haha oh god” and this was no exception :-) Thank you for the work you do, USDS folks!</p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/wieczorek" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/wieczorek</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_wieczorek.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_wieczorek.pdf</a><br><strong>Livetweets</strong>: <a href="https://twitter.com/tammybutow/status/1110206658276478976" target="_blank">https://twitter.com/tammybutow/status/1110206658276478976</a><br><strong>Follow</strong>: <a href="https://twitter.com/_a12k">@_a12k</a> <br><strong>Apply: </strong><a href="https://www.usds.gov/apply" target="_blank">https://www.usds.gov/apply</a></p><h1 style="white-space:pre-wrap;"><strong>Code-Yellow: Helping Operations Top-Heavy Teams the Smart Way. Michael Kehoe and Todd Palino, LinkedIn.</strong></h1><p style="white-space:pre-wrap;">A code yellow is a way of formally reacting to major problems. Michael and Todd shared two case studies of teams unable to make progress because they were buried under reactive operational work. In both cases, the right solution was to step back, access the situation and ask for help. They declared a code yellow and assigned extra people to achieve clear goals on the project. </p><p style="white-space:pre-wrap;">To run a successful code yellow, you first need to admit there’s a problem and measure it. Write a problem statement. Set clear exit criteria and concrete success criteria. </p><p style="white-space:pre-wrap;">Pull in whoever is needed: at least a project manager and some dedicated engineers. For one of the case studies this meant taking five staff engineers off other projects. Plan for what work will be done, prioritising things that will reduce toil and burnout. Most importantly, communicate well. You need people to understand why this project has such high priority, and to feel like a partner in it. </p><p style="white-space:pre-wrap;">I’ve seen code yellows used effectively at el Goog, and I’m glad other folks use this model too. This was a solid overview of a useful tool for saving teams who are in ops overload. </p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/kehoe" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/kehoe</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_kehoe.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_kehoe.pdf</a><br><strong>Follow:</strong> <a href="https://twitter.com/bonkoif/media" target="_blank">@bonkoif</a><span style="text-decoration:underline"><br></span><strong>Sketchnotes</strong><span style="text-decoration:underline">: </span><a href="https://twitter.com/deniseyu21/status/1110253103201374208" target="_blank">https://twitter.com/deniseyu21/status/1110253103201374208</a> </p><h1 style="white-space:pre-wrap;"><strong>Creating a Code Review Culture. Johnathan Turner, Squarespace.</strong></h1><p style="white-space:pre-wrap;">Code review ensures code quality for your organisation and also provides an opportunity to teach. John proposed some practices that contribute to a strong code review culture.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-left" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553909927526_54687"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:63.84000015258789%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg" data-image-dimensions="2500x1596" data-image-focal-point="0.5,0.5" alt="IMG_20190325_150324.jpg" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg" width="2500" height="1596" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553913372835-TA5U09AP75V5E0TRPCFW/IMG_20190325_150324.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553909927526_85559"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">For organisations, communicate the culture and establish a community of experts, but be conscious of making space for new experts to develop. Train code reviewers to do a good job. A large part of setting the culture is for code authors and code reviewers to communicate respect for each other.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-quote quote-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.quote/e278d354-cab2-46b3-85bb-252e693da7bb_750/website.components.quote.visitor.js"]" data-block-type="1337" data-definition-name="website.components.quote" data-sqsp-block="quote" data-website-component-id="yui_3_17_2_1_1554068146948_115946" id="block-yui_3_17_2_1_1554068146948_115946"><div class="sqs-block-content">
|
||
|
||
|
||
<figure class="sqs-quote-block-contents block-animation-none">
|
||
<blockquote data-animation-role="quote"
|
||
>
|
||
<span>“</span>There’s no right size of PR. There are a lot of wrong sizes.<span>”</span>
|
||
</blockquote>
|
||
<figcaption class="source">— John Turner, Creating a Code Review Culture, SRECon 2019</figcaption>
|
||
|
||
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
|
||
|
||
<style id="container-styles">#block-yui_3_17_2_1_1554068146948_115946 {
|
||
|
||
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1554068146948_115946 {
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1554068146948_115946 {
|
||
mix-blend-mode: var(--tweak-quote-block-blend);
|
||
border-radius: var(--tweak-quote-block-radius);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</style>
|
||
|
||
<style id="override-container-styles">
|
||
@media screen and (max-width: 767px) {
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1554068146948_115946 {
|
||
|
||
}
|
||
}
|
||
|
||
|
||
@media screen and (max-width: 767px) {
|
||
#block-yui_3_17_2_1_1554068146948_115946 {
|
||
|
||
}
|
||
}
|
||
|
||
@media screen and (max-width: 767px) {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}</style>
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1554068146948_129744"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">As authors, this means respecting the reviewer’s time and giving them a lot of context, the <em>why</em> as well as the <em>what</em>. Point out any tradeoffs you’re making, and think about how manageable the PR is, both in size and in content. </p><p style="white-space:pre-wrap;">As a code reviewer, justify your critiques and engage with the author as an equal: assume they have reasons for the choices they made, and ask questions rather than just instructing them to change things. </p><p style="white-space:pre-wrap;">John suggests reviewing in passes, where each pass is a theme. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-embed embed-block sqs-col-6 span-6 float float-left" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"]" data-block-type="1337" data-definition-name="website.components.embed" data-sqsp-block="embed" data-website-component-id="yui_3_17_2_1_1553909927526_24730" id="block-yui_3_17_2_1_1553909927526_24730"><div class="sqs-block-content">
|
||
|
||
|
||
<div
|
||
class="sqs-embed-container"
|
||
data-localized="{"embedInvalid":"Enter a valid embed URL or code.","embedTitle":"Embed Block","embedUninitialized":"Add an embed URL or code.","enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","invalidThumbnail":"Custom featured images only available with embedded videos. Go back into embed settings to turn off featured images.","invalidVideo":"Invalid video embed.","playButton":"Play","scriptDisabled":"Script Disabled"}"
|
||
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">"Is code the best way to solve this problem?" is one of the most important questions we can ask. <a href="https://twitter.com/while1malloc0?ref_src=twsrc%5Etfw">@while1malloc0</a> at <a href="https://twitter.com/hashtag/SREcon?src=hash&ref_src=twsrc%5Etfw">#SREcon</a></p>— Tanya Reilly (@whereistanya) <a href="https://twitter.com/whereistanya/status/1110257877065838597?ref_src=twsrc%5Etfw">March 25, 2019</a></blockquote>
|
||
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1554068146948_136931"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">You might begin by sizing up the “shape” of the PR, understanding what it’s trying to do, whether the change is necessary and whether this PR achieves it. Then you might review for readability — though hopefully style “nits” will have been eradicated by a linter or formatter. You might look at language gotchas, unnecessary use of esoteric language features, poor naming and bad spelling propagated by helpful IDEs. You should think about whether this code will be safe in production.</p><p style="white-space:pre-wrap;">Watch for code that introduces new patterns, as they’ll inevitably be copied and pasted when other developers want to do the same thing.</p><p style="white-space:pre-wrap;">I haven’t seen code review discussed at SRECon before, and I think this was a valuable topic. A bunch of people referred back to this presentation in other talks throughout the conference so it seems like it struck a chord. [Caveat: John’s also my coworker — Squarespace represented at SRECon this year! — so I have bias here too but seriously this was a great talk.]</p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/turner" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/turner</a><br><strong>Slides: </strong><a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_turner.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_turner.pdf</a><br><strong>Resource:</strong> <a href="https://github.com/while1malloc0/code-review-checklist">https://github.com/while1malloc0/code-review-checklist</a> <br><strong>Follow:</strong> <a href="http://twitter.com/while1malloc0" target="_blank">@while1malloc0</a></p><h1 style="white-space:pre-wrap;"><strong>SRE & Product Management: How to Level up Your Team (and Career!) by Thinking like a Product Manager. Jen Wohlner, Fastly</strong></h1><p style="white-space:pre-wrap;">Product managers focus on what and why, as opposed to program managers, who focus on when and how. (This is a neat definition.)</p><p style="white-space:pre-wrap;">SREs already do some product management, by making proofs of concept, writing plans, and so on. But we can do more. Here are five steps towards thinking like a product manager:</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-embed embed-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"]" data-block-type="1337" data-definition-name="website.components.embed" data-sqsp-block="embed" data-website-component-id="yui_3_17_2_1_1553652416275_34634" id="block-yui_3_17_2_1_1553652416275_34634"><div class="sqs-block-content">
|
||
|
||
|
||
<div
|
||
class="sqs-embed-container"
|
||
data-localized="{"embedInvalid":"Enter a valid embed URL or code.","embedTitle":"Embed Block","embedUninitialized":"Add an embed URL or code.","enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","invalidThumbnail":"Custom featured images only available with embedded videos. Go back into embed settings to turn off featured images.","invalidVideo":"Invalid video embed.","playButton":"Play","scriptDisabled":"Script Disabled"}"
|
||
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">How to bring product management skills into SRE work. Super cool talk from Jen who btw doesn’t have twitter 🙂 <a href="https://twitter.com/hashtag/SRECon?src=hash&ref_src=twsrc%5Etfw">#SRECon</a> <a href="https://t.co/aaz9YwO5Zl">pic.twitter.com/aaz9YwO5Zl</a></p>— Denise Yu @ SREcon Americas (@deniseyu21) <a href="https://twitter.com/deniseyu21/status/1110275440290291714?ref_src=twsrc%5Etfw">March 25, 2019</a></blockquote>
|
||
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_277775"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<ol data-rte-list="default"><li><p style="white-space:pre-wrap;"><strong>Know your users and talk to them.</strong> Surveys are ok, but a higher touch approach is better. Try 30 minute meetings where you interview up to two people at a time. Interview TLs and managers separately from ICs to get different perspectives. Share the results broadly.</p></li><li><p style="white-space:pre-wrap;"><strong>Ask non-leading questions.</strong> Don't assume people use your tool like you intended or that they like your product. Don’t ask "do you have problems with X" but instead "Have you done X? If so, walk me through how." </p></li><li><p style="white-space:pre-wrap;"><strong>Do prototyping sprints.</strong> Limited time forces you to scope your project tightly, so focus on one thing for a week and choose core users to focus on. It’s good for team bonding too. </p></li><li><p style="white-space:pre-wrap;"><strong>Take the time to plan project work</strong> even if you’re under water. Make the goals user-centric not tech-centric: not "roll out X", but "give users a pilot and get feedback". The roadmap needs to be owned by the team, not a manager or PM. Update it weekly or biweekly, and be willing to change priorities. Do a quarterly retrospective on the roadmapping process itself.<br>The roadmap spreadsheet is just an internal tool. For people outside the team, you have to package the information nicely [ed: yes, this!], e.g., by sending a bi-weekly email.</p></li><li><p style="white-space:pre-wrap;">User needs and pain point change, so <strong>follow up with your users</strong> regularly.</p></li></ol><p style="white-space:pre-wrap;">One of my current hobbyhorses is that Infrastructure organisations should take more of a product approach — be clear about what features are available and what’s on the roadmap; understand user needs; solve the whole problem not just the technology part — and I was very happy to see this talk.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553909927526_185109"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:69%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg" data-image-dimensions="2500x1725" data-image-focal-point="0.5,0.5" alt="IMG_20190325_160421.jpg" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg" width="2500" height="1725" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553915696621-MH48X2TCU5XZSDU3JU1E/IMG_20190325_160421.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553909927526_212804"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/wohlner" target="_blank">https://www.usenix.org/conference/srecon19americas/presentation/wohlner</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_wohlner.pdf" target="_blank">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_wohlner.pdf</a><br><strong>Livetweets: </strong><a href="https://twitter.com/Ana_M_Medina/status/1110272969509691392" target="_blank">https://twitter.com/Ana_M_Medina/status/1110272969509691392</a><br></p><h1 style="white-space:pre-wrap;"><strong>Optimizing for Learning. Logan McDonald, BuzzFeed</strong></h1>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553916323441_30857"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="What to learn first? Image by https://twitter.com/emilywithcurls" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553917021027-WP4A7N57SFN8GZOFIZTF/IMG_20190327_090406.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>What to learn first? Image by <a href="https://twitter.com/emilywithcurls">https://twitter.com/emilywithcurls</a></p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553916323441_37033"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">Expert intuition is not magic, it’s achievable. Logan was going on call for the first time but didn’t have a lot of practical experience as an SRE. She needed to decide what to learn from the vast fields of available knowledge.</p><p style="white-space:pre-wrap;">Problem solving is easier with constraints. If you need to design a room, you’ll first want to discard most of the infinite possibilities by asking questions. “What do I need to fit in this room"?”. She used <a href="https://landing.google.com/sre/sre-book/chapters/part3/" target="_blank">Mikey Dickerson’s hierarchy of service reliability</a> and concluded that monitoring comes first; she asked to help build out the new monitoring system.</p><p style="white-space:pre-wrap;"><a href="https://en.wikipedia.org/wiki/Robert_M._Gagn%C3%A9" target="_blank">Robert Gagne</a>, an educational psychologist, identified a hierarchy of learning, increasing in complexity from signal learning to rule learning and problem solving. Logan discovered that rule learning was key in incidents. She asked coworkers to vocalise their thoughts as they debugged. Beginners can only succeed if information is transparent.</p><p style="white-space:pre-wrap;">Reading a textbook doesn’t embed long-term knowledge. We need “low stakes testing” to exercise retrieval (for example, trying to think of a solution before looking it up). [ed: <a href="https://landing.google.com/sre/sre-book/chapters/accelerating-sre-on-call/" target="_blank">wheel of misfortune exercises</a> are great for this!] For maximum effect, we should interleave the information recall using <a href="https://en.wikipedia.org/wiki/Leitner_system#Three_boxes" target="_blank">Leitner boxes </a>and use <a href="https://en.wikipedia.org/wiki/Method_of_loci" target="_blank">memory palace</a> visualizations to make information memorable by tying a bizarre idea to something familiar.</p><p style="white-space:pre-wrap;">Good mental models are the basis of expert intuition and mental models come faster from observable systems. We need to evaluate our systems for how long it takes new people to come up to speed. After incidents, we should center the experience of the junior people: let them ask the questions. </p><p style="white-space:pre-wrap;">Institutional knowledge is important so we need humans to tell each other things and to feel safe asking. When our mental health suffers, so does our ability to make strong ties between information. We need to emphasise psychological safety. </p><p style="white-space:pre-wrap;">This was a great talk packed with both interesting theory and immediately applicable practical ideas for building a learning organisation. </p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/mcdonald">https://www.usenix.org/conference/srecon19americas/presentation/mcdonald</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_mcdonald.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_mcdonald.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/msuriar/status/1110889187799191552">https://twitter.com/msuriar/status/1110889187799191552</a> , <a href="https://twitter.com/tammybutow/status/1110887715032260609">https://twitter.com/tammybutow/status/1110887715032260609</a> <br><strong>Follow: </strong><a href="https://twitter.com/_loganmcdonald">@_loganmcdonald</a> (and <a href="https://twitter.com/emilywithcurls">@emilywithcurls</a> for the great images!)<br><strong>Resources:</strong> <a href="https://t.co/dey8YlH8yz">http://bit.ly/lm-srecon19 </a> </p><h1 style="white-space:pre-wrap;"><strong>Zero to SRE. Kim Schlesinger, ReactiveOps.</strong></h1><p style="white-space:pre-wrap;">Your company can convert a junior engineer to a mid-level engineer in one year, insists Kim, getting our attention immediately. As <a href="https://twitter.com/stevekinney/status/1042461822647971842" target="_blank">Steve Kinney says</a>, being able to take junior engineers and turn them into badasses is a competitive advantage.</p><p style="white-space:pre-wrap;">You need to do work up front: don’t hire junior engineers until your culture is ready for them. Make it normal to spend time on learning — At ReactiveOps, they track 20% learning time in their project management tools — and create a culture where it’s easy to ask questions. Put teams on projects, not just individuals. [ed: yes! This changes everything!]</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553921486399_54869"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="“Read Chapter 5 of How Linux Works” as a task on a Trello board." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553923996735-4FI9O4SP5HGXHDFWXAS3/IMG_20190327_094020.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>“Read Chapter 5 of How Linux Works” as a task on a Trello board.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553921486399_58905"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">Give your juniors clear, measurable expectations. An engineering levelling doc helps. Make it clear how long people should try to solve problems themselves before asking for help. Create personalised technical learning plans, which include completing real projects with real deadlines. Develop systems of accountability, but provide lots of help and regular check ins. Focus on developing muscle memory first; abstract concepts come later when the knowledge has something to attach to. </p><p style="white-space:pre-wrap;">Give junior engineers a team on day one, and be explicit about when you’ll start expecting them to be “productive” and sending PRs. Hire more than one and let each junior person help the next junior person. Teaching is a good form or learning and a great confidence booster.</p><p style="white-space:pre-wrap;">A year in, compare against your levelling doc and promote them if they’ve gone up a level. </p><p style="white-space:pre-wrap;">This was an insightful and practical talk about how to make junior engineers successful. I loved the emphasis on making people feel safe and included, and in particular the idea of putting learning time into project plans. That’s a good way to live. </p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/schlesinger">https://www.usenix.org/conference/srecon19americas/presentation/schlesinger</a> <br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_schlesinger.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_schlesinger.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/tammybutow/status/1110898227090542592">https://twitter.com/tammybutow/status/1110898227090542592</a> <a href="https://twitter.com/Ana_M_Medina/status/1110897107911753731">https://twitter.com/Ana_M_Medina/status/1110897107911753731</a> <br><strong>Resource: </strong><a href="http://github.com/reactiveops/apprentice-learning-plan">http://github.com/reactiveops/apprentice-learning-plan</a><br><strong>Resource</strong>: <a href="https://hirediversity.us">https://hirediversity.us</a> </p><h1 style="white-space:pre-wrap;"><strong>One on One SRE. Amy Tobey, GitHub.</strong></h1><p style="white-space:pre-wrap;">On Amy’s second day in her first job, someone asked her to log in to a server and kill a process. She used <a href="https://en.wikipedia.org/wiki/Killall" target="_blank">killall</a> not realising how aggressive it is on Solaris, and took down the server. Twenty years later, she’s still thinking about this. [ed: I love these moments that change how you work forever. Even if they don’t feel so good at the time.]</p><p style="white-space:pre-wrap;">After incidents, many of us run post-mortem meetings, but Amy’s team found that they were stressful for the team who owned the service. Rather than questions, they were often hit with comments and further trauma. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-embed embed-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"]" data-block-type="1337" data-definition-name="website.components.embed" data-sqsp-block="embed" data-website-component-id="yui_3_17_2_1_1553973876633_289245" id="block-yui_3_17_2_1_1553973876633_289245"><div class="sqs-block-content">
|
||
|
||
|
||
<div
|
||
class="sqs-embed-container"
|
||
data-localized="{"embedInvalid":"Enter a valid embed URL or code.","embedTitle":"Embed Block","embedUninitialized":"Add an embed URL or code.","enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","invalidThumbnail":"Custom featured images only available with embedded videos. Go back into embed settings to turn off featured images.","invalidVideo":"Invalid video embed.","playButton":"Play","scriptDisabled":"Script Disabled"}"
|
||
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">"Heroes are a liability." -- <a href="https://twitter.com/MissAmyTobey?ref_src=twsrc%5Etfw">@MissAmyTobey</a> talking about site availability at <a href="https://twitter.com/hashtag/SRECon?src=hash&ref_src=twsrc%5Etfw">#SRECon</a>.<br><br>The truest thing. Keeping your site up shouldn't need heroics.</p>— Tanya Reilly (@whereistanya) <a href="https://twitter.com/whereistanya/status/1110909239877353472?ref_src=twsrc%5Etfw">March 27, 2019</a></blockquote>
|
||
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_293394"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">GitHub moved to 1:1 incident debriefs, with documentation that’s only shared with incident investigators and the people being interviewed. They try to set an environment where people feel comfortable being vulnerable. They ask: </p><ul data-rte-list="default"><li><p style="white-space:pre-wrap;">broad general questions: “What was your role in the incident?" “What surprised you?” “What did you learn from this incident?"</p></li><li><p style="white-space:pre-wrap;">questions that uncover burnout, like "How long did you work on the incident", "Were you able to get the support you needed?", “Did you practice self-care during this process?". This last reinforces that you everyone should take rests, drink water, order food at the company expense, etc. It helps set the culture.</p></li><li><p style="white-space:pre-wrap;">questions like “Do you feel that the incident was preventable?”, that let people get upset and shouty if they need to. </p></li></ul><p style="white-space:pre-wrap;">And they ask “Can you think of anyone else we should talk to?". For <a href="https://github.blog/2018-10-30-oct21-post-incident-analysis/" target="_blank">GitHub’s big outage last year</a>, they ended up interviewing 34 people.</p><p style="white-space:pre-wrap;">The way to build influence in an org is to start scheduling 1:1s with interesting people. Establish relationships and learn what people are working on. An individual contributor can influence availability at company-wide scale by building a personal network and having a lot of empathy.</p><p style="white-space:pre-wrap;">I’m torn between wanting to try this 1:1 model and not wanting to spend this long on a single outage. But I can definitely see that it would take some of the pressure off the team afterwards. Maybe this is one to be used just for the very big outages. It’s an interesting idea anyway and one I’ll be thinking about a lot.</p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/tobey">https://www.usenix.org/conference/srecon19americas/presentation/tobey</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/Ana_M_Medina/status/1110906096565346305">https://twitter.com/Ana_M_Medina/status/1110906096565346305</a><br><strong>Follow:</strong> <a href="https://twitter.com/missamytobey?lang=en" target="_blank">@MissAmyTobey</a><br><strong>Amy Recommends:</strong> <a href="https://www.penguinrandomhouse.com/books/313183/the-body-keeps-the-score-by-bessel-van-der-kolk-md/9780143127741/">The Body Keeps The Score by Bessel Vsn Der Kolk, M.D.</a> <br></p><h1 style="white-space:pre-wrap;"><strong>Fault Tree Analysis Applied to Apache Kafka. Andrey Falko, Lyft.</strong></h1><p style="white-space:pre-wrap;">Defining SLOs can feel like weather forecasting: if you get it wrong, people won’t be pleased with you. Andrey walked us through some worked examples of Fault Tree Analysis, a mechanism for evaluating failure probabilities invented at Boeing in the sixties.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553973876633_201467"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Fault Tree Analysis of a raid0 array is an example of an OR gate: the probability of a total failure is the probability of disk1 or disk2 or disk3 failing." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553994842348-UD032Z1UZ13CWWGK8VIY/IMG_20190327_112316.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Fault Tree Analysis of a raid0 array is an example of an OR gate: the probability of a total failure is the probability of disk1 or disk2 or disk3 failing.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_216133"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">FTA draws a system as a series of symbols, using events and logic gates. You could model a RAID0 array (striped, not mirrored, if you forget your RAID levels) with an OR gate, or RAID1 (mirrored) with an AND gate. </p><p style="white-space:pre-wrap;">If disks fail with 4% probability every year, and you have two striped disks, the probability of losing one of them (and causing a complete outage) can be modelled as P(A or B) = P(A) + P(B) - (P(A) * P(B)). By comparison, P(A and B) = P(A) * P(B) — much smaller. For a three disk array, RAID0 gives you a 12% change of failure, RAID1 is less than 0.001%. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553973876633_221907"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="IMG_20190327_112958.jpg" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553995464052-E124R1AA492QKLE4MRGC/IMG_20190327_112958.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_228901"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">If you’re running a Kafka message queue, you want replication and redundancy to minimize data loss, but there’s no point in over-spending on more replica than you need. We can draw a FTA for Kafka’s Broker and Zookeeper components, measuring the probability of disk failure, network partitions, other hardware failures and OS failures. Having two brokers gets us 99% availability. Going to three gets us 99.95%. We can quantify the cost per nine, and see whether it’s worth it, or whether it would be better to change other inputs: e.g., switching to SSDs means a lower chance of hard disk failure, and can get us to four nines for the same number of replicas.</p><p style="white-space:pre-wrap;">I’d seen some talks about FTA before, but this was the first time I’ve seen a practical talk about how it can be useful. I enjoyed this a lot.</p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/falko">https://www.usenix.org/conference/srecon19americas/presentation/falko</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_falco.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_falco.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/Ana_M_Medina/status/1110922170178437121">https://twitter.com/Ana_M_Medina/status/1110922170178437121</a><br><strong>Resources: </strong><a href="http://github.com/afalko/fta-kafka">http://github.com/afalko/fta-kafka</a> </p><h1 style="white-space:pre-wrap;"><strong>Strategies to Edit Production Data. Julie Qiu, Google.</strong></h1>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-embed embed-block sqs-col-6 span-6 float float-right" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.embed/80a2d965-d504-40f3-9418-486cd207872d_649/website.components.embed.visitor.js"]" data-block-type="1337" data-definition-name="website.components.embed" data-sqsp-block="embed" data-website-component-id="yui_3_17_2_1_1553916323441_70370" id="block-yui_3_17_2_1_1553916323441_70370"><div class="sqs-block-content">
|
||
|
||
|
||
<div
|
||
class="sqs-embed-container"
|
||
data-localized="{"embedInvalid":"Enter a valid embed URL or code.","embedTitle":"Embed Block","embedUninitialized":"Add an embed URL or code.","enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","invalidThumbnail":"Custom featured images only available with embedded videos. Go back into embed settings to turn off featured images.","invalidVideo":"Invalid video embed.","playButton":"Play","scriptDisabled":"Script Disabled"}"
|
||
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I loved that <a href="https://twitter.com/JQiu25?ref_src=twsrc%5Etfw">@JQiu25</a> structured her excellent talk about methods to safely and visibly edit production data as a story about how they iterated towards the current strategy! <a href="https://twitter.com/hashtag/SRECon?src=hash&ref_src=twsrc%5Etfw">#SRECon</a> <a href="https://t.co/F8Ex2l3yjD">pic.twitter.com/F8Ex2l3yjD</a></p>— Denise Yu (@deniseyu21) <a href="https://twitter.com/deniseyu21/status/1110942157102350346?ref_src=twsrc%5Etfw">March 27, 2019</a></blockquote>
|
||
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<style class="transform-overrides-vars">
|
||
|
||
</style>
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553916323441_74085"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">Having unfettered access to a database prompt sets you up to make mistakes. Julie laid out five stages, building on each other, to take you from running raw update commands to using a safe script runner service.</p><p style="white-space:pre-wrap;">I’ve seen and <a href="https://noidea.dog/blog/devopsdays-nyc-2018" target="_blank">blogged this talk before</a> so I’m not going into detail here, but this is a great talk and I recommend it.</p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/qiu">https://www.usenix.org/conference/srecon19americas/presentation/qiu</a> <br><strong>Livetweets:</strong> <a href="https://twitter.com/Ana_M_Medina/status/1110931540551315458">https://twitter.com/Ana_M_Medina/status/1110931540551315458</a> <a href="https://twitter.com/wiredferret/status/1110931536663273474">https://twitter.com/wiredferret/status/1110931536663273474</a> <br><strong>Sketchnotes: </strong><a href="https://twitter.com/deniseyu21/status/1110942157102350346">https://twitter.com/deniseyu21/status/1110942157102350346</a> <br><strong>Follow:</strong> <a href="https://twitter.com/jqiu25">jqiu25</a></p><h1 style="white-space:pre-wrap;"><strong>Extending the Error Budget Model to Security and Feature Freshness. Jim Thomson and David Laing, Pivotal.</strong></h1><p style="white-space:pre-wrap;">Error budgets to measure availability are pretty common in the SRE world now. But availability isn’t everything: security is also important, and users always want new features. Can we use a mechanism like error budgets for security and feature freshness?</p><p style="white-space:pre-wrap;"><strong>The vulnerability budget:</strong> we use an SLI of the number of days since a dependency we’re running was patched. If we have a 30 day SLO, we know patches get applied at least that often. 30 days might sound high, but it would have saved Equifax: their breach was on May 13th and the vulnerability in Apache Struts had been disclosed on March 7th. Pivotal use a 30d SLO, but actually patch every week.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553973876633_171126"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:1264px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:76.4240493774414%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png" data-image-dimensions="1264x966" data-image-focal-point="0.5,0.5" alt="Upper and lower bounds for how old a version of a dependency (in this case kubernetes) should be." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png" width="1264" height="966" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553993174345-24D1H25NVNKO1NZEJUXE/Screen+Shot+2019-03-30+at+8.45.45+PM.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Upper and lower bounds for how old a version of a dependency (in this case kubernetes) should be.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553973876633_185588"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;"><strong>The legacy budget:</strong> libraries need to be new enough that they get support, but not so bleeding edge that nobody is comfortable using it. Unlike other SLOs, they have both an upper and lower bound. Their SLO says that they upgrade every 90 days, but always to a stable and supported version. </p><p style="white-space:pre-wrap;">These SLOs allow teams to demonstrate their value: it’s easier to show a service inside SLO than enumerate the security breaches you didn’t have, for example. </p><p style="white-space:pre-wrap;">I hadn’t seen this way of quantifying the freshness of libraries before, and I would guess a model like this is good at encouraging people who are reticent about updates </p><p style="white-space:pre-wrap;"><br><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/thomson">https://www.usenix.org/conference/srecon19americas/presentation/thomson</a><strong><br>Slides: </strong><a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_thomson.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_thomson.pdf</a><br><strong>Livetweets:</strong> <a href="https://twitter.com/Ana_M_Medina/status/1110978627477360641">https://twitter.com/Ana_M_Medina/status/1110978627477360641</a><strong><br>Sketchnotes:</strong> <a href="https://twitter.com/deniseyu21/status/1110987830711459841">https://twitter.com/deniseyu21/status/1110987830711459841</a></p><h1 style="white-space:pre-wrap;"><strong>You Don't Have to Love Your Job. Leslie Carr, Quip.</strong></h1><p style="white-space:pre-wrap;">"Choose a job you'll like love and you'll never work a day in your life". Leslie says this can only be said by someone who's never had a job. She took us on a historical tour from 1500s Europe to Elon Musk, showing how the Calvinist idea of predestination led to people’s morality being measured by how successful they were at work. The puritans and pilgrims brought that to the US and that’s where our “work ethic” comes from.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553916323441_111323"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:75%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Darwin found plenty of time for non-work." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg" width="2500" height="1875" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553920444462-WOA4PTCFGXAZSIRC0IQH/IMG_20190327_154031.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Darwin found plenty of time for non-work.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553916323441_118290"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">Should you love your job? </p><p style="white-space:pre-wrap;">Elon Musk brags about working 120 hours a week and tweets that nobody has changed the world in 40 hours a week. That doesn't give you much time to sleep. But if Tesla stock goes up $1, Elon Musk makes $33 million dollars. That’s quite an incentive to convince his employees to work more. For comparison, Darwin worked three hours a day and changed the world pretty well.</p><p style="white-space:pre-wrap;">Occasional spikes are ok, but continuous sustained 80 hour weeks shouldn't be. Working 60 hours or more actually makes you <em>less</em> productive overall than people who work 40 hours a week. It also leads to increased health problems and divorce rates.</p><p style="white-space:pre-wrap;">Love inspires heroics, and the SRE community has worked hard to rid ourselves of heroics and personal sacrifice. Site reliability needs to be sustainable and businesses need to play a longer game. Don’t burn people out.</p><p style="white-space:pre-wrap;">Since Leslie has been talking to people about this talk, a bunch of people told her "I was thinking of leaving tech because I don't love it" But they <em>like</em> it well enough and are good at it. Tech pays well, has good perks. “What percentage of LeCroix's revenue is from tech?” </p><p style="white-space:pre-wrap;">You don't have to love your job. Just be friends with it.<br></p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/carr">https://www.usenix.org/conference/srecon19americas/presentation/carr</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_carr.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_carr.pdf</a><br><strong>Livetweets</strong>: <a href="https://twitter.com/Ana_M_Medina/status/1110986971785105408">https://twitter.com/Ana_M_Medina/status/1110986971785105408</a><br><strong>Follow: </strong><a href="https://twitter.com/lesliegeek?lang=en" target="_blank">@lesliegeek</a></p><h1 style="white-space:pre-wrap;"><strong>Mindfulness in SRE: Monitoring and Alerting for One's Self. Tommy Lutz, Google.</strong></h1><p style="white-space:pre-wrap;">Tommy found himself in a single engine plane that had lost its engine, dropping fast with six minutes to impact. In life we have physical threats like this and we have threats to our ego, and in both cases our bodies react the same way: adrenaline spike; blood redirected to muscles; ready to fight. Talking on a stage makes our bodies react as if we’re in danger.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-left" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1553916323441_150745"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2500px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:69.19999694824219%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg" data-image-dimensions="2500x1730" data-image-focal-point="0.5,0.5" alt="From reacting defensively to intercepting our reactions in real time." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg" width="2500" height="1730" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1553921410472-52HITZVJ4SXAQ9EGG862/IMG_20190327_155457+%281%29.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>From reacting defensively to intercepting our reactions in real time.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1553916323441_157389"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">We make a lot of micro-decisions, automatic, fast, but low accuracy conclusions. The inputs are physical state, sensory input and habits, run through threat assessment. Mindfulness lets us slow down and inspect these decisions to evaluate if there’s a real threat. By paying attention to the mind, body and surroundings with an attitude of kindness and curiosity, we can realise what our reactions are. We can go from reacting defensively to realising what happened after the fact to intercepting and modifying our behaviour in real time.</p><p style="white-space:pre-wrap;">We can use it during incidents and during disagreements. Breathe, observe, decide and act, to build safety instead of defensiveness. Mindfulness can be cultivated with deliberate practice. Tommy got us to stop for a moment and focus on our breathing and, honestly, it was pretty great.</p><p style="white-space:pre-wrap;"><strong>Abstract: </strong><a href="https://www.usenix.org/conference/srecon19americas/presentation/lutz">https://www.usenix.org/conference/srecon19americas/presentation/lutz</a><br><strong>Slides: </strong><a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_lutz.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_lutz.pdf</a> </p><h1 style="white-space:pre-wrap;"><strong>Resilience Engineering Mythbusting. Will Gallego, Fastly</strong></h1><p style="white-space:pre-wrap;">I was <strong>fried</strong> by the end of day three, and my notes became very rough. My summaries of the last two keynotes are heavily supplemented by other people’s livetweets. Livetweeters, you are heroes. 😍</p><p style="white-space:pre-wrap;">Will presented some of the basics of resilience engineering, a discipline that comes from nuclear power safety, transportation, and medicine. An organisation is resilient if it can adapt. We can understand our system, monitor it, and therefore see what's coming and modify it before something goes wrong.</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1554068146948_291979"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:1318px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:72.83763122558594%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png" data-image-dimensions="1318x960" data-image-focal-point="0.5,0.5" alt="We can’t prevent all failures or have 100% uptime. We just need to deal with that!" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png" width="1318" height="960" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 50% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162812207-KXNT8KSDG36704A7EQFS/image-asset.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>We can’t prevent all failures or have 100% uptime. We just need to deal with that!</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1554068146948_296209"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">There are some ways that people might misunderstand resilience engineering:</p><ul data-rte-list="default"><li><p style="white-space:pre-wrap;">use the word “resilience” where they mean “robustness” or “reliability”. Software can be robust but resilience requires humans to be part of the system for evaluation and decision-making.</p></li><li><p style="white-space:pre-wrap;">believe that complexity is inherently bad, whereas it’s sometimes needed for functionality. We need to learn to cope with necessary complexity.</p></li><li><p style="white-space:pre-wrap;">believe that chaos engineering finds bugs, whereas really it develops intuition.</p></li><li><p style="white-space:pre-wrap;">always follow best practices. Because sometimes they’re wrong and a human should make that call. </p></li><li><p style="white-space:pre-wrap;">insist that retrospectives have follow up items. They’re for learning and building expertise. </p></li><li><p style="white-space:pre-wrap;">look for root causes and ask why, instead of looking at all the contributing factors. </p></li><li><p style="white-space:pre-wrap;">measure reliability by looking at past performance. Sometimes there are latent problems like Meltdown and Spectre that just haven’t happened yet. Ask experts “what scares you about the system” instead of measuring its current reliability. </p></li><li><p style="white-space:pre-wrap;">believe error budgets control risk.</p></li><li><p style="white-space:pre-wrap;">believe resilience engineering is representative of human factors when it’s kind of a monoculture.</p></li></ul><p style="white-space:pre-wrap;">This was a provocative talk and not all of it resonated with me, but we go to conferences to have our ideas challenged, right? It was one of the several talks that prompted me to go read more about resilience engineering (see the “Safety-II” section at the start of this blog post) and I consider that a win. </p><p style="white-space:pre-wrap;"><br><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/gallego">https://www.usenix.org/conference/srecon19americas/presentation/gallego</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_gallego.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_gallego.pdf</a><br><strong>Livetweets</strong>: <a href="https://twitter.com/wiredferret/status/1111002519373791232">https://twitter.com/wiredferret/status/1111002519373791232</a> <a href="https://twitter.com/msuriar/status/1111002565234311170">https://twitter.com/msuriar/status/1111002565234311170</a> <br><strong>Will recommends:</strong> <a href="https://books.google.com/books/about/The_ETTO_Principle.html?id=srYNX2OgagYC" target="_blank">The ETTO Principle - Erik Hollnagel</a>,<a href="https://web.mit.edu/2.75/resources/random/How%20Complex%20Systems%20Fail.pdf" target="_blank"> How Complex Systems Fail - Richard Cook</a>, <a href="https://www.oreilly.com/library/view/the-field-guide/9781317031833/" target="_blank">Field Guide for Understanding Human Error - Sidney Dekker</a><br><strong>Follow: </strong><a href="https://twitter.com/wcgallego?lang=en">@wcgallego</a> </p><h1 style="white-space:pre-wrap;"><strong>Why Are Distributed Systems So Hard? Denise Yu, Pivotal.</strong></h1><p style="white-space:pre-wrap;">A long time ago, all business apps talked to one database. But storage and retrieval needs evolved. For a while people scaled vertically — bigger machines! — but Cloud services and VMs allow us to scale horizontally, shard and replicate, as well as putting data closer to our users.</p><p style="white-space:pre-wrap;">Distributed computing is hard to reason about. In the nineties, Sun Microsystems wrote the <a href="https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing" target="_blank">Fallacies of Distributed Computing</a>. One of these is that we shouldn’t assume the network is reliable. So how can we know that communication happened? The <a href="https://people.eecs.berkeley.edu/~luca/cs174/byzantine.pdf" target="_blank">Byzantine Generals problem</a> demonstrates the difficulty of making a decision when nobody can trust each other.</p><p style="white-space:pre-wrap;">In 2000, Eric Brewer brought us the CAP theorem. This is often framed as “consistency, availability, partition tolerance: choose two”, but you can’t <em>not</em> choose partition tolerance because you can’t assume the network is reliable. Partitions will happen. So you get to choose C or A. </p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block image-block sqs-block-image sqs-col-6 span-6 float float-right" data-block-type="5" data-sqsp-block="image-classic" id="block-yui_3_17_2_1_1554068146948_300690"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
class="
|
||
image-block-outer-wrapper
|
||
layout-caption-below
|
||
design-layout-inline
|
||
combination-animation-none
|
||
individual-animation-none
|
||
individual-text-animation-none
|
||
"
|
||
data-test="image-block-inline-outer-wrapper"
|
||
data-sqsp-image-classic-block-layout="inline"
|
||
>
|
||
|
||
|
||
|
||
|
||
<figure
|
||
class="
|
||
sqs-block-image-figure
|
||
intrinsic
|
||
"
|
||
style="max-width:2260px;"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
|
||
|
||
class="image-block-wrapper"
|
||
data-animation-role="image"
|
||
|
||
|
||
|
||
>
|
||
<div data-sqsp-image-classic-block-image-container class="sqs-image-shape-container-element
|
||
|
||
|
||
|
||
has-aspect-ratio
|
||
" style="
|
||
position: relative;
|
||
|
||
padding-bottom:73.53982543945312%;
|
||
|
||
overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||
"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<img data-stretch="false" data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png" data-image-dimensions="2260x1662" data-image-focal-point="0.0,0.5" alt="Hard to distinguish between unavailable and just slow! Image by Denise Yu from her slides." data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png" width="2260" height="1662" alt="" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" style="display:block;object-fit: cover; width: 100%; height: 100%; object-position: 0% 50%" onload="this.classList.add("loaded")" srcset="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554162999740-M07VRA2FHO9NP7U0UPRI/Screen+Shot+2019-04-01+at+7.56.05+PM.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
|
||
<div class="image-caption"><p>Hard to distinguish between unavailable and just slow! Image by Denise Yu from her slides.</p></div>
|
||
</figcaption>
|
||
|
||
|
||
</figure>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-sqsp-block="text" id="block-yui_3_17_2_1_1554068146948_311861"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<p style="white-space:pre-wrap;">C is actually for… Linearizability (hahaha), a narrow version of consistency. It means that changes have to be applied consistently to all replicas: if any replica has a value, every replica should have the value. A is for availability, though it’s hard to distinguish between “unavailable” and “just slow”. During a partition, you can choose to have availability (allowing reads and writes on both sides), but since the two sides can’t talk to each other, you lose linearizability. Or you can choose consistency and guarantee that both sides are the same by not writing any more, at the loss of availability.</p><p style="white-space:pre-wrap;">Distributed systems are hard for a bunch of other reasons, including imperfect hardware, imperfect software and multi-tenant systems without user isolation.</p><p style="white-space:pre-wrap;">We have some mitigation strategies: automatic leader election for keeping things writable, consensus algorithms like Paxos and Raft. </p><p style="white-space:pre-wrap;">Distributed systems of humans are hard too. We all have different mental models and it’s hard to share state and compare them. We need an environment that’s optimised for learning. During incident analysis, we need to look for unintuitive design, alert fatigue, unspoken assumptions, <a href="https://en.wikibooks.org/wiki/Professionalism/Diane_Vaughan_and_the_normalization_of_deviance" target="_blank">normalization of deviance</a>, and other aspects affecting the humans in the system. [ed: and all of the ways in which humans just misunderstand each other while debugging!] We need to understand and design for the whole system, including the human parts.</p><p style="white-space:pre-wrap;">This was freaking great and Denise’s slides are the most beautiful slides.</p><p style="white-space:pre-wrap;"><strong>Abstract:</strong> <a href="https://www.usenix.org/conference/srecon19americas/presentation/yu">https://www.usenix.org/conference/srecon19americas/presentation/yu</a><br><strong>Slides:</strong> <a href="https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_yu.pdf">https://www.usenix.org/sites/default/files/conference/protected-files/sre19amer_slides_yu.pdf</a><br><strong>References:</strong> <a href="http://www.deniseyu.io/srecon">http://www.deniseyu.io/srecon</a><br><strong>Resource:</strong> <a href="http://jepsen.io/consistency" target="_blank">http://jepsen.io/consistency</a><br><strong>Book</strong>: <a href="http://leanpub.com/achildrensatozofcontinuousdelivery" target="_blank">http://leanpub.com/achildrensatozofcontinuousdelivery</a>, Denise Yu and Steve Smith<br><strong>Livetweets: </strong><a href="https://twitter.com/lizthegrey/status/1111010808354533376">https://twitter.com/lizthegrey/status/1111010808354533376</a>, <a href="https://twitter.com/msuriar/status/1111010760635940864">https://twitter.com/msuriar/status/1111010760635940864</a> <br><strong>Denise recommends:</strong> <a href="http://shop.oreilly.com/product/0636920032175.do" target="_blank">Designing Data Intensive Applications</a>, and this Nikolas Means talk, [warning: autoplaying video!] <a href="https://www.youtube.com/watch?v=hMk6rF4Tzsg&list=PLBzScQzZ83I_VX8zgmLqIfma_kJs3RRmu&index=20&t=0s" target="_blank">"Who destroyed Three Mile Island?</a>"<br><strong>Follow: </strong><a href="https://twitter.com/deniseyu21" target="_blank">@deniseyu21</a><br></p><p style="white-space:pre-wrap;">And that’s the lot! SREcon20 Americas will be in Santa Clara from March 24-26, 2020. <a href="https://twitter.com/tammybutow">@tammybutow</a> and <a href="https://twitter.com/EmilStolarsky">@EmilStolarsky</a> are chairing so you know it’s going to be good!</p>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div></div></div></div></div>
|
||
|
||
|
||
|
||
<!--POST FOOTER-->
|
||
|
||
<footer>
|
||
<div class="meta">
|
||
|
||
|
||
|
||
<div class="first meta-row">
|
||
<span class="categories"><span class="categories-title">In</span> <a href="/blog/category/trip-report" rel="tag">trip-report</a></span>
|
||
<span class="tags"><span class="tags-title">Tags</span> <a href="/blog/tag/conferences" rel="tag">conferences</a>, <a href="/blog/tag/srecon" rel="tag">srecon</a>, <a href="/blog/tag/systems+engineering" rel="tag">systems engineering</a></span>
|
||
</div>
|
||
|
||
<div class="second meta-row">
|
||
|
||
<span class="sqs-simple-like" data-item-id="5c9911ba419202198ce91978" data-like-count="8">
|
||
<span class="like-icon"></span>
|
||
<span class="like-count"></span>
|
||
</span>
|
||
|
||
<span class="squarespace-social-buttons inline-style" data-system-data-id="1554002236993-EF1DYWDD5JRDRGH1SE3J" data-asset-url="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1554002236993-EF1DYWDD5JRDRGH1SE3J/Screen+Shot+2019-03-30+at+11.16.59+PM.png" data-record-type="1" data-full-url="/blog/srecon-americas-2019" data-title="Conference Report: SRECon Americas 2019"></span>
|
||
</div>
|
||
|
||
</div>
|
||
</footer>
|
||
|
||
|
||
</article>
|
||
|
||
|
||
|
||
<!--PAGINATION-->
|
||
|
||
|
||
<nav class="pagination clear">
|
||
<a class="prev-item" href="/blog/leaddevnewyork2019">← Conference Report: The Lead Developer NYC 2019</a><a class="next-item" href="/blog/working-from-sofa">Working from sofa →</a>
|
||
</nav>
|
||
|
||
|
||
|
||
<!-- COMMENTS -->
|
||
|
||
<section id="comments-" class="comments-wrapper">
|
||
|
||
<div class="squarespace-comments" id="comments-5c9911ba419202198ce91978" data-item-id="5c9911ba419202198ce91978" data-public-comment-count="2" data-comment-state="1"></div>
|
||
|
||
</section>
|
||
|
||
</div>
|
||
|
||
<aside id="sidebar"><div class="sqs-layout sqs-grid-1 columns-1" data-layout-label="Blog Sidebar" data-type="block-field" data-updated-on="1694583399825" id="sidebarBlocks"><div class="row sqs-row"><div class="col sqs-col-1 span-1"><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-border-radii="{"topLeft":{"unit":"px","value":0.0},"topRight":{"unit":"px","value":0.0},"bottomLeft":{"unit":"px","value":0.0},"bottomRight":{"unit":"px","value":0.0}}" data-sqsp-block="text" id="block-bf6681777d15699ee39b"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<h3 style="white-space:pre-wrap;">NEWEST (TECH)</h3>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-summary-v2 summary-block summary-v2-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/18018.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/43528.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/embed-video-player.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autocolumns.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autogrid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-carousel.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-grid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-list.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-slideshow.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-stacked.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-strip.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-manager.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.visitor.js"]" data-block-type="1337" data-definition-name="website.components.summary" data-sqsp-block="summary" data-website-component-id="yui_3_17_2_1_1688374622063_9637" id="block-yui_3_17_2_1_1688374622063_9637"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-block-wrapper
|
||
summary-block-collection-type-blog
|
||
summary-block-setting-text-size-medium
|
||
summary-block-setting-text-align-left
|
||
summary-block-setting-design-autocolumns
|
||
summary-block-setting-design-list-thumbnail-left
|
||
summary-block-setting-metadata-position-below-content
|
||
summary-block-setting-primary-metadata-date
|
||
summary-block-setting-secondary-metadata-none
|
||
summary-block-setting-show-thumbnail
|
||
summary-block-setting-show-title
|
||
summary-block-setting-show-price
|
||
summary-block-setting-hide-excerpt
|
||
|
||
|
||
sqs-gallery-design-autocolumns
|
||
|
||
"
|
||
|
||
data-design=autocolumns
|
||
data-image-aspect-ratio=1.5
|
||
data-slides-per-row=3
|
||
|
||
data-mixed-content=true
|
||
data-column-width=270
|
||
data-gutter="60"
|
||
data-list-image-size="30"
|
||
data-active-alignment=""
|
||
data-square-thumbs=""
|
||
data-auto-crop="true"
|
||
|
||
|
||
>
|
||
<div class="summary-item-list-container sqs-gallery-container">
|
||
<header class="summary-block-header">
|
||
|
||
<div class="summary-heading" data-animation-role="content">
|
||
|
||
<span class="summary-header-text">Featured</span>
|
||
|
||
</div>
|
||
|
||
<div class="summary-carousel-pager sqs-gallery-controls" data-animation-role="content">
|
||
<span
|
||
class="summary-carousel-pager-prev previous"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Previous"
|
||
></span>
|
||
<span
|
||
class="summary-carousel-pager-next next"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Next"
|
||
></span>
|
||
</div>
|
||
</header>
|
||
<div class="summary-item-list sqs-gallery">
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autocolumns-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
summary-item-has-excerpt
|
||
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/staff-engineer-communities"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="Staff engineer communities"
|
||
data-description=""
|
||
aria-label="Staff engineer communities"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1642949063750-SXKG6UY0YVEZIP1AJH0Q/unsplash-image-6VhPY27jdps.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1642949063750-SXKG6UY0YVEZIP1AJH0Q/unsplash-image-6VhPY27jdps.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Staff engineer communities" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autocolumns" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/staff-engineer-communities"
|
||
|
||
|
||
class="summary-title-link">
|
||
Staff engineer communities
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-excerpt
|
||
summary-excerpt-only
|
||
"><p class="">There haven’t been a lot of community structures or resources for Staff+ engineers. That’s changing.</p></div>
|
||
|
||
|
||
|
||
<a href="/blog/staff-engineer-communities" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autocolumns-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
|
||
summary-item-has-cats
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="How many vacation days does it take to change a lightbulb?"
|
||
data-description=""
|
||
aria-label="How many vacation days does it take to change a lightbulb?"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- First Image in Post -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1641746063151-O852MC2TCR3W46YXXEOS/goose_banner.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1641746063151-O852MC2TCR3W46YXXEOS/goose_banner.jpg" data-image-dimensions="1173x614" data-image-focal-point="0.5,0.5" alt="goose_banner.jpg" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autocolumns" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb"
|
||
|
||
|
||
class="summary-title-link">
|
||
How many vacation days does it take to change a lightbulb?
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<style>
|
||
#block-yui_3_17_2_1_1688374622063_9637 {
|
||
--summary-title-font-size: 20px;
|
||
--summary-excerpt-font-size: 14px;
|
||
--summary-text-align: left;
|
||
--summary-list-image-float: left;
|
||
--summary-list-thumbnail-padding-left: 0;
|
||
--summary-list-thumbnail-padding-right: 20px;
|
||
--summary-list-qv-padding-left: 0;
|
||
--summary-list-qv-padding-right: 20px;
|
||
--summary-list-product-mark-left: 0;
|
||
--summary-list-product-mark-right: auto;
|
||
--summary-meta-above-display: none;
|
||
--summary-meta-below-title-display: none;
|
||
--summary-meta-below-content-display: block;
|
||
--summary-show-title: block;
|
||
--summary-show-thumbnail: block;
|
||
--summary-show-excerpt: none;
|
||
--summary-show-excerpt-clamped: none;
|
||
--summary-content-spacing: 2px;
|
||
--summary-show-price: block;
|
||
--summary-show-read-more-link: none;
|
||
}
|
||
</style>
|
||
<style id="container-styles">#block-yui_3_17_2_1_1688374622063_9637 {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688374622063_9637 .summary-block-wrapper {
|
||
|
||
--tweak-summary-block-padding: 6% 6% 6% 6%;
|
||
--tweak-summary-block-padding: initial;
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688374622063_9637 {
|
||
mix-blend-mode: var(--tweak-summary-block-blend);
|
||
border-radius: var(--tweak-summary-block-radius);
|
||
}
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688374622063_9637 {
|
||
--tweak-summary-block-radius: 0px 0px 0px 0px;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688374622063_9637 {
|
||
}
|
||
|
||
</style>
|
||
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-border-radii="{"topLeft":{"unit":"px","value":0.0},"topRight":{"unit":"px","value":0.0},"bottomLeft":{"unit":"px","value":0.0},"bottomRight":{"unit":"px","value":0.0}}" data-sqsp-block="text" id="block-yui_3_17_2_1_1694583272928_9261"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<h3 style="white-space:pre-wrap;">MORE BY CATEGORY</h3>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block tagcloud-block sqs-block-tagcloud" data-block-type="14" id="block-yui_3_17_2_1_1694583136104_5827"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
<ul class="sqs-tagcloud" >
|
||
|
||
<li title="adventures-in-debugging - 2" style="font-size: 1.19em;">
|
||
<a href="/blog/category/adventures-in-debugging">
|
||
<span class="name">adventures-in-debugging</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="book-report - 2" style="font-size: 1.19em;">
|
||
<a href="/blog/category/book-report">
|
||
<span class="name">book-report</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="conversations - 4" style="font-size: 1.77em;">
|
||
<a href="/blog/category/conversations">
|
||
<span class="name">conversations</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="incident-response - 2" style="font-size: 1.19em;">
|
||
<a href="/blog/category/incident-response">
|
||
<span class="name">incident-response</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="personal-projects - 12" style="font-size: 2.91em;">
|
||
<a href="/blog/category/personal-projects">
|
||
<span class="name">personal-projects</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="productivity-or-something - 3" style="font-size: 1.5em;">
|
||
<a href="/blog/category/productivity-or-something">
|
||
<span class="name">productivity-or-something</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="retrospective - 1" style="font-size: 0.75em;">
|
||
<a href="/blog/category/retrospective">
|
||
<span class="name">retrospective</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="shameless-self-promotion - 3" style="font-size: 1.5em;">
|
||
<a href="/blog/category/shameless-self-promotion">
|
||
<span class="name">shameless-self-promotion</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="talking about talking - 3" style="font-size: 1.5em;">
|
||
<a href="/blog/category/talking+about+talking">
|
||
<span class="name">talking about talking</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="talks-I-like - 1" style="font-size: 0.75em;">
|
||
<a href="/blog/category/talks-I-like">
|
||
<span class="name">talks-I-like</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="tech-for-humans - 13" style="font-size: 3em;">
|
||
<a href="/blog/category/tech-for-humans">
|
||
<span class="name">tech-for-humans</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li title="trip-report - 13" style="font-size: 3em;">
|
||
<a href="/blog/category/trip-report">
|
||
<span class="name">trip-report</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div></div><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-border-radii="{"topLeft":{"unit":"px","value":0.0},"topRight":{"unit":"px","value":0.0},"bottomLeft":{"unit":"px","value":0.0},"bottomRight":{"unit":"px","value":0.0}}" data-sqsp-block="text" id="block-yui_3_17_2_1_1688374622063_4752"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<h3 style="white-space:pre-wrap;">NEWEST (FARM)</h3>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-summary-v2 summary-block summary-v2-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/18018.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/43528.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/embed-video-player.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autocolumns.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autogrid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-carousel.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-grid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-list.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-slideshow.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-stacked.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-strip.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-manager.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.visitor.js"]" data-block-type="1337" data-definition-name="website.components.summary" data-sqsp-block="summary" data-website-component-id="yui_3_17_2_1_1688374622063_6583" id="block-yui_3_17_2_1_1688374622063_6583"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-block-wrapper
|
||
summary-block-collection-type-blog
|
||
summary-block-setting-text-size-medium
|
||
summary-block-setting-text-align-center
|
||
summary-block-setting-design-autocolumns
|
||
summary-block-setting-design-list-thumbnail-left
|
||
summary-block-setting-metadata-position-below-content
|
||
summary-block-setting-primary-metadata-date
|
||
summary-block-setting-secondary-metadata-none
|
||
summary-block-setting-show-thumbnail
|
||
summary-block-setting-show-title
|
||
summary-block-setting-show-price
|
||
summary-block-setting-show-excerpt
|
||
|
||
|
||
sqs-gallery-design-autocolumns
|
||
|
||
"
|
||
|
||
data-design=autocolumns
|
||
data-image-aspect-ratio=1.5
|
||
data-slides-per-row=3
|
||
|
||
data-mixed-content=true
|
||
data-column-width=270
|
||
data-gutter="60"
|
||
data-list-image-size="30"
|
||
data-active-alignment=""
|
||
data-square-thumbs=""
|
||
data-auto-crop="true"
|
||
|
||
|
||
>
|
||
<div class="summary-item-list-container sqs-gallery-container">
|
||
<header class="summary-block-header">
|
||
|
||
<div class="summary-heading" data-animation-role="content">
|
||
|
||
<span class="summary-header-text">Featured</span>
|
||
|
||
</div>
|
||
|
||
<div class="summary-carousel-pager sqs-gallery-controls" data-animation-role="content">
|
||
<span
|
||
class="summary-carousel-pager-prev previous"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Previous"
|
||
></span>
|
||
<span
|
||
class="summary-carousel-pager-next next"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Next"
|
||
></span>
|
||
</div>
|
||
</header>
|
||
<div class="summary-item-list sqs-gallery">
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autocolumns-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
|
||
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/tipperary/20240624"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="June 24, 2024"
|
||
data-description=""
|
||
aria-label="June 24, 2024"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1719330360238-XRCQ13X7RLO8VSO1VUEX/IMG_4322.JPG" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1719330360238-XRCQ13X7RLO8VSO1VUEX/IMG_4322.JPG" data-image-dimensions="3024x4032" data-image-focal-point="0.5,0.5" alt="June 24, 2024" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autocolumns" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-25">June 25, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/tipperary/20240624"
|
||
|
||
|
||
class="summary-title-link">
|
||
June 24, 2024
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-25">June 25, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="/tipperary/20240624" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-25">June 25, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autocolumns-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
|
||
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/tipperary/20240617"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="June 17, 2024"
|
||
data-description=""
|
||
aria-label="June 17, 2024"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1718632575966-U6X08T4X61438GKZF5WJ/buzzard.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1718632575966-U6X08T4X61438GKZF5WJ/buzzard.jpg" data-image-dimensions="1062x757" data-image-focal-point="0.5,0.5" alt="June 17, 2024" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autocolumns" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-17">June 17, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/tipperary/20240617"
|
||
|
||
|
||
class="summary-title-link">
|
||
June 17, 2024
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-17">June 17, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="/tipperary/20240617" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2024-06-17">June 17, 2024</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<style>
|
||
#block-yui_3_17_2_1_1688374622063_6583 {
|
||
--summary-title-font-size: 20px;
|
||
--summary-excerpt-font-size: 14px;
|
||
--summary-text-align: center;
|
||
--summary-list-image-float: left;
|
||
--summary-list-thumbnail-padding-left: 0;
|
||
--summary-list-thumbnail-padding-right: 20px;
|
||
--summary-list-qv-padding-left: 0;
|
||
--summary-list-qv-padding-right: 20px;
|
||
--summary-list-product-mark-left: 0;
|
||
--summary-list-product-mark-right: auto;
|
||
--summary-meta-above-display: none;
|
||
--summary-meta-below-title-display: none;
|
||
--summary-meta-below-content-display: block;
|
||
--summary-show-title: block;
|
||
--summary-show-thumbnail: block;
|
||
--summary-show-excerpt: block;
|
||
--summary-show-excerpt-clamped: -webkit-box;
|
||
--summary-content-spacing: 10px;
|
||
--summary-show-price: block;
|
||
--summary-show-read-more-link: none;
|
||
}
|
||
</style>
|
||
<style id="container-styles">#block-yui_3_17_2_1_1688374622063_6583 {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688374622063_6583 .summary-block-wrapper {
|
||
|
||
--tweak-summary-block-padding: 6% 6% 6% 6%;
|
||
--tweak-summary-block-padding: initial;
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688374622063_6583 {
|
||
mix-blend-mode: var(--tweak-summary-block-blend);
|
||
border-radius: var(--tweak-summary-block-radius);
|
||
}
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688374622063_6583 {
|
||
--tweak-summary-block-radius: 0px 0px 0px 0px;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688374622063_6583 {
|
||
}
|
||
|
||
</style>
|
||
|
||
</div></div></div></div></div></aside>
|
||
</section>
|
||
|
||
<div class="extra-wrapper page-footer">
|
||
<div class="sqs-layout sqs-grid-12 columns-12" data-layout-label="Footer Content: Blog" data-type="block-field" data-updated-on="1688375639084" id="page-footer-5a77a36ef9619a31bd5b1fd2"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-border-radii="{"topLeft":{"unit":"px","value":0.0},"topRight":{"unit":"px","value":0.0},"bottomLeft":{"unit":"px","value":0.0},"bottomRight":{"unit":"px","value":0.0}}" data-sqsp-block="text" id="block-yui_3_17_2_1_1688375441315_17578"><div class="sqs-block-content">
|
||
|
||
<div class="sqs-html-content" data-sqsp-text-block-content>
|
||
<h3 style="white-space:pre-wrap;">LATEST POSTS</h3>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-summary-v2 summary-block summary-v2-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/18018.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/43528.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/embed-video-player.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autocolumns.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-autogrid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-carousel.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-grid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-list.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-slideshow.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-stacked.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-layout-strip.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/gallery-manager.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.summary/861360d1-b3ec-4cf3-bb26-49bed66ff221_622/website.components.summary.visitor.js"]" data-block-type="1337" data-definition-name="website.components.summary" data-sqsp-block="summary" data-website-component-id="yui_3_17_2_1_1688375441315_2404" id="block-yui_3_17_2_1_1688375441315_2404"><div class="sqs-block-content">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-block-wrapper
|
||
summary-block-collection-type-blog
|
||
summary-block-setting-text-size-medium
|
||
summary-block-setting-text-align-left
|
||
summary-block-setting-design-autogrid
|
||
summary-block-setting-design-list-thumbnail-left
|
||
summary-block-setting-metadata-position-below-content
|
||
summary-block-setting-primary-metadata-date
|
||
summary-block-setting-secondary-metadata-none
|
||
summary-block-setting-show-thumbnail
|
||
summary-block-setting-show-title
|
||
summary-block-setting-show-price
|
||
summary-block-setting-hide-excerpt
|
||
|
||
|
||
sqs-gallery-design-autogrid
|
||
|
||
"
|
||
|
||
data-design=autogrid
|
||
data-image-aspect-ratio=1.7778
|
||
data-slides-per-row=3
|
||
|
||
data-mixed-content=true
|
||
data-column-width=270
|
||
data-gutter="60"
|
||
data-list-image-size="30"
|
||
data-active-alignment=""
|
||
data-square-thumbs=""
|
||
data-auto-crop="true"
|
||
|
||
|
||
>
|
||
<div class="summary-item-list-container sqs-gallery-container">
|
||
<header class="summary-block-header">
|
||
|
||
<div class="summary-heading" data-animation-role="content">
|
||
|
||
<span class="summary-header-text">Featured</span>
|
||
|
||
</div>
|
||
|
||
<div class="summary-carousel-pager sqs-gallery-controls" data-animation-role="content">
|
||
<span
|
||
class="summary-carousel-pager-prev previous"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Previous"
|
||
></span>
|
||
<span
|
||
class="summary-carousel-pager-next next"
|
||
tabindex="0"
|
||
role="button"
|
||
aria-label="Next"
|
||
></span>
|
||
</div>
|
||
</header>
|
||
<div class="summary-item-list sqs-gallery">
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autogrid-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
summary-item-has-excerpt
|
||
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/staff-engineer-communities"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="Staff engineer communities"
|
||
data-description=""
|
||
aria-label="Staff engineer communities"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1642949063750-SXKG6UY0YVEZIP1AJH0Q/unsplash-image-6VhPY27jdps.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1642949063750-SXKG6UY0YVEZIP1AJH0Q/unsplash-image-6VhPY27jdps.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Staff engineer communities" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autogrid" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/staff-engineer-communities"
|
||
|
||
|
||
class="summary-title-link">
|
||
Staff engineer communities
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-excerpt
|
||
summary-excerpt-only
|
||
"><p class="">There haven’t been a lot of community structures or resources for Staff+ engineers. That’s changing.</p></div>
|
||
|
||
|
||
|
||
<a href="/blog/staff-engineer-communities" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-23">January 23, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autogrid-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
|
||
summary-item-has-cats
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="How many vacation days does it take to change a lightbulb?"
|
||
data-description=""
|
||
aria-label="How many vacation days does it take to change a lightbulb?"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- First Image in Post -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1641746063151-O852MC2TCR3W46YXXEOS/goose_banner.jpg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1641746063151-O852MC2TCR3W46YXXEOS/goose_banner.jpg" data-image-dimensions="1173x614" data-image-focal-point="0.5,0.5" alt="goose_banner.jpg" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autogrid" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb"
|
||
|
||
|
||
class="summary-title-link">
|
||
How many vacation days does it take to change a lightbulb?
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="/blog/how-many-vacation-days-does-it-take-to-change-a-lightbulb" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2022-01-09">January 9, 2022</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autogrid-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
summary-item-has-excerpt
|
||
|
||
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/i-love-advent-of-code"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="I love Advent of Code"
|
||
data-description=""
|
||
aria-label="I love Advent of Code"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1606502813028-AILM0LTLRXNTKE23LTJY/Screen+Shot+2020-11-27+at+5.27.23+PM.png" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1606502813028-AILM0LTLRXNTKE23LTJY/Screen+Shot+2020-11-27+at+5.27.23+PM.png" data-image-dimensions="1324x1276" data-image-focal-point="0.5,0.5" alt="I love Advent of Code" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autogrid" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-29">November 29, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/i-love-advent-of-code"
|
||
|
||
|
||
class="summary-title-link">
|
||
I love Advent of Code
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-29">November 29, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-excerpt
|
||
summary-excerpt-only
|
||
"><p class="">It’s the most wonderful time of the year!</p></div>
|
||
|
||
|
||
|
||
<a href="/blog/i-love-advent-of-code" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-29">November 29, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="
|
||
summary-item
|
||
positioned
|
||
summary-item-record-type-text
|
||
sqs-gallery-design-autogrid-slide
|
||
|
||
|
||
summary-item-has-thumbnail
|
||
|
||
summary-item-has-excerpt
|
||
summary-item-has-cats
|
||
summary-item-has-tags
|
||
summary-item-has-author
|
||
summary-item-has-comments-enabled
|
||
|
||
"
|
||
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="summary-thumbnail-outer-container">
|
||
<a
|
||
|
||
|
||
href="/blog/wrote-some-things"
|
||
|
||
|
||
class="
|
||
summary-thumbnail-container
|
||
sqs-gallery-image-container
|
||
|
||
"
|
||
data-title="Wrote some things!"
|
||
data-description=""
|
||
aria-label="Wrote some things!"
|
||
>
|
||
<div class="summary-thumbnail img-wrapper" data-animation-role="image">
|
||
|
||
|
||
|
||
<!-- Main Image -->
|
||
<img data-src="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1606512210463-67PC8ZWPWO00GO4JQPM0/image-asset.jpeg" data-image="https://images.squarespace-cdn.com/content/v1/5a05ececd55b4165f250f032/1606512210463-67PC8ZWPWO00GO4JQPM0/image-asset.jpeg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Wrote some things!" data-load="false" class="summary-thumbnail-image" elementtiming="summary-thumbnail-image-autogrid" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</a>
|
||
|
||
<!-- Products: Quick View -->
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="summary-content sqs-gallery-meta-container" data-animation-role="content">
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--above-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-27">November 27, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="summary-title">
|
||
<a
|
||
|
||
|
||
href="/blog/wrote-some-things"
|
||
|
||
|
||
class="summary-title-link">
|
||
Wrote some things!
|
||
</a>
|
||
</div>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-title">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-27">November 27, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="
|
||
summary-excerpt
|
||
summary-excerpt-only
|
||
"><p class="">Some recent writing: thinking of our future selves as stakeholders, leadership on the IC track, what a “real engineer” acts like, and the very exciting 97 Things Every SRE Should Know.</p></div>
|
||
|
||
|
||
|
||
<a href="/blog/wrote-some-things" class="summary-read-more-link">Read more →</a>
|
||
|
||
<div class="summary-metadata-container summary-metadata-container--below-content">
|
||
|
||
<div class="summary-metadata summary-metadata--primary">
|
||
|
||
|
||
|
||
<!-- Timestamp -->
|
||
<time class="summary-metadata-item summary-metadata-item--date" datetime="2020-11-27">November 27, 2020</time>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="summary-metadata summary-metadata--secondary">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<style>
|
||
#block-yui_3_17_2_1_1688375441315_2404 {
|
||
--summary-title-font-size: 20px;
|
||
--summary-excerpt-font-size: 14px;
|
||
--summary-text-align: left;
|
||
--summary-list-image-float: left;
|
||
--summary-list-thumbnail-padding-left: 0;
|
||
--summary-list-thumbnail-padding-right: 20px;
|
||
--summary-list-qv-padding-left: 0;
|
||
--summary-list-qv-padding-right: 20px;
|
||
--summary-list-product-mark-left: 0;
|
||
--summary-list-product-mark-right: auto;
|
||
--summary-meta-above-display: none;
|
||
--summary-meta-below-title-display: none;
|
||
--summary-meta-below-content-display: block;
|
||
--summary-show-title: block;
|
||
--summary-show-thumbnail: block;
|
||
--summary-show-excerpt: none;
|
||
--summary-show-excerpt-clamped: none;
|
||
--summary-content-spacing: 2px;
|
||
--summary-show-price: block;
|
||
--summary-show-read-more-link: none;
|
||
}
|
||
</style>
|
||
<style id="container-styles">#block-yui_3_17_2_1_1688375441315_2404 {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688375441315_2404 .summary-block-wrapper {
|
||
|
||
--tweak-summary-block-padding: 6% 6% 6% 6%;
|
||
--tweak-summary-block-padding: initial;
|
||
}
|
||
|
||
#block-yui_3_17_2_1_1688375441315_2404 {
|
||
mix-blend-mode: var(--tweak-summary-block-blend);
|
||
border-radius: var(--tweak-summary-block-radius);
|
||
}
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688375441315_2404 {
|
||
--tweak-summary-block-radius: 0px 0px 0px 0px;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
#block-yui_3_17_2_1_1688375441315_2404 {
|
||
}
|
||
|
||
</style>
|
||
|
||
</div></div></div></div></div>
|
||
</div>
|
||
|
||
<div class="page-divider"></div>
|
||
|
||
<footer id="footer">
|
||
<div class="sqs-layout sqs-grid-1 columns-1 empty" data-layout-label="Footer Content" data-type="block-field" data-updated-on="1711518311025" id="footerBlock"><div class="row sqs-row"><div class="col sqs-col-1 span-1"></div></div></div>
|
||
|
||
|
||
<div id="socialLinks" class="social-links sqs-svg-icon--list" data-content-field="connected-accounts">
|
||
|
||
|
||
|
||
<a href="https://github.com/whereistanya" target="_blank" class="sqs-svg-icon--wrapper github">
|
||
<div>
|
||
<svg class="sqs-svg-icon--social" viewBox="0 0 64 64">
|
||
<use class="sqs-use--icon" xlink:href="#github-icon"></use>
|
||
<use class="sqs-use--mask" xlink:href="#github-mask"></use>
|
||
</svg>
|
||
</div>
|
||
</a>
|
||
|
||
<a href="mailto:blog@noidea.dog" target="_blank" class="sqs-svg-icon--wrapper email">
|
||
<div>
|
||
<svg class="sqs-svg-icon--social" viewBox="0 0 64 64">
|
||
<use class="sqs-use--icon" xlink:href="#email-icon"></use>
|
||
<use class="sqs-use--mask" xlink:href="#email-mask"></use>
|
||
</svg>
|
||
</div>
|
||
</a>
|
||
|
||
<a href="https://hachyderm.io/@whereistanya" target="_blank" class="sqs-svg-icon--wrapper url">
|
||
<div>
|
||
<svg class="sqs-svg-icon--social" viewBox="0 0 64 64">
|
||
<use class="sqs-use--icon" xlink:href="#url-icon"></use>
|
||
<use class="sqs-use--mask" xlink:href="#url-mask"></use>
|
||
</svg>
|
||
</div>
|
||
</a>
|
||
|
||
<a href="http://twitter.com/whereistanya" target="_blank" class="sqs-svg-icon--wrapper twitter-unauth">
|
||
<div>
|
||
<svg class="sqs-svg-icon--social" viewBox="0 0 64 64">
|
||
<use class="sqs-use--icon" xlink:href="#twitter-unauth-icon"></use>
|
||
<use class="sqs-use--mask" xlink:href="#twitter-unauth-mask"></use>
|
||
</svg>
|
||
</div>
|
||
</a>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</footer>
|
||
|
||
</div>
|
||
|
||
<div></div>
|
||
|
||
<script defer="true" src="https://static1.squarespace.com/static/ta/4fd1028ee4b02be53c65dfb3/1363/scripts/site-bundle.js" type="text/javascript"></script>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:none" data-usage="social-icons-svg"><symbol id="github-icon" viewBox="0 0 64 64"><path d="M32,16c-8.8,0-16,7.2-16,16c0,7.1,4.6,13.1,10.9,15.2 c0.8,0.1,1.1-0.3,1.1-0.8c0-0.4,0-1.4,0-2.7c-4.5,1-5.4-2.1-5.4-2.1c-0.7-1.8-1.8-2.3-1.8-2.3c-1.5-1,0.1-1,0.1-1 c1.6,0.1,2.5,1.6,2.5,1.6c1.4,2.4,3.7,1.7,4.7,1.3c0.1-1,0.6-1.7,1-2.1c-3.6-0.4-7.3-1.8-7.3-7.9c0-1.7,0.6-3.2,1.6-4.3 c-0.2-0.4-0.7-2,0.2-4.2c0,0,1.3-0.4,4.4,1.6c1.3-0.4,2.6-0.5,4-0.5c1.4,0,2.7,0.2,4,0.5c3.1-2.1,4.4-1.6,4.4-1.6 c0.9,2.2,0.3,3.8,0.2,4.2c1,1.1,1.6,2.5,1.6,4.3c0,6.1-3.7,7.5-7.3,7.9c0.6,0.5,1.1,1.5,1.1,3c0,2.1,0,3.9,0,4.4 c0,0.4,0.3,0.9,1.1,0.8C43.4,45.1,48,39.1,48,32C48,23.2,40.8,16,32,16z"/></symbol><symbol id="github-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M37.1,47.2c-0.8,0.2-1.1-0.3-1.1-0.8c0-0.5,0-2.3,0-4.4c0-1.5-0.5-2.5-1.1-3 c3.6-0.4,7.3-1.7,7.3-7.9c0-1.7-0.6-3.2-1.6-4.3c0.2-0.4,0.7-2-0.2-4.2c0,0-1.3-0.4-4.4,1.6c-1.3-0.4-2.6-0.5-4-0.5 c-1.4,0-2.7,0.2-4,0.5c-3.1-2.1-4.4-1.6-4.4-1.6c-0.9,2.2-0.3,3.8-0.2,4.2c-1,1.1-1.6,2.5-1.6,4.3c0,6.1,3.7,7.5,7.3,7.9 c-0.5,0.4-0.9,1.1-1,2.1c-0.9,0.4-3.2,1.1-4.7-1.3c0,0-0.8-1.5-2.5-1.6c0,0-1.6,0-0.1,1c0,0,1,0.5,1.8,2.3c0,0,0.9,3.1,5.4,2.1 c0,1.3,0,2.3,0,2.7c0,0.4-0.3,0.9-1.1,0.8C20.6,45.1,16,39.1,16,32c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16 C48,39.1,43.4,45.1,37.1,47.2z"/></symbol><symbol id="email-icon" viewBox="0 0 64 64"><path d="M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z"/></symbol><symbol id="email-mask" viewBox="0 0 64 64"><path d="M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z"/></symbol><symbol id="url-icon" viewBox="0 0 64 64"><path d="M40.038 24c2.203 0 4.08.801 5.633 2.404C47.224 27.956 48 29.834 48 32.038c0 2.203-.776 4.106-2.329 5.709-1.552 1.552-3.43 2.328-5.633 2.328h-6.46v-3.08h6.46c1.352 0 2.504-.475 3.455-1.427 1.002-1.002 1.502-2.178 1.502-3.53 0-1.353-.5-2.504-1.502-3.456-.952-1.001-2.103-1.502-3.455-1.502h-6.46V24h6.46zm-14.423 9.615V30.46h12.77v3.155h-12.77zm-5.183-5.033c-.952.952-1.427 2.103-1.427 3.456 0 1.352.475 2.529 1.427 3.53 1.002.952 2.178 1.427 3.53 1.427h6.46v3.08h-6.46c-2.203 0-4.08-.776-5.633-2.329C16.776 36.145 16 34.241 16 32.038c0-2.204.776-4.082 2.329-5.634C19.88 24.8 21.759 24 23.962 24h6.46v3.08h-6.46c-1.352 0-2.529.5-3.53 1.502z"/></symbol><symbol id="url-mask" viewBox="0 0 64 64"><path fill-rule="evenodd" clip-rule="evenodd" d="M64 0H0v64h64V0zM45.671 26.404C44.12 24.8 42.241 24 40.038 24h-6.46v3.08h6.46c1.352 0 2.504.5 3.455 1.502 1.002.952 1.502 2.103 1.502 3.456 0 1.352-.5 2.529-1.502 3.53-.952.952-2.103 1.427-3.455 1.427h-6.46v3.08h6.46c2.203 0 4.08-.776 5.633-2.329C47.224 36.145 48 34.241 48 32.038c0-2.204-.776-4.082-2.329-5.634zm-7.286 4.056h-12.77v3.155h12.77V30.46zm-19.38 1.578c0-1.353.475-2.504 1.427-3.456 1.002-1.001 2.178-1.502 3.53-1.502h6.46V24h-6.46c-2.203 0-4.08.801-5.633 2.404C16.776 27.956 16 29.834 16 32.038c0 2.203.776 4.106 2.329 5.709 1.552 1.552 3.43 2.328 5.633 2.328h6.46v-3.08h-6.46c-1.352 0-2.529-.475-3.53-1.427-.952-1.002-1.427-2.178-1.427-3.53z"/></symbol><symbol id="twitter-unauth-icon" viewBox="0 0 64 64"><path d="M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z"/></symbol><symbol id="twitter-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z"/></symbol></svg>
|
||
|
||
|
||
|
||
</body>
|
||
|
||
</html>
|