{"id":9061,"date":"2020-03-25T02:00:47","date_gmt":"2020-03-25T09:00:47","guid":{"rendered":"http:\/\/softwareengineeringdaily.com\/?p=9061"},"modified":"2021-02-12T18:37:19","modified_gmt":"2021-02-13T02:37:19","slug":"sorbet-typed-ruby-with-dmitry-petrashko","status":"publish","type":"post","link":"https:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/","title":{"rendered":"Sorbet: Typed Ruby with Dmitry Petrashko"},"content":{"rendered":"<p><img decoding=\"async\" data-attachment-id=\"2475\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2016\/04\/19\/googles-container-management-brendan-burns\/brendan-burns\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" data-orig-size=\"175,175\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"brendan-burns\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2016\/04\/brendan-burns.jpg?fit=175%2C175&amp;ssl=1\" class=\"alignright size-full wp-image-2475\" style=\"border-radius: 50%; border: 1px solid #000000; max-width: 175px; max-height: 175px;\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/DmitryPetrashko.jpg?resize=175%2C175&#038;ssl=1\" width=\"175\" height=\"175\" data-recalc-dims=\"1\" \/><span style=\"font-weight: 400;\">Programming languages are dynamically typed or statically typed. In a dynamically typed language, the programmer does not need to declare if a variable is an integer, string, or other type. In a statically typed language, the developer must declare the type of the variable upfront, so that the compiler can take advantage of that information.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dynamically typed languages give a programmer flexibility and fast iteration speed. But they also introduce the possibility of errors that can be avoided by performing type checking. This is one of the reasons why TypeScript has risen in popularity, giving developers the option to add types to their JavaScript variables.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sorbet is a typechecker for Ruby. Sorbet allows for gradual typing of Ruby programs, which helps engineers avoid errors that might otherwise be caused by the dynamic type system. Dmitry Petrashko is an engineer at Stripe who helped build Sorbet. He has significant experience in compilers, having worked on Scala before his time at Stripe. Dmitry joins the show to discuss his work on Sorbet, and the motivation for adding type checking to Ruby.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We&#8217;re looking for new show ideas, so if you have any interesting topics, please feel free to <a href=\"https:\/\/twitter.com\/software_daily\">reach out via twitter<\/a> or email us at \u00a0<a href=\"mailto:jeff@softwareengineeringdaily.com\"><span class=\"qlink_container\">jeff@softwareengineeringdaily.com<\/span><\/a><\/span><\/p>\n<p>We realize right now humanity is going through a hard time with the Caronovirus pandemic, but we all have skills useful to fight this battle. Head over to <span style=\"font-weight: 400;\"><a href=\"https:\/\/codevid19.com\/\">codevid19.com<\/a> to join the world&#8217;s largest pandemic hackathon! <\/span><\/p>\n<p>Sponsorship inquiries:\u00a0<a href=\"mailto:sponsor@softwareengineeringdaily.com\">sponsor@softwareengineeringdaily.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programming languages are dynamically typed or statically typed. In a dynamically typed language, the programmer does not need to declare if a variable is an integer, string, or other type. In a statically typed language, the developer must declare the type of the variable upfront, so that the compiler can take advantage of that information.<\/p>\n","protected":false},"author":3,"featured_media":9069,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1363,2143,1084,14],"tags":[1030,3594,333,3593,101],"class_list":["post-9061","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-episodes","category-exclusive-content","category-javascript","category-podcast","tag-compilers","tag-dmitry-petrashko","tag-ruby","tag-sorbet","tag-stripe"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily\" \/>\n<meta property=\"og:description\" content=\"Programming languages are dynamically typed or statically typed. In a dynamically typed language, the programmer does not need to declare if a variable is an integer, string, or other type. In a statically typed language, the developer must declare the type of the variable upfront, so that the compiler can take advantage of that information.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Engineering Daily\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-25T09:00:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-13T02:37:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655\" \/>\n\t<meta property=\"og:image:width\" content=\"1896\" \/>\n\t<meta property=\"og:image:height\" content=\"655\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"SE Daily\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@software_daily\" \/>\n<meta name=\"twitter:site\" content=\"@software_daily\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SE Daily\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\"},\"author\":{\"name\":\"SE Daily\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\"},\"headline\":\"Sorbet: Typed Ruby with Dmitry Petrashko\",\"datePublished\":\"2020-03-25T09:00:47+00:00\",\"dateModified\":\"2021-02-13T02:37:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\"},\"wordCount\":257,\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1\",\"keywords\":[\"compilers\",\"Dmitry Petrashko\",\"Ruby\",\"Sorbet\",\"Stripe\"],\"articleSection\":[\"All Content\",\"Exclusive Content\",\"JavaScript\",\"Podcast\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\",\"url\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\",\"name\":\"Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1\",\"datePublished\":\"2020-03-25T09:00:47+00:00\",\"dateModified\":\"2021-02-13T02:37:19+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1\",\"width\":1896,\"height\":655},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/softwareengineeringdaily.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sorbet: Typed Ruby with Dmitry Petrashko\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"name\":\"Software Engineering Daily\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\",\"name\":\"Software Engineering Daily\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"width\":549,\"height\":169,\"caption\":\"Software Engineering Daily\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/software_daily\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\",\"name\":\"SE Daily\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"caption\":\"SE Daily\"},\"description\":\"The SE Daily podcast.\",\"sameAs\":[\"https:\/\/softwareengineeringdaily.com\"],\"url\":\"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/","og_locale":"en_US","og_type":"article","og_title":"Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily","og_description":"Programming languages are dynamically typed or statically typed. In a dynamically typed language, the programmer does not need to declare if a variable is an integer, string, or other type. In a statically typed language, the developer must declare the type of the variable upfront, so that the compiler can take advantage of that information.","og_url":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/","og_site_name":"Software Engineering Daily","article_published_time":"2020-03-25T09:00:47+00:00","article_modified_time":"2021-02-13T02:37:19+00:00","og_image":[{"width":1896,"height":655,"url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655","type":"image\/png"}],"author":"SE Daily","twitter_card":"summary_large_image","twitter_creator":"@software_daily","twitter_site":"@software_daily","twitter_misc":{"Written by":"SE Daily","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#article","isPartOf":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/"},"author":{"name":"SE Daily","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8"},"headline":"Sorbet: Typed Ruby with Dmitry Petrashko","datePublished":"2020-03-25T09:00:47+00:00","dateModified":"2021-02-13T02:37:19+00:00","mainEntityOfPage":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/"},"wordCount":257,"publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"image":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1","keywords":["compilers","Dmitry Petrashko","Ruby","Sorbet","Stripe"],"articleSection":["All Content","Exclusive Content","JavaScript","Podcast"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/","url":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/","name":"Sorbet: Typed Ruby with Dmitry Petrashko - Software Engineering Daily","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage"},"image":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1","datePublished":"2020-03-25T09:00:47+00:00","dateModified":"2021-02-13T02:37:19+00:00","breadcrumb":{"@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#primaryimage","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1","width":1896,"height":655},{"@type":"BreadcrumbList","@id":"http:\/\/softwareengineeringdaily.com\/2020\/03\/25\/sorbet-typed-ruby-with-dmitry-petrashko\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/softwareengineeringdaily.com\/"},{"@type":"ListItem","position":2,"name":"Sorbet: Typed Ruby with Dmitry Petrashko"}]},{"@type":"WebSite","@id":"https:\/\/softwareengineeringdaily.com\/#website","url":"https:\/\/softwareengineeringdaily.com\/","name":"Software Engineering Daily","description":"","publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/softwareengineeringdaily.com\/#organization","name":"Software Engineering Daily","url":"https:\/\/softwareengineeringdaily.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","width":549,"height":169,"caption":"Software Engineering Daily"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/software_daily"]},{"@type":"Person","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8","name":"SE Daily","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","caption":"SE Daily"},"description":"The SE Daily podcast.","sameAs":["https:\/\/softwareengineeringdaily.com"],"url":"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/03\/Sorbet_06.png?fit=1896%2C655&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p7GuoD-2m9","_links":{"self":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/9061"}],"collection":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/comments?post=9061"}],"version-history":[{"count":0,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/9061\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media\/9069"}],"wp:attachment":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media?parent=9061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/categories?post=9061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/tags?post=9061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}