CINXE.COM
<!doctype html><html lang="en"><head><title data-rh="true">Joyce Lin – Medium</title><meta data-rh="true" charset="utf-8"/><meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1"/><meta data-rh="true" name="theme-color" content="#000000"/><meta data-rh="true" name="twitter:app:name:iphone" content="Medium"/><meta data-rh="true" name="twitter:app:id:iphone" content="828256236"/><meta data-rh="true" property="al:ios:app_name" content="Medium"/><meta data-rh="true" property="al:ios:app_store_id" content="828256236"/><meta data-rh="true" property="al:android:package" content="com.medium.reader"/><meta data-rh="true" property="al:android:app_name" content="Medium"/><meta data-rh="true" property="fb:app_id" content="542599432471018"/><meta data-rh="true" property="og:site_name" content="Medium"/><meta data-rh="true" property="og:title" content="Joyce Lin – Medium"/><meta data-rh="true" name="description" content="Read writing from Joyce Lin on Medium. coding and cats in San Francisco. Every day, Joyce Lin and thousands of other voices read, write, and share important stories on Medium."/><meta data-rh="true" property="og:description" content="Read writing from Joyce Lin on Medium. coding and cats in San Francisco. Every day, Joyce Lin and thousands of other voices read, write, and share important stories on Medium."/><meta data-rh="true" name="twitter:description" content="Read writing from Joyce Lin on Medium. coding and cats in San Francisco. Every day, Joyce Lin and thousands of other voices read, write, and share important stories on Medium."/><meta data-rh="true" property="og:url" content="https://joycelin-codes.medium.com"/><meta data-rh="true" property="al:web:url" content="https://joycelin-codes.medium.com"/><meta data-rh="true" property="al:ios:url" content="medium://@joycelin-codes"/><meta data-rh="true" name="twitter:app:url:iphone" content="medium://@joycelin-codes"/><meta data-rh="true" property="al:android:url" content="medium://@joycelin-codes"/><meta data-rh="true" property="og:image" content="https://miro.medium.com/v2/resize:fit:2400/1*KdCZi31V8ANQezzWiDQfXA.jpeg"/><meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/v2/resize:fit:2400/1*KdCZi31V8ANQezzWiDQfXA.jpeg"/><meta data-rh="true" property="profile:username" content="joycelin-codes"/><meta data-rh="true" property="profile:first_name" content="Joyce"/><meta data-rh="true" property="profile:last_name" content="Lin"/><meta data-rh="true" property="og:type" content="profile"/><meta data-rh="true" name="twitter:card" content="summary"/><link data-rh="true" rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19"/><link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml"/><link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/v2/resize:fill:240:240/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="mask-icon" href="https://miro.medium.com/v2/resize:fill:1000:1000/7*GAOKVe--MXbEJmV9230oOQ.png" color="#171717"/><link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" rel="canonical" href="https://joycelin-codes.medium.com"/><link data-rh="true" rel="alternate" href="android-app://com.medium.reader/https/medium.com/@joycelin-codes"/><link data-rh="true" id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/@joycelin-codes"/><link data-rh="true" rel="me" href="https://twitter.com/PetuniaGray"/><link data-rh="true" rel="preload" href="https://miro.medium.com/v2/resize:fit:3000/1*WHJHI5GXQfTDGYG2ALNEmA.png" as="image"/><style type="text/css" data-fela-rehydration="416" data-fela-type="STATIC">html{box-sizing:border-box;-webkit-text-size-adjust:100%}*, *:before, *:after{box-sizing:inherit}body{margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:rgba(0,0,0,0.8);position:relative;min-height:100vh}h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form{margin:0}menu, ol, ul{padding:0;list-style:none;list-style-image:none}main{display:block}a{color:inherit;text-decoration:none}a, button, input{-webkit-tap-highlight-color:transparent}img, svg{vertical-align:middle}button{background:transparent;overflow:visible}button, input, optgroup, select, textarea{margin:0}:root{--reach-tabs:1;--reach-menu-button:1}#speechify-root{font-family:Sohne, sans-serif}div[data-popper-reference-hidden="true"]{visibility:hidden;pointer-events:none}.grecaptcha-badge{visibility:hidden} /*XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>*/.hljs {background: #fff;color: black; }/* Gray DOCTYPE selectors like WebKit */ .xml .hljs-meta {color: #c0c0c0; }.hljs-comment, .hljs-quote {color: #007400; }.hljs-tag, .hljs-attribute, .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-name {color: #aa0d91; }.hljs-variable, .hljs-template-variable {color: #3F6E74; }.hljs-code, .hljs-string, .hljs-meta .hljs-string {color: #c41a16; }.hljs-regexp, .hljs-link {color: #0E0EFF; }.hljs-title, .hljs-symbol, .hljs-bullet, .hljs-number {color: #1c00cf; }.hljs-section, .hljs-meta {color: #643820; }.hljs-title.class_, .hljs-class .hljs-title, .hljs-type, .hljs-built_in, .hljs-params {color: #5c2699; }.hljs-attr {color: #836C28; }.hljs-subst {color: #000; }.hljs-formula {background-color: #eee;font-style: italic; }.hljs-addition {background-color: #baeeba; }.hljs-deletion {background-color: #ffc8bd; }.hljs-selector-id, .hljs-selector-class {color: #9b703f; }.hljs-doctag, .hljs-strong {font-weight: bold; }.hljs-emphasis {font-style: italic; } </style><style type="text/css" data-fela-rehydration="416" data-fela-type="KEYFRAME">@-webkit-keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@-moz-keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes k1{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE">.a{font-family:medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}.b{font-weight:400}.c{background-color:rgba(255, 255, 255, 1)}.l{display:block}.m{position:sticky}.n{top:0}.o{z-index:500}.p{padding:0 24px}.q{align-items:center}.r{border-bottom:solid 1px #F2F2F2}.y{height:41px}.z{line-height:20px}.ab{display:flex}.ac{height:57px}.ae{flex:1 0 auto}.af{color:inherit}.ag{fill:inherit}.ah{font-size:inherit}.ai{border:inherit}.aj{font-family:inherit}.ak{letter-spacing:inherit}.al{font-weight:inherit}.am{padding:0}.an{margin:0}.ao{cursor:pointer}.ap:disabled{cursor:not-allowed}.aq:disabled{color:#6B6B6B}.ar:disabled{fill:#6B6B6B}.au{width:auto}.av path{fill:#242424}.aw{height:25px}.ax{margin-left:16px}.ay{border:none}.az{border-radius:20px}.ba{width:240px}.bb{background:#F9F9F9}.bc path{fill:#6B6B6B}.be{outline:none}.bf{font-family:sohne, "Helvetica Neue", Helvetica, Arial, sans-serif}.bg{font-size:14px}.bh{width:100%}.bi{padding:10px 20px 10px 0}.bj{background-color:transparent}.bk{color:#242424}.bl::placeholder{color:#6B6B6B}.bm{display:inline-block}.bn{margin-left:12px}.bo{margin-right:12px}.bp{border-radius:4px}.bq{margin-left:24px}.br{height:24px}.bx{background-color:#F9F9F9}.by{border-radius:50%}.bz{height:32px}.ca{width:32px}.cb{margin:auto}.cc{max-width:1336px}.cd{flex-direction:row}.ce{justify-content:space-evenly}.cl{flex:1 1 auto}.cm{height:100vh}.cn{justify-content:center}.co{width:40px}.cp{height:40px}.cq{border-width:2px}.cr{border-style:solid}.cs{border-color:#242424 transparent #242424 #242424}.ct{animation:k1 2s infinite linear;}.cu{padding-right:24px}.dm{box-sizing:border-box}.dn{border-left:1px solid #F2F2F2}.do{min-height:100vh}.dp{height:100%}.dq{position:relative}.dr{margin-left:8px}.ds{color:#6B6B6B}.dt{font-size:13px}.el{color:#FFFFFF}.em{fill:#FFFFFF}.eo{background:#1A8917}.ep{border-color:#1A8917}.et:disabled{cursor:inherit !important}.eu:disabled{opacity:0.3}.ev:disabled:hover{background:#1A8917}.ew:disabled:hover{border-color:#1A8917}.ex{border-radius:99em}.ey{border-width:1px}.ez{text-decoration:none}.fa{text-align:center}.fd{margin-right:32px}.fe{fill:#6B6B6B}.fh{background:transparent}.fi svg{margin-left:4px}.fj svg{fill:#6B6B6B}.fl{box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.05)}.fm{position:absolute}.fo{background-color:#F2F2F2}.fp{top:57px}.fq{min-height:calc(100vh - 57px)}.fr{flex-direction:column}.fs{padding-bottom:0px}.ft{border-bottom:none}.fu{margin-top:40px}.fv{height:88px}.fw{width:88px}.fy{margin-top:16px}.fz{align-items:baseline}.ga{flex-wrap:wrap}.gb{word-break:break-word}.gc{padding-right:8px}.gd{font-weight:500}.ge{font-size:16px}.gf{letter-spacing:0}.gg{margin-top:8px}.gh{line-height:24px}.gi{margin-top:12px}.gj{margin-bottom:40px}.gk{margin-top:24px}.gl{padding:8px 16px}.gm{stroke:#F2F2F2}.gn{height:36px}.go{width:36px}.gp{color:#F2F2F2}.gq{fill:#F2F2F2}.gr{background:#F2F2F2}.gs{border-color:#F2F2F2}.gy{margin-bottom:16px}.gz{justify-content:space-between}.ha p{word-break:break-all}.hd{padding-right:10px}.he{padding-right:12px}.hf{height:20px}.hg{width:20px}.hh{overflow:hidden}.hi{max-height:20px}.hj{text-overflow:ellipsis}.hk{display:-webkit-box}.hl{-webkit-line-clamp:1}.hm{-webkit-box-orient:vertical}.hn{word-break:break-all}.hp{padding:4px}.hs{border-radius:6px}.ht{border-radius:2px}.hu{padding:24px 0}.hv{margin-right:6px}.hw{font-size:11px}.hx{line-height:16px}.hy{height:150px}.hz{background-position:top}.ia{background-size:cover}.ib{background-image:linear-gradient(to bottom, #ffffffb2, transparent), url(https://miro.medium.com/v2/resize:fit:3000/1*WHJHI5GXQfTDGYG2ALNEmA.png)}.ic{min-width:0}.id{margin:0 24px}.ih{box-shadow:inset 0 -1px 0 #F2F2F2}.jk{justify-content:flex-start}.jl{margin-right:20px}.jm{align-self:flex-start}.jn{flex:0 0 auto}.jo{height:48px}.jp{width:48px}.kp{color:rgba(25, 25, 25, 1)}.ks{margin-top:2px}.kt{overflow-x:scroll}.ku{overflow-y:hidden}.kv::-webkit-scrollbar{height:0}.kw::-webkit-scrollbar{width:0}.kx::-webkit-scrollbar{background:transparent}.ky{scrollbar-width:none}.kz{-ms-overflow-style:none}.la{min-width:-webkit-max-content}.lb{padding:0px}.ld{padding-bottom:16px}.le{border-bottom:1px solid #242424}.lf{min-width:max-content}.lg{border-bottom:1px solid #F2F2F2}.lh{right:0}.li{bottom:12px}.lj{padding-left:42px}.lk{pointer-events:none}.ll{opacity:0}.lm{background:linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.75) 25%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 1) 75%)}.ln{margin:2px}.lo svg path{fill:#6B6B6B}.lq{left:0}.lr{padding-right:42px}.ls{background:linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.75) 25%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 1) 75%)}.lt{padding:8px 0}.lu{box-sizing:content-box}.lv{white-space:pre-wrap}.lw{margin-bottom:20px}.lx{margin-left:2px}.ly{gap:10px}.lz a{position:relative}.ma a{z-index:2}.mb button{position:relative}.mc button{z-index:2}.mi{margin-right:8px}.mj{padding-right:4px}.ml a{position:static}.mm a::before{content:""}.mn a::before{position:absolute}.mo a::before{z-index:1}.mp a::before{top:0}.mq a::before{left:0}.mr a::before{bottom:0}.ms a::before{right:0}.mt a{display:flex}.mu a{flex-direction:column}.mv{font-weight:700}.nq{padding-top:8px}.nr{max-height:40px}.ns{-webkit-line-clamp:2}.od{max-width:200px}.oe{height:16px}.of{opacity:1}.og{transition:opacity 300ms ease-out}.oh{gap:16px}.oi{width:80px}.oj{gap:4px}.ok{justify-content:flex-end}.ol{flex:0 0 0}.on{padding:12px}.ot{padding-top:12px}.ou{height:0px}.pa{margin-top:32px}.as:hover:not(:disabled){color:rgba(25, 25, 25, 1)}.at:hover:not(:disabled){fill:rgba(25, 25, 25, 1)}.eq:hover{background:#156D12}.er:hover{border-color:#156D12}.es:hover{cursor:pointer}.ff:hover{color:#242424}.fg:hover{fill:#242424}.fk:hover svg{fill:#242424}.fn:hover{background-color:rgba(0, 0, 0, 0.1)}.fx:hover{background-color:none}.gt:hover{background:#F2F2F2}.gu:hover{border-color:#F2F2F2}.gv:hover{cursor:wait}.gw:hover{color:#F2F2F2}.gx:hover{fill:#F2F2F2}.hb:hover p{text-decoration:underline}.hc:hover p{color:rgba(61, 61, 61, 1)}.hq:hover path{fill:#000000}.lc:hover{color:#000000 !important}.lp:hover svg path{fill:#000000}.mk:hover{text-decoration:underline}.om:hover{color:#000000}.bd:focus-within path{fill:#242424}.hr:focus path{fill:#000000}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (min-width: 1080px)">.d{display:none}.bw{width:64px}.cf{max-width:728px}.cg{min-width:728px}.di{padding-left:clamp(24px, 24px + 100vw - 1080px, 40px)}.dj{display:block}.dk{min-width:368px}.dl{max-width:368px}.ec{font-size:14px}.ed{line-height:20px}.ej{font-size:13px}.ek{padding:5px 12px}.fc{display:flex}.ig{max-width:680px}.im{margin:52px 0 48px}.jb{margin-bottom:40px}.jc{align-items:center}.jd{justify-content:flex-end}.je{flex-wrap:nowrap}.jj{margin-right:0}.kk{font-size:42px}.kl{line-height:52px}.km{max-height:52px}.kn{-webkit-line-clamp:1}.ko{letter-spacing:-0.011em}.mh{margin-bottom:16px}.nl{font-size:24px}.nm{line-height:30px}.nn{max-height:90px}.no{-webkit-line-clamp:3}.np{letter-spacing:-0.016em}.ob{padding-top:10px}.oc{width:100%}.os{margin-left:56px}.oz{margin-top:20px}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (max-width: 1079.98px)">.e{display:none}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (max-width: 903.98px)">.f{display:none}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (max-width: 727.98px)">.g{display:none}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (max-width: 551.98px)">.h{display:none}.s{display:flex}.t{justify-content:space-between}.bs{width:24px}.ck{min-width:0}.cv{padding-left:24px}.cw{min-width:352px}.cx{max-width:352px}.du{font-size:13px}.dv{line-height:20px}.ee{padding:0px 8px 1px}.ii{margin:24px 0}.in{margin-bottom:24px}.io{align-items:flex-start}.ip{flex-wrap:wrap}.jf{margin-right:0}.jq{font-size:24px}.jr{line-height:30px}.js{max-height:120px}.jt{-webkit-line-clamp:4}.ju{letter-spacing:-0.016em}.kq{flex-wrap:nowrap}.md{margin-bottom:16px}.mw{font-size:20px}.mx{line-height:24px}.my{max-height:96px}.mz{letter-spacing:0}.nt{padding-top:2px}.nu{width:100%}.oo{margin-left:24px}.ov{margin-top:20px}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">.i{display:none}.bv{width:64px}.ch{min-width:0}.de{padding-left:24px}.df{display:block}.dg{min-width:352px}.dh{max-width:352px}.ea{font-size:14px}.eb{line-height:20px}.eh{font-size:13px}.ei{padding:5px 12px}.fb{display:flex}.if{max-width:680px}.il{margin:52px 0 48px}.ix{margin-bottom:40px}.iy{align-items:center}.iz{justify-content:flex-end}.ja{flex-wrap:nowrap}.ji{margin-right:16px}.kf{font-size:42px}.kg{line-height:52px}.kh{max-height:52px}.ki{-webkit-line-clamp:1}.kj{letter-spacing:-0.011em}.mg{margin-bottom:16px}.ng{font-size:24px}.nh{line-height:30px}.ni{max-height:90px}.nj{-webkit-line-clamp:3}.nk{letter-spacing:-0.016em}.nz{padding-top:10px}.oa{width:100%}.or{margin-left:56px}.oy{margin-top:20px}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">.j{display:none}.w{display:flex}.x{justify-content:space-between}.bu{width:64px}.ci{min-width:0}.db{padding-left:24px}.dc{min-width:352px}.dd{max-width:352px}.dy{font-size:13px}.dz{line-height:20px}.eg{padding:0px 8px 1px}.ie{max-width:680px}.ik{margin:52px 0 48px}.it{margin-bottom:40px}.iu{align-items:flex-start}.iv{justify-content:flex-end}.iw{flex-wrap:nowrap}.jh{margin-right:16px}.ka{font-size:24px}.kb{line-height:30px}.kc{max-height:120px}.kd{-webkit-line-clamp:4}.ke{letter-spacing:-0.016em}.mf{margin-bottom:16px}.ne{max-height:90px}.nf{-webkit-line-clamp:3}.nx{padding-top:10px}.ny{width:100%}.oq{margin-left:56px}.ox{margin-top:20px}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">.k{display:none}.u{display:flex}.v{justify-content:space-between}.bt{width:24px}.cj{min-width:0}.cy{padding-left:24px}.cz{min-width:352px}.da{max-width:352px}.dw{font-size:13px}.dx{line-height:20px}.ef{padding:0px 8px 1px}.ij{margin:24px 0}.iq{margin-bottom:24px}.ir{align-items:flex-start}.is{flex-wrap:wrap}.jg{margin-right:0}.jv{font-size:24px}.jw{line-height:30px}.jx{max-height:120px}.jy{-webkit-line-clamp:4}.jz{letter-spacing:-0.016em}.kr{flex-wrap:nowrap}.me{margin-bottom:16px}.na{font-size:20px}.nb{line-height:24px}.nc{max-height:96px}.nd{letter-spacing:0}.nv{padding-top:2px}.nw{width:100%}.op{margin-left:24px}.ow{margin-top:20px}</style><style type="text/css" data-fela-rehydration="416" data-fela-type="RULE" media="(orientation: landscape) and (max-width: 903.98px)">.ho{max-height:none}</style></head><body><div id="root"><div class="a b c"><div class="d e f g h i j k"></div><script>document.domain = document.domain;</script><div class="l c"><div class="l m n o c"><div class="p q r s t u v w x i d y z"><a class="ds ag dt bf ak b am an ao ap aq ar as at s u w i d q dp z" href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com%2F&%7Efeature=LoOpenInAppButton&%7Echannel=ShowUser&source=---two_column_layout_nav----------------------------------" rel="noopener follow">Open in app<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="none" viewBox="0 0 10 10" class="dr"><path fill="currentColor" d="M.985 8.485a.375.375 0 1 0 .53.53zM8.75 1.25h.375A.375.375 0 0 0 8.75.875zM8.375 6.5a.375.375 0 1 0 .75 0zM3.5.875a.375.375 0 1 0 0 .75zm-1.985 8.14 7.5-7.5-.53-.53-7.5 7.5zm6.86-7.765V6.5h.75V1.25zM3.5 1.625h5.25v-.75H3.5z"></path></svg></a><div class="ab q"><p class="bf b du dv dw dx dy dz ea eb ec ed ds"><span><button class="bf b du dv ee dw dx ef dy dz eg eh eb ei ej ed ek el em eo ep eq er es et eu ev ew ex ey cr dm bm ez fa" data-testid="headerSignUpButton">Sign up</button></span></p><div class="ax l"><p class="bf b du dv dw dx dy dz ea eb ec ed ds"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fjoycelin-codes.medium.com%2F&source=user_profile_page---two_column_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="p q r ab ac"><div class="ab q ae"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ab" aria-label="Homepage" data-testid="headerMediumLogo" href="https://medium.com/?source=---two_column_layout_nav----------------------------------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="719" height="160" fill="none" viewBox="0 0 719 160" class="au av aw"><path fill="#242424" d="m174.104 9.734.215-.047V8.02H130.39L89.6 103.89 48.81 8.021H1.472v1.666l.212.047c8.018 1.81 12.09 4.509 12.09 14.242V137.93c0 9.734-4.087 12.433-12.106 14.243l-.212.047v1.671h32.118v-1.665l-.213-.048c-8.018-1.809-12.089-4.509-12.089-14.242V30.586l52.399 123.305h2.972l53.925-126.743V140.75c-.687 7.688-4.721 10.062-11.982 11.701l-.215.05v1.652h55.948v-1.652l-.215-.05c-7.269-1.639-11.4-4.013-12.087-11.701l-.037-116.774h.037c0-9.733 4.071-12.432 12.087-14.242m25.555 75.488c.915-20.474 8.268-35.252 20.606-35.507 3.806.063 6.998 1.312 9.479 3.714 5.272 5.118 7.751 15.812 7.368 31.793zm-.553 5.77h65.573v-.275c-.186-15.656-4.721-27.834-13.466-36.196-7.559-7.227-18.751-11.203-30.507-11.203h-.263c-6.101 0-13.584 1.48-18.909 4.16-6.061 2.807-11.407 7.003-15.855 12.511-7.161 8.874-11.499 20.866-12.554 34.343q-.05.606-.092 1.212a50 50 0 0 0-.065 1.151 85.807 85.807 0 0 0-.094 5.689c.71 30.524 17.198 54.917 46.483 54.917 25.705 0 40.675-18.791 44.407-44.013l-1.886-.664c-6.557 13.556-18.334 21.771-31.738 20.769-18.297-1.369-32.314-19.922-31.042-42.395m139.722 41.359c-2.151 5.101-6.639 7.908-12.653 7.908s-11.513-4.129-15.418-11.63c-4.197-8.053-6.405-19.436-6.405-32.92 0-28.067 8.729-46.22 22.24-46.22 5.657 0 10.111 2.807 12.236 7.704zm43.499 20.008c-8.019-1.897-12.089-4.722-12.089-14.951V1.309l-48.716 14.353v1.757l.299-.024c6.72-.543 11.278.386 13.925 2.83 2.072 1.915 3.082 4.853 3.082 8.987v18.66c-4.803-3.067-10.516-4.56-17.448-4.56-14.059 0-26.909 5.92-36.176 16.672-9.66 11.205-14.767 26.518-14.767 44.278-.003 31.72 15.612 53.039 38.851 53.039 13.595 0 24.533-7.449 29.54-20.013v16.865h43.711v-1.746zM424.1 19.819c0-9.904-7.468-17.374-17.375-17.374-9.859 0-17.573 7.632-17.573 17.374s7.721 17.374 17.573 17.374c9.907 0 17.375-7.47 17.375-17.374m11.499 132.546c-8.019-1.897-12.089-4.722-12.089-14.951h-.035V43.635l-43.714 12.551v1.705l.263.024c9.458.842 12.047 4.1 12.047 15.152v81.086h43.751v-1.746zm112.013 0c-8.018-1.897-12.089-4.722-12.089-14.951V43.635l-41.621 12.137v1.71l.246.026c7.733.813 9.967 4.257 9.967 15.36v59.279c-2.578 5.102-7.415 8.131-13.274 8.336-9.503 0-14.736-6.419-14.736-18.073V43.638l-43.714 12.55v1.703l.262.024c9.459.84 12.05 4.097 12.05 15.152v50.17a56.3 56.3 0 0 0 .91 10.444l.787 3.423c3.701 13.262 13.398 20.197 28.59 20.197 12.868 0 24.147-7.966 29.115-20.43v17.311h43.714v-1.747zm169.818 1.788v-1.749l-.213-.05c-8.7-2.006-12.089-5.789-12.089-13.49v-63.79c0-19.89-11.171-31.761-29.883-31.761-13.64 0-25.141 7.882-29.569 20.16-3.517-13.01-13.639-20.16-28.606-20.16-13.146 0-23.449 6.938-27.869 18.657V43.643L545.487 55.68v1.715l.263.024c9.345.829 12.047 4.181 12.047 14.95v81.784h40.787v-1.746l-.215-.053c-6.941-1.631-9.181-4.606-9.181-12.239V66.998c1.836-4.289 5.537-9.37 12.853-9.37 9.086 0 13.692 6.296 13.692 18.697v77.828h40.797v-1.746l-.215-.053c-6.94-1.631-9.18-4.606-9.18-12.239V75.066a42 42 0 0 0-.578-7.26c1.947-4.661 5.86-10.177 13.475-10.177 9.214 0 13.691 6.114 13.691 18.696v77.828z"></path></svg></a><div class="ax h"><div class="ab ay az ba bb q bc bd"><div class="bm" aria-hidden="false" aria-describedby="searchResults" aria-labelledby="searchResults"></div><div class="bn bo ab"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div><input role="combobox" aria-controls="searchResults" aria-expanded="false" aria-label="search" data-testid="headerSearchInput" tabindex="0" class="ay be bf bg z bh bi bj bk bl" placeholder="Search" value=""/></div></div></div><div class="h k w fb fc"><div class="fd ab"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerWriteButton" href="https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---two_column_layout_nav-----------------------new_post_topnav-----------" rel="noopener follow"><div class="bf b bg z ds dq fe ab q ff fg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Write"><path fill="currentColor" d="M14 4a.5.5 0 0 0 0-1zm7 6a.5.5 0 0 0-1 0zm-7-7H4v1h10zM3 4v16h1V4zm1 17h16v-1H4zm17-1V10h-1v10zm-1 1a1 1 0 0 0 1-1h-1zM3 20a1 1 0 0 0 1 1v-1zM4 3a1 1 0 0 0-1 1h1z"></path><path stroke="currentColor" d="m17.5 4.5-8.458 8.458a.25.25 0 0 0-.06.098l-.824 2.47a.25.25 0 0 0 .316.316l2.47-.823a.25.25 0 0 0 .098-.06L19.5 6.5m-2-2 2.323-2.323a.25.25 0 0 1 .354 0l1.646 1.646a.25.25 0 0 1 0 .354L19.5 6.5m-2-2 2 2"></path></svg><div class="dr l">Write</div></div></a></span></div></div><div class="k j i d"><div class="fd ab"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSearchButton" href="https://medium.com/search?source=---two_column_layout_nav----------------------------------" rel="noopener follow"><div class="bf b bg z ds dq fe ab q ff fg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Search"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div></a></div></div><div class="fd h k j"><div class="ab q"><p class="bf b du dv dw dx dy dz ea eb ec ed ds"><span><button class="bf b du dv ee dw dx ef dy dz eg eh eb ei ej ed ek el em eo ep eq er es et eu ev ew ex ey cr dm bm ez fa" data-testid="headerSignUpButton">Sign up</button></span></p><div class="ax l"><p class="bf b du dv dw dx dy dz ea eb ec ed ds"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" href="https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fjoycelin-codes.medium.com%2F&source=user_profile_page---two_column_layout_nav-----------------------global_nav-----------" rel="noopener follow">Sign in</a></span></p></div></div></div><div class="l" aria-hidden="false"><button class="ay fh am ab q ao fi fj fk" aria-label="user options menu" data-testid="headerUserIcon"><div class="l dq"><img alt="" class="l dm by bz ca fo" src="https://miro.medium.com/v2/resize:fill:64:64/1*dmbNkD5D-u45r44go_cf0g.png" width="32" height="32" loading="lazy" role="presentation"/><div class="fl by l bz ca fm n ay fn"></div></div></button></div></div></div><div class="cb cc l"><div class="ab cd ce"><main class="cf cg ch ci cj ck l cl"><div class="do ab fr c"><div class="l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/?source=user_profile_page----------------------8e51cb7fb823---------------"><div class="ab fr hy hz ia ib"></div></a><div class="ab cn"><div class="ic bh id ie if ig"><div class="ih ii ij ik il im l"><div class="in io t ip iq ir v is it iu iv iw ix iy iz ja jb jc jd je ab"><div class="bh ab io ir iu iy jc"><div class="jf jg jh ji jj ab q jk cl"><div class="jl i d jm jn"><div class="l dq"><img alt="Joyce Lin" class="l dm by jo jp fo" src="https://miro.medium.com/v2/resize:fill:96:96/1*KdCZi31V8ANQezzWiDQfXA.jpeg" width="48" height="48" loading="lazy"/><div class="fl by l jo jp fm n ay fx"></div></div></div><div class="l"><div class="ab kq kr iw ja je"><span class="bf gd jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko hh hj hk hm gb ho kp gc">Joyce Lin</span><div class="ks ab q"></div></div><div class="gg i d"><p class="bf b ge gh ds"><span class="pw-follower-count bf b ge gh ds"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/followers?source=user_profile_page----------------------8e51cb7fb823---------------">1.4K Followers</a></span></p></div></div></div></div></div><nav class="ih hh l dq"><div class="ab q kt ku kv kw kx ky kz"><span class="la l"><div class="ld le fd lf l"><a class="ay ao lb" role="tab" rel="noopener follow" href="/?source=user_profile_page----------------------8e51cb7fb823---------------"><p class="bf b bg z bk"><span class="lc">Home</span></p></a></div></span><span class="la l"><div class="ld lg fd lf l"><a class="ay ao lb" role="tab" rel="noopener follow" href="/about?source=user_profile_page----------------------8e51cb7fb823---------------"><p class="bf b bg z ds"><span class="lc">About</span></p></a></div></span><div class="fm lh n li lj ab q lk ll lm"><button class="ay am ln ao lo lp" aria-label="next sections" tabindex="-1"><svg width="26px" height="26px" class="svgIcon-use" viewBox="0 0 19 19" style="transform:rotate(180deg)" aria-hidden="true"><path fill-rule="evenodd" d="M11.47 13.969 6.986 9.484 11.47 5l.553.492L8.03 9.484l3.993 3.993z"></path></svg></button></div><div class="fm lq n li lr ab q lk ll ls"><button class="ay am ln ao lo lp" aria-label="previous sections" tabindex="-1"><svg width="26px" height="26px" class="svgIcon-use" viewBox="0 0 19 19" aria-hidden="true"><path fill-rule="evenodd" d="M11.47 13.969 6.986 9.484 11.47 5l.553.492L8.03 9.484l3.993 3.993z"></path></svg></button></div></div></nav></div></div></div></div><div class="l ae"><div class="lt l"><div><div class="ab cn"><div class="ic bh id ie if ig"><div class="bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="lw lx ab q ly"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16" class="ds jn"><path fill="currentColor" fill-rule="evenodd" d="M9.788 1.027a.5.5 0 1 0-.707.707l.59.589-3.32 3.319a2.17 2.17 0 0 1-1.346.626l-2.442.21a.833.833 0 0 0-.518 1.42l2.676 2.675-3.418 3.417a.5.5 0 1 0 .707.707l3.418-3.417 2.675 2.675a.833.833 0 0 0 1.42-.518l.209-2.441c.044-.51.266-.986.627-1.347l3.318-3.32.59.59a.5.5 0 0 0 .707-.707l-.943-.943-3.3-3.3zm-3.653 9.546 2.422 2.422.179-2.085c.063-.743.388-1.44.916-1.968l3.318-3.32-2.593-2.592L7.06 6.349a3.17 3.17 0 0 1-1.969.916l-2.084.178 2.422 2.422z" clip-rule="evenodd"></path></svg><div class="bf b dt z ds ab lv hh">Pinned</div></div><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/how-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------0-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------0-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/how-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393?source=user_profile_page---------0-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">How Postman Engineering handles a million concurrent connections</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">The Server Foundation team at Postman shares the origin story of the Bifrost websocket gateway</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 22, 2020</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/how-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393?source=user_profile_page---------0-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>1</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F15c8807f6393&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fhow-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393&source=---------0-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="How Postman Engineering handles a million concurrent connections"><div class="j i d"><img alt="How Postman Engineering handles a million concurrent connections" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/1*YzAN-PbW3j9aDNOWCV0KJA.jpeg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="How Postman Engineering handles a million concurrent connections" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/1*YzAN-PbW3j9aDNOWCV0KJA.jpeg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 22, 2020</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/how-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393?source=user_profile_page---------0-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>1</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F15c8807f6393&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fhow-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393&source=---------0-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="lw lx ab q ly"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16" class="ds jn"><path fill="currentColor" fill-rule="evenodd" d="M9.788 1.027a.5.5 0 1 0-.707.707l.59.589-3.32 3.319a2.17 2.17 0 0 1-1.346.626l-2.442.21a.833.833 0 0 0-.518 1.42l2.676 2.675-3.418 3.417a.5.5 0 1 0 .707.707l3.418-3.417 2.675 2.675a.833.833 0 0 0 1.42-.518l.209-2.441c.044-.51.266-.986.627-1.347l3.318-3.32.59.59a.5.5 0 0 0 .707-.707l-.943-.943-3.3-3.3zm-3.653 9.546 2.422 2.422.179-2.085c.063-.743.388-1.44.916-1.968l3.318-3.32-2.593-2.592L7.06 6.349a3.17 3.17 0 0 1-1.969.916l-2.084.178 2.422 2.422z" clip-rule="evenodd"></path></svg><div class="bf b dt z ds ab lv hh">Pinned</div></div><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/run-a-minecraft-server-for-free-on-kubernetes-ac82a892969e" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://codeburst.io/?source=user_profile_page---------1-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="codeburst" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*mNmxddJJTzkiBfK77mWuGA.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://codeburst.io/?source=user_profile_page---------1-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">codeburst</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/run-a-minecraft-server-for-free-on-kubernetes-ac82a892969e?source=user_profile_page---------1-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Run a Minecraft server for free on Kubernetes</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Simplify deployment for multiplayer Minecraft on a self-hosted Raspberry Pi server using Kubernetes</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jul 29, 2020</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/run-a-minecraft-server-for-free-on-kubernetes-ac82a892969e?source=user_profile_page---------1-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fac82a892969e&operation=register&redirect=https%3A%2F%2Fcodeburst.io%2Frun-a-minecraft-server-for-free-on-kubernetes-ac82a892969e&source=---------1-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Run a Minecraft server for free on Kubernetes"><div class="j i d"><img alt="Run a Minecraft server for free on Kubernetes" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/1*E8CGJR4PzBHArLnrae_ihA.jpeg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Run a Minecraft server for free on Kubernetes" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/1*E8CGJR4PzBHArLnrae_ihA.jpeg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jul 29, 2020</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/run-a-minecraft-server-for-free-on-kubernetes-ac82a892969e?source=user_profile_page---------1-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fac82a892969e&operation=register&redirect=https%3A%2F%2Fcodeburst.io%2Frun-a-minecraft-server-for-free-on-kubernetes-ac82a892969e&source=---------1-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/powering-home-automation-with-websocket-apis-8885a7601523" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------2-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------2-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/powering-home-automation-with-websocket-apis-8885a7601523?source=user_profile_page---------2-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Powering home automation with WebSocket APIs</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Get started with the Home Assistant WebSocket API</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jul 6, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/powering-home-automation-with-websocket-apis-8885a7601523?source=user_profile_page---------2-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F8885a7601523&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fpowering-home-automation-with-websocket-apis-8885a7601523&source=---------2-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Powering home automation with WebSocket APIs"><div class="j i d"><img alt="Powering home automation with WebSocket APIs" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/0*SV-NQW6-Sz2D9Buh.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Powering home automation with WebSocket APIs" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/0*SV-NQW6-Sz2D9Buh.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jul 6, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/powering-home-automation-with-websocket-apis-8885a7601523?source=user_profile_page---------2-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>2</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F8885a7601523&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fpowering-home-automation-with-websocket-apis-8885a7601523&source=---------2-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/get-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------3-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------3-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/get-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1?source=user_profile_page---------3-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Get started using Google Cloud APIs to manage cloud infrastructure</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">DevOps engineers and data engineers use APIs for many reasons, including to manage cloud infrastructure.</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jun 28, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/get-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1?source=user_profile_page---------3-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fbace9cac42e1&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fget-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1&source=---------3-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Get started using Google Cloud APIs to manage cloud infrastructure"><div class="j i d"><img alt="Get started using Google Cloud APIs to manage cloud infrastructure" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/1*vH0TBiRYXZVyT6zA9iuREQ.jpeg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Get started using Google Cloud APIs to manage cloud infrastructure" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/1*vH0TBiRYXZVyT6zA9iuREQ.jpeg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jun 28, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/get-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1?source=user_profile_page---------3-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fbace9cac42e1&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fget-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1&source=---------3-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/create-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------4-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------4-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/create-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f?source=user_profile_page---------4-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Create Reusable Tests and Scripts with OpenAPI Reusable Components</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Storing Postman scripts within reusable components in an OpenAPI definition</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Feb 9, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/create-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f?source=user_profile_page---------4-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F1e065fbbc29f&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fcreate-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f&source=---------4-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Create Reusable Tests and Scripts with OpenAPI Reusable Components"><div class="j i d"><img alt="Create Reusable Tests and Scripts with OpenAPI Reusable Components" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/0*crOBs2bpXWoeda4E.jpg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Create Reusable Tests and Scripts with OpenAPI Reusable Components" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/0*crOBs2bpXWoeda4E.jpg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Feb 9, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/create-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f?source=user_profile_page---------4-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F1e065fbbc29f&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fcreate-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f&source=---------4-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/set-up-a-websockets-server-in-node-js-b32da63f4f94" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------5-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------5-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/set-up-a-websockets-server-in-node-js-b32da63f4f94?source=user_profile_page---------5-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Set Up a WebSockets Server in Node.js</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">And use Postman to send and receive messages across the WebSocket connection</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Feb 1, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/set-up-a-websockets-server-in-node-js-b32da63f4f94?source=user_profile_page---------5-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>1</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fb32da63f4f94&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fset-up-a-websockets-server-in-node-js-b32da63f4f94&source=---------5-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Set Up a WebSockets Server in Node.js"><div class="j i d"><img alt="Set Up a WebSockets Server in Node.js" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/0*6DO93c3_KL111OXr.jpg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Set Up a WebSockets Server in Node.js" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/0*6DO93c3_KL111OXr.jpg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Feb 1, 2023</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/set-up-a-websockets-server-in-node-js-b32da63f4f94?source=user_profile_page---------5-------------8e51cb7fb823---------------"><div><div class="ab" aria-hidden="false"><div class="ab q oj"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#6B6B6B" viewBox="0 0 16 16"><path fill="#6B6B6B" d="M12.344 11.458A5.28 5.28 0 0 0 14 7.526C14 4.483 11.391 2 8.051 2S2 4.483 2 7.527c0 3.051 2.712 5.526 6.059 5.526a6.6 6.6 0 0 0 1.758-.236q.255.223.554.414c.784.51 1.626.768 2.512.768a.37.37 0 0 0 .355-.214.37.37 0 0 0-.03-.384 4.7 4.7 0 0 1-.857-1.958v.014z"></path></svg><span>1</span></div></div></div></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fb32da63f4f94&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fset-up-a-websockets-server-in-node-js-b32da63f4f94&source=---------5-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/get-started-with-the-snowflake-sql-api-in-postman-43427b5113ee" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/snowflake?source=user_profile_page---------6-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Snowflake Builders Blog: Data Engineers, App Developers, AI/ML, & Data Science" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*vRnX8xqeVdJ-DUZDZQ76vA.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/snowflake?source=user_profile_page---------6-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Snowflake Builders Blog: Data Engineers, App Developers, AI/ML, & Data Science</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/get-started-with-the-snowflake-sql-api-in-postman-43427b5113ee?source=user_profile_page---------6-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Get Started with the Snowflake SQL API In Postman</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Execute standard SQL queries and automate an API workflow in Postman</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 7, 2022</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/get-started-with-the-snowflake-sql-api-in-postman-43427b5113ee?source=user_profile_page---------6-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F43427b5113ee&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fsnowflake%2Fget-started-with-the-snowflake-sql-api-in-postman-43427b5113ee&source=---------6-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Get Started with the Snowflake SQL API In Postman"><div class="j i d"><img alt="Get Started with the Snowflake SQL API In Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/1*W5rdfMbYFNgkYnXOR-R0ZA.jpeg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Get Started with the Snowflake SQL API In Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/1*W5rdfMbYFNgkYnXOR-R0ZA.jpeg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 7, 2022</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/get-started-with-the-snowflake-sql-api-in-postman-43427b5113ee?source=user_profile_page---------6-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F43427b5113ee&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fsnowflake%2Fget-started-with-the-snowflake-sql-api-in-postman-43427b5113ee&source=---------6-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/how-to-build-a-jamstack-application-in-postman-99aba45a572b" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------7-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------7-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/how-to-build-a-jamstack-application-in-postman-99aba45a572b?source=user_profile_page---------7-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">How to build a Jamstack application in Postman</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Learn to JAM with scripts, mock servers, and the visualizer</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jan 31, 2022</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/how-to-build-a-jamstack-application-in-postman-99aba45a572b?source=user_profile_page---------7-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F99aba45a572b&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fhow-to-build-a-jamstack-application-in-postman-99aba45a572b&source=---------7-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="How to build a Jamstack application in Postman"><div class="j i d"><img alt="How to build a Jamstack application in Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/0*KSMBMo2Mzyrqgdqk.jpg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="How to build a Jamstack application in Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/0*KSMBMo2Mzyrqgdqk.jpg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Jan 31, 2022</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/how-to-build-a-jamstack-application-in-postman-99aba45a572b?source=user_profile_page---------7-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F99aba45a572b&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fhow-to-build-a-jamstack-application-in-postman-99aba45a572b&source=---------7-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/dynamically-create-custom-environments-with-code-c7b15c03f306" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------8-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------8-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/dynamically-create-custom-environments-with-code-c7b15c03f306?source=user_profile_page---------8-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Dynamically create custom environments with code</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Reduce time to first call (TTFC) for your public API via Run in Postman</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 1, 2021</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/dynamically-create-custom-environments-with-code-c7b15c03f306?source=user_profile_page---------8-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fc7b15c03f306&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fdynamically-create-custom-environments-with-code-c7b15c03f306&source=---------8-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Dynamically create custom environments with code"><div class="j i d"><img alt="Dynamically create custom environments with code" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/1*et303LkbvbCYvq_wrBFO_w.png" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Dynamically create custom environments with code" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/1*et303LkbvbCYvq_wrBFO_w.png" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Dec 1, 2021</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/dynamically-create-custom-environments-with-code-c7b15c03f306?source=user_profile_page---------8-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fc7b15c03f306&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fdynamically-create-custom-environments-with-code-c7b15c03f306&source=---------8-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div class="ab cn"><div class="ic bh id ie if ig"><div class="pa bh l"><article class=""><div class="lu l"><div class="bh dp"><div class="l"><div class="bh l"><div style="position:relative;display:flex" role="link" data-href="https://joycelin-codes.medium.com/better-practices-for-git-version-control-in-postman-8476bd6fa51b" tabindex="0"><div class="bh lz ma mb mc"><div class="ab"><div class="md me mf mg mh ab q"><div class="mi l"><div><div class="l" aria-hidden="false"><a href="https://medium.com/better-practices?source=user_profile_page---------9-------------8e51cb7fb823---------------" rel="noopener follow"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fn"></div></div></a></div></div></div><div class="mj l"><p class="bf b dt z ds">Published in</p></div><div class="l"><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar mk ab q" href="https://medium.com/better-practices?source=user_profile_page---------9-------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b dt z hh hi hj hk hl hm hn ho bk">Better Practices</p></a></div></div></div></div></div><div class="ab"><div class="l cl gb"><div class="ml mm mn mo mp mq mr ms mt mu"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/better-practices-for-git-version-control-in-postman-8476bd6fa51b?source=user_profile_page---------9-------------8e51cb7fb823---------------"><h2 class="bf mv mw mx my jt mz na nb nc jy nd ka kb ne nf ke ng nh ni nj nk nl nm nn no np hh hj hk hm ho bk">Better Practices for Git Version Control in Postman</h2><div class="nq"><h3 class="bf b ge z hh nr hj hk ns hm ho ds">Manage collaboration within your team and community so that you don’t release breaking changes</h3></div></a></div><div class="h k"><div class="nt nu nv nw nx ny nz oa ob oc l"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Nov 3, 2021</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/better-practices-for-git-version-control-in-postman-8476bd6fa51b?source=user_profile_page---------9-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F8476bd6fa51b&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fbetter-practices-for-git-version-control-in-postman-8476bd6fa51b&source=---------9-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="oo op oq or os l"><div aria-label="Better Practices for Git Version Control in Postman"><div class="j i d"><img alt="Better Practices for Git Version Control in Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:160:106/0*l7YRcpv0_lfh6iBB.jpg" width="80" height="53" loading="lazy"/></div><div class="h k"><img alt="Better Practices for Git Version Control in Postman" class="bx ht" src="https://miro.medium.com/v2/resize:fill:320:214/0*l7YRcpv0_lfh6iBB.jpg" width="160" height="107" loading="lazy"/></div></div></div></div><div class="ot j i d"><span class="bf b dt z ds"><div class="jo ab gz ae"><div class="ab q oh"><span>Nov 3, 2021</span><div class="h k j i d"><div class="dq od oe ab q"><div class="fm of og ab q oh"><div class="ax oe oi l fo"></div></div><a class="fm ll og ab q oh" tabindex="-1" rel="noopener follow" href="/better-practices-for-git-version-control-in-postman-8476bd6fa51b?source=user_profile_page---------9-------------8e51cb7fb823---------------"></a></div></div></div><div class="ab q ok ol"><div class="h k j i d"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F8476bd6fa51b&operation=register&redirect=https%3A%2F%2Fmedium.com%2Fbetter-practices%2Fbetter-practices-for-git-version-control-in-postman-8476bd6fa51b&source=---------9-------------8e51cb7fb823----bookmark_preview-----------" rel="noopener follow"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="ds om on" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div></div></div></span></div></div></div><div class="ou bh r ov ow ox oy oz"></div></div></div></div></div></article></div></div></div><div></div></div></div></div></div></main><div class="cu cv h cw cx cy k cz da db j dc dd de df dg dh di dj dk dl dm c dn do"><div class="dp bh bm dq"><div class="l m fp"><div class="fq ab fr"><div class="l ae"><div class="fs ft fu l"><div class="l dq"><img alt="Joyce Lin" class="l dm by fv fw fo" src="https://miro.medium.com/v2/resize:fill:176:176/1*KdCZi31V8ANQezzWiDQfXA.jpeg" width="88" height="88" loading="lazy"/><div class="fl by l fv fw fm n ay fx"></div></div><div class="fy ab fz ga"><h2 class="pw-author-name bf gd ge z gf bk"><span class="gb gc">Joyce Lin</span></h2></div><div class="gg l"><span class="pw-follower-count bf b ge gh ds"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/followers?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------">1.4K Followers</a></span></div><div class="gi l"><p class="bf b bg z ds"><span class="gb">coding and cats in San Francisco</span></p></div><div class="gj gk ab"><span><button class="bf b bg z el gl em eo ep eq er es et eu ev ew ex au ey cr dm bm ez fa">Follow</button></span><div class="dr l"><div><div><div class="bm" aria-hidden="false"><div class="l"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/m/signin?actionUrl=%2F_%2Fapi%2Fsubscriptions%2Fnewsletters%2Fc5cd11d8ad79&operation=register&redirect=https%3A%2F%2Fjoycelin-codes.medium.com%2F&newsletterV3=8e51cb7fb823&newsletterV3Id=c5cd11d8ad79&user=Joyce+Lin&userId=8e51cb7fb823&source=---user_sidebar-------------------8e51cb7fb823----subscribe_user-----------" rel="noopener follow"><button class="bf b bg z gp am gq gr gs gt gu gv gw gx et eu ev ew ex ey cr dm bm ez fa" aria-label="Subscribe"><svg xmlns="http://www.w3.org/2000/svg" width="38" height="38" fill="none" viewBox="0 0 38 38" class="gm gn go"><rect width="0.5" height="6.5" x="26.25" y="9.25" rx="0.25"></rect><rect width="0.5" height="6.5" x="29.75" y="12.25" rx="0.25" transform="rotate(90 29.75 12.25)"></rect><path d="M19.5 12.5h-7a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-5"></path><path d="M11.5 14.5 19 20l4-3"></path></svg></button></a></span></div></div></div></div></div></div><div class="l dq"><span class="bf gd ge z gf bk">Following</span><ul class="gy fy l"><li class="ab q gz"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ha hb hc" href="https://doctorow.medium.com/?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------" rel="noopener follow"><div class="hd ab"><div class="he l"><div class="l dq"><img alt="Cory Doctorow" class="l dm by hf hg fo" src="https://miro.medium.com/v2/resize:fill:40:40/0*ohRxgNPUyuFod_kY.jpeg" width="20" height="20" loading="lazy"/><div class="fl by l hf hg fm n ay fx"></div></div></div><p class="bf b dt z hh hi hj hk hl hm hn ho ds">Cory Doctorow</p></div></a><div class="bm" aria-hidden="false" aria-describedby="creatorInfoPopover-eba9888d741b" aria-labelledby="creatorInfoPopover-eba9888d741b" aria-haspopup="dialog"><button class="af ag ah ai aj ak al hp an ao ap aq ar as at bc hq hr gt hs" aria-controls="creatorInfoPopover-eba9888d741b" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.385 12c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41m5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59s-.58.86-.58 1.41m5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59s1.03-.2 1.42-.59.58-.86.58-1.41-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59s-.58.86-.58 1.41" clip-rule="evenodd"></path></svg></button></div></li><li class="ab q gz"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ha hb hc" href="https://modus.medium.com/?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------" rel="noopener follow"><div class="hd ab"><div class="he l"><div class="dq ab"><img alt="Modus" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*m1LdV5fylqvlNMG0qhPK-Q.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fx"></div></div></div><p class="bf b dt z hh hi hj hk hl hm hn ho ds">Modus</p></div></a><div class="bm" aria-hidden="false" aria-describedby="creatorInfoPopover-cb8577c9149e" aria-labelledby="creatorInfoPopover-cb8577c9149e" aria-haspopup="dialog"><button class="af ag ah ai aj ak al hp an ao ap aq ar as at bc hq hr gt hs" aria-controls="creatorInfoPopover-cb8577c9149e" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.385 12c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41m5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59s-.58.86-.58 1.41m5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59s1.03-.2 1.42-.59.58-.86.58-1.41-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59s-.58.86-.58 1.41" clip-rule="evenodd"></path></svg></button></div></li><li class="ab q gz"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ha hb hc" href="https://medium.com/better-practices?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------" rel="noopener follow"><div class="hd ab"><div class="he l"><div class="dq ab"><img alt="Better Practices" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*KRFQANUncaYZMQl1i0eXqg.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fx"></div></div></div><p class="bf b dt z hh hi hj hk hl hm hn ho ds">Better Practices</p></div></a><div class="bm" aria-hidden="false" aria-describedby="creatorInfoPopover-410f2fbc015d" aria-labelledby="creatorInfoPopover-410f2fbc015d" aria-haspopup="dialog"><button class="af ag ah ai aj ak al hp an ao ap aq ar as at bc hq hr gt hs" aria-controls="creatorInfoPopover-410f2fbc015d" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.385 12c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41m5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59s-.58.86-.58 1.41m5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59s1.03-.2 1.42-.59.58-.86.58-1.41-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59s-.58.86-.58 1.41" clip-rule="evenodd"></path></svg></button></div></li><li class="ab q gz"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ha hb hc" href="https://codeburst.io/?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------" rel="noopener follow"><div class="hd ab"><div class="he l"><div class="dq ab"><img alt="codeburst" class="ht hg hf fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*mNmxddJJTzkiBfK77mWuGA.png" width="20" height="20" loading="lazy"/><div class="ht l hf hg fm n fl fx"></div></div></div><p class="bf b dt z hh hi hj hk hl hm hn ho ds">codeburst</p></div></a><div class="bm" aria-hidden="false" aria-describedby="creatorInfoPopover-61061eb0c96b" aria-labelledby="creatorInfoPopover-61061eb0c96b" aria-haspopup="dialog"><button class="af ag ah ai aj ak al hp an ao ap aq ar as at bc hq hr gt hs" aria-controls="creatorInfoPopover-61061eb0c96b" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.385 12c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41m5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59s-.58.86-.58 1.41m5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59s1.03-.2 1.42-.59.58-.86.58-1.41-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59s-.58.86-.58 1.41" clip-rule="evenodd"></path></svg></button></div></li><li class="ab q gz"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ha hb hc" href="https://medium.com/@MediumStaff?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------" rel="noopener follow"><div class="hd ab"><div class="he l"><div class="l dq"><img alt="Medium Staff" class="l dm by hf hg fo" src="https://miro.medium.com/v2/resize:fill:40:40/1*AXYe3ZfLJvIjSW7fD3Eakg.jpeg" width="20" height="20" loading="lazy"/><div class="fl by l hf hg fm n ay fx"></div></div></div><p class="bf b dt z hh hi hj hk hl hm hn ho ds">Medium Staff</p></div></a><div class="bm" aria-hidden="false" aria-describedby="creatorInfoPopover-a32c340ea342" aria-labelledby="creatorInfoPopover-a32c340ea342" aria-haspopup="dialog"><button class="af ag ah ai aj ak al hp an ao ap aq ar as at bc hq hr gt hs" aria-controls="creatorInfoPopover-a32c340ea342" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.385 12c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41m5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59s1.02-.2 1.41-.59c.4-.39.59-.86.59-1.41s-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59s-.58.86-.58 1.41m5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59s1.03-.2 1.42-.59.58-.86.58-1.41-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59s-.58.86-.58 1.41" clip-rule="evenodd"></path></svg></button></div></li></ul><p class="bf b dt z ds"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/following?source=user_profile_page---blogroll-------------------8e51cb7fb823---------------">See all (5)</a></p></div></div><div class="fs ft fu l"></div></div><div class="hu ab cd ga"><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://help.medium.com/hc/en-us?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Help</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.statuspage.io/?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Status</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/about?autoplay=1&source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">About</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/jobs-at-medium/work-at-medium-959d1a85284e?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Careers</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="pressinquiries@medium.com?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Press</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://blog.medium.com/?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Blog</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Privacy</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Terms</p></a></div><div class="hv l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://speechify.com/medium?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Text to speech</p></a></div><div class="l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.com/business?source=user_profile_page---user_sidebar-------------------8e51cb7fb823---------------" rel="noopener follow"><p class="bf b hw hx ds">Teams</p></a></div></div></div></div></div></div></div></div></div></div></div><script>window.__BUILD_ID__="main-20241212-090417-2504237e66"</script><script>window.__GRAPHQL_URI__ = "https://joycelin-codes.medium.com/_/graphql"</script><script>window.__PRELOADED_STATE__ = {"algolia":{"queries":{}},"cache":{"experimentGroupSet":true,"reason":"Edgy did not set shouldUseCache to true","group":"disabled","tags":[],"serverVariantState":"","middlewareEnabled":true,"cacheStatus":"DYNAMIC","shouldUseCache":false,"vary":[],"lohpSummerUpsellEnabled":false,"postBottomResponsesEnabled":false},"client":{"hydrated":false,"isUs":false,"isNativeMedium":false,"isSafariMobile":false,"isSafari":false,"isFirefox":false,"routingEntity":{"type":"USER","id":"8e51cb7fb823","explicit":true},"viewerIsBot":false},"debug":{"requestId":"b5953fdc-df6a-421a-90a6-5d01a9151ef1","hybridDevServices":[],"originalSpanCarrier":{"traceparent":"00-e7319204da636574eefd33e2ca107b02-488adc98171dee29-01"}},"multiVote":{"clapsPerPost":{}},"navigation":{"branch":{"show":null,"hasRendered":null,"blockedByCTA":false},"hideGoogleOneTap":false,"hasRenderedAlternateUserBanner":null,"currentLocation":"https:\u002F\u002Fjoycelin-codes.medium.com\u002F","host":"joycelin-codes.medium.com","hostname":"joycelin-codes.medium.com","referrer":"","hasSetReferrer":false,"susiModal":{"step":null,"operation":"register"},"postRead":false,"partnerProgram":{"selectedCountryCode":null}},"config":{"nodeEnv":"production","version":"main-20241212-090417-2504237e66","target":"production","productName":"Medium","publicUrl":"https:\u002F\u002Fcdn-client.medium.com\u002Flite","authDomain":"medium.com","authGoogleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","favicon":"production","glyphUrl":"https:\u002F\u002Fglyph.medium.com","branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","algolia":{"appId":"MQ57UUUQZ2","apiKeySearch":"394474ced050e3911ae2249ecc774921","indexPrefix":"medium_","host":"-dsn.algolia.net"},"recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","recaptchaEnterpriseKeyId":"6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp","datadog":{"applicationId":"6702d87d-a7e0-42fe-bbcb-95b469547ea0","clientToken":"pub853ea8d17ad6821d9f8f11861d23dfed","rumToken":"pubf9cc52896502b9413b68ba36fc0c7162","context":{"deployment":{"target":"production","tag":"main-20241212-090417-2504237e66","commit":"2504237e66d774509f0841eac94c4af12326d286"}},"datacenter":"us"},"googleAnalyticsCode":"G-7JY7T788PK","googlePay":{"apiVersion":"2","apiVersionMinor":"0","merchantId":"BCR2DN6TV7EMTGBM","merchantName":"Medium","instanceMerchantId":"13685562959212738550"},"applePay":{"version":3},"signInWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"mediumMastodonDomainName":"me.dm","mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"],"tierOneDomains":["medium.com","thebolditalic.com","arcdigital.media","towardsdatascience.com","uxdesign.cc","codeburst.io","psiloveyou.xyz","writingcooperative.com","entrepreneurshandbook.co","prototypr.io","betterhumans.coach.me","theascent.pub"],"topicsToFollow":["d61cf867d93f","8a146bc21b28","1eca0103fff3","4d562ee63426","aef1078a3ef5","e15e46793f8d","6158eb913466","55f1c20aba7a","3d18b94f6858","4861fee224fd","63c6f1f93ee","1d98b3a9a871","decb52b64abf","ae5d4995e225","830cded25262"],"topicToTagMappings":{"accessibility":"accessibility","addiction":"addiction","android-development":"android-development","art":"art","artificial-intelligence":"artificial-intelligence","astrology":"astrology","basic-income":"basic-income","beauty":"beauty","biotech":"biotech","blockchain":"blockchain","books":"books","business":"business","cannabis":"cannabis","cities":"cities","climate-change":"climate-change","comics":"comics","coronavirus":"coronavirus","creativity":"creativity","cryptocurrency":"cryptocurrency","culture":"culture","cybersecurity":"cybersecurity","data-science":"data-science","design":"design","digital-life":"digital-life","disability":"disability","economy":"economy","education":"education","equality":"equality","family":"family","feminism":"feminism","fiction":"fiction","film":"film","fitness":"fitness","food":"food","freelancing":"freelancing","future":"future","gadgets":"gadgets","gaming":"gaming","gun-control":"gun-control","health":"health","history":"history","humor":"humor","immigration":"immigration","ios-development":"ios-development","javascript":"javascript","justice":"justice","language":"language","leadership":"leadership","lgbtqia":"lgbtqia","lifestyle":"lifestyle","machine-learning":"machine-learning","makers":"makers","marketing":"marketing","math":"math","media":"media","mental-health":"mental-health","mindfulness":"mindfulness","money":"money","music":"music","neuroscience":"neuroscience","nonfiction":"nonfiction","outdoors":"outdoors","parenting":"parenting","pets":"pets","philosophy":"philosophy","photography":"photography","podcasts":"podcast","poetry":"poetry","politics":"politics","privacy":"privacy","product-management":"product-management","productivity":"productivity","programming":"programming","psychedelics":"psychedelics","psychology":"psychology","race":"race","relationships":"relationships","religion":"religion","remote-work":"remote-work","san-francisco":"san-francisco","science":"science","self":"self","self-driving-cars":"self-driving-cars","sexuality":"sexuality","social-media":"social-media","society":"society","software-engineering":"software-engineering","space":"space","spirituality":"spirituality","sports":"sports","startups":"startup","style":"style","technology":"technology","transportation":"transportation","travel":"travel","true-crime":"true-crime","tv":"tv","ux":"ux","venture-capital":"venture-capital","visual-design":"visual-design","work":"work","world":"world","writing":"writing"},"defaultImages":{"avatar":{"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","height":150,"width":150},"orgLogo":{"imageId":"7*V1_7XP4snlmqrc_0Njontw.png","height":110,"width":500},"postLogo":{"imageId":"bd978bb536350a710e8efb012513429cabdc4c28700604261aeda246d0f980b7","height":810,"width":1440},"postPreviewImage":{"imageId":"1*hn4v1tCaJy7cWMyb0bpNpQ.png","height":386,"width":579}},"collectionStructuredData":{"8d6b8a439e32":{"name":"Elemental","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F980\u002F1*9ygdqoKprhwuTVKUM0DLPA@2x.png","width":980,"height":159}}},"3f6ecf56618":{"name":"Forge","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F596\u002F1*uULpIlImcO5TDuBZ6lm7Lg@2x.png","width":596,"height":183}}},"ae2a65f35510":{"name":"GEN","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F264\u002F1*RdVZMdvfV3YiZTw6mX7yWA.png","width":264,"height":140}}},"88d9857e584e":{"name":"LEVEL","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*JqYMhNX6KNNb2UlqGqO2WQ.png","width":540,"height":108}}},"7b6769f2748b":{"name":"Marker","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F383\u002F1*haCUs0wF6TgOOvfoY-jEoQ@2x.png","width":383,"height":92}}},"444d13b52878":{"name":"OneZero","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*cw32fIqCbRWzwJaoQw6BUg.png","width":540,"height":123}}},"8ccfed20cbb2":{"name":"Zora","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*tZUQqRcCCZDXjjiZ4bDvgQ.png","width":540,"height":106}}}},"embeddedPostIds":{"coronavirus":"cd3010f9d81f"},"sharedCdcMessaging":{"COVID_APPLICABLE_TAG_SLUGS":[],"COVID_APPLICABLE_TOPIC_NAMES":[],"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE":[],"COVID_MESSAGES":{"tierA":{"text":"For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":66,"end":73,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"tierB":{"text":"Anyone can publish on Medium per our Policies, but we don’t fact-check every story. For more info about the coronavirus, see cdc.gov.","markups":[{"start":37,"end":45,"href":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"},{"start":125,"end":132,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"paywall":{"text":"This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":56,"end":70,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":138,"end":145,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"unbound":{"text":"This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":45,"end":59,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":127,"end":134,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]}},"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST":["3b31a67bff4a"]},"sharedVoteMessaging":{"TAGS":["politics","election-2020","government","us-politics","election","2020-presidential-race","trump","donald-trump","democrats","republicans","congress","republican-party","democratic-party","biden","joe-biden","maga"],"TOPICS":["politics","election"],"MESSAGE":{"text":"Find out more about the U.S. election results here.","markups":[{"start":46,"end":50,"href":"https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"}]},"EXCLUDE_POSTS":["397ef29e3ca5"]},"embedPostRules":[],"recircOptions":{"v1":{"limit":3},"v2":{"limit":8}},"braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","braintree":{"enabled":true,"merchantId":"m56f8fqpf7ngnrd4","merchantAccountId":{"usd":"AMediumCorporation_instant","eur":"amediumcorporation_EUR","cad":"amediumcorporation_CAD"},"publicKey":"ds2nn34bg2z7j5gd","braintreeEnvironment":"production","dashboardUrl":"https:\u002F\u002Fwww.braintreegateway.com\u002Fmerchants","gracePeriodDurationInDays":14,"mediumMembershipPlanId":{"monthly":"ce105f8c57a3","monthlyV2":"e8a5e126-792b-4ee6-8fba-d574c1b02fc5","monthlyWithTrial":"d5ee3dbe3db8","monthlyPremium":"fa741a9b47a2","yearly":"a40ad4a43185","yearlyV2":"3815d7d6-b8ca-4224-9b8c-182f9047866e","yearlyStaff":"d74fb811198a","yearlyWithTrial":"b3bc7350e5c7","yearlyPremium":"e21bd2c12166","monthlyOneYearFree":"e6c0637a-2bad-4171-ab4f-3c268633d83c","monthly25PercentOffFirstYear":"235ecc62-0cdb-49ae-9378-726cd21c504b","monthly20PercentOffFirstYear":"ba518864-9c13-4a99-91ca-411bf0cac756","monthly15PercentOffFirstYear":"594c029b-9f89-43d5-88f8-8173af4e070e","monthly10PercentOffFirstYear":"c6c7bc9a-40f2-4b51-8126-e28511d5bdb0","monthlyForStudents":"629ebe51-da7d-41fd-8293-34cd2f2030a8","yearlyOneYearFree":"78ba7be9-0d9f-4ece-aa3e-b54b826f2bf1","yearly25PercentOffFirstYear":"2dbb010d-bb8f-4eeb-ad5c-a08509f42d34","yearly20PercentOffFirstYear":"47565488-435b-47f8-bf93-40d5fbe0ebc8","yearly15PercentOffFirstYear":"8259809b-0881-47d9-acf7-6c001c7f720f","yearly10PercentOffFirstYear":"9dd694fb-96e1-472c-8d9e-3c868d5c1506","yearlyForStudents":"e29345ef-ab1c-4234-95c5-70e50fe6bc23","monthlyCad":"p52orjkaceei","yearlyCad":"h4q9g2up9ktt"},"braintreeDiscountId":{"oneMonthFree":"MONTHS_FREE_01","threeMonthsFree":"MONTHS_FREE_03","sixMonthsFree":"MONTHS_FREE_06","fiftyPercentOffOneYear":"FIFTY_PERCENT_OFF_ONE_YEAR"},"3DSecureVersion":"2","defaultCurrency":"usd","providerPlanIdCurrency":{"4ycw":"usd","rz3b":"usd","3kqm":"usd","jzw6":"usd","c2q2":"usd","nnsw":"usd","q8qw":"usd","d9y6":"usd","fx7w":"cad","nwf2":"cad"}},"paypalClientId":"AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v","paypal":{"host":"https:\u002F\u002Fapi.paypal.com:443","clientMode":"production","serverMode":"live","webhookId":"4G466076A0294510S","monthlyPlan":{"planId":"P-9WR0658853113943TMU5FDQA","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlan":{"planId":"P-7N8963881P8875835MU5JOPQ","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com\u002Fredeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"},"oldMonthlyPlan":{"planId":"P-96U02458LM656772MJZUVH2Y","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlan":{"planId":"P-59P80963JF186412JJZU3SMI","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"monthlyPlanWithTrial":{"planId":"P-66C21969LR178604GJPVKUKY","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlanWithTrial":{"planId":"P-6XW32684EX226940VKCT2MFA","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oldMonthlyPlanNoSetupFee":{"planId":"P-4N046520HR188054PCJC7LJI","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlanNoSetupFee":{"planId":"P-7A4913502Y5181304CJEJMXQ","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"sdkUrl":"https:\u002F\u002Fwww.paypal.com\u002Fsdk\u002Fjs"},"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","log":{"json":true,"level":"info"},"imageUploadMaxSizeMb":25,"staffPicks":{"title":"Staff Picks","catalogId":"c7bc6e1ee00f"}},"session":{"xsrf":""}}</script><script>window.__APOLLO_STATE__ = {"ROOT_QUERY":{"__typename":"Query","variantFlags":[{"__typename":"VariantFlag","name":"enable_moc_load_processor_all_recs_surfaces","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_remove_twitter_onboarding_step","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_apple_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_footer_app_buttons","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_archive_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_plan","valueType":{"__typename":"VariantFlagString","value":"2c754bcc2995"}},{"__typename":"VariantFlag","name":"enable_configure_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_group_gifting","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_plan","valueType":{"__typename":"VariantFlagString","value":"60e220181034"}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_c","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tag_recs","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signup_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"enable_legacy_feed_in_iceland","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_entities_to_follow_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_ranker_v2","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_aurora_pub_follower_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_integration","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"num_post_bottom_responses_to_show","valueType":{"__typename":"VariantFlagString","value":"3"}},{"__typename":"VariantFlag","name":"textshots_userid","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"enable_google_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lo_homepage","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_recaptcha_enterprise","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"skip_fs_cache_user_vals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"mobile_custom_app_icon","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tick_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_paypal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_moc_load_processor_first_story","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_google_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_explicit_signals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_autorefresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_aspiriational","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_partner_program_enrollment","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reader_fair_distribution_non_qp","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_intrinsic_automatic_actions","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses_native","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_seamless_social_sharing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"browsable_stream_config_bucket","valueType":{"__typename":"VariantFlagString","value":"curated-topics"}},{"__typename":"VariantFlag","name":"enable_update_explore_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_simplified_digest_v2_b","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_sign_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_monthly_premium_plan","valueType":{"__typename":"VariantFlagString","value":"12a660186432"}},{"__typename":"VariantFlag","name":"enable_deprecate_legacy_providers_v3","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pill_based_home_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_updated_pub_recs_ui","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_receive_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_publication_hierarchy_web","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recirc_model","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_display_paywall_after_onboarding","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signin_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"enable_creator_welcome_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_speechify_widget","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_home_post_menu","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_image_sharer","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_bg_post_post","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_iceland_forced_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_for_members_username_selection","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_test_auth","valueType":{"__typename":"VariantFlagString","value":"disallow"}},{"__typename":"VariantFlag","name":"enable_rito_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_abandoned_cart_promotion_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_validate_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_switch_plan_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_newsletter_lo_flow_custom_domains","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_marketing_emails","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_starspace","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_premium_plan","valueType":{"__typename":"VariantFlagString","value":"4a442ace1476"}},{"__typename":"VariantFlag","name":"coronavirus_topic_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_editor_new_publishing_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_maim_the_meter","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ml_rank_rex_anno","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_stripe_customers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipping_v0_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_syntax_highlight","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_manage_membership_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pre_pp_v4","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_creation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_app_flirty_thirty","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"price_smoke_test_monthly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"allow_access","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_one_tap","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_server_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_premium_tier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_verifications_service","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_user_follows","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_explicit_signals_updated_post_previews","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_response_markup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_signup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_boost_nia_v01","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_client","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"price_smoke_test_yearly","valueType":{"__typename":"VariantFlagString","value":""}},{"__typename":"VariantFlag","name":"enable_apple_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_recommended_publishers_query","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_topic_portals","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_rating_prompt_stories_read_threshold","valueType":{"__typename":"VariantFlagNumber","value":2}},{"__typename":"VariantFlag","name":"enable_ios_easy_resubscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"glyph_font_set","valueType":{"__typename":"VariantFlagString","value":"m2-unbound-source-serif-pro"}},{"__typename":"VariantFlag","name":"rex_generator_max_candidates","valueType":{"__typename":"VariantFlagNumber","value":1000}},{"__typename":"VariantFlag","name":"enable_braintree_trial_membership","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_reading_history","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_post_referrers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"redefined_top_posts","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_two_hour_refresh","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_cards_byline","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_conversion_model_v2","valueType":{"__typename":"VariantFlagString","value":"group_2"}},{"__typename":"VariantFlag","name":"enable_lite_homepage","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_premium_tier_badge","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_verified_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_automod","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_diversification_rex","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_new_push_notification_endpoint","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_verified_book_author","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_update_topic_portals_wtf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_gift_banner","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_members_only_audio","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses_input","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"reengagement_notification_duration","valueType":{"__typename":"VariantFlagNumber","value":3}},{"__typename":"VariantFlag","name":"ios_social_share_sheet","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_import","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_aggregator_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_speechify_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tribute_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"can_send_tips_v0","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_dynamic_programming_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_dynamic_paywall_programming","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium2_kbfd","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_see_pronouns","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_trust_service_recaptcha","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_iceland_nux","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_auto_follow_on_subscribe","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mastodon_avatar_upload","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"android_enable_lists_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"goliath_externalsearch_enable_comment_deindexation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_bottom_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_miro_v2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sprig","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_friend_links_postpage_banners","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_publish_permission_check","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branch_io","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cache_less_following_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_sharer_create_post_share_key","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_in_app_free_trial","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_dynamic_aspirational_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_eventstats_event_processing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_continue_this_thread","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_pp_country_expansion","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ranker_v10","valueType":{"__typename":"VariantFlagString","value":"control"}},{"__typename":"VariantFlag","name":"enable_tipping_v0_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"onboarding_tags_from_top_views","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_offline_reading","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_susi_redesign_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}}],"user({\"id\":\"8e51cb7fb823\"})":{"__ref":"User:8e51cb7fb823"},"userResult({\"id\":\"8e51cb7fb823\"})":{"__ref":"User:8e51cb7fb823"},"userResult({\"id\":\"8e51cb7fb823\",\"username\":null})":{"__ref":"User:8e51cb7fb823"},"viewer":null,"collectionByDomainOrSlug({\"domainOrSlug\":\"joycelin-codes.medium.com\"})":null,"user({\"username\":\"joycelin-codes\"})":{"__ref":"User:8e51cb7fb823"},"userResult({\"username\":\"joycelin-codes\"})":{"__ref":"User:8e51cb7fb823"},"userResult({\"id\":\"8e51cb7fb823\",\"username\":\"\"})":{"__ref":"User:8e51cb7fb823"}},"User:8e51cb7fb823":{"__typename":"User","id":"8e51cb7fb823","name":"Joyce Lin","username":"joycelin-codes","newsletterV3":{"__ref":"NewsletterV3:c5cd11d8ad79"},"viewerEdge":{"__ref":"UserViewerEdge:userId:8e51cb7fb823-viewerId:lo_cb3aa201d2fe"},"bio":"coding and cats in San Francisco","imageId":"1*KdCZi31V8ANQezzWiDQfXA.jpeg","membership":null,"customDomainState":{"__typename":"CustomDomainState","live":{"__typename":"CustomDomain","domain":"joycelin-codes.medium.com"}},"hasSubdomain":true,"verifications":{"__typename":"VerifiedInfo","isBookAuthor":false},"viewerIsUser":false,"homepagePostsConnection:{\"paging\":{\"limit\":1}}":{"__typename":"PostConnection","posts":[{"__ref":"Post:15c8807f6393"}]},"linkedAccounts":{"__ref":"LinkedAccounts:8e51cb7fb823"},"customStyleSheet":{"__ref":"CustomStyleSheet:204d08534d72"},"pronouns":[],"socialStats":{"__typename":"SocialStats","followerCount":1405,"followingCount":2,"collectionFollowingCount":3},"isPartnerProgramEnrolled":false,"postSubscribeMembershipUpsellShownAt":0,"homepagePostsConnection:{\"paging\":{\"limit\":10},\"includeDistributedResponses\":true}":{"__typename":"PostConnection","posts":[{"__ref":"Post:15c8807f6393"},{"__ref":"Post:ac82a892969e"},{"__ref":"Post:8885a7601523"},{"__ref":"Post:bace9cac42e1"},{"__ref":"Post:1e065fbbc29f"},{"__ref":"Post:b32da63f4f94"},{"__ref":"Post:43427b5113ee"},{"__ref":"Post:99aba45a572b"},{"__ref":"Post:c7b15c03f306"},{"__ref":"Post:8476bd6fa51b"}],"pagingInfo":{"__typename":"Paging","next":{"__typename":"PageParams","from":"L1635957125000","limit":10}}},"twitterScreenName":"PetuniaGray","navItems":[{"__typename":"UserNavItem","title":"Profile"},{"__typename":"UserNavItem","title":"Claps"},{"__typename":"UserNavItem","title":"Highlights"},{"__typename":"UserNavItem","title":"Responses"}],"isSuspended":false,"authoredBooks":[],"followingEntityConnection:{\"paging\":{\"limit\":5}}":{"__typename":"EntityConnection","entities":[{"__ref":"User:eba9888d741b"},{"__ref":"Collection:cb8577c9149e"},{"__ref":"Collection:410f2fbc015d"},{"__ref":"Collection:61061eb0c96b"},{"__ref":"User:a32c340ea342"}]}},"UserViewerEdge:userId:8e51cb7fb823-viewerId:lo_cb3aa201d2fe":{"__typename":"UserViewerEdge","id":"userId:8e51cb7fb823-viewerId:lo_cb3aa201d2fe","isFollowing":false,"isUser":false,"isMuting":false,"isBlocking":false,"hasList":false},"Post:15c8807f6393":{"__typename":"Post","id":"15c8807f6393","title":"How Postman Engineering handles a million concurrent connections","previewImage":{"__ref":"ImageMetadata:1*YzAN-PbW3j9aDNOWCV0KJA.jpeg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"The Server Foundation team at Postman shares the origin story of the Bifrost websocket gateway","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fhow-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":1},"visibility":"PUBLIC","clapCount":708,"isLocked":false,"firstPublishedAt":1608662531000,"latestPublishedAt":1608761742389,"pinnedAt":0,"readingTime":9.71069182389937,"sequence":null,"isSeries":false,"uniqueSlug":"how-postman-engineering-handles-a-million-concurrent-connections-15c8807f6393","pinnedByCreatorAt":1609343786275},"LinkedAccounts:8e51cb7fb823":{"__typename":"LinkedAccounts","mastodon":null,"id":"8e51cb7fb823"},"ImageMetadata:1*WHJHI5GXQfTDGYG2ALNEmA.png":{"__typename":"ImageMetadata","id":"1*WHJHI5GXQfTDGYG2ALNEmA.png","originalWidth":1500},"CustomStyleSheet:204d08534d72":{"__typename":"CustomStyleSheet","id":"204d08534d72","global":{"__typename":"GlobalStyles","colorPalette":{"__typename":"StyleSheetColorPalette","background":null}},"header":{"__typename":"HeaderStyles","headerScale":"HEADER_SCALE_MEDIUM","backgroundImageDisplayMode":"IMAGE_DISPLAY_MODE_FILL","backgroundImageVerticalAlignment":"START","backgroundColorDisplayMode":"COLOR_DISPLAY_MODE_VERTICAL_GRADIENT","backgroundColor":{"__typename":"ColorValue","alpha":"b2","rgb":"ffffff"},"secondaryBackgroundColor":null,"postBackgroundColor":null,"backgroundImage":{"__ref":"ImageMetadata:1*WHJHI5GXQfTDGYG2ALNEmA.png"},"appNameColor":null,"logoImage":{"__ref":"ImageMetadata:1*SIgLXOELaQZhiCG8sBRCzQ.png"},"appNameTreatment":"NAME_TREATMENT_TEXT"},"navigation":null,"blogroll":{"__typename":"BlogrollConfiguration","visibility":"BLOGROLL_VISIBILITY_SIDEBAR"}},"ImageMetadata:1*SIgLXOELaQZhiCG8sBRCzQ.png":{"__typename":"ImageMetadata","id":"1*SIgLXOELaQZhiCG8sBRCzQ.png","originalHeight":500,"originalWidth":1400},"NewsletterV3:c5cd11d8ad79":{"__typename":"NewsletterV3","id":"c5cd11d8ad79","type":"NEWSLETTER_TYPE_AUTHOR","slug":"8e51cb7fb823","name":"8e51cb7fb823","collection":null,"user":{"__ref":"User:8e51cb7fb823"},"description":"","promoHeadline":"","promoBody":"","showPromo":false},"ImageMetadata:1*YzAN-PbW3j9aDNOWCV0KJA.jpeg":{"__typename":"ImageMetadata","id":"1*YzAN-PbW3j9aDNOWCV0KJA.jpeg","focusPercentX":null,"focusPercentY":null,"alt":null},"Collection:410f2fbc015d":{"__typename":"Collection","id":"410f2fbc015d","slug":"better-practices","name":"Better Practices","viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:410f2fbc015d-viewerId:lo_cb3aa201d2fe"},"avatar":{"__ref":"ImageMetadata:1*KRFQANUncaYZMQl1i0eXqg.png"},"domain":null,"description":"For individual engineers to the largest teams, Better Practices is intended to distill knowledge from the Postman community. This is a place to learn about modern software practices together! Read more: https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fintroducing-better-practices-e9cf14cf0c88","subscriberCount":8617,"customStyleSheet":null},"CollectionViewerEdge:collectionId:410f2fbc015d-viewerId:lo_cb3aa201d2fe":{"__typename":"CollectionViewerEdge","id":"collectionId:410f2fbc015d-viewerId:lo_cb3aa201d2fe","isMuting":false},"ImageMetadata:1*KRFQANUncaYZMQl1i0eXqg.png":{"__typename":"ImageMetadata","id":"1*KRFQANUncaYZMQl1i0eXqg.png"},"ImageMetadata:1*E8CGJR4PzBHArLnrae_ihA.jpeg":{"__typename":"ImageMetadata","id":"1*E8CGJR4PzBHArLnrae_ihA.jpeg","focusPercentX":null,"focusPercentY":null,"alt":null},"Collection:61061eb0c96b":{"__typename":"Collection","id":"61061eb0c96b","slug":"codeburst","name":"codeburst","viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:61061eb0c96b-viewerId:lo_cb3aa201d2fe"},"avatar":{"__ref":"ImageMetadata:1*mNmxddJJTzkiBfK77mWuGA.png"},"domain":"codeburst.io","description":"Bursts of code to power through your day. Web Development articles, tutorials, and news.","subscriberCount":105097,"customStyleSheet":null},"CollectionViewerEdge:collectionId:61061eb0c96b-viewerId:lo_cb3aa201d2fe":{"__typename":"CollectionViewerEdge","id":"collectionId:61061eb0c96b-viewerId:lo_cb3aa201d2fe","isMuting":false},"ImageMetadata:1*mNmxddJJTzkiBfK77mWuGA.png":{"__typename":"ImageMetadata","id":"1*mNmxddJJTzkiBfK77mWuGA.png"},"Post:ac82a892969e":{"__typename":"Post","id":"ac82a892969e","title":"Run a Minecraft server for free on Kubernetes","previewImage":{"__ref":"ImageMetadata:1*E8CGJR4PzBHArLnrae_ihA.jpeg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Simplify deployment for multiplayer Minecraft on a self-hosted Raspberry Pi server using Kubernetes","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fcodeburst.io\u002Frun-a-minecraft-server-for-free-on-kubernetes-ac82a892969e","collection":{"__ref":"Collection:61061eb0c96b"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":2},"visibility":"PUBLIC","clapCount":157,"isLocked":false,"firstPublishedAt":1595982079689,"latestPublishedAt":1596215146201,"pinnedAt":0,"readingTime":8.077358490566038,"sequence":null,"isSeries":false,"uniqueSlug":"run-a-minecraft-server-for-free-on-kubernetes-ac82a892969e","pinnedByCreatorAt":1605979211266},"ImageMetadata:0*SV-NQW6-Sz2D9Buh.png":{"__typename":"ImageMetadata","id":"0*SV-NQW6-Sz2D9Buh.png","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:8885a7601523":{"__typename":"Post","id":"8885a7601523","title":"Powering home automation with WebSocket APIs","previewImage":{"__ref":"ImageMetadata:0*SV-NQW6-Sz2D9Buh.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Get started with the Home Assistant WebSocket API","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fpowering-home-automation-with-websocket-apis-8885a7601523","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":2},"visibility":"PUBLIC","clapCount":59,"isLocked":false,"firstPublishedAt":1688663072168,"latestPublishedAt":1688663072168,"pinnedAt":0,"readingTime":2.670754716981132,"sequence":null,"isSeries":false,"uniqueSlug":"powering-home-automation-with-websocket-apis-8885a7601523","pinnedByCreatorAt":0},"ImageMetadata:1*vH0TBiRYXZVyT6zA9iuREQ.jpeg":{"__typename":"ImageMetadata","id":"1*vH0TBiRYXZVyT6zA9iuREQ.jpeg","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:bace9cac42e1":{"__typename":"Post","id":"bace9cac42e1","title":"Get started using Google Cloud APIs to manage cloud infrastructure","previewImage":{"__ref":"ImageMetadata:1*vH0TBiRYXZVyT6zA9iuREQ.jpeg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"DevOps engineers and data engineers use APIs for many reasons, including to manage cloud infrastructure.","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fget-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":25,"isLocked":false,"firstPublishedAt":1687979014988,"latestPublishedAt":1687979014988,"pinnedAt":0,"readingTime":2.4735849056603776,"sequence":null,"isSeries":false,"uniqueSlug":"get-started-using-google-cloud-apis-to-manage-cloud-infrastructure-bace9cac42e1","pinnedByCreatorAt":0},"ImageMetadata:0*crOBs2bpXWoeda4E.jpg":{"__typename":"ImageMetadata","id":"0*crOBs2bpXWoeda4E.jpg","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:1e065fbbc29f":{"__typename":"Post","id":"1e065fbbc29f","title":"Create Reusable Tests and Scripts with OpenAPI Reusable Components","previewImage":{"__ref":"ImageMetadata:0*crOBs2bpXWoeda4E.jpg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Storing Postman scripts within reusable components in an OpenAPI definition","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fcreate-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":51,"isLocked":false,"firstPublishedAt":1675967677618,"latestPublishedAt":1676307546143,"pinnedAt":0,"readingTime":5.238993710691824,"sequence":null,"isSeries":false,"uniqueSlug":"create-reusable-tests-and-scripts-with-openapi-reusable-components-1e065fbbc29f","pinnedByCreatorAt":0},"ImageMetadata:0*6DO93c3_KL111OXr.jpg":{"__typename":"ImageMetadata","id":"0*6DO93c3_KL111OXr.jpg","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:b32da63f4f94":{"__typename":"Post","id":"b32da63f4f94","title":"Set Up a WebSockets Server in Node.js","previewImage":{"__ref":"ImageMetadata:0*6DO93c3_KL111OXr.jpg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"And use Postman to send and receive messages across the WebSocket connection","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fset-up-a-websockets-server-in-node-js-b32da63f4f94","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":1},"visibility":"PUBLIC","clapCount":1,"isLocked":false,"firstPublishedAt":1675266919106,"latestPublishedAt":1675269630143,"pinnedAt":0,"readingTime":4.694339622641509,"sequence":null,"isSeries":false,"uniqueSlug":"set-up-a-websockets-server-in-node-js-b32da63f4f94","pinnedByCreatorAt":0},"ImageMetadata:1*W5rdfMbYFNgkYnXOR-R0ZA.jpeg":{"__typename":"ImageMetadata","id":"1*W5rdfMbYFNgkYnXOR-R0ZA.jpeg","focusPercentX":null,"focusPercentY":null,"alt":null},"Collection:34b6daafc07":{"__typename":"Collection","id":"34b6daafc07","slug":"snowflake","name":"Snowflake Builders Blog: Data Engineers, App Developers, AI\u002FML, & Data Science","viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:34b6daafc07-viewerId:lo_cb3aa201d2fe"},"avatar":{"__ref":"ImageMetadata:1*vRnX8xqeVdJ-DUZDZQ76vA.png"},"domain":null,"description":"Best practices, tips & tricks from Snowflake experts and community","subscriberCount":7077,"customStyleSheet":{"__ref":"CustomStyleSheet:ccf5e8836efd"}},"CollectionViewerEdge:collectionId:34b6daafc07-viewerId:lo_cb3aa201d2fe":{"__typename":"CollectionViewerEdge","id":"collectionId:34b6daafc07-viewerId:lo_cb3aa201d2fe","isMuting":false},"ImageMetadata:1*vRnX8xqeVdJ-DUZDZQ76vA.png":{"__typename":"ImageMetadata","id":"1*vRnX8xqeVdJ-DUZDZQ76vA.png"},"ImageMetadata:1*h4yZPI9CWU9XXppyT_HC2g.jpeg":{"__typename":"ImageMetadata","id":"1*h4yZPI9CWU9XXppyT_HC2g.jpeg"},"CustomStyleSheet:ccf5e8836efd":{"__typename":"CustomStyleSheet","header":{"__typename":"HeaderStyles","backgroundImage":{"__ref":"ImageMetadata:1*h4yZPI9CWU9XXppyT_HC2g.jpeg"}},"id":"ccf5e8836efd"},"Post:43427b5113ee":{"__typename":"Post","id":"43427b5113ee","title":"Get Started with the Snowflake SQL API In Postman","previewImage":{"__ref":"ImageMetadata:1*W5rdfMbYFNgkYnXOR-R0ZA.jpeg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Execute standard SQL queries and automate an API workflow in Postman","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fsnowflake\u002Fget-started-with-the-snowflake-sql-api-in-postman-43427b5113ee","collection":{"__ref":"Collection:34b6daafc07"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":9,"isLocked":false,"firstPublishedAt":1670440607154,"latestPublishedAt":1670440607154,"pinnedAt":0,"readingTime":2.4924528301886792,"sequence":null,"isSeries":false,"uniqueSlug":"get-started-with-the-snowflake-sql-api-in-postman-43427b5113ee","pinnedByCreatorAt":0},"ImageMetadata:0*KSMBMo2Mzyrqgdqk.jpg":{"__typename":"ImageMetadata","id":"0*KSMBMo2Mzyrqgdqk.jpg","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:99aba45a572b":{"__typename":"Post","id":"99aba45a572b","title":"How to build a Jamstack application in Postman","previewImage":{"__ref":"ImageMetadata:0*KSMBMo2Mzyrqgdqk.jpg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Learn to JAM with scripts, mock servers, and the visualizer","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fhow-to-build-a-jamstack-application-in-postman-99aba45a572b","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":8,"isLocked":false,"firstPublishedAt":1643645001941,"latestPublishedAt":1643645001941,"pinnedAt":0,"readingTime":5.2047169811320755,"sequence":null,"isSeries":false,"uniqueSlug":"how-to-build-a-jamstack-application-in-postman-99aba45a572b","pinnedByCreatorAt":0},"ImageMetadata:1*et303LkbvbCYvq_wrBFO_w.png":{"__typename":"ImageMetadata","id":"1*et303LkbvbCYvq_wrBFO_w.png","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:c7b15c03f306":{"__typename":"Post","id":"c7b15c03f306","title":"Dynamically create custom environments with code","previewImage":{"__ref":"ImageMetadata:1*et303LkbvbCYvq_wrBFO_w.png"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Reduce time to first call (TTFC) for your public API via Run in Postman","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fdynamically-create-custom-environments-with-code-c7b15c03f306","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":54,"isLocked":false,"firstPublishedAt":1638402983534,"latestPublishedAt":1638402983534,"pinnedAt":0,"readingTime":4.284905660377358,"sequence":null,"isSeries":false,"uniqueSlug":"dynamically-create-custom-environments-with-code-c7b15c03f306","pinnedByCreatorAt":0},"ImageMetadata:0*l7YRcpv0_lfh6iBB.jpg":{"__typename":"ImageMetadata","id":"0*l7YRcpv0_lfh6iBB.jpg","focusPercentX":null,"focusPercentY":null,"alt":null},"Post:8476bd6fa51b":{"__typename":"Post","id":"8476bd6fa51b","title":"Better Practices for Git Version Control in Postman","previewImage":{"__ref":"ImageMetadata:0*l7YRcpv0_lfh6iBB.jpg"},"extendedPreviewContent":{"__typename":"PreviewContent","subtitle":"Manage collaboration within your team and community so that you don’t release breaking changes","isFullContent":false},"creator":{"__ref":"User:8e51cb7fb823"},"isPublished":true,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fbetter-practices\u002Fbetter-practices-for-git-version-control-in-postman-8476bd6fa51b","collection":{"__ref":"Collection:410f2fbc015d"},"isLimitedState":false,"allowResponses":true,"postResponses":{"__typename":"PostResponses","count":0},"visibility":"PUBLIC","clapCount":3,"isLocked":false,"firstPublishedAt":1635957125000,"latestPublishedAt":1638553334184,"pinnedAt":0,"readingTime":5.308490566037736,"sequence":null,"isSeries":false,"uniqueSlug":"better-practices-for-git-version-control-in-postman-8476bd6fa51b","pinnedByCreatorAt":0},"User:eba9888d741b":{"__typename":"User","id":"eba9888d741b","name":"Cory Doctorow","imageId":"0*ohRxgNPUyuFod_kY.jpeg","membership":null,"username":"doctorow","customDomainState":{"__typename":"CustomDomainState","live":{"__typename":"CustomDomain","domain":"doctorow.medium.com"}},"hasSubdomain":true,"hasDomain":true,"bio":"Writer, blogger, activist. Blog: https:\u002F\u002Fpluralistic.net; Mailing list: https:\u002F\u002Fpluralistic.net\u002Fplura-list; Mastodon: @pluralistic@mamot.fr","verifications":{"__typename":"VerifiedInfo","isBookAuthor":true}},"ImageMetadata:1*m1LdV5fylqvlNMG0qhPK-Q.png":{"__typename":"ImageMetadata","id":"1*m1LdV5fylqvlNMG0qhPK-Q.png"},"Collection:cb8577c9149e":{"__typename":"Collection","id":"cb8577c9149e","name":"Modus","avatar":{"__ref":"ImageMetadata:1*m1LdV5fylqvlNMG0qhPK-Q.png"},"domain":"modus.medium.com","slug":"modus","description":"A former Medium publication about UX\u002FUI design. Currently inactive and not taking submissions.","subscriberCount":27957,"customStyleSheet":null},"Membership:2eb351645cd5":{"__typename":"Membership","tier":"MEMBER","id":"2eb351645cd5"},"User:a32c340ea342":{"__typename":"User","id":"a32c340ea342","name":"Medium Staff","imageId":"1*AXYe3ZfLJvIjSW7fD3Eakg.jpeg","membership":{"__ref":"Membership:2eb351645cd5"},"username":"MediumStaff","customDomainState":null,"hasSubdomain":false,"hasDomain":false,"bio":"Official account for news and updates from Medium.","verifications":{"__typename":"VerifiedInfo","isBookAuthor":false}}}</script><script src="https://cdn-client.medium.com/lite/static/js/manifest.c80c71ec.js"></script><script src="https://cdn-client.medium.com/lite/static/js/9865.1496d74a.js"></script><script src="https://cdn-client.medium.com/lite/static/js/main.9296edea.js"></script><script src="https://cdn-client.medium.com/lite/static/js/instrumentation.d9108df7.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/reporting.ff22a7a5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5049.d1ead72d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4810.6318add7.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2707.b0942613.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9977.24215cba.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8599.a99358a5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5250.9f9e01d2.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5113.946df777.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6349.b071a958.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2648.26563adf.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8393.826a25fb.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5266.4bb3cbe9.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6589.2f0f39c0.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5642.d8ead0e7.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3735.afb7e926.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4124.0567a444.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4769.e7f80c12.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3591.8b4ac29e.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6834.08de95de.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/1676.ac7e99fd.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/7097.e9bb3fcc.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6594.8def288e.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/UserProfilePage.MainContent.c2a2d70c.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2278.e4e1a3d4.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8027.c14c7543.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/UserProfilePage.RightColumnContent.e13765fa.chunk.js"></script><script>window.main();</script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8f0df4eb3a9048d6',t:'MTczNDAwOTA0OS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>