CINXE.COM
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 4.24.4"/><meta data-react-helmet="true" name="description" content="Steve is an experienced software architect and trainer, focusing currently on ASP.NET Core and Domain-Driven Design."/><meta data-react-helmet="true" name="theme-color" content="#fff"/><meta data-react-helmet="true" property="og:type" content="business.business"/><meta data-react-helmet="true" property="og:title" content="Ardalis is Steve Smith - ardalis"/><meta data-react-helmet="true" property="og:url" content="/"/><meta data-react-helmet="true" property="og:image" content="/img/og-image.jpg"/><style data-href="/styles.eb8fec05cba5de708da7.css" data-identity="gatsby-global-css">@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400);pre[class*=language-].line-numbers{counter-reset:linenumber;padding-left:3.8em;position:relative}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{border-right:1px solid #999;font-size:100%;left:-3.8em;letter-spacing:-1px;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:3em}.line-numbers-rows>span{counter-increment:linenumber;display:block}.line-numbers-rows>span:before{color:#999;content:counter(linenumber);display:block;padding-right:.8em;text-align:right}.command-line-prompt{border-right:1px solid #999;display:block;float:left;font-size:100%;letter-spacing:-1px;margin-right:1em;pointer-events:none;text-align:right;-webkit-user-select:none;user-select:none}.command-line-prompt>span:before{content:" ";display:block;opacity:.7;padding-right:.8em}.command-line-prompt>span[data-user]:before{content:"[" attr(data-user) "@" attr(data-host) "] $"}.command-line-prompt>span[data-user=root]:before{content:"[" attr(data-user) "@" attr(data-host) "] #"}.command-line-prompt>span[data-prompt]:before{content:attr(data-prompt)}.command-line-prompt>span[data-continuation-prompt]:before{content:attr(data-continuation-prompt)}.command-line span.token.output{opacity:.7}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#f8f8f2;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;line-height:1.5;text-shadow:0 1px rgba(0,0,0,.3)}pre[class*=language-]{border-radius:.3em;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.entity{cursor:help}.badgescard,.firstinfo{align-items:center;display:flex;justify-content:center}.container{background-color:#fff;z-index:10}.content-card{-webkit-animation:animatop .9s cubic-bezier(.425,1.14,.47,1.125) forwards;animation:animatop .9s cubic-bezier(.425,1.14,.47,1.125) forwards;position:relative}.card{border-radius:3px;box-shadow:0 10px 20px rgba(0,0,0,.2);font-size:18px;min-height:100px;overflow:hidden;padding:20px;width:700px}.card:after{-webkit-animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;background:#3571b8;content:"";display:block;height:300px;position:absolute;width:190px}.card-sidebar{background-color:#fff;border-radius:3px;font-size:15px;left:0;margin-top:-4%;min-height:100px;overflow:hidden;padding:10px;position:relative;width:400px!important}.card-sidebar:after{-webkit-animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;background:#3571b8;content:"";display:block;height:300px;position:absolute;width:190px}.tile.is-child{width:100%}.tile:not(.is-child){display:flex;width:100%}@media only screen and (max-width:1024px){.card{display:none}.card-sidebar,.recent-post{width:100%!important}.twitter-timeline{margin-left:2%!important;width:600px!important}.blog-list-item .featured-thumbnail{margin:0 0 1em;text-align:center;width:100%}.blog-list-item header{display:block;width:800px!important}}@media only screen and (max-width:480px){.card{display:none}.card-sidebar{background-color:#fff;border-radius:3px;font-size:12px;left:0;min-height:180px;overflow:hidden;padding:0;position:relative;width:340px!important}.card-sidebar:after{-webkit-animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;animation:rotatemagic .75s cubic-bezier(.425,1.04,.47,1.105) 1s both;background:#3571b8;content:"";display:block;height:240px;position:absolute;width:150px}.sidebar{left:50%!important;margin:0!important;visibility:collapse;width:380px!important}.tile:not(.is-child){display:block;width:100%}.recent-post{width:320px!important}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding-bottom:0!important;padding-left:0!important;padding-right:0!important;padding-top:0}.MuiButton-root{margin-left:-5%!important;margin-top:5%!important}.MuiOutlinedInput-input{padding:14.5px 10px!important;width:280px!important}}@media only screen and (min-width:320px){.MuiOutlinedInput-input{padding:14.5px 10px!important;width:250px!important}}.sidebar{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(43,37,35,.1),0 0 0 1px rgba(43,37,35,.02);color:#4a4a4a;display:block;left:50%;padding-top:1.25rem;position:absolute;-webkit-transform:translate(-50%);transform:translate(-50%);z-index:0}.sidebar,ul li:before{font-weight:400;line-height:20px}.sidebar,h2,ul li:before{float:none;list-style:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIlJREFUeNpiYCATMKILmBbuMABSAUA84XS/xwdcGpmwiO0H4noQDTREgBSNMGCATzM2jYXEaGbEZhpQYQKQmo8kdAGIHZH9jNWpQAULgFQims3rifUjyBaSQhUWJaDQhfntA5rfccYjuiaQ/y4QE494NRHyI05NIMCCRcwRmuQWADU9YKA2AAgwANXjLnb5SuGCAAAAAElFTkSuQmCC);padding-right:.5em;position:relative;text-decoration:none}.sidebar,h2{font-weight:700;line-height:30px}.twitter-timeline{margin-left:2%!important}.firstinfo{flex-direction:row;padding:0;position:relative;z-index:2}.firstinfo img{border-radius:50%;height:120px;width:120px}.firstinfo .profileinfo{padding:0 10px 0 0}.firstinfo .profileinfo h1{font-size:1.8em}.firstinfo .profileinfo h3{color:#3571b8;font-size:1.2em;font-style:italic}.firstinfo .profileinfo p.bio{color:#5a5a5a;font-style:normal;line-height:1.2;padding:0}@-webkit-keyframes animatop{0%{bottom:-500px;opacity:0}to{bottom:0;opacity:1}}@keyframes animatop{0%{bottom:-500px;opacity:0}to{bottom:0;opacity:1}}@-webkit-keyframes animainfos{0%{bottom:10px}to{bottom:-42px}}@keyframes animainfos{0%{bottom:10px}to{bottom:-42px}}@-webkit-keyframes rotatemagic{0%{left:-253px;opacity:0;top:-24px;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:-78px;top:-24px;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}}@keyframes rotatemagic{0%{left:-253px;opacity:0;top:-24px;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:-78px;top:-24px;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}}.message-body{border-color:#5bc0de!important;border-radius:4px!important;border-style:solid;border-width:0 0 0 6px!important;font-size:1.7em}cite{color:#5bc0de!important}form input{border:2px;border-radius:6px;box-shadow:0 4px 1px rgba(0,0,0,.1);display:block;font-family:Merriweather,sans-serif;font-size:1.5em;margin-top:.5em;outline:0;padding:.7em;resize:none;width:60%}.form-control input:focus{background-color:#ffdae8}.section{padding:.8rem 1.5rem!important}.box{box-shadow:none!important}.navbar{font-size:1.2em;font-variant:unset;font-weight:600;min-height:5em}.recent-post{align-items:center;display:block;font-size:1em;margin-left:13px;width:340px}.recent-post,ul li:before{float:none;font-weight:400;left:3%;line-height:30px;list-style:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIlJREFUeNpiYCATMKILmBbuMABSAUA84XS/xwdcGpmwiO0H4noQDTREgBSNMGCATzM2jYXEaGbEZhpQYQKQmo8kdAGIHZH9jNWpQAULgFQims3rifUjyBaSQhUWJaDQhfntA5rfccYjuiaQ/y4QE494NRHyI05NIMCCRcwRmuQWADU9YKA2AAgwANXjLnb5SuGCAAAAAElFTkSuQmCC);padding-right:.5em;position:relative;text-decoration:none}@media print,screen and (min-width:769px){.column.is-12{flex:none;width:100%}}.subtitle{font-size:1rem!important;padding-top:4px}@media screen and (max-width:768px){.blog-list-item .featured-thumbnail{margin:0 0 1em;max-width:100%;text-align:center}.blog-list-item header{display:block;width:360px!important}}@media screen and (min-width:1024px){.navbar{min-height:4.25rem!important}}pre{font-family:Courier\ 10 Pitch,Courier,monospace;white-space:pre}code,pre{font-size:95%;line-height:140%;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-o-pre-wrap}code{background:#faf8f0;font-family:Monaco,Consolas,Andale Mono,DejaVu Sans Mono,monospace}#content code{border:1px solid #bebab0;display:block;padding:.5em 1em}body{margin:0;overflow:hidden;padding:0;width:100vw}.content .taglist{line-height:.5px!important;padding:2px!important}.MuiButton-root{height:55px!important;left:5%!important}.MuiOutlinedInput-input{width:300px!important}.MuiButton-containedPrimary{background-color:#3571b8!important;color:#fff}.form{left:55%!important;padding:10px!important}.content .catlist{align-items:center;display:block;flex-wrap:wrap;justify-content:left;list-style:none;margin:1.5rem 1.5rem 0 0;word-break:break-word!important}.gatsby-highlight-code-line{background-color:#feb;border-left:.25em solid #f99;display:block;margin-left:-1em;margin-right:-1em;padding-left:.75em;padding-right:1em}.gatsby-highlight pre[class*=language-].line-numbers{overflow:initial;padding:0 0 0 2.8em}.googletextbox{font-size:1em;padding:.1em}code[class*=language-],pre[class*=language-]{color:#9efeff;direction:ltr;font-family:Operator Mono,Fira Code,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:17px;font-weight:400;-webkit-hyphens:none;hyphens:none;letter-spacing:.5px;line-height:25px;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px #222245;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::-moz-selection,code[class*=language-] ::selection,code[class*=language-]::-moz-selection,code[class*=language-]::selection,pre[class*=language-] ::-moz-selection,pre[class*=language-] ::selection,pre[class*=language-]::-moz-selection,pre[class*=language-]::selection{background:#a599e9;color:inherit}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:2em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#1e1e3f}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em}.token{font-weight:400}.token.cdata,.token.comment,.token.prolog{color:#b362ff}.token.atrule,.token.delimiter,.token.important,.token.keyword,.token.selector{color:#ff9d00}.token.attr-name,.token.operator{color:#ffb454}.token.punctuation{color:#fff}.token.boolean{color:#ff628c}.token.builtin,.token.doctype,.token.tag,.token.tag .punctuation{color:#ff9d00}.token.entity,.token.symbol{color:#6897bb}.token.constant,.token.number,.token.property,.token.variable{color:#ff628c}.token.char,.token.string{color:#a5ff90}.token.attr-value,.token.attr-value .punctuation{color:#a5c261}.token.attr-value .punctuation:first-child{color:#a9b7c6}.token.url{color:#287bde;text-decoration:underline}.token.function{color:#fad000}.token.regex{background:#364135}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.inserted{background:#0f0}.token.deleted{background:#ff000d}code.language-css .token.property,code.language-css .token.property+.token.punctuation{color:#a9b7c6}code.language-css .token.id,code.language-css .token.selector>.token.attribute,code.language-css .token.selector>.token.class,code.language-css .token.selector>.token.pseudo-class,code.language-css .token.selector>.token.pseudo-element{color:#ffc66d}.token.class-name{color:#fb94ff}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:none}pre .line-highlight,pre .line-highlight.line-highlight,pre>code.line-highlight{background:linear-gradient(90deg,rgba(179,98,255,.17),transparent);margin-top:36px}pre .line-highlight:before,pre .line-highlight[data-end]:after,pre>code.line-highlight:before,pre>code.line-highlight[data-end]:after{content:""}pre code{padding-left:0}.navbar .navbar-menu{box-shadow:none!important}.content .taglist{align-items:center;display:flex;flex-wrap:wrap;justify-content:left;list-style:none;margin:1.5rem 1.5rem 0 0}.content .taglist li{margin-bottom:1.5rem;margin-top:0;padding:0 2rem 1rem 0}.full-width-image-container{left:50%;margin:2em -50vw;position:relative;right:50%}.full-width-image,.full-width-image-container{align-items:center;background-position:bottom;background-size:cover;display:flex;height:400px;justify-content:center;width:100vw}.btn{background-color:#fff;border-radius:.25rem;box-shadow:inset 0 0 0 2px #3571b8;color:#000;display:inline-block;font-size:18px;font-size:1rem;font-weight:700;line-height:1.25;padding:12px 16px 10px;text-align:center;text-decoration:none;transition:all .15s ease}.btn:hover{background-color:#3571b8;color:#fff}.margin-top-0{margin-top:0!important}.navbar-item .icon{color:#2b2523}.icon svg{fill:currentColor;height:1.5rem;width:1.5rem}.navbar-brand .navbar-item.logo{padding:0 1rem}footer.footer{background-color:transparent;padding:3rem 0 0}.social{padding:2em}.social a{background-color:#f5f5f5;border-radius:1em;display:inline;height:1em;margin:.5em;padding:.5em .5em .3em;vertical-align:middle;width:1em}.blog-list-item.is-featured{background-color:#2989d879}.blog-list-item header{display:flex;margin-bottom:1em}.blog-list-item .featured-thumbnail{flex-basis:100%;margin:0}/*! bulma.io v0.8.2 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.box:not(:last-child),.content:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.subtitle:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.button,.input,.textarea{align-items:center;-moz-appearance:none;-webkit-appearance:none;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.input:active,.input:focus,.is-active.button,.is-active.input,.is-active.textarea,.textarea:active,.textarea:focus{outline:none}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */body,h1,h2,h3,h4,html,li,p,textarea,ul{margin:0;padding:0}h1,h2,h3,h4{font-size:100%;font-weight:400}ul{list-style:none}button,input,textarea{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}html{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:#fff;font-size:16px;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility}article,footer,header,section{display:block}body,button,input,textarea{font-family:BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif}code{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#333;font-size:1em;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#f14668;font-size:.875em;font-weight:400;padding:.25em .5em}img{height:auto;max-width:100%}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}@media screen and (max-width:768px){.is-size-3-mobile{font-size:2rem!important}.is-size-5-mobile{font-size:1.25rem!important}}@media print,screen and (min-width:769px){.is-size-2-tablet{font-size:2.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-4-widescreen{font-size:1.5rem!important}}.has-text-centered{text-align:center!important}.has-background-black{background-color:#2b2523!important}.has-text-primary{color:#2b2523!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#0f0d0c!important}.has-text-white-ter{color:#f5f5f5!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-block{display:block!important}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(43,37,35,.1),0 0 0 1px rgba(43,37,35,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(43,37,35,.1),0 0 0 1px #3273dc}a.box:active{box-shadow:inset 0 1px 2px rgba(43,37,35,.2),0 0 0 1px #3273dc}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding:calc(.5em - 1px) 1em;text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button:hover{border-color:#b5b5b5;color:#363636}.button:focus{border-color:#3273dc;color:#363636}.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-link{background-color:#3273dc;border-color:transparent;color:#fff}.button.is-link:hover{background-color:#276cda}.button.is-link:focus,.button.is-link:hover{border-color:transparent;color:#fff}.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (min-width:1216px){.container{max-width:1152px}}@media screen and (min-width:1408px){.container{max-width:1344px}}.content li+li{margin-top:.25em}.content p:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.icon{align-items:center;display:inline-flex;height:1.5rem;justify-content:center;width:1.5rem}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code{background:#fff}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-link{background-color:#3273dc;color:#fff}@-webkit-keyframes moveIndeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body).is-link{background-color:#3273dc;color:#fff}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle span,.title span{font-weight:inherit}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-4{font-size:1.5rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.input,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.textarea:active,.textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(43,37,35,.05);max-width:100%;width:100%}.is-link.input,.is-link.textarea{border-color:#3273dc}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.field:not(:last-child){margin-bottom:.75rem}.control{box-sizing:border-box;clear:both;font-size:1rem;text-align:left}.card,.control{position:relative}.card{background-color:#fff;box-shadow:0 .5em 1em -.125em rgba(43,37,35,.1),0 0 0 1px rgba(43,37,35,.02);color:#4a4a4a;max-width:100%}.menu,.message{font-size:1rem}.message{background-color:#f5f5f5;border-radius:4px}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-link{background-color:#eef3fc}.message.is-link .message-body{border-color:#3273dc;color:#2160c4}.message-body{border:solid #dbdbdb;border-radius:4px;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.navbar{background-color:#fff}.navbar{min-height:3.25rem;position:relative;z-index:30}.navbar.is-link{background-color:#3273dc;color:#fff}.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#2366d1;color:#fff}}.navbar>.container{width:100%}.navbar-brand,.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem}.navbar-brand{flex-shrink:0}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;margin-left:auto;position:relative;width:3.25rem}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;-webkit-transform-origin:center;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,transform;transition-property:background-color,opacity,transform,-webkit-transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:first-child{top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:first-child{-webkit-transform:translateY(5px) rotate(45deg);transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){-webkit-transform:translateY(-5px) rotate(-45deg);transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}a.navbar-item{cursor:pointer}a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#3273dc}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item{align-items:center;display:flex}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(43,37,35,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar-burger{display:none}.navbar-item{align-items:center;display:flex}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}a.navbar-item.is-active{color:#2b2523}a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}@media print,screen and (min-width:769px){.column.is-offset-1{margin-left:8.33333%}.column.is-4{flex:none;width:33.33333%}.column.is-6{flex:none;width:50%}.column.is-7{flex:none;width:58.33333%}.column.is-10{flex:none;width:83.33333%}.column.is-12{flex:none;width:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:.75rem}.columns.is-multiline{flex-wrap:wrap}@media print,screen and (min-width:769px){.columns:not(.is-desktop){display:flex}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media print,screen and (min-width:769px){.tile:not(.is-child){display:flex}.tile.is-4{flex:none;width:33.33333%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-10{flex:none;width:83.33333%}.tile.is-12{flex:none;width:100%}}.section{padding:3rem 1.5rem}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}@media screen and (min-width:769px) and (max-width:1023px){.blog-list-item .featured-thumbnail{flex-basis:50%}}@media screen and (max-width:768px){.blog-list-item header{display:block}.blog-list-item .featured-thumbnail{margin:0 0 1em;max-width:70%;text-align:center}}a{text-decoration:none}</style><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-NVBMVX8');</script><title data-react-helmet="true">Personal | Ardalis is Steve Smith - ardalis</title><link data-react-helmet="true" rel="alternate" type="application/rss+xml" title="RSS Feed for Ardalis" href="/rss.xml/"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png"/><link data-react-helmet="true" rel="icon" type="image/png" href="/img/favicon-32x32.png" sizes="32x32"/><link data-react-helmet="true" rel="icon" type="image/png" href="/img/favicon-16x16.png" sizes="16x16"/><link data-react-helmet="true" rel="mask-icon" href="/img/safari-pinned-tab.svg" color="#ff4400"/><link rel="sitemap" type="application/xml" href="/sitemap/sitemap-index.xml"/><style id="jss-server-side"></style></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NVBMVX8" height="0" width="0" style="display: none; visibility: hidden" aria-hidden="true"></iframe></noscript><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div><nav class="navbar is-transparent" role="navigation" aria-label="main-navigation"><div class="container"><div class="navbar-brand"><a class="navbar-item" title="Logo" href="/"><img src="data:image/png;base64,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" alt="Ardalis" style="width:150px"/></a><div class="navbar-burger burger " data-target="navMenu" role="button" tabindex="0"><span></span><span></span><span></span></div></div><div id="navMenu" class="navbar-menu "><div class="navbar-start has-text-centered"><a class="navbar-item" href="/blog">Blog</a><a class="navbar-item" href="/training-classes">Training</a><a class="navbar-item" href="/mentoring">Mentoring</a><a class="navbar-item" href="/tips">Subscribe</a><a class="navbar-item" href="/interviews">Interviews</a><a class="navbar-item" href="/books">Books</a><a class="navbar-item" href="/tools-used">Tools Used</a><a class="navbar-item" href="/contact-us">Contact</a></div><div class="navbar-end has-text-centered"><a class="navbar-item" href="https://bsky.app/profile/ardalis.com" target="_blank" rel="noopener noreferrer"><span class="icon"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjUzMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTEzNS43MiA0NC4wM2M2Ni40OTYgNDkuOTIxIDEzOC4wMiAxNTEuMTQgMTY0LjI4IDIwNS40NiAyNi4yNjItNTQuMzE2IDk3Ljc4Mi0xNTUuNTQgMTY0LjI4LTIwNS40NiA0Ny45OC0zNi4wMjEgMTI1LjcyLTYzLjg5MiAxMjUuNzIgMjQuNzk1IDAgMTcuNzEyLTEwLjE1NSAxNDguNzktMTYuMTExIDE3MC4wNy0yMC43MDMgNzMuOTg0LTk2LjE0NCA5Mi44NTQtMTYzLjI1IDgxLjQzMyAxMTcuMyAxOS45NjQgMTQ3LjE0IDg2LjA5MiA4Mi42OTcgMTUyLjIyLTEyMi4zOSAxMjUuNTktMTc1LjkxLTMxLjUxMS0xODkuNjMtNzEuNzY2LTIuNTE0LTcuMzc5Ny0zLjY5MDQtMTAuODMyLTMuNzA3Ny03Ljg5NjQtMC4wMTc0LTIuOTM1Ny0xLjE5MzcgMC41MTY2OS0zLjcwNzcgNy44OTY0LTEzLjcxNCA0MC4yNTUtNjcuMjMzIDE5Ny4zNi0xODkuNjMgNzEuNzY2LTY0LjQ0NC02Ni4xMjgtMzQuNjA1LTEzMi4yNiA4Mi42OTctMTUyLjIyLTY3LjEwOCAxMS40MjEtMTQyLjU1LTcuNDQ5MS0xNjMuMjUtODEuNDMzLTUuOTU2Mi0yMS4yODItMTYuMTExLTE1Mi4zNi0xNi4xMTEtMTcwLjA3IDAtODguNjg3IDc3Ljc0Mi02MC44MTYgMTI1LjcyLTI0Ljc5NXoiIGZpbGw9IiMxMTg1ZmUiLz4KPC9zdmc+Cg==" alt="bluesky"/></span></a><a class="navbar-item" href="https://www.youtube.com/ardalis/" target="_blank" rel="noopener noreferrer"><span class="icon"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+WW91VHViZSBpY29uPC90aXRsZT48cGF0aCBkPSJNMjMuNDk1IDYuMjA1YTMuMDA3IDMuMDA3IDAgMCAwLTIuMDg4LTIuMDg4Yy0xLjg3LS41MDEtOS4zOTYtLjUwMS05LjM5Ni0uNTAxcy03LjUwNy0uMDEtOS4zOTYuNTAxQTMuMDA3IDMuMDA3IDAgMCAwIC41MjcgNi4yMDVhMzEuMjQ3IDMxLjI0NyAwIDAgMC0uNTIyIDUuODA1IDMxLjI0NyAzMS4yNDcgMCAwIDAgLjUyMiA1Ljc4MyAzLjAwNyAzLjAwNyAwIDAgMCAyLjA4OCAyLjA4OGMxLjg2OC41MDIgOS4zOTYuNTAyIDkuMzk2LjUwMnM3LjUwNiAwIDkuMzk2LS41MDJhMy4wMDcgMy4wMDcgMCAwIDAgMi4wODgtMi4wODggMzEuMjQ3IDMxLjI0NyAwIDAgMCAuNS01Ljc4MyAzMS4yNDcgMzEuMjQ3IDAgMCAwLS41LTUuODA1ek05LjYwOSAxNS42MDFWOC40MDhsNi4yNjQgMy42MDJ6Ii8+PC9zdmc+" alt="youtube"/></span></a><a class="navbar-item" href="https://www.facebook.com/StevenAndrewSmith" target="_blank" rel="noopener noreferrer"><span class="icon"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+RmFjZWJvb2sgaWNvbjwvdGl0bGU+PHBhdGggZD0iTTIyLjY3NiAwSDEuMzI0Qy41OTMgMCAwIC41OTMgMCAxLjMyNHYyMS4zNTJDMCAyMy40MDguNTkzIDI0IDEuMzI0IDI0aDExLjQ5NHYtOS4yOTRIOS42ODl2LTMuNjIxaDMuMTI5VjguNDFjMC0zLjA5OSAxLjg5NC00Ljc4NSA0LjY1OS00Ljc4NSAxLjMyNSAwIDIuNDY0LjA5NyAyLjc5Ni4xNDF2My4yNGgtMS45MjFjLTEuNSAwLTEuNzkyLjcyMS0xLjc5MiAxLjc3MXYyLjMxMWgzLjU4NGwtLjQ2NSAzLjYzSDE2LjU2VjI0aDYuMTE1Yy43MzMgMCAxLjMyNS0uNTkyIDEuMzI1LTEuMzI0VjEuMzI0QzI0IC41OTMgMjMuNDA4IDAgMjIuNjc2IDAiLz48L3N2Zz4=" alt="facebook"/></span></a><a class="navbar-item" href="https://www.linkedin.com/in/stevenandrewsmith" target="_blank" rel="noopener noreferrer"><span class="icon"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TGlua2VkSW4gaWNvbjwvdGl0bGU+PHBhdGggZD0iTTIwLjQ0NyAyMC40NTJoLTMuNTU0di01LjU2OWMwLTEuMzI4LS4wMjctMy4wMzctMS44NTItMy4wMzctMS44NTMgMC0yLjEzNiAxLjQ0NS0yLjEzNiAyLjkzOXY1LjY2N0g5LjM1MVY5aDMuNDE0djEuNTYxaC4wNDZjLjQ3Ny0uOSAxLjYzNy0xLjg1IDMuMzctMS44NSAzLjYwMSAwIDQuMjY3IDIuMzcgNC4yNjcgNS40NTV2Ni4yODZ6TTUuMzM3IDcuNDMzYy0xLjE0NCAwLTIuMDYzLS45MjYtMi4wNjMtMi4wNjUgMC0xLjEzOC45Mi0yLjA2MyAyLjA2My0yLjA2MyAxLjE0IDAgMi4wNjQuOTI1IDIuMDY0IDIuMDYzIDAgMS4xMzktLjkyNSAyLjA2NS0yLjA2NCAyLjA2NXptMS43ODIgMTMuMDE5SDMuNTU1VjloMy41NjR2MTEuNDUyek0yMi4yMjUgMEgxLjc3MUMuNzkyIDAgMCAuNzc0IDAgMS43Mjl2MjAuNTQyQzAgMjMuMjI3Ljc5MiAyNCAxLjc3MSAyNGgyMC40NTFDMjMuMiAyNCAyNCAyMy4yMjcgMjQgMjIuMjcxVjEuNzI5QzI0IC43NzQgMjMuMiAwIDIyLjIyMiAwaC4wMDN6Ii8+PC9zdmc+" alt="linkedin"/></span></a><a class="navbar-item" href="https://github.com/ardalis" target="_blank" rel="noopener noreferrer"><span class="icon"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0iQ2FwYV8xIiB3aWR0aD0iNDM4LjU0OSIgaGVpZ2h0PSI0MzguNTQ5IiB4PSIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzguNTQ5IDQzOC41NDkiIHk9IjAiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQzOC41NDkgNDM4LjU0OSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PHBhdGggZD0iTTQwOS4xMzIsMTE0LjU3M2MtMTkuNjA4LTMzLjU5Ni00Ni4yMDUtNjAuMTk0LTc5Ljc5OC03OS44QzI5NS43MzYsMTUuMTY2LDI1OS4wNTcsNS4zNjUsMjE5LjI3MSw1LjM2NSBjLTM5Ljc4MSwwLTc2LjQ3Miw5LjgwNC0xMTAuMDYzLDI5LjQwOGMtMzMuNTk2LDE5LjYwNS02MC4xOTIsNDYuMjA0LTc5LjgsNzkuOEM5LjgwMywxNDguMTY4LDAsMTg0Ljg1NCwwLDIyNC42MyBjMCw0Ny43OCwxMy45NCw5MC43NDUsNDEuODI3LDEyOC45MDZjMjcuODg0LDM4LjE2NCw2My45MDYsNjQuNTcyLDEwOC4wNjMsNzkuMjI3YzUuMTQsMC45NTQsOC45NDUsMC4yODMsMTEuNDE5LTEuOTk2IGMyLjQ3NS0yLjI4MiwzLjcxMS01LjE0LDMuNzExLTguNTYyYzAtMC41NzEtMC4wNDktNS43MDgtMC4xNDQtMTUuNDE3Yy0wLjA5OC05LjcwOS0wLjE0NC0xOC4xNzktMC4xNDQtMjUuNDA2bC02LjU2NywxLjEzNiBjLTQuMTg3LDAuNzY3LTkuNDY5LDEuMDkyLTE1Ljg0NiwxYy02LjM3NC0wLjA4OS0xMi45OTEtMC43NTctMTkuODQyLTEuOTk5Yy02Ljg1NC0xLjIzMS0xMy4yMjktNC4wODYtMTkuMTMtOC41NTkgYy01Ljg5OC00LjQ3My0xMC4wODUtMTAuMzI4LTEyLjU2LTE3LjU1NmwtMi44NTUtNi41N2MtMS45MDMtNC4zNzQtNC44OTktOS4yMzMtOC45OTItMTQuNTU5IGMtNC4wOTMtNS4zMzEtOC4yMzItOC45NDUtMTIuNDE5LTEwLjg0OGwtMS45OTktMS40MzFjLTEuMzMyLTAuOTUxLTIuNTY4LTIuMDk4LTMuNzExLTMuNDI5Yy0xLjE0Mi0xLjMzMS0xLjk5Ny0yLjY2My0yLjU2OC0zLjk5NyBjLTAuNTcyLTEuMzM1LTAuMDk4LTIuNDMsMS40MjctMy4yODljMS41MjUtMC44NTksNC4yODEtMS4yNzYsOC4yOC0xLjI3Nmw1LjcwOCwwLjg1M2MzLjgwNywwLjc2Myw4LjUxNiwzLjA0MiwxNC4xMzMsNi44NTEgYzUuNjE0LDMuODA2LDEwLjIyOSw4Ljc1NCwxMy44NDYsMTQuODQyYzQuMzgsNy44MDYsOS42NTcsMTMuNzU0LDE1Ljg0NiwxNy44NDdjNi4xODQsNC4wOTMsMTIuNDE5LDYuMTM2LDE4LjY5OSw2LjEzNiBjNi4yOCwwLDExLjcwNC0wLjQ3NiwxNi4yNzQtMS40MjNjNC41NjUtMC45NTIsOC44NDgtMi4zODMsMTIuODQ3LTQuMjg1YzEuNzEzLTEyLjc1OCw2LjM3Ny0yMi41NTksMTMuOTg4LTI5LjQxIGMtMTAuODQ4LTEuMTQtMjAuNjAxLTIuODU3LTI5LjI2NC01LjE0Yy04LjY1OC0yLjI4Ni0xNy42MDUtNS45OTYtMjYuODM1LTExLjE0Yy05LjIzNS01LjEzNy0xNi44OTYtMTEuNTE2LTIyLjk4NS0xOS4xMjYgYy02LjA5LTcuNjE0LTExLjA4OC0xNy42MS0xNC45ODctMjkuOTc5Yy0zLjkwMS0xMi4zNzQtNS44NTItMjYuNjQ4LTUuODUyLTQyLjgyNmMwLTIzLjAzNSw3LjUyLTQyLjYzNywyMi41NTctNTguODE3IGMtNy4wNDQtMTcuMzE4LTYuMzc5LTM2LjczMiwxLjk5Ny01OC4yNGM1LjUyLTEuNzE1LDEzLjcwNi0wLjQyOCwyNC41NTQsMy44NTNjMTAuODUsNC4yODMsMTguNzk0LDcuOTUyLDIzLjg0LDEwLjk5NCBjNS4wNDYsMy4wNDEsOS4wODksNS42MTgsMTIuMTM1LDcuNzA4YzE3LjcwNS00Ljk0NywzNS45NzYtNy40MjEsNTQuODE4LTcuNDIxczM3LjExNywyLjQ3NCw1NC44MjMsNy40MjFsMTAuODQ5LTYuODQ5IGM3LjQxOS00LjU3LDE2LjE4LTguNzU4LDI2LjI2Mi0xMi41NjVjMTAuMDg4LTMuODA1LDE3LjgwMi00Ljg1MywyMy4xMzQtMy4xMzhjOC41NjIsMjEuNTA5LDkuMzI1LDQwLjkyMiwyLjI3OSw1OC4yNCBjMTUuMDM2LDE2LjE4LDIyLjU1OSwzNS43ODcsMjIuNTU5LDU4LjgxN2MwLDE2LjE3OC0xLjk1OCwzMC40OTctNS44NTMsNDIuOTY2Yy0zLjksMTIuNDcxLTguOTQxLDIyLjQ1Ny0xNS4xMjUsMjkuOTc5IGMtNi4xOTEsNy41MjEtMTMuOTAxLDEzLjg1LTIzLjEzMSwxOC45ODZjLTkuMjMyLDUuMTQtMTguMTgyLDguODUtMjYuODQsMTEuMTM2Yy04LjY2MiwyLjI4Ni0xOC40MTUsNC4wMDQtMjkuMjYzLDUuMTQ2IGM5Ljg5NCw4LjU2MiwxNC44NDIsMjIuMDc3LDE0Ljg0Miw0MC41Mzl2NjAuMjM3YzAsMy40MjIsMS4xOSw2LjI3OSwzLjU3Miw4LjU2MmMyLjM3OSwyLjI3OSw2LjEzNiwyLjk1LDExLjI3NiwxLjk5NSBjNDQuMTYzLTE0LjY1Myw4MC4xODUtNDEuMDYyLDEwOC4wNjgtNzkuMjI2YzI3Ljg4LTM4LjE2MSw0MS44MjUtODEuMTI2LDQxLjgyNS0xMjguOTA2IEM0MzguNTM2LDE4NC44NTEsNDI4LjcyOCwxNDguMTY4LDQwOS4xMzIsMTE0LjU3M3oiLz48L2c+PGRpdiBpZD0iZGl2U2NyaXB0c1VzZWQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiLz48c2NyaXB0IGlkPSJnbG9iYWxWYXJzRGV0ZWN0aW9uIiBzcmM9ImNocm9tZS1leHRlbnNpb246Ly9jbWtkYm1mbmRrZmdlYmxkaG5rYmZobG5lZWZkYWFpcC9qcy93cnNfZW52LmpzIi8+PC9zdmc+" alt="Github"/></span></a></div></div></div></nav><div><section class="section"><div class="container"><div class="columns"><div class="tile is-ancestor"><div class="tile is-vertical is-7"><div class="tile"><div class="tile is-parent"><article class="tile is-child box"><div class="content"><div class="column is-10 is-offset-1" style="margin-bottom:6rem"><h3 class="title is-size-4 is-bold-light">38 posts categorized under “Personal”</h3><ul class="catlist"><li><a href="/2024-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2024 Year In Review</h2><img src="/static/d88c072532ad145b815cf7fc1eb8086f/6050d/2024-year-in-review.png" alt="2024 Year In Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->26 February 2025</p><p style="width:100%;margin-top:2rem">Better late than never, as I'm writing this in late February 2025... First, here's a few links to past years in review: My 2017 Year in Review My 2018 Year in Review My 2019 Year in Review My 2020 Year in Review My 2021 Year in Review My 2022 Year in Review My 2022 Year in Review My Year in Review Post Checklist Now on to the various categories... Blogging ✍️ Blogging continues its slide into…</p><br/></li><li><a href="/2023-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2023 Year in Review</h2><img src="/static/4f931f745eb3102e23dfb7dafe357509/4e530/2023-year-in-review.png" alt="2023 Year in Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->23 January 2024</p><p style="width:100%;margin-top:2rem">Now that CodeMash is over (I had a workshop and 2 talks, including a new one), I can focus enough to write up this review post. For those who care to see how things have progressed over the years, a brief history of similar such posts is listed below. If you want to write your own such article, I have a checklist linked at the bottom of the list. My 2017 Year in Review My 2018 Year in Review My…</p><br/></li><li><a href="/2022-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2022 Year in Review</h2><img src="/static/23115094418f659fd6e8add8097192a4/4e530/2022-year-in-review.png" alt="2022 Year in Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->10 March 2023</p><p style="width:100%;margin-top:2rem">This is something I usually try to write in early January but here it is March already and I'm finally feeling up to it. It's been a rough winter and I've not been motivated to write or create much content, but I'm starting to come around. Getting this done will hopefully let me knock out a bunch of other things I have in the queue. So, without further preamble, let's take a look back at 2022. Oh…</p><br/></li><li><a href="/2021-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2021 Year in Review</h2><img src="/static/d50214b5889908448db472d9de633f7a/4e530/2021-year-in-review.png" alt="2021 Year in Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->11 January 2022</p><p style="width:100%;margin-top:2rem">Time for a recap of stats and important (and not so important) milestones from 2021, the SECOND year of the COVID-19 pandemic (yeah we thought 2020 would be THE year of the pandemic. Turns out... not so much.). Here are some other year-in-review recaps for reference and a checklist for writing your own: My 2017 Year in Review My 2018 Year in Review My 2019 Year in Review My Year in Review Post…</p><br/></li><li><a href="/2020-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2020 Year in Review</h2><img src="/static/bc44764b30262ef7408aff9fa3864f39/4e530/2020-year-in-review.png" alt="2020 Year in Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->12 January 2021</p><p style="width:100%;margin-top:2rem">Time for a recap of stats and important (and not so important) milestones from 2020, the year of the COVID-19 pandemic. Here are some other year-in-review recaps for reference and a checklist for writing your own: My 2017 Year in Review My 2018 Year in Review My 2019 Year in Review My Year in Review Post Checklist Blogging Last year I added 41 articles to my blog - the same as the year before…</p><br/></li><li><a href="/die-hard-is-a-christmas-movie/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Die Hard is a Christmas Movie</h2><img src="/static/76dd34e6e89e0e23ca230bd8d0351127/4e530/die-hard-is-a-christmas-movie.png" alt="Die Hard is a Christmas Movie" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->24 December 2020</p><p style="width:100%;margin-top:2rem">There is some debate about whether the movie Die Hard (1988) should be categorized as a Christmas movie. On the one side are those who point to its central Christmas theme, music, and messaging, all of which add to and in many instances are critical to its plot and theme. On the other side are those who are wrong. Here are a number of reasons why Die Hard most certainly should be considered a…</p><br/></li><li><a href="/2019-year-in-review/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2019 Year in Review</h2><img src="/static/9ff468fdaec0693ce79d541c521ca294/4c509/2019-year-in-review-760x360.png" alt="2019 Year in Review" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->14 January 2020</p><p style="width:100%;margin-top:2rem">Yes, it’s that time again. Time for another recap of what happened last year. If you’re reading this, and you’re not me, you probably are mostly interested in the most popular articles from last year, in case you missed something others found interesting. So, I’ll start with those. If you’re looking for other years in review, or want a checklist to help with writing your own year in review article…</p><br/></li><li><a href="/psat-observations/"><h2 class="is-size-2" style="width:100%;word-break:break-word">PSAT Observations</h2><img src="/static/15117dde6194a2a0ba4c15f08c4c5037/681e0/psat-math-score.png" alt="PSAT Observations" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->01 October 2019</p><p style="width:100%;margin-top:2rem">The PSAT or preliminary SAT is a test that US high school students take in their junior year. It is also known as the National Merit Scholarship Qualifying Test (NMSQT). Although it is a single test, it can have huge implications for the students taking it. Depending on a student’s score, they may be selected as a National Merit Finalist. Aside from sounding cool, this title alone might allow them…</p><br/></li><li><a href="/be-a-thankful-developer/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Be a Thankful Developer</h2><img src="/static/82c306dc9561b3e1fba64d0ef3536768/4c509/be-a-thankful-developer-760x360.png" alt="Be a Thankful Developer" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->23 November 2016</p><p style="width:100%;margin-top:2rem">It doesn’t cost much to acknowledge those who have helped you, and it can be very rewarding. Regardless of where you are in your career as a software developer (or most other careers, but this is mainly directed at developers), show appreciation for those who make your job easier or who help you improve. This might be a peer or mentor who takes the time to guide you, it could be your boss or your…</p><br/></li><li><a href="/looking-back-and-moving-forward/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Looking Back and Moving Forward</h2><img src="/static/e53e43236116e9a0eae2621376b6a25e/a84be/looking-back.jpg" alt="Looking Back and Moving Forward" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->12 June 2014</p><p style="width:100%;margin-top:2rem">Last week I started a new chapter in my career as the Chief Technology Officer at Falafel Software. I’m really looking forward to this role, which I expect will allow me to be a leader in a technical organization that has a track record of success. It will also be refreshing to be a part of an organization that is focused on delivering services to customers, and which is still small enough that it…</p><br/></li><li><a href="/joining-telerik/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Joining Telerik</h2><img src="/static/5371ea85044ba63951a3c0fe37deb185/0ff54/dev-tips.jpg" alt="Joining Telerik" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->26 April 2012</p><p style="width:100%;margin-top:2rem">Earlier this year, I wrapped up my work with The Code Project and Lake Quincy Media and returned to NimblePros, the consulting company Michelle and I started a few years ago and which she’s run quite successfully the last few years. NimblePros has been doing some great things the last couple of years, with revenues in 2011 doubling those of 2010. At the same time, we’ve been watching Telerik…</p><br/></li><li><a href="/about-steve-smith-aka-ardalis/"><h2 class="is-size-2" style="width:100%;word-break:break-word">About Steve Smith (aka ardalis)</h2><img src="/static/ed5e075fbc31c88065cfcc72072cbe83/b5483/steve-microsoft-2015-11-970x450.jpg" alt="About Steve Smith (aka ardalis)" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->25 January 2012</p><p style="width:100%;margin-top:2rem">What’s an Ardalis? I pronounce Ardalis ar-DAL-us, but you’re welcome to pronounce it however you like. I started using it as my online username in the 90s because shockingly any consistent variation of ‘Steve Smith’ is hard to come by. I made up the name originally for a paladin character in a table top role-playing game (GURPS). Since then it’s become my online identity/handle, and I use the name…</p><br/></li><li><a href="/lake-maintenance-and-fish-stocking/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Lake Maintenance and Fish Stocking</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Lake Maintenance and Fish Stocking" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->25 September 2009</p><p style="width:100%;margin-top:2rem">I'm fortunate enough to live on the shore of a small lake, Lake Quincy, which I'm responsible for maintaining. One of the things I love about Ohio, and our location in particular, is that it's so easy to shift from urban to suburban to rural living. For instance, where we live is in a township, not a city, so among other things we have the potential benefit of avoiding city income tax (unless we…</p><br/></li><li><a href="/ohio-towns-top-money-top-100-small-towns-list/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Ohio Towns Top Money Top 100 Small Towns List</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Ohio Towns Top Money Top 100 Small Towns List" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->22 July 2009</p><p style="width:100%;margin-top:2rem">Money recently released their 2009 list of America's best small towns(which, living in a small town, I was curious about). Their Top 100 List includes towns in 32 US states. I've long felt that the Midwest is an excellent place to live in terms of quality of life and cost-of-living, and likewise I've always preferred living in the suburbs over urban life. I've done both, but I much prefer the…</p><br/></li><li><a href="/lost-in-texas/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Lost in Texas</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Lost in Texas" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->16 February 2009</p><p style="width:100%;margin-top:2rem">Last year Brendan and I had the privilege of attending Jeffrey Palermo's agile bootcamp, put on by HeadSpring Systems in Austin, Texas. It's a great class and Jeffrey is an excellent instructor. After the class, Jeffrey invited us to dinner, and being the high tech folk that we are, he texted us the details of the restaurant. For whatever reason my phone wasn't receiving, but Brendan got the…</p><br/></li><li><a href="/2008-goals-recap/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2008 Goals Recap</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="2008 Goals Recap" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->04 January 2009</p><p style="width:100%;margin-top:2rem">Last year I decided to blog some personal goals that I had for the year. It’s widely known that the act of writing something down greatly increases the chances that one will actually take the action necessary to achieve the goal, and I figured blogging it might further increase my odds since there’s the whole public commitment factor added in. I’ll be brief since I already did an 11-month status…</p><br/></li><li><a href="/2008-goal-progress-update/"><h2 class="is-size-2" style="width:100%;word-break:break-word">2008 Goal Progress Update</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="2008 Goal Progress Update" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->04 April 2008</p><p style="width:100%;margin-top:2rem">If you just read my blog for technical stuff, you can skip this one. So at the start of the year I set a few personal goals. Since the best way to achieve goals, I’ve found, is to break them down into smaller and smaller pieces (as in “The journey of a thousand miles begins with the first step”), I thought I would assess my progress on the five goals I set for myself. Goal 1 – 200 Blog Posts in…</p><br/></li><li><a href="/welcome-new-ineta-speakers/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Welcome New INETA Speakers</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Welcome New INETA Speakers" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->15 October 2007</p><p style="width:100%;margin-top:2rem">Please congratulate these new INETA Speaker Bureau Members: I know about 2/3 of these individuals and they’re all definitely knowledgeable and will make great additions to the INETA Speaker Bureau. Congratulations! I’m a bit late with the news, I apologize. For more, read Julie’s earlier welcome post. At least I was nice enough to link to all of their blogs/websites…</p><br/></li><li><a href="/welcome-home/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Welcome Home</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Welcome Home" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->20 May 2007</p><p style="width:100%;margin-top:2rem">Just wanted to say “Welcome Home” a bit late to all of the Vietnam Vets out there, after reading Bob Parsons’ post on the subject. My uncle served in Vietnam and has never been much interested in talking about it, though my own Iraq experience has led us to discuss things a bit recently. All I can say is, thanks to everyone who went, and though I wasn’t around at the time, I apologize for all of…</p><br/></li><li><a href="/why-russia/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Why Russia</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Why Russia" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->14 May 2007</p><p style="width:100%;margin-top:2rem">First of all I’d like to say Thank You! to everyone who has congratulated us and wished our family well. We really appreciate the support we have received from our family and friends, both locally and online. I’ve had a number of people ask me why we chose to adopt from Russia, and I’m sure others are wondering but not asking. Some simply had never heard of such a thing, though I don’t think…</p><br/></li><li><a href="/five-things/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Five Things</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Five Things" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->14 January 2007</p><p style="width:100%;margin-top:2rem">Craig tagged me so now I don’t feel left out. Oh, and Keyvan did, too, but I’m just finding it. Sorry about that! Here’s five things you may not know about me. Like Scott, I’ve never had a cavity (nor even fillings to prevent cavities). I was blessed with unusually strong teeth, though at the expense of not having a few. I only had 3 of my 4 wisdom teeth (woot! only had to get 3 pulled!) and I was…</p><br/></li><li><a href="/20299/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Oh The Heat in the States…</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Oh The Heat in the States…" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->04 August 2006</p><p style="width:100%;margin-top:2rem">Forgive my rant, but it annoys me that everybody in the Midwest and Northeast US is whining and going on about the big heat wave we had this week. My local newspaper yesterday had, as front page news, the temperatures in Philadelphia, New York City, etc, all of which were in the 90s. I don’t deny that it’s news, since it is out of the ordinary, and for most folks in the US it’s a whole lot more on…</p><br/></li><li><a href="/19352/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Fourth of July Info (chain letter)</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Fourth of July Info (chain letter)" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->06 July 2006</p><p style="width:100%;margin-top:2rem">Every year or two I see this email come through. I haven’t checked Snopes to see if it’s all accurate, but if it is, it’s certainly worth a read. 4TH OF JULY Have you ever wondered what happened to the 56 men who signed the Declaration of Independence? Five signers were captured by the British as traitors, and tortured before they died. Twelve had their homes ransacked and burned. Two lost their…</p><br/></li><li><a href="/18171/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Paintball and Military Training (or Top 10 Reasons PaintBall is better than MILES)</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Paintball and Military Training (or Top 10 Reasons PaintBall is better than MILES)" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->30 May 2006</p><p style="width:100%;margin-top:2rem">I went out for my first experience with paintball this weekend with some friends. We had about 30 people, probably 2/3 of them teenagers, there at one of the players’ family’s country homes, with about 50 acres of land, probably half of that wooded. We started the day off with a few rounds of Speedball, which I was not terribly good at and which has really no resemblance to any military tactics…</p><br/></li><li><a href="/14380/"><h2 class="is-size-2" style="width:100%;word-break:break-word">One Year Ago Today…</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="One Year Ago Today…" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->19 December 2005</p><p style="width:100%;margin-top:2rem">I was sitting out at the retrans camp for our base in central Iraq, north of Baghdad. This year, I’m sitting in my office in Ohio, having spent most of the last year back home re-normalizing. I have a few pictures with the date 12/19/04 on them of the retrans site that I’ve been looking at today. It’s a bleak brown wasteland. I remember it was still quite cold there despite the lack of snow…</p><br/></li><li><a href="/12958/"><h2 class="is-size-2" style="width:100%;word-break:break-word">MVP Summit – Day 2</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="MVP Summit – Day 2" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->30 September 2005</p><p style="width:100%;margin-top:2rem">So, I’m in Seattle for the MVP Summit and it is a great time to network with a lot of people I haven’t seen in quite some time (and many I just saw a couple of weeks ago at PDC…). They’ve been having some issues with transportation, so for instance yesterday morning about 100 of us ended up missing the first executive session altogether and half of Steve Ballmer’s presentation because our bus was…</p><br/></li><li><a href="/12919/"><h2 class="is-size-2" style="width:100%;word-break:break-word">In Seattle</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="In Seattle" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->28 September 2005</p><p style="width:100%;margin-top:2rem">I’m in Seattle this week for the MVP Summit followed by the ASPInsiders summit. It’s actually the longest I’ve been away from home since I got back from Iraq, but I’m looking forward to seeing a lot of folks I haven’t seen in a couple of years. I met up with James Shaw at the airport and we had dinner with Jason Gaylord last night at a nice restaurant near the W, where we’re all staying. I had…</p><br/></li><li><a href="/1918/"><h2 class="is-size-2" style="width:100%;word-break:break-word">I've Moved!</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="I've Moved!" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->07 September 2005</p><p style="width:100%;margin-top:2rem">I haven’t posted in a while because I finally moved into my new house. There’s a bit of a backstory to this which I’ll share here briefly. Also, I’ll post some pictures at some point, but since this blog is likely to move to another server soon (and the galleries will likely be a pain to move), I’ll likely just wait until after the blog moves to post pics. So, the house. WAAAAAY back in early 200…</p><br/></li><li><a href="/1910/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Went to Drive-In Movies Last Night</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Went to Drive-In Movies Last Night" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->23 August 2005</p><p style="width:100%;margin-top:2rem">I guess there aren’t very many drive-in movie theaters in the country (or world) any more, so this is almost newsworthy. We saw Madagascar and Sky High. Madagascar was entertaining but not as good as I was expecting from the previews. The penguins were great, though. We almost lost our local drive-in, Midway Twin Drive-In, a few years ago when a storm blew the main screen down. Fortunately, they…</p><br/></li><li><a href="/9315/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Prime Minister John Howard's Brilliant Response</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Prime Minister John Howard's Brilliant Response" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->22 July 2005</p><p style="width:100%;margin-top:2rem">to stupid media questions about whether policies of Australia, the UK, or the US were responsible for these countries being targeted by terrorists. (Source: National Review; From InstaPundit). PRIME MIN. HOWARD: Could I start by saying the prime minister and I were having a discussion when we heard about it. My first reaction was to get some more information. And I really don’t want to add to what…</p><br/></li><li><a href="/1891/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Accepted Invite To Regional Director Program</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Accepted Invite To Regional Director Program" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->20 July 2005</p><p style="width:100%;margin-top:2rem">My DE, Drew Robbins, talked to be about the Regional Director program back in May, and asked if I would be interested. One thing led to another, and a few weeks ago I submitted a stack of legal documents back to Microsoft which eventually led to the great and wonderful accomplishment of… my name appearing on this web page! I’m honored to have been invited and to be in such excellent company, and I…</p><br/></li><li><a href="/1889/"><h2 class="is-size-2" style="width:100%;word-break:break-word">House and HP6 Update (no spoilers)</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="House and HP6 Update (no spoilers)" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->19 July 2005</p><p style="width:100%;margin-top:2rem">I haven’t blogged much the last few days — I’ve been busy getting our house ready for its big home inspection Monday and reading the new Harry Potter book. I finished the book a few minutes ago, and of course now I can’t wait for the next one. The book’s very good; fans shouldn’t be disappointed, but there are some sad parts. Hopefully at this point the house is pretty much a done deal (albeit not…</p><br/></li><li><a href="/9312/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Happy Independence Day!</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Happy Independence Day!" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->04 July 2005</p><p style="width:100%;margin-top:2rem">Today is definitely a much happier Independence Day than I was having a year ago. Woke up in bed with my wife as our three-year-old climbed into bed with us. Planning on a relaxing day with the family. A year ago on this day, I was up well before dawn, moving all my gear out into the parking lot of the barracks at Ft Bliss, awaiting drug-sniffing dogs to inspect the bags prior to a day-long flight…</p><br/></li><li><a href="/1885/"><h2 class="is-size-2" style="width:100%;word-break:break-word">House For Sale!</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="House For Sale!" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->29 June 2005</p><p style="width:100%;margin-top:2rem">If anybody is looking to buy a two story 3 bedroom home in Kent, Ohio in the next sixty days or so, please let me know. We’ve been getting ready to move since about 18 months ago, with my deployment to Iraq putting a significant wrinkle in our plans, but the house went on the market yesterday and now has a sign in the yard and everything. We’ve already bought the house we’ll be moving to, which is…</p><br/></li><li><a href="/1855/"><h2 class="is-size-2" style="width:100%;word-break:break-word">April Snow in Ohio</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="April Snow in Ohio" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->02 April 2005</p><p style="width:100%;margin-top:2rem">It snowed all day yesterday and most of last night. Around 9pm or so last night, power went out at my house and for most of the houses on my street. It flickered a few times during the course of the evening, but never came back on. It’s still out today, so I’m sitting at Starbucks trying to get some work done while Michelle and Ilyana are out running some errands. Here’s a picture of my driveway…</p><br/></li><li><a href="/1843/"><h2 class="is-size-2" style="width:100%;word-break:break-word">Finally Saw Redshift in Concert</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="Finally Saw Redshift in Concert" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->06 March 2005</p><p style="width:100%;margin-top:2rem">I finally saw Redshift this evening in Kent, where I live. They’re a local band that I’ve been listening to for a few years now but I’ve never managed to make it to a show before now. They played at the Robin Hood along with Third Nature who were also very good and Bonk, who were loud and a lot of fun (Bonk was headlining – here’s a review of another of their Robin Hood shows which sounds a lot…</p><br/></li><li><a href="/whats-a-blog/"><h2 class="is-size-2" style="width:100%;word-break:break-word">What's a Blog?</h2><img src="/static/87cf4f76ee5961606f3a6855814db4a6/a84be/default-post-image.jpg" alt="What's a Blog?" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->01 December 2004</p><p style="width:100%;margin-top:2rem">If you’re asking this question, or wondering what B-L-O-G could possibly stand for, you’re not alone. Blog was the #1 most looked up word in 2004 according to Merriam Webster. Read more about it in this article, which also lists the other members of the top 10 most looked up words for the year. “Blog” is a concatenation, not an acronym. It’s short for “web log” and according to Webster’s current…</p><br/></li><li><a href="/house-shopping/"><h2 class="is-size-2" style="width:100%;word-break:break-word">House Shopping</h2><img src="/static/4ad28431c7e930796f56bc633ed355ec/0ff54/real-estate-1686335_1280.jpg" alt="House Shopping" width="100%"/></a><p style="width:100%;font-weight:bold;color:#3571B8"> Date Published: <!-- -->25 March 2004</p><p style="width:100%;margin-top:2rem">This is totally non-technical – apologies in advance. If you’re reading with an aggregator, you can pick up the technical categories and omit the ‘Personal’ category to avoid such drivel in the future. I’ve been looking to move for a while, since my wife Michelle and I both work from home, and between that and our 2-year-old daughter, Ilyana, our current house just doesn’t have enough room (heck…</p><br/></li></ul><p><a href="/category/">Browse all categories</a></p></div></div></article></div></div></div><div><header><div><div class="tile is-parent"><article class="tile is-child box"><div class="sidebar" id="sidebar"><div class="content has-text-centered"><div class="content-card"><div class="card-sidebar"><div class="firstinfo"><img src="/static/steve-smith-ardalis-200x200-e9fab63b806b33a2ee3ded4a954bbdfa.jpg" alt="Steve Smith"/><div class="profileinfo"><h1>About Ardalis</h1><h3>Software Architect</h3><p class="bio">Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.</p></div></div></div></div></div><div style="padding:8px;margin-left:10px">Get a <a href="/tips">Free Developer Tip</a> in your inbox every Wednesday.</div><div><a href="/search"><h2 style="font-size:22px;padding:7px;margin-left:15px;font-weight:BOLD"><span role="img" aria-label="magnifying glass">🔍</span> SEARCH</h2></a></div> <br/><div><h2 style="font-size:22px;padding:7px;margin-left:15px;font-weight:BOLD"><span role="img" aria-label="graduation cap">🎓</span> ONLINE TRAINING</h2></div> <br/><div class="recent-post"><ul class="recent-post"><li><a href="https://dometrain.com/bundle/from-zero-to-hero-modular-monoliths-in-dotnet/">From Zero to Hero: Modular Monoliths in .NET</a></li><li><a href="https://www.pluralsight.com/courses/refactoring-solid-c-sharp-code">Refactoring to SOLID C# Code</a> NEW!</li><li><a href="https://www.pluralsight.com/courses/aspdotnet-core-6-web-api-best-practices">ASP.NET Core 6 Web API: Best Practices</a></li><li><a href="https://www.pluralsight.com/courses/working-c-sharp-generics-best-practices">Working with C# Generics: Best Practices</a></li><li><a href="https://www.pluralsight.com/courses/fundamentals-domain-driven-design">Domain-Driven Design Fundamentals</a></li><li><a href="https://www.pluralsight.com/courses/refactoring-csharp-developers">Refactoring for C# Devs</a></li><li><a href="https://www.pluralsight.com/courses/kanban-getting-started">Kanban: Getting Started</a></li><li><a href="https://www.pluralsight.com/courses/csharp-solid-principles">SOLID Principles for C# Devs</a></li><li><a href="https://www.pluralsight.com/courses/design-patterns-overview">Design Patterns Overview</a></li></ul></div> <br/><div class="recent-post"><h2 style="font-size:22px;padding:7px;font-weight:BOLD"><span role="img" aria-label="clipboard">📋</span> CATEGORIES</h2> <br/><ul class="recent-post" style="text-transform:uppercase"><li><a href="/category/career-advice/">Career Advice<!-- --> (<!-- -->2<!-- -->)</a></li><li><a href="/category/iraq/">Iraq<!-- --> (<!-- -->158<!-- -->)</a></li><li><a aria-current="page" class="" href="/category/personal/">Personal<!-- --> (<!-- -->38<!-- -->)</a></li><li><a href="/category/productivity/">Productivity<!-- --> (<!-- -->168<!-- -->)</a></li><li><a href="/category/security/">Security<!-- --> (<!-- -->7<!-- -->)</a></li><li><a href="/category/software-development/">Software Development<!-- --> (<!-- -->964<!-- -->)</a></li><li><a href="/category/uncategorized/">Uncategorized<!-- --> (<!-- -->435<!-- -->)</a></li></ul> </div><div><br/><h4 style="font-size:22px;padding:7px;margin-left:15px;font-weight:BOLD"><span role="img" aria-label="book">📘</span> FREE ARCHITECTURE EBOOK</h4><br/><center><a href="/architecture-ebook"><img src="/static/Architecture-eBook-Cover-242x300-09d775f8f28cb004b00c47b84c574494.png" alt="book"/></a><h4><a href="/architecture-ebook">Get the Book!</a></h4></center><br/><h1 style="font-size:22px;padding:7px;margin-left:15px;font-weight:BOLD"><span role="img" aria-label="pen">🖊️</span> RECENT ARTICLES</h1><br/><div class="columns is-multiline"><div><article><header><div class="recent-post"><ul class="recent-post"><li><a href="/ardalis-specification-v9-release/">Ardalis Specification v9 Released</a></li></ul></div></header></article></div><div><article><header><div class="recent-post"><ul class="recent-post"><li><a href="/2024-year-in-review/">2024 Year In Review</a></li></ul></div></header></article></div><div><article><header><div class="recent-post"><ul class="recent-post"><li><a href="/when-qa-keeps-finding-bugs/">When QA Keeps Finding Bugs</a></li></ul></div></header></article></div><div><article><header><div class="recent-post"><ul class="recent-post"><li><a href="/avoid-using-csharp-events-in-aspnetcore-apps/">Avoid Using C# Events in ASP.NET Core Applications</a></li></ul></div></header></article></div><div><article><header><div class="recent-post"><ul class="recent-post"><li><a href="/interfaces-describe-what-implementations-describe-how/">Interfaces Describe What - Implementations Describe How</a></li></ul></div></header></article></div></div><br/></div><div></div></div></article></div></div></header></div></div></div></div></section></div><footer class="footer has-background-black has-text-white-ter"><div class="content has-text-centered has-background-black has-text-white-ter"><div class="container has-background-black has-text-white-ter"><div class="columns"><div class="column is-4"><form action="https://www.google.com/search" method="get"><input type="hidden" name="q" value="site:ardalis.com"/><input type="text" name="q" alt="search" class="googletextbox"/><input type="submit" value="Search my Site with Google" class="googletextbox"/></form><br/><a href="/interviews/">Interviews</a><br/><a href="/contact">Contact</a></div><div class="column is-4"><div class="content has-text-centered"><img src="data:image/png;base64,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" alt="Ardalis" style="width:5em;height:5em"/><p>Copyright © 2024</p><br/></div></div><div class="column is-4 social"><a title="bluesky" href="https://bsky.app/profile/ardalis.com"><img class="fas fa-lg" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjUzMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTEzNS43MiA0NC4wM2M2Ni40OTYgNDkuOTIxIDEzOC4wMiAxNTEuMTQgMTY0LjI4IDIwNS40NiAyNi4yNjItNTQuMzE2IDk3Ljc4Mi0xNTUuNTQgMTY0LjI4LTIwNS40NiA0Ny45OC0zNi4wMjEgMTI1LjcyLTYzLjg5MiAxMjUuNzIgMjQuNzk1IDAgMTcuNzEyLTEwLjE1NSAxNDguNzktMTYuMTExIDE3MC4wNy0yMC43MDMgNzMuOTg0LTk2LjE0NCA5Mi44NTQtMTYzLjI1IDgxLjQzMyAxMTcuMyAxOS45NjQgMTQ3LjE0IDg2LjA5MiA4Mi42OTcgMTUyLjIyLTEyMi4zOSAxMjUuNTktMTc1LjkxLTMxLjUxMS0xODkuNjMtNzEuNzY2LTIuNTE0LTcuMzc5Ny0zLjY5MDQtMTAuODMyLTMuNzA3Ny03Ljg5NjQtMC4wMTc0LTIuOTM1Ny0xLjE5MzcgMC41MTY2OS0zLjcwNzcgNy44OTY0LTEzLjcxNCA0MC4yNTUtNjcuMjMzIDE5Ny4zNi0xODkuNjMgNzEuNzY2LTY0LjQ0NC02Ni4xMjgtMzQuNjA1LTEzMi4yNiA4Mi42OTctMTUyLjIyLTY3LjEwOCAxMS40MjEtMTQyLjU1LTcuNDQ5MS0xNjMuMjUtODEuNDMzLTUuOTU2Mi0yMS4yODItMTYuMTExLTE1Mi4zNi0xNi4xMTEtMTcwLjA3IDAtODguNjg3IDc3Ljc0Mi02MC44MTYgMTI1LjcyLTI0Ljc5NXoiIGZpbGw9IiMxMTg1ZmUiLz4KPC9zdmc+Cg==" alt="BlueSky" style="width:1em;height:1em"/></a><a title="facebook" href="https://www.facebook.com/StevenAndrewSmith"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+RmFjZWJvb2sgaWNvbjwvdGl0bGU+PHBhdGggZD0iTTIyLjY3NiAwSDEuMzI0Qy41OTMgMCAwIC41OTMgMCAxLjMyNHYyMS4zNTJDMCAyMy40MDguNTkzIDI0IDEuMzI0IDI0aDExLjQ5NHYtOS4yOTRIOS42ODl2LTMuNjIxaDMuMTI5VjguNDFjMC0zLjA5OSAxLjg5NC00Ljc4NSA0LjY1OS00Ljc4NSAxLjMyNSAwIDIuNDY0LjA5NyAyLjc5Ni4xNDF2My4yNGgtMS45MjFjLTEuNSAwLTEuNzkyLjcyMS0xLjc5MiAxLjc3MXYyLjMxMWgzLjU4NGwtLjQ2NSAzLjYzSDE2LjU2VjI0aDYuMTE1Yy43MzMgMCAxLjMyNS0uNTkyIDEuMzI1LTEuMzI0VjEuMzI0QzI0IC41OTMgMjMuNDA4IDAgMjIuNjc2IDAiLz48L3N2Zz4=" alt="Facebook" style="width:1em;height:1em"/></a><a title="linkedin" href="https://www.linkedin.com/in/stevenandrewsmith"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TGlua2VkSW4gaWNvbjwvdGl0bGU+PHBhdGggZD0iTTIwLjQ0NyAyMC40NTJoLTMuNTU0di01LjU2OWMwLTEuMzI4LS4wMjctMy4wMzctMS44NTItMy4wMzctMS44NTMgMC0yLjEzNiAxLjQ0NS0yLjEzNiAyLjkzOXY1LjY2N0g5LjM1MVY5aDMuNDE0djEuNTYxaC4wNDZjLjQ3Ny0uOSAxLjYzNy0xLjg1IDMuMzctMS44NSAzLjYwMSAwIDQuMjY3IDIuMzcgNC4yNjcgNS40NTV2Ni4yODZ6TTUuMzM3IDcuNDMzYy0xLjE0NCAwLTIuMDYzLS45MjYtMi4wNjMtMi4wNjUgMC0xLjEzOC45Mi0yLjA2MyAyLjA2My0yLjA2MyAxLjE0IDAgMi4wNjQuOTI1IDIuMDY0IDIuMDYzIDAgMS4xMzktLjkyNSAyLjA2NS0yLjA2NCAyLjA2NXptMS43ODIgMTMuMDE5SDMuNTU1VjloMy41NjR2MTEuNDUyek0yMi4yMjUgMEgxLjc3MUMuNzkyIDAgMCAuNzc0IDAgMS43Mjl2MjAuNTQyQzAgMjMuMjI3Ljc5MiAyNCAxLjc3MSAyNGgyMC40NTFDMjMuMiAyNCAyNCAyMy4yMjcgMjQgMjIuMjcxVjEuNzI5QzI0IC43NzQgMjMuMiAwIDIyLjIyMiAwaC4wMDN6Ii8+PC9zdmc+" alt="Linkedin" style="width:1em;height:1em"/></a><a title="youtube" href="https://www.youtube.com/ardalis/"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+WW91VHViZSBpY29uPC90aXRsZT48cGF0aCBkPSJNMjMuNDk1IDYuMjA1YTMuMDA3IDMuMDA3IDAgMCAwLTIuMDg4LTIuMDg4Yy0xLjg3LS41MDEtOS4zOTYtLjUwMS05LjM5Ni0uNTAxcy03LjUwNy0uMDEtOS4zOTYuNTAxQTMuMDA3IDMuMDA3IDAgMCAwIC41MjcgNi4yMDVhMzEuMjQ3IDMxLjI0NyAwIDAgMC0uNTIyIDUuODA1IDMxLjI0NyAzMS4yNDcgMCAwIDAgLjUyMiA1Ljc4MyAzLjAwNyAzLjAwNyAwIDAgMCAyLjA4OCAyLjA4OGMxLjg2OC41MDIgOS4zOTYuNTAyIDkuMzk2LjUwMnM3LjUwNiAwIDkuMzk2LS41MDJhMy4wMDcgMy4wMDcgMCAwIDAgMi4wODgtMi4wODggMzEuMjQ3IDMxLjI0NyAwIDAgMCAuNS01Ljc4MyAzMS4yNDcgMzEuMjQ3IDAgMCAwLS41LTUuODA1ek05LjYwOSAxNS42MDFWOC40MDhsNi4yNjQgMy42MDJ6Ii8+PC9zdmc+" alt="YouTube" style="width:1em;height:1em"/></a><a title="github" href="https://github.com/ardalis"><img src="data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2l0SHViIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0xMiAuMjk3Yy02LjYzIDAtMTIgNS4zNzMtMTIgMTIgMCA1LjMwMyAzLjQzOCA5LjggOC4yMDUgMTEuMzg1LjYuMTEzLjgyLS4yNTguODItLjU3NyAwLS4yODUtLjAxLTEuMDQtLjAxNS0yLjA0LTMuMzM4LjcyNC00LjA0Mi0xLjYxLTQuMDQyLTEuNjFDNC40MjIgMTguMDcgMy42MzMgMTcuNyAzLjYzMyAxNy43Yy0xLjA4Ny0uNzQ0LjA4NC0uNzI5LjA4NC0uNzI5IDEuMjA1LjA4NCAxLjgzOCAxLjIzNiAxLjgzOCAxLjIzNiAxLjA3IDEuODM1IDIuODA5IDEuMzA1IDMuNDk1Ljk5OC4xMDgtLjc3Ni40MTctMS4zMDUuNzYtMS42MDUtMi42NjUtLjMtNS40NjYtMS4zMzItNS40NjYtNS45MyAwLTEuMzEuNDY1LTIuMzggMS4yMzUtMy4yMi0uMTM1LS4zMDMtLjU0LTEuNTIzLjEwNS0zLjE3NiAwIDAgMS4wMDUtLjMyMiAzLjMgMS4yMy45Ni0uMjY3IDEuOTgtLjM5OSAzLS40MDUgMS4wMi4wMDYgMi4wNC4xMzggMyAuNDA1IDIuMjgtMS41NTIgMy4yODUtMS4yMyAzLjI4NS0xLjIzLjY0NSAxLjY1My4yNCAyLjg3My4xMiAzLjE3Ni43NjUuODQgMS4yMyAxLjkxIDEuMjMgMy4yMiAwIDQuNjEtMi44MDUgNS42MjUtNS40NzUgNS45Mi40Mi4zNi44MSAxLjA5Ni44MSAyLjIyIDAgMS42MDYtLjAxNSAyLjg5Ni0uMDE1IDMuMjg2IDAgLjMxNS4yMS42OS44MjUuNTdDMjAuNTY1IDIyLjA5MiAyNCAxNy41OTIgMjQgMTIuMjk3YzAtNi42MjctNS4zNzMtMTItMTItMTIiLz48L3N2Zz4=" alt="GitHub" style="width:1em;height:1em"/></a></div></div><div class="columns"><div class="column is-12"> <br/></div></div></div></div></footer></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/category/personal/";window.___webpackCompilationHash="5d4e1861e53017a079c2";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-7da9e88def8c798a4eb9.js"],"app":["/app-405db4ecfef604df7c88.js"],"component---src-pages-404-js":["/component---src-pages-404-js-870dd210860010add3fb.js"],"component---src-pages-blog-xxindex-js":["/component---src-pages-blog-xxindex-js-b717a50bc8d0c973118c.js"],"component---src-pages-category-index-js":["/component---src-pages-category-index-js-37e57d76780030e097b9.js"],"component---src-pages-contact-us-index-js":["/component---src-pages-contact-us-index-js-d6f2babb3b5d5acf543e.js"],"component---src-pages-contact-us-thanks-js":["/component---src-pages-contact-us-thanks-js-2fed7887be27c07a2db5.js"],"component---src-pages-search-js":["/component---src-pages-search-js-6aca53f3bd3c62e746df.js"],"component---src-pages-tags-index-js":["/component---src-pages-tags-index-js-ae341cca60636fd6f136.js"],"component---src-templates-assessments-page-js":["/component---src-templates-assessments-page-js-698905d01f92bcdb66fe.js"],"component---src-templates-blog-list-js":["/component---src-templates-blog-list-js-2fc11fafebab2c4869c7.js"],"component---src-templates-blog-post-js":["/component---src-templates-blog-post-js-84c08a52c5470058f96a.js"],"component---src-templates-category-js":["/component---src-templates-category-js-8a4c3230a702b1a25707.js"],"component---src-templates-ebook-page-js":["/component---src-templates-ebook-page-js-71a3ae3ba1a8c2c3c679.js"],"component---src-templates-index-page-js":["/component---src-templates-index-page-js-67ae74e874a395eafce9.js"],"component---src-templates-interviews-page-js":["/component---src-templates-interviews-page-js-e37071a323184d5cf41c.js"],"component---src-templates-mentoring-page-js":["/component---src-templates-mentoring-page-js-46c6eed3670b80d92ec7.js"],"component---src-templates-software-craftsmanship-2016-wall-calendar-sponsorship-page-js":["/component---src-templates-software-craftsmanship-2016-wall-calendar-sponsorship-page-js-6845b52a955977cdf768.js"],"component---src-templates-tags-js":["/component---src-templates-tags-js-b03a8bb37127fcbf583e.js"],"component---src-templates-tips-page-js":["/component---src-templates-tips-page-js-e00c8c1bdc9adaa63e8c.js"],"component---src-templates-tools-used-page-js":["/component---src-templates-tools-used-page-js-751b217d4bacb6579252.js"],"component---src-templates-training-classes-page-js":["/component---src-templates-training-classes-page-js-b6d51c504d2ac8dd40ee.js"]};/*]]>*/</script><script src="/polyfill-7da9e88def8c798a4eb9.js" nomodule=""></script><script src="/app-405db4ecfef604df7c88.js" async=""></script><script src="/532a2f07-f97befafd74bf8dd0311.js" async=""></script><script src="/framework-3a4fd0dc0ae7f6fdcce7.js" async=""></script><script src="/webpack-runtime-726784a4c3ef26f01c3c.js" async=""></script></body></html>