{"data":{"allTagYaml":{"edges":[{"node":{"id":"Engineering","description":"General engineering topics"}},{"node":{"id":"AWS","description":"AWS cloud services"}}]},"allMarkdownRemark":{"totalCount":20,"edges":[{"node":{"excerpt":"As an EdTech company, Knack strongly values education and peer learning. One of Knack’s key defined values is “Lifelong learning and…","timeToRead":2,"frontmatter":{"title":"Hot Topics at Knack","tags":["Engineering"],"date":"2024-09-18T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABwrxaaUA//8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECERAS/9oACAEBAAEFAhR6nOK6Rp//xAAXEQEAAwAAAAAAAAAAAAAAAAABAhBB/9oACAEDAQE/AYptf//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEUH/2gAIAQIBAT8BNxf/xAAYEAADAQEAAAAAAAAAAAAAAAABEBEAIf/aAAgBAQAGPwLUPhi//8QAGhABAAIDAQAAAAAAAAAAAAAAAQAREDFBUf/aAAgBAQABPyEajvy3hUHBaeRa3P/aAAwDAQACAAMAAAAQJC//xAAXEQEBAQEAAAAAAAAAAAAAAAABABFh/9oACAEDAQE/ECcyG3//xAAXEQEBAQEAAAAAAAAAAAAAAAABABFR/9oACAECAQE/EDjqFv/EABgQAQEBAQEAAAAAAAAAAAAAAAEAETEh/9oACAEBAAE/EEXkB6vKUNmMEcHifLNe4X//2Q==","aspectRatio":1.6332703213610587,"src":"/static/935a41c6b7b75c06668b098cd3a7fb51/8a760/hot-topics-banner.jpg","srcSet":"/static/935a41c6b7b75c06668b098cd3a7fb51/68709/hot-topics-banner.jpg 310w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/53593/hot-topics-banner.jpg 620w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/8a760/hot-topics-banner.jpg 1240w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/0e6ff/hot-topics-banner.jpg 1860w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/7efdd/hot-topics-banner.jpg 2480w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/45a11/hot-topics-banner.jpg 3720w,\n/static/935a41c6b7b75c06668b098cd3a7fb51/2728f/hot-topics-banner.jpg 5184w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"David Stoker","bio":"Co-founder and CTO","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/6c26e23b066ba32dc1aa27a735b634f2/c32cc/david-stoker.jpg"}}]}}},"fields":{"layout":"post","slug":"/hot-topics/"}}},{"node":{"excerpt":"I feel like the last 3-4 years have been a turning point, React Native has become the best option to build cross-platform mobile…","timeToRead":4,"frontmatter":{"title":"React Native Versioning Strategy for Quick Wins","tags":["Engineering"],"date":"2023-12-13T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHijs4KD//EABoQAAMBAAMAAAAAAAAAAAAAAAABAhIDISL/2gAIAQEAAQUCU7MnJPtVSNU77P/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AVf/xAAZEAEAAwEBAAAAAAAAAAAAAAAAASExEcH/2gAIAQEABj8Cp4nkKlrX/8QAHBAAAwACAwEAAAAAAAAAAAAAAAERITFRYXGB/9oACAEBAAE/IWMuHZtvN9kUNgwsfgnLeeqZOumf/9oADAMBAAIAAwAAABAU7//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QesBl/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAx/9oACAECAQE/EBE//8QAGhABAQADAQEAAAAAAAAAAAAAAREAITFBgf/aAAgBAQABPxAzhgtQRW8w2wA8HS8txUCHUFxCtoDB58xKDfAsxWJTqmf/2Q==","aspectRatio":1.5307471264367816,"src":"/static/9001e8ec5b8ad3e958e1838d49e12fb9/8a760/mobile-versioning-at-knack-cover.jpg","srcSet":"/static/9001e8ec5b8ad3e958e1838d49e12fb9/68709/mobile-versioning-at-knack-cover.jpg 310w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/53593/mobile-versioning-at-knack-cover.jpg 620w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/8a760/mobile-versioning-at-knack-cover.jpg 1240w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/0e6ff/mobile-versioning-at-knack-cover.jpg 1860w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/7efdd/mobile-versioning-at-knack-cover.jpg 2480w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/45a11/mobile-versioning-at-knack-cover.jpg 3720w,\n/static/9001e8ec5b8ad3e958e1838d49e12fb9/e8cb6/mobile-versioning-at-knack-cover.jpg 5327w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Tony Faieta","bio":"Technical Lead","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/2aadcf7e6f66e3f20e3abc307c51dc6a/c32cc/tony-faieta.jpg"}}]}}},"fields":{"layout":"post","slug":"/mobile-versioning-at-knack/"}}},{"node":{"excerpt":"Late last year, we started looking into embedded analytical dashboard solutions. We concluded that embedding pre-built dashboards would…","timeToRead":10,"frontmatter":{"title":"Unlocking the Power of Data with Cube on AWS: A Comprehensive Guide","tags":["Engineering"],"date":"2023-12-01T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAAByElEQVQoz3WSTWsTURSG84MUZ25mJpNOMp+ZSTpJJpM0EtFGKqZgsFCMLQTdKQoutTsVA/4Hhf4Fwb120frZgrjSnYv7yJ1GVNDFgcPh8HAOz1sSIkKISC6LcrmBECG67iL0EFOLWKn2MKxVzokIrVzsL/cidD1E0wKpaYGa/SgZRiwtq4lpxhjGKcy0Ujx3ghOMqTQ2uJD1WWumnK/0aJopYgm17VU8LyeK1lRJBS+pYeDn0qln0rLbaFodP5hwe+cz03sH9BefePl0ztdHCYf5Dq/tGf1yhzMiwKtntDtjPLcnPaeNLiJZct2MbueSjJoXsf0RuuYSRlNuXD9m8+4R8eMT9p/N+fbQ5V26zRt7l3UzL4BOtc1gcAXFUF+qqwtglo1lEo+oOTlaAbzG9vSYzTtHxE9O2F/c4vuez/tsxtvK38BudhnX62FVWqdA9bLv57JW60rVK2AQTJhtfWTr/gHDxQdePH/Al702h6M5r1Zu0iu3OStCnJWURjwkbvRlEg+VIFlIMc0E01Rikj+kXMUJ1qkmGww7OZ2wxcDs0lBSxG8pftCnEbSo1dIiJaX/xUb7FRsRUrFThNEsIvPv2ESFYRWbn68zMOLTQdQbAAAAAElFTkSuQmCC","aspectRatio":2.5846153846153848,"src":"/static/c97bc7c7603d97c2c358a0a2921ede9f/e7595/cube-semantic-layer.png","srcSet":"/static/c97bc7c7603d97c2c358a0a2921ede9f/23f9c/cube-semantic-layer.png 310w,\n/static/c97bc7c7603d97c2c358a0a2921ede9f/391c3/cube-semantic-layer.png 620w,\n/static/c97bc7c7603d97c2c358a0a2921ede9f/e7595/cube-semantic-layer.png 1240w,\n/static/c97bc7c7603d97c2c358a0a2921ede9f/e914e/cube-semantic-layer.png 1860w,\n/static/c97bc7c7603d97c2c358a0a2921ede9f/898ec/cube-semantic-layer.png 2480w,\n/static/c97bc7c7603d97c2c358a0a2921ede9f/8fe09/cube-semantic-layer.png 2688w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Lars Koester","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/f900b40b3dbf4da6f58d7852b7aa5625/f6494/lars-koester.png"}}]}}},"fields":{"layout":"post","slug":"/aws-cube-js-deployment/"}}},{"node":{"excerpt":"Solution Laravel Nova login screen - “Call to a member function can() on null”Sometimes my development environment experiences the following…","timeToRead":3,"frontmatter":{"title":"[Solution] How do I fix \"Call to a member function can() on null\" when using Laravel Nova?","tags":["Engineering"],"date":"2023-11-30T21:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAuklEQVQY033Q4QqCMBQF4L1BoWXqKm1pzm1OLShdJfT+D3WiO6gg6MfHORv3/rksTCTi3CLk6pOZxTyu/jiQ2eoXW24MlhuNiNJgsdYIuaYebZu3VWa9vEX8suuQkB6J6JGKHnx/ApPdHXV3h+onylyeyU5eKEU9YK9Gn3pEYRwK7VCYKznYG6p2gmwnqOMDTKgBhR5p2HdHb7/kUDZX77XceOUX+rM3UhoHFnCFIK09Xn/6X4pu/UvjCespjlt5MUuiAAAAAElFTkSuQmCC","aspectRatio":4.2105263157894735,"src":"/static/e036d6de9e4f201d460ca3750e1e9938/e7595/banner.png","srcSet":"/static/e036d6de9e4f201d460ca3750e1e9938/23f9c/banner.png 310w,\n/static/e036d6de9e4f201d460ca3750e1e9938/391c3/banner.png 620w,\n/static/e036d6de9e4f201d460ca3750e1e9938/e7595/banner.png 1240w,\n/static/e036d6de9e4f201d460ca3750e1e9938/e914e/banner.png 1860w,\n/static/e036d6de9e4f201d460ca3750e1e9938/a417a/banner.png 2400w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Scott Chaplinski","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/9cde8d0f93b2f89dfc7baab094b0567a/c32cc/scott-chaplinski.jpg"}}]}}},"fields":{"layout":"post","slug":"/nova-tip-function-can-on-null/"}}},{"node":{"excerpt":"IntroSingle Sign-On (SSO) is a widely-used authentication method that makes applications more secure and reduces the attack surface for an…","timeToRead":5,"frontmatter":{"title":"Adding SAML Single Sign-On to a Laravel Application","tags":["Engineering"],"date":"2023-11-30T09:00:00.0Z","image":null,"author":{"id":"Alena Maiden Mueller","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/60f10f36dc7b98f327ba95e48c9b1f44/c32cc/alena-maiden-mueller.jpg"}}]}}},"fields":{"layout":"post","slug":"/laravel-saml-single-sign-on/"}}},{"node":{"excerpt":"Pull Requests (PRs) are an essential part of the software development workflow, allowing developers to propose changes, contribute new…","timeToRead":9,"frontmatter":{"title":"The Art (and Science) of Reviewable PRs","tags":["Engineering"],"date":"2023-11-29T15:00:00.0Z","image":null,"author":{"id":"Misha Hawthorn","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/07417efdedf83537485b65256cece4bf/c32cc/misha-hawthorn.jpg"}}]}}},"fields":{"layout":"post","slug":"/art-and-science-of-reviewable-prs/"}}},{"node":{"excerpt":"Why does our Laravel app need a Salesforce integration?Knack Tutoring is a unique peer-tutoring platform used by colleges and universities…","timeToRead":13,"frontmatter":{"title":"Building a Salesforce PHP Integration Using Laravel","tags":["Engineering"],"date":"2023-07-11T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAZ3c6nZhgC//xAAcEAACAgIDAAAAAAAAAAAAAAABAgADERITISL/2gAIAQEAAQUCqYbWoxdqczPfJ5NrCf/EABURAQEAAAAAAAAAAAAAAAAAAAAh/9oACAEDAQE/AUf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAgEBPwFX/8QAGRAAAgMBAAAAAAAAAAAAAAAAAUEAESAx/9oACAEBAAY/AgXOUs//xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAxQVFh/9oACAEBAAE/IfHPR9wThw8uoo0mILlqA77ctCQ/N//aAAwDAQACAAMAAAAQww//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QMGyf/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/EHWf/8QAGxABAQADAAMAAAAAAAAAAAAAAREAIWExQVH/2gAIAQEAAT8QSpCYngyafTzINRRUBVq8MUzQRLvuMhuI4+wZFXr5gDVAMf/Z","aspectRatio":1.499844768705371,"src":"/static/7f17f2acfe74bb2501ad593272956f89/8a760/multiple-people-use-mac-at-once.jpg","srcSet":"/static/7f17f2acfe74bb2501ad593272956f89/68709/multiple-people-use-mac-at-once.jpg 310w,\n/static/7f17f2acfe74bb2501ad593272956f89/53593/multiple-people-use-mac-at-once.jpg 620w,\n/static/7f17f2acfe74bb2501ad593272956f89/8a760/multiple-people-use-mac-at-once.jpg 1240w,\n/static/7f17f2acfe74bb2501ad593272956f89/0e6ff/multiple-people-use-mac-at-once.jpg 1860w,\n/static/7f17f2acfe74bb2501ad593272956f89/7efdd/multiple-people-use-mac-at-once.jpg 2480w,\n/static/7f17f2acfe74bb2501ad593272956f89/45a11/multiple-people-use-mac-at-once.jpg 3720w,\n/static/7f17f2acfe74bb2501ad593272956f89/d65f9/multiple-people-use-mac-at-once.jpg 4831w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Scott Chaplinski","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/9cde8d0f93b2f89dfc7baab094b0567a/c32cc/scott-chaplinski.jpg"}}]}}},"fields":{"layout":"post","slug":"/salesforce-appexchange/"}}},{"node":{"excerpt":"IntroductionAnomaly Detection can get intimidating when you hear it for the first time. You probably think about mathematical standard…","timeToRead":5,"frontmatter":{"title":"Simple Anomaly Detection Process","tags":["Engineering"],"date":"2023-04-02T15:24:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVQoz6WSiQrDIBBE/f8vbaFQ6OWxx5RRU1NILDTCoFl3385igpnB3fcFQFOCve71XDXJD1OYsxyI2SCXE3A9w5+3KfQ30B2pOJSU+IAvTv932IHW3B4fuTsUnedtAtF3sxEjiCr6nUfZDMhhOBa1jFjEEUtrQKD2RjwzlqQ1W9eGtRMCCKtF0gpjGXe5i7AsI679++NQFBDD5mJcd+7qIzlak/ZmCPyxRRSqx0XWG3jyGMedIxh/AAAAAElFTkSuQmCC","aspectRatio":2.043103448275862,"src":"/static/48f0a4a43eda321748e7901cd07db6dc/e7595/anomaly-detection.png","srcSet":"/static/48f0a4a43eda321748e7901cd07db6dc/23f9c/anomaly-detection.png 310w,\n/static/48f0a4a43eda321748e7901cd07db6dc/391c3/anomaly-detection.png 620w,\n/static/48f0a4a43eda321748e7901cd07db6dc/e7595/anomaly-detection.png 1240w,\n/static/48f0a4a43eda321748e7901cd07db6dc/e914e/anomaly-detection.png 1860w,\n/static/48f0a4a43eda321748e7901cd07db6dc/5db41/anomaly-detection.png 1896w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Lars Koester","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/f900b40b3dbf4da6f58d7852b7aa5625/f6494/lars-koester.png"}}]}}},"fields":{"layout":"post","slug":"/simple-anomaly-detection-process/"}}},{"node":{"excerpt":"This article has been cross-posted on my personal blogAt Knack, one of our key user experiences is the Classroom, a web based audio and…","timeToRead":3,"frontmatter":{"title":"Adding A/V Observability to our Classroom","tags":["Engineering"],"date":"2023-03-24T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABQABBP/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAFHTOWKeiYf/8QAGRABAQEBAQEAAAAAAAAAAAAAAgEAAxIT/9oACAEBAAEFAi5d7LW6ujHovrVd/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAEREv/aAAgBAwEBPwGIyj//xAAXEQEAAwAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/AdXL/8QAGxAAAQQDAAAAAAAAAAAAAAAAAAERITEQElH/2gAIAQEABj8CG2rDIQs9LP/EABwQAQACAwADAAAAAAAAAAAAAAEAESExQVFxsf/aAAgBAQABPyF7Aj7iNud0eYl6Z9dh9BPEO9Xmf//aAAwDAQACAAMAAAAQXO//xAAYEQACAwAAAAAAAAAAAAAAAAAAARExQf/aAAgBAwEBPxBKoc+n/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAEhYf/aAAgBAgEBPxCyM3//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFRccH/2gAIAQEAAT8QrOFMDhWqY3I9+GKrpzYhbKDoH9x0AKKDalphd7O11t1pPM//2Q==","aspectRatio":1.5037593984962405,"src":"/static/bd5a5993d50ebb1bb6318e3dd0ffd795/8a760/chime-events-cover.jpg","srcSet":"/static/bd5a5993d50ebb1bb6318e3dd0ffd795/68709/chime-events-cover.jpg 310w,\n/static/bd5a5993d50ebb1bb6318e3dd0ffd795/53593/chime-events-cover.jpg 620w,\n/static/bd5a5993d50ebb1bb6318e3dd0ffd795/8a760/chime-events-cover.jpg 1240w,\n/static/bd5a5993d50ebb1bb6318e3dd0ffd795/0e6ff/chime-events-cover.jpg 1860w,\n/static/bd5a5993d50ebb1bb6318e3dd0ffd795/7efdd/chime-events-cover.jpg 2480w,\n/static/bd5a5993d50ebb1bb6318e3dd0ffd795/9b939/chime-events-cover.jpg 3400w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Tony Faieta","bio":"Technical Lead","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/2aadcf7e6f66e3f20e3abc307c51dc6a/c32cc/tony-faieta.jpg"}}]}}},"fields":{"layout":"post","slug":"/chime-events-dashboard/"}}},{"node":{"excerpt":"Seven months ago, I started my tenure as a frontend developer at Knack. My time here has been a journey to say the least! Getting acquainted…","timeToRead":2,"frontmatter":{"title":"Joining the Pack","tags":["Engineering"],"date":"2023-03-24T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAABYlAAAWJQFJUiTwAAAE+UlEQVQ4yx3T7VPTBQDA8V8KoowHnYKTcDhsY/IwxtgYY0/AYBsPe2BDEJgbKOADCjIVfAgUUTEV8VnLNOu8xJROLy7vfDjTtHx4gVaWetmZeWd1aV29qd58u/wPPnff+wrqjktkdVxGveIy2vAVVB2fk915nZzwF2hX3ULffYeCN8ew9H2NfesD/LufUHvwKfVHfqblxEtqVmzHE2ilprmTwKJOhIKuq6SH71DSdoB5vWdQhu+Su/oW2q476NeOYXjzHuaN9yna/BDn4DM8b32FvbaNwKHHLB75h2Dfh7jrmqhr6SC0qA3B0nMb04Yxqlu76dh9HsuWh5g2PSB/02P0vd9h6X+EdctjbNt+wLX/Bf7ec9iLDCwfGqVtFFr3XcMfWEh9UzOhlhaE9SO/0nvyexYs7WTroWHUpQ1k2pso7x7Bu/85vj0/0nD4Gd69T1nzyd/0Hb2AwWhkeXg1/Rf+YM3IT1QvaMPf0EhdYyPCxv0nae0eoKTChS+4iHhpJqLpqcwNNrN/5CbHrr/ko9u/cfjq7+w4+4B33juOqbAYl6uCrfuOsOvKLzS09+CuC1IXCiFYK2swWKyUVVWTW1SBRKFjyqxs7NVBNu/cxZMXf3Hr0TOe/vkve4+fwmwxY7Y5MNmcrF+1hMErz2keeB/PvABz589HsNc2Yy4uobDMhcZqJ0mezeTkNIzOKrYM7mJg+w6Wda1n9Pa3NLZ3U1buxFHpwmovZ1NPmJ7jF1k49DFVgRC++nqE4kofNocDtcGMylBIskJNdEIKFb65nDp9AlXGHDasCHLszFmaFrXir/bg8vmx2p2s+V+4bw9bjw5Tu6AVd7Ufobi0lCKbjXStAY3ZhlxjIkYym8rqGlZ2rUQUO4WsXC2L29tY2dVJ43wf9YG5FJcU0rakkf6e5VR5HXgbglT6fAhGs4k8gwFZejaKHD0SuZqoqVL01iK81X4mxYqJn/46dcEA7Z3LaGupoaWpCrermNpaD2XOYqQyGTWBepweL4LJaiVHpyNFriRXoyZNoSBFOgtvZRnh5S2YDblkZknR5WficFjxVBSysM6Nt7wIj9uO3WYiW6VAm6ejvNyMIEmSEhMvZlpsLEGPg1q3m4DPTWaaHFmylBJjHl6TBmeBhooiI6lJEiotuWTPSUchV6BWZSBXzEQxZyZmkxxBqUxBmZFKujSR9NRZyBQZZKn1RIviSJw+kwyVCm3qLELlDpYtbkKekEBqciIy2WymzZASHRfPpLgYxBIxOXlyBK1OiUajQCqTkJQkISU1jdciRUSMG0dUlIhx4yOIGDeeJMkMMtIViCaJEASBxGQpqco0xkdEESeezMTYOJSZMoQli5vwel0YCvRYLEZytHlIZsxArZqDWDwFsVhMQuL0V3HGR0xgwkQRkZGRRMfEMXnqNBISEomOiUGIjGKiSIRgLCxBZ7SSV2BGl2/EUGDEaDK9OkKvz0OfrydLnUNGVjb6fANp6VlotLpXCIfTTrGtBGWGiuh4MQplGsLgwDoODPYyNLCWdauXsqK9leaWRlaFl9C7Pszq8DJCofk0hhrw+7zYSu0os/N5I1NPsjwHg8VGqbMCmTIHqTwT4Zvrp7l/4zR3Pxtm7NowX176gFtXTjB24zT3bp7j/p1Rzo8c5dTxvXw68i5v7x1g57aN9PetY9/uLdy4OMzoqcMcHOpnaHsP/wH+8Ng/ljEkgwAAAABJRU5ErkJggg==","aspectRatio":1.1184668989547037,"src":"/static/a11914709c02b50e65a13462eca43395/e7595/knackpack-in-chicago.png","srcSet":"/static/a11914709c02b50e65a13462eca43395/23f9c/knackpack-in-chicago.png 310w,\n/static/a11914709c02b50e65a13462eca43395/391c3/knackpack-in-chicago.png 620w,\n/static/a11914709c02b50e65a13462eca43395/e7595/knackpack-in-chicago.png 1240w,\n/static/a11914709c02b50e65a13462eca43395/68b42/knackpack-in-chicago.png 1284w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Donnie Batryn","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/22370cadba2323b6e4e636e00651bcbc/c32cc/donnie-batryn.jpg"}}]}}},"fields":{"layout":"post","slug":"/new-at-knack/"}}},{"node":{"excerpt":"IntroGreat, another blog post about React file structure…Back in 2019 we transitioned our frontend codebase into a monorepo (see our…","timeToRead":4,"frontmatter":{"title":"Organizing components in a monorepo","tags":["Engineering"],"date":"2023-03-21T15:00:00.0Z","image":null,"author":{"id":"Quinn Pruitt","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/9a603f572a9c94c4b84fea247626f957/c32cc/quinn-pruitt.jpg"}}]}}},"fields":{"layout":"post","slug":"/file-structure/"}}},{"node":{"excerpt":"When starting Knack in 2015, an early decision we made was to use AWS as our primary cloud provider. We started with a single AWS account…","timeToRead":2,"frontmatter":{"title":"AWS Multi-account access with Granted","tags":["Engineering","AWS"],"date":"2023-02-24T18:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAABa0lEQVQoz6VSTU/CQBTsb1GBttt2t2AgUVFqEEQw4SNgIHhRwa8mBuWAEERjiCHc1P87ZhfadDd68jCZ2dnuvL6Xp1mUgTgUhFLB/CzgsFCLe0e+V3Vw1lSDEApirbRpO7CZK4H7gZbeSYF0bfIgz4W158IwbbDUNmK6gbhhYjOeEJoX4bwRi0thSiALA92XDHSfol5t4mOxwGW/j4urHm7vffSubzCZTnHn+8IfPY+R2dmFbtlh+1o4B5PCLrhgwzT0mo3TSg2L5RKDpyGmsxk+v77xMHjEaDzB+3wuis1e35BKZ2CogSSYAWOwdhmsnAvTdER7WwkdOrEE81YTJhHMR8Dvf59h1LRXrdNkCtV6A+1uF41WC2ftDurNJtrdc3TWKJUr0t/JgdE1oRSOm0Q256FwXIKXPxKcLxSx7x2ieFIWOnuQk1ctOkMV/ENenbfIW+bMEXiBVndSiy6tir+KqYWj0NTF/S9+AMP8aQvKVRDAAAAAAElFTkSuQmCC","aspectRatio":1.7777777777777777,"src":"/static/94884cefe83f548341a32010238fad1c/e7595/granted-banner.png","srcSet":"/static/94884cefe83f548341a32010238fad1c/23f9c/granted-banner.png 310w,\n/static/94884cefe83f548341a32010238fad1c/391c3/granted-banner.png 620w,\n/static/94884cefe83f548341a32010238fad1c/e7595/granted-banner.png 1240w,\n/static/94884cefe83f548341a32010238fad1c/91f24/granted-banner.png 1280w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"David Stoker","bio":"Co-founder and CTO","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/6c26e23b066ba32dc1aa27a735b634f2/c32cc/david-stoker.jpg"}}]}}},"fields":{"layout":"post","slug":"/aws-granted/"}}},{"node":{"excerpt":"IntroClueless, but looking to up your game on accessibility. Starting on a new project and wanting to make sure you keep accessibility in…","timeToRead":5,"frontmatter":{"title":"Beginners Tips for Web Accessibility in React","tags":["Engineering"],"date":"2023-02-03T15:24:00.0Z","image":null,"author":{"id":"Keith Potempa","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/d2bf68563297faf59bb3d4e587671576/bb49b/keith-potempa.webp"}}]}}},"fields":{"layout":"post","slug":"/a11y/"}}},{"node":{"excerpt":"WebSockets are a ubiquitous tool for building real-time experiences for users. They provide a persistent, bidirectional connection between a…","timeToRead":13,"frontmatter":{"title":"Setting up a WebSocket server for your Laravel app","tags":["Engineering"],"date":"2023-01-30T15:00:00.0Z","image":null,"author":{"id":"Misha Hawthorn","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/07417efdedf83537485b65256cece4bf/c32cc/misha-hawthorn.jpg"}}]}}},"fields":{"layout":"post","slug":"/laravel-websocket-server-guide/"}}},{"node":{"excerpt":"Make the most out of Laravel Factories: How we migrated from Factory MuffinWe use Laravel to power the Knack API that is consumed by our iOS…","timeToRead":3,"frontmatter":{"title":"Make the most out of Laravel Factories: How we migrated from Factory Muffin","tags":["Engineering"],"date":"2022-12-16T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABlMYaKnHYpP8A/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAECESIDEv/aAAgBAQABBQKSPELoitc9I//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAICAwEAAAAAAAAAAAAAAAERABAhQWFx/9oACAEBAAY/AiV5FWNBx9r/xAAaEAADAAMBAAAAAAAAAAAAAAAAAREhMUGB/9oACAEBAAE/IUPSrkaJYPaM1Sp3ZEo23wM//9oADAMBAAIAAwAAABAz7//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPxCxr//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCVj//EABsQAQADAQADAAAAAAAAAAAAAAEAETEhQWFx/9oACAEBAAE/ECkvP0esLAFAEJLfkUdYY2NE4LT4ZkdC4vk3P//Z","aspectRatio":1.5001155001155002,"src":"/static/d1685c5bdd4e5fcff8118cb270a8a607/8a760/muffins.jpg","srcSet":"/static/d1685c5bdd4e5fcff8118cb270a8a607/68709/muffins.jpg 310w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/53593/muffins.jpg 620w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/8a760/muffins.jpg 1240w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/0e6ff/muffins.jpg 1860w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/7efdd/muffins.jpg 2480w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/45a11/muffins.jpg 3720w,\n/static/d1685c5bdd4e5fcff8118cb270a8a607/a9bec/muffins.jpg 6494w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Scott Chaplinski","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/9cde8d0f93b2f89dfc7baab094b0567a/c32cc/scott-chaplinski.jpg"}}]}}},"fields":{"layout":"post","slug":"/laravel_factory_migration/"}}},{"node":{"excerpt":"User Validation with ZeroBounceKnack has undergone some pretty astonishing changes in the last few years. Our team has grown, our problems…","timeToRead":2,"frontmatter":{"title":"User Validation with ZeroBounce","tags":["Engineering"],"date":"2020-02-04T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAHapOVCKf/EABcQAAMBAAAAAAAAAAAAAAAAAAEQEhH/2gAIAQEAAQUCoVqkav/EABYRAAMAAAAAAAAAAAAAAAAAAAEQYf/aAAgBAwEBPwEVf//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/Aaf/xAAXEAEBAQEAAAAAAAAAAAAAAAARECFB/9oACAEBAAY/AjtTb//EABkQAAIDAQAAAAAAAAAAAAAAAAERABBRQf/aAAgBAQABPyEjaYTaJXgnYhlf/9oADAMBAAIAAwAAABD4z//EABYRAAMAAAAAAAAAAAAAAAAAABARIf/aAAgBAwEBPxBqH//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QH//EABsQAQACAgMAAAAAAAAAAAAAAAEAERBhITFB/9oACAEBAAE/EDTBVRU1sCkuhHJBfJWiUBRP/9k=","aspectRatio":1.3330578512396694,"src":"/static/b8905b4a52f749348c715a0aaf28cd03/8a760/user-verification-banner.jpg","srcSet":"/static/b8905b4a52f749348c715a0aaf28cd03/68709/user-verification-banner.jpg 310w,\n/static/b8905b4a52f749348c715a0aaf28cd03/53593/user-verification-banner.jpg 620w,\n/static/b8905b4a52f749348c715a0aaf28cd03/8a760/user-verification-banner.jpg 1240w,\n/static/b8905b4a52f749348c715a0aaf28cd03/0c967/user-verification-banner.jpg 1613w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Doug Woodrow","bio":"Senior Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/73e6df584642e0e2034e9bf861f57443/c32cc/doug-woodrow.jpg"}}]}}},"fields":{"layout":"post","slug":"/zerobounce_announcement/"}}},{"node":{"excerpt":"For the past three months, I have had the pleasure of interning at Knack and as the summer is winding down, I can’t help but reflect on how…","timeToRead":4,"frontmatter":{"title":"Interning at Knack","tags":["Engineering"],"date":"2019-09-20T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAACA//EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABYdeMXeNL/8QAGxAAAQQDAAAAAAAAAAAAAAAAAQACAwQQEiH/2gAIAQEAAQUCklLCbS2w7oC//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGhAAAgIDAAAAAAAAAAAAAAAAABABITEyYf/aAAgBAQAGPwKOlLBqv//EABoQAAMAAwEAAAAAAAAAAAAAAAABESFBUTH/2gAIAQEAAT8hU2Z4ipNLbjRA28cC6BUyf//aAAwDAQACAAMAAAAQb8//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QRsv/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8Qq4//xAAbEAEAAgMBAQAAAAAAAAAAAAABABEhMUFxwf/aAAgBAQABPxCtlTQ038iETdBGS5c9j3A8OLi1Ke1AODc//9k=","aspectRatio":1.3333333333333333,"src":"/static/ab6e796e839e4cc376dd432b9247ec43/8a760/tony-interning-at-knack-banner.jpg","srcSet":"/static/ab6e796e839e4cc376dd432b9247ec43/68709/tony-interning-at-knack-banner.jpg 310w,\n/static/ab6e796e839e4cc376dd432b9247ec43/53593/tony-interning-at-knack-banner.jpg 620w,\n/static/ab6e796e839e4cc376dd432b9247ec43/8a760/tony-interning-at-knack-banner.jpg 1240w,\n/static/ab6e796e839e4cc376dd432b9247ec43/0e6ff/tony-interning-at-knack-banner.jpg 1860w,\n/static/ab6e796e839e4cc376dd432b9247ec43/7efdd/tony-interning-at-knack-banner.jpg 2480w,\n/static/ab6e796e839e4cc376dd432b9247ec43/45a11/tony-interning-at-knack-banner.jpg 3720w,\n/static/ab6e796e839e4cc376dd432b9247ec43/a8d59/tony-interning-at-knack-banner.jpg 4032w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Tony Faieta","bio":"Technical Lead","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/2aadcf7e6f66e3f20e3abc307c51dc6a/c32cc/tony-faieta.jpg"}}]}}},"fields":{"layout":"post","slug":"/tony-interning-at-knack/"}}},{"node":{"excerpt":"TL;DRYou will trade your inconveniences with polyrepos for tooling around your monorepo CI/CD pipeline.We recently made the transition to a…","timeToRead":4,"frontmatter":{"title":"Transitioning from Polyrepos to a Monorepo","tags":["Engineering"],"date":"2019-08-20T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA0ElEQVQoz52R6Q6CMBCEef93Mxo1MSD3WQ6RUxGFMV0hEoUE+DHZbnczmX4VWN7gV172Astb+EWLsfl35/9emDIzL3cYYQknqeGmTxKf9XXKdNSQJ1O8FDvJwuak46gy7GUHW9EkqX5GO7MNef2kqiG7CTQ/hx4W0IIcVlzRbHbC4SJPEd4AlWVQWErnlQwb2NcHifeco9Odey1iGJSAZMcdP4/4iVZETA+KCyMqlzPkqfgv62EJLShgXyucnZie7yb1eoa9hv0qhkNeY5pK+Abo1/oSCaRHxwAAAABJRU5ErkJggg==","aspectRatio":2,"src":"/static/2cc935429d64343a055bc7495cc96838/e7595/monorepo-banner.png","srcSet":"/static/2cc935429d64343a055bc7495cc96838/23f9c/monorepo-banner.png 310w,\n/static/2cc935429d64343a055bc7495cc96838/391c3/monorepo-banner.png 620w,\n/static/2cc935429d64343a055bc7495cc96838/e7595/monorepo-banner.png 1240w,\n/static/2cc935429d64343a055bc7495cc96838/9ecf6/monorepo-banner.png 1600w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Hans Hoffman","bio":"Software Engineer","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/3249f5e2b5c07ec7d4ee2283ac4734b0/c32cc/hans-hoffman.jpg"}}]}}},"fields":{"layout":"post","slug":"/monorepo/"}}},{"node":{"excerpt":"This summer I had the extremely rewarding experience of being a data science intern at Knack. I got first hand experience learning about…","timeToRead":2,"frontmatter":{"title":"Knack Summer Internship Review","tags":["Engineering"],"date":"2019-08-13T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAACW0lEQVQozx2PTUiTARyH/9OCCKKLByuoU3SIyKgOUYmFYR06RAR93CxPQRcNhKDS0KIPIhNMZdPNtjc1c6amHQKpbG34uY9377u9blM3NzVT57Z3c3v/v7AHnvvzEBERRAPBoyeIepodfkLAsI6I8m5eKs0HnLpRoY4Q7s5n0XCYPfpzEA31gJ2qy6/uvFx8hm6Unafq29foP+qyPy+95M3fnBvZDsdDYtn8CqLhlzjwfAcwTXPWewRkSA2NFMLX6WZPq5VFgwKAwv2VlJ4f3ZaNh3WASECEKBl1U3pZonR0klYBgtShsGwGlK5jcL8rgNhSBGgUmvi6Fz5hjWWLBuUT2Gu8y/bHB3ILNsqk1iklfqO39xt0lIhMX1AXJq6noq4rasx9KxsYWmJZACRTMXv0p1kW5iGZShqJiGVLnH0CEOjLsti2rAUHv2+uz5/NrPiLkPOR+UE9EbT0lLaZwpac2QAnF4FgvwqxXWCx3cy+To29pnGWLT3wdSYhC+AZa469RmiJKFhdhZZcsgMb9LG2ppAAOBAaBLIJYCOItd9NCPY3AiErWOnBVi3LFkDpRdj5GinJCAQ+g70d0Fb94PgsoC7aS8scuxvqHLXE8dk2dbIpoCb+urIrkj/yo1ntaXgWRPCDpHnNfhYNY5pHL0My+Zy2R0p46qUI2Tye8xr92dhELBf5mQZyX06dvLOnovxNBUnrKHAncNQTy56Y+ZM+NO7yH6+qbi2rejFGT0tIh6iVANo6If375qqatsojLQONZFNcRWMeab/NGdo3sxDe1d01eLCvd+jiP8mxxLd3QBn+AAAAAElFTkSuQmCC","aspectRatio":2.6470588235294117,"src":"/static/d89df73367d3b2a043526f6b84788657/e7595/partner-buildings.png","srcSet":"/static/d89df73367d3b2a043526f6b84788657/23f9c/partner-buildings.png 310w,\n/static/d89df73367d3b2a043526f6b84788657/391c3/partner-buildings.png 620w,\n/static/d89df73367d3b2a043526f6b84788657/e7595/partner-buildings.png 1240w,\n/static/d89df73367d3b2a043526f6b84788657/47b47/partner-buildings.png 1350w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"Emily Elia","bio":"Data Science Intern","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/d1b22bb238573e311638c6f045a0520b/c32cc/emily-elia.jpg"}}]}}},"fields":{"layout":"post","slug":"/emily_review/"}}},{"node":{"excerpt":"👋 Welcome to the Knack Engineering Blog. Knack is the fastest growing peer learning platform live at 50+ college campuses. We work with…","timeToRead":1,"frontmatter":{"title":"Welcome","tags":["Engineering"],"date":"2019-06-14T15:00:00.0Z","image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABkElEQVQoz3XNuU6UURjG8TMzDGYgIyIwLII2NsTGQgsrC5eQmJhYeiNWXoCxAoZNWWaDGXZEI9JZWlDQmIiVtY238DPn+yYwBRT/nJPnfZZga4TtMXZusTPO7jh7E+zdZv8Soh7vuxOpN+ZifmuUzRHBxhDNEq3hREgG4jGWR6L5MtoFNodplWgOsTEoqPfTuMn6QCIkAxsD1Ao0imyOXoy12jQHzwuSXCR21PsFlSLV69T6qN1I3+YY319zPMVanlr0FKj2UimwXqLeR73tr/alHZWiYKXAag+rvYlgOc/+Q/794uQtxy/YnuTrUw4ecPSc03fs3GOlm7Viml3pYbkgWMrzoZuP1xLBUpbmXf4ccvqenwv8bnC2xlmVH2/4e8LBIxZDmonZ2LGUF8xnWYjkWOxiIVApsX2fwye0Jvn2iqOXfH7Glyk+PaZxJ/UmmVzaMZ8VlDPMdRAHyoHZwExI/9NtZjreqEdvZ7acEcxmnFPuYC7XJoa62uQuKGcvvB0dwXSGmSuYvYSrvNMp/wH24SBmCm8WQwAAAABJRU5ErkJggg==","aspectRatio":2,"src":"/static/4d81a771382d34939cb39861f83c18b0/e7595/knack-banner.png","srcSet":"/static/4d81a771382d34939cb39861f83c18b0/23f9c/knack-banner.png 310w,\n/static/4d81a771382d34939cb39861f83c18b0/391c3/knack-banner.png 620w,\n/static/4d81a771382d34939cb39861f83c18b0/e7595/knack-banner.png 1240w,\n/static/4d81a771382d34939cb39861f83c18b0/9ecf6/knack-banner.png 1600w","sizes":"(max-width: 1240px) 100vw, 1240px"}}},"author":{"id":"David Stoker","bio":"Co-founder and CTO","avatar":{"children":[{"__typename":"ImageSharp","fixed":{"src":"/static/6c26e23b066ba32dc1aa27a735b634f2/c32cc/david-stoker.jpg"}}]}}},"fields":{"layout":"post","slug":"/welcome/"}}}]}},"pageContext":{"isCreatedByStatefulCreatePages":false,"tag":"Engineering"}}