<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Justin McCullough's Blog]]></title><description><![CDATA[I am an engineering leader focused on building mission driven teams. I live and work remotely from Northern Indiana. I am in a solid relationship with C#. I spe]]></description><link>https://justinmccullough.me</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 04:29:08 GMT</lastBuildDate><atom:link href="https://justinmccullough.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Revisiting My Roots]]></title><description><![CDATA[I have no idea what triggered me to look at some old code I had stashed away in my OneDrive, but here we are. My first ever application was a number guessing game written in C++ using eMacs on a RedHat Linux distro. Having gone through that hellscape...]]></description><link>https://justinmccullough.me/revisiting-my-roots</link><guid isPermaLink="true">https://justinmccullough.me/revisiting-my-roots</guid><dc:creator><![CDATA[Justin McCullough]]></dc:creator><pubDate>Thu, 30 Sep 2021 17:30:47 GMT</pubDate><content:encoded><![CDATA[<p>I have no idea what triggered me to look at some old code I had stashed away in my OneDrive, but here we are. My first ever application was a number guessing game written in C++ using eMacs on a RedHat Linux distro. Having gone through that hellscape, I stumbled upon VB6 in a high school coding class. This felt like coding in the future with its fancy IDE and easy GUI development. It also kicked off my love affair with Visual Studio and ultimately .NET and C#.</p>
<p>While in this class, we did QBASIC and Visual Basic projects at various beginner levels. These were super fun and I learned a lot, but it was when I took the course again as a Senior that I really started to enjoy development. It was a self-study program where I had already passed the class but was able to take it again since no more advanced level was available.</p>
<p>This gets us to the actual topic of this post. I wanted to create a game based on Clue (my favorite board game). I somehow thought that I would be selling this to people even though I was breaking copyright and I am sure many other laws. I even purchased cluelessgame dot com which I have since returned to the nebulous world of domain registrars. I scanned the playing cards from my version of the game. I pulled in some sound effects. I also had no idea how actual classes and methods really worked so it has a bunch of duplicated code.</p>
<p>You can find the source code here: https://github.com/justmccullough/clueless. It's a VB6 application and it's buggy. I plan to update the ReadMe to explain some details about how it works as I learn myself :) I don't really have anything more to add here other than it was fun to revisit it. Think about keeping some of your projects around as a fun way to view your journey. This is probably easier for you new folks who can just keep repos on Github. For me, it's been collecting dust in an "Archive" folded for almost 20 years. Enjoy!</p>
]]></content:encoded></item><item><title><![CDATA[SPEC - Safe Pragmatic Engineering Culture]]></title><description><![CDATA[Background
As a leader, it's essential to provide a set of values for your organization. Providing these values will give your team guidelines for decision-making and a framework in which to operate. This SPEC mantra is the tool I have used to guide ...]]></description><link>https://justinmccullough.me/spec</link><guid isPermaLink="true">https://justinmccullough.me/spec</guid><category><![CDATA[Culture]]></category><category><![CDATA[leadership]]></category><category><![CDATA[engineering]]></category><dc:creator><![CDATA[Justin McCullough]]></dc:creator><pubDate>Thu, 15 Jul 2021 16:49:17 GMT</pubDate><content:encoded><![CDATA[<h1 id="background">Background</h1>
<p>As a leader, it's essential to provide a set of values for your organization. Providing these values will give your team guidelines for decision-making and a framework in which to operate. This SPEC mantra is the tool I have used to guide these processes for me. It is a result of a company-wide presentation I gave about my team and our product. As a part of the presentation prep, they asked me, "and the principals you follow." At that moment, I realized that I never took the time to fully flesh out my thoughts on what makes a good engineering team. It was great to organize those thoughts into something tangible and shareable. </p>
<h1 id="safe">Safe</h1>
<dl>
<dt>Safe Systems</dt>
<dd>Quite simply, if our systems do not meet our security, contractual, or compliance standards, it doesn't ship.
</dd>
<dt>Building Trust</dt>
<dd>Trust is paramount. Continuously invest in security, reliability, and user experience to build an unmatched level of trust between users, engineers, and systems.
</dd>
<dt>Continuous Testing</dt>
<dd>Run automated tests at all levels of the development cycle. Unit Tests, IntegrationTests, Smoke tests, and dedicated testing drills ensure our systems follow a rigorous but smooth process to production.
</dd>
<dt>Psychological Safety</dt>
<dd>We focus on ensuring our engineers are comfortable in their environment. Failures are an opportunity for our team to grow. We foster a culture of thought diversity, inclusive of new ideas, processes, and experimentation.
</dd>
</dl>

<h1 id="pragmatic">Pragmatic</h1>
<dl>
<dt>Continuous Improvement</dt>
<dd>We make our software iteratively deploying small changes quickly, efficiently, and all the time. We focus on efficient code reviews, smooth pipelines, automated tests, and feature toggles to ensure easy, timely, and controlled systems delivery.
</dd>
<dt>Simple Scales</dt>
<dd>Scaling our software to meet the growth targets is essential. Complex systems are hard to scale. We start as simple as possible and layer in complexity only as needed.
</dd>
<dt>YAGNI</dt>
<dd>You Ain't Gonna Need It. This acronym drives the pragmatic approach. While we always consider future growth and uses cases, YAGNI allows us to focus on the most critical challenges in front of us.
</dd>
<dt>Craft Differentiators</dt>
<dd>Growing markets means increased competition. Our focus is on building those features that make our product unique and crafting delightful user experiences to set ourselves apart.
</dd>
</dl>

<h1 id="engineering">Engineering</h1>
<dl>
<dt>Engineering Over Programming</dt>
<dd>Programming is putting code into an editor, while engineering is the process of solving problems. We are focus on being engineers from test to infrastructure to UX.
</dd>
<dt>Missions Over Output</dt>
<dd>Our teams are mission-driven, guiding the team on their holistic fitment in the organization. These missions allow the team to focus on their impact on the organization over their output metrics. Our teams can quickly gain domain context, onboard new teammates, and scale.
</dd>
<dt>Collaborative Process</dt>
<dd>Our engineering process brings together a cross-functional set of teammates to identify, define, design, implement and deliver solutions. We focus on the people over process and outcomes over output. 
</dd>
<dt>Soft Skills</dt>
<dd>We offer our engineers the opportunity to grow beyond writing code. We maintain a culture of experimentation, stretch projects, and career opportunities. This culture allows our teammates to expand their skillsets, achieve career goals and contribute more broadly to our company's future. We do all of this while respecting the diversity of personalities and respecting our teammates not participating.
</dd>
</dl>

<h1 id="culture">Culture</h1>
<dl>
<dt>Setting Expectations</dt>
<dd>We strive to always set expectations for our engineers, teams, and leadership. Our people always know what we expect from them and what they can expect from their teammates, leaders, and our company.
</dd>
<dt>Culture Connections</dt>
<dd>One of the benefits of having a diverse team is the different cultures and experiences. We encourage our teammates to participate in our informal Culture Connection sessions to share food, pop culture, tourism, events, government, and beyond. We love learning.
</dd>
<dt>Community Engagement</dt>
<dd>We encourage our engineers to engage with the tech community via an array of outlets. We will help our engineers find speaking engagements, support open-source software, and join boards and committees to continue being leaders in the tech industry. 
</dd>
<dt>Organizational Commitment</dt>
<dd>Everyone is engaged and supportive of the engineering organization and philosophies. We support a diversity of opinions and fruitful discussions, but we must be committed to the success of our organization after a decision is made. We operate under the assumption of good faith and the best of intentions.
</dd>
</dl>
]]></content:encoded></item></channel></rss>