<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ldhq.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ldhq.io/" rel="alternate" type="text/html" /><updated>2026-02-02T10:32:24+00:00</updated><id>https://ldhq.io/feed.xml</id><title type="html">Lucky Doge HQ</title><subtitle>Site about IT Tech &amp; Management topics</subtitle><author><name>Alexey Denisevich</name></author><entry><title type="html">Introducing app: “Mac Gaming Layout”</title><link href="https://ldhq.io/posts/mac-gaming-layout/" rel="alternate" type="text/html" title="Introducing app: “Mac Gaming Layout”" /><published>2023-10-20T00:00:00+00:00</published><updated>2023-10-20T00:00:00+00:00</updated><id>https://ldhq.io/posts/mac-gaming-layout</id><content type="html" xml:base="https://ldhq.io/posts/mac-gaming-layout/"><![CDATA[<h2 id="preamble">Preamble</h2>

<p style="text-align:center;"><img src="/assets/images/mgl-3.png" alt="dev-containers-logo" width="50%" /></p>

<p>Hola!</p>

<p>With the:</p>
<ul>
  <li>Rise of <a href="https://www.youtube.com/watch?v=63Ne0YmW-1o" target="_blank">Native Mac Gaming</a> (oh yes, it comes in fast)</li>
  <li>Great tools as <a href="https://www.codeweavers.com/crossover" target="_blank"><em>Crossover</em></a></li>
  <li>Direct help from Apple with its <a href="https://developer.apple.com/videos/play/wwdc2023/10123/" target="_blank"><em>Game Porting Toolkit</em></a></li>
</ul>

<p>Automated approach to have a pc-like keyboard and mouse behavior on Mac so you can deliver a proper headshots in Far Cry 5 or <a href="https://www.youtube.com/watch?v=B9ICADmj_1Q" target="_blank">Counter Strike 2</a> and gain a teammates chant of approval became an increasing <strong>necessity</strong>.</p>

<p>However, the <a href="https://support.apple.com/en-us/HT213658" target="_blank">Gaming Mode</a> that Apple advertised works only on the set of Native Games and does not do anything in terms of layout, basically proposing using gamepad…</p>

<p>Gamepad in <a href="https://apps.apple.com/pl/app/resident-evil-village-for-mac/id1640627334?mt=12" target="_blank">Resident Evil: Village</a> or CS2, really???</p>

<p>Hell No! Oldschool mouse and keyboard - definitely Yes!</p>

<hr />

<h2 id="mac-gaming-layout">Mac Gaming Layout</h2>

<p>Beyond doubt, original Apple layout is great for productivity and accessibility: toggle brighness, control music, mute the sound and so on.</p>

<p>But lets face it - it has little to none value when it comes to gaming.</p>

<p>Sure, we can go with manually changing settings every single time you plan to game…</p>

<p>But why bother?</p>

<p>Let <strong>Mac Gaming Layout (MGL)</strong> app make it for you in automated fashion!</p>

<p>The app itself is an Applescript bundled as an Automator Application that will manipulate system settings purely with GUI scripting (without any hidden shell commands) by temporately converting your keyboard and mouse layout to PC-like behavior.</p>

<p>In details, it will:</p>

<ul>
  <li>Toggle built-in TrackPad (enable/disable when external mouse is connected)</li>
  <li>Toggle “Fn (Globe)” action (do nothing / switch input source)</li>
  <li>Toggle “Use F1, F2, etc. keys with standard function keys” (so you can switch spells or abilities in RPGs like Diablo 2)</li>
  <li>Swap bindings - “Fn (Globe)” and “Control” buttons (so you can crouch better in FPS)</li>
</ul>

<p><strong>Mac Gaming Layout (MGL)</strong> app is designed to read the current state of your settings, meaning:</p>

<ul>
  <li>when you need to play - just hit it and let it change your keyboard and mouse settings on your behalf</li>
  <li>once you’ve done gaming - hit it again and it will revert your settings to an original Apple values</li>
</ul>

<p>Since it is pure Applescript, you can easily check the code by opening it in build-in MacOS ‘Automator’ application.</p>

<h3 id="what-do-you-need">What do you need</h3>

<ul>
  <li>Download latest version: <a href="https://github.com/leshcat/mac-gaming-layout/releases" target="_blank">https://github.com/leshcat/mac-gaming-layout/releases</a></li>
  <li>Put it anywhere on your Mac (I recommend <em>Documents</em> folder to avoid problems)</li>
  <li>(optional) Add the proper icon</li>
  <li>(optional) Put it in Dock</li>
  <li>Provide <a href="https://www.macworld.com/article/347452/how-to-fix-macos-accessibility-permission-when-an-app-cant-be-enabled.html" target="_blank">Accessibility Permissions</a></li>
  <li>When started <strong>MGL</strong>, you will be promted to approve “Documents Access” (so MGL can write state file)</li>
  <li>Enjoy!</li>
</ul>

<p>See installation instuctions with screenshots here: <a href="https://github.com/leshcat/mac-gaming-layout" target="_blank">https://github.com/leshcat/mac-gaming-layout</a></p>

<h2 id="caveats">Caveats</h2>

<p>For some reason random games register ‘<em>FN</em>’ button that was swapped to ‘<em>Control</em>’ as a non-existent on most macs <strong>right</strong> ‘<em>Control</em>’ button.</p>

<p>It is easily mitigated in your game controls settings by remapping it to <strong>left</strong> ‘<em>Control</em>’ button once, but you’ve been warned!</p>

<h2 id="demo-time">Demo time!</h2>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/8JWIsc-aldk" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<h2 id="conclusion">Conclusion</h2>

<p>That’s it!</p>

<p>With the help of <strong>MGL</strong>, performing proper CS2 headshots while crouching using the left ‘<em>Control</em>’ button as it is supposed to be with touchpad disabled on Mac has never been that easy!</p>

<p>Stay Frosty,</p>

<p>L.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="games" /><category term="apple" /><category term="applescript" /><category term="keyboard" /><category term="mouse" /><summary type="html"><![CDATA[Bacause gaming on Mac with mouse and keyboard should not be a pain!]]></summary></entry><entry><title type="html">Get back on Track: Dev Containers</title><link href="https://ldhq.io/posts/dev-containers/" rel="alternate" type="text/html" title="Get back on Track: Dev Containers" /><published>2023-06-15T00:00:00+00:00</published><updated>2023-06-15T00:00:00+00:00</updated><id>https://ldhq.io/posts/dev-containers</id><content type="html" xml:base="https://ldhq.io/posts/dev-containers/"><![CDATA[<h2 id="preamble">Preamble</h2>

<p style="text-align:center;"><img src="/assets/images/dev-containers/dev-containers.png" alt="dev-containers-logo" width="50%" /></p>

<p>Welcome back!</p>

<p>Woah, Time flies! Two years passed since my last article and at some point I have decided to continue sharing my thoughts and knowledge.</p>

<p>Obviously my setup with Ruby, Jekyll, its plugins and gems got outdated that effectively locked me from simply posting the articles.</p>

<p>Total Upgrade? Sure, that is pretty natural desire so i tried it in a first place on my local machine.</p>

<p>Just to learn that it’s not that trivial when running Apple Silicon: Jekyll, its plugins, Ruby and Gems installation shown inconsistencies, loading wrong arch types and overall upgrade process became far more painful that it should be.</p>

<p>Plus, even when resolved, solution wasn’t really portable across my machines. What can be done?</p>

<p>And that’s where Dev Containers came to the rescue!</p>

<hr />

<h2 id="the-dev-containers">The Dev Containers</h2>

<p>Taken from <a href="https://containers.dev/" target="_blank">official website</a>:</p>

<p>“A Development Containers (or Dev Containers for short) allows you to use a <strong>container</strong> as a full-featured development environment.
It can be used to <strong>run an application</strong>, to separate tools, libraries, or runtimes needed for working with a codebase, and to aid in continuous integration and testing. 
Dev containers can be <strong>run locally</strong> or remotely, in a private or public cloud.”</p>

<p>In other words, thats your tiny “local machine” that specifically holds only the tools and libs you need for your development, encased in Docker container.</p>

<p>Lets give it a shot!</p>

<h3 id="what-do-you-need">What do you need</h3>

<p>In essence, all you need is to:</p>

<ul>
  <li>
    <p>Install any Docker Engine provider on your local machine, free <a href="https://rancherdesktop.io/" target="_blank">Rancher Desktop</a> will do</p>
  </li>
  <li>
    <p>Install <code class="language-plaintext highlighter-rouge">Dev Containers</code> plugin for VSCode:</p>

    <p><img src="/assets/images/dev-containers/dev-containers-vsc-plugin.png" alt="dev-containers-vsc-plugin" /></p>
  </li>
  <li>
    <p>Create basic configuration for Dev Containers: <a href="https://github.com/leshcat/leshcat.github.io/blob/master/.devcontainer/devcontainer.json" target="_blank">configuration example</a></p>
  </li>
  <li>
    <p>Create Dockerfile that will download and install all tools and libs you need for your project on the base image, <a href="https://github.com/leshcat/leshcat.github.io/blob/master/Dockerfile" target="_blank">here is mine as example</a></p>
  </li>
</ul>

<p>You can always refer to official <a href="https://code.visualstudio.com/docs/devcontainers/tutorial" target="_blank">getting started guide</a> for more information.</p>

<h2 id="demo-time">Demo time!</h2>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/ASio3klhC7A" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<h2 id="conclusion">Conclusion</h2>

<p>As a result of using Dev Containers, we ‘ve got an immutable and portable dev environment that thanks to Docker isolation does not interfere with others or host system. :wink:</p>

<p>Stay Frosty,</p>

<p>L.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><category term="docker" /><category term="dev" /><category term="containers" /><category term="development" /><summary type="html"><![CDATA[Recently I 've decided to post a new article. Naturally my blogging environment got outdated. Upgrade to the current version or ... else?]]></summary></entry><entry><title type="html">Free* Serverless Email Service in 20 minutes</title><link href="https://ldhq.io/posts/free-serverless-email-service/" rel="alternate" type="text/html" title="Free* Serverless Email Service in 20 minutes" /><published>2021-10-10T00:00:00+00:00</published><updated>2021-10-10T00:00:00+00:00</updated><id>https://ldhq.io/posts/free-serverless-email-service</id><content type="html" xml:base="https://ldhq.io/posts/free-serverless-email-service/"><![CDATA[<h2 id="preamble">Preamble</h2>

<p><img src="/assets/images/startup/serverless-email-service/post-logo-ncp.png" alt="post-logo-ncp" /></p>

<p>Hi everyone,</p>

<p>Sooner or later every Company, Startup or even individual will require a professional-looking email address.</p>

<p>Since every bit of email you send or receive has to live somewhere, it means you need a Server or a Service that will house it.</p>

<p>So what are our options?</p>

<p>Let’s review some of them.</p>

<hr />

<h2 id="email-serverservice-market">Email Server/Service Market</h2>

<h3 id="self-hosted-way">Self-hosted Way</h3>

<p>We could go with:</p>

<ul>
  <li>old-style self-hosted Postfix/Dovecot setup</li>
  <li>or something cooler like <a href="https://mailu.io/1.8/" target="_blank">mailu.io</a></li>
  <li>or <a href="https://github.com/docker-mailserver/docker-mailserver" target="_blank">docker-mailserver</a></li>
</ul>

<p>Of course with all underlining headache of maintenance, compliances, compute power required to run it and so on.</p>

<p>Not cool in the Age of SaaS!</p>

<p>Plus it is 2021, so there ‘s gotta be cheap solutions out there, right?</p>

<hr />

<h3 id="hosting-based-way">Hosting-Based Way</h3>

<p>There is a wide variety of Hosting Providers that will range from <strong>7-20 USD/mo for 5 users</strong> at the moment.</p>

<p>Of course, usually it means you ‘ll need to buy a whole package: shared hosting, maybe virtual private server(vps) and other unnecessary bunch of stuff.</p>

<hr />

<h3 id="cloud-based-way">Cloud-Based Way</h3>

<ul>
  <li><a href="https://protonmail.com/business/pricing" target="_blank">protonmail</a> will charge you <strong>45 USD/mo for 5 users</strong> at the moment</li>
  <li><a href="https://workspace.google.com/intl/en/pricing.html" target="_blank">Gsuite Business Starter</a> will charge you <strong>30 USD/mo for 5 users</strong> at the moment</li>
</ul>

<hr />

<h3 id="domain-providers-way">Domain-Providers Way</h3>

<p>That’s kinda interesting, as i’ve never paid attention they provide such service, but for example <strong>GoDaddy</strong> <a href="https://uk.godaddy.com/email/professional-business-email" target="_blank">actually does</a>.</p>

<p>At the end, you ‘ll pay around <strong>15 USD/mo per 5 users</strong> and gonna use Microsoft Teams to access it.</p>

<hr />
<h3 id="conclusion">Conclusion</h3>

<p>Sure those are not crazy numbers, however, for some brave but poor Startup or individual, this might become an unwanted spending.</p>

<p>Can we find a even cheaper solution or…<strong>not to pay at all</strong>? :smirk:</p>

<p>Turns out you can.</p>

<hr />

<h2 id="amazon-ses">Amazon SES</h2>

<p><a href="https://aws.amazon.com/ses/" target="_blank">Amazon SES</a> stands for Simple Email Service, it is obviously Cloud-Based and removes all the hustle with managing its underlining infrastructure.</p>

<p>Naturally, it can send emails but most importantly - <strong>receive</strong> them as well.</p>

<p>SES is also <a href="https://aws.amazon.com/ses/pricing/" target="_blank">very kind</a> in terms of pricing:</p>

<p><img src="/assets/images/startup/serverless-email-service/2-ses-pricing.png" alt="pricing" /></p>

<p>Except for similar <a href="https://github.com/0x4447/0x4447_product_s3_email" target="_blank">“0x4447_product_s3_email”</a> project and bits and pieces across the web, I haven’t found modern solution, so i’ve took the liberty <a href="https://github.com/leshcat/serverless-email-service" target="_blank">creating it</a> myself :smirk:</p>

<p>Let’s see it in action!</p>

<hr />

<h3 id="preparation">Preparation</h3>

<p>For starters, let’s get the <a href="https://github.com/leshcat/serverless-email-service" target="_blank">repo</a>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>% git clone https://github.com/leshcat/serverless-email-service.git
% <span class="nb">cd </span>serverless-email-service
</code></pre></div></div>

<p>According to <a href="https://github.com/leshcat/serverless-email-service/blob/main/README.md" target="_blank">README</a>, we should go through next steps:</p>

<ul>
  <li><a href="https://github.com/leshcat/serverless-email-service#prerequisites" target="_blank">Create accounts &amp; install binaries</a></li>
  <li>
    <p><a href="https://github.com/leshcat/serverless-email-service#production-ses" target="_blank">Remove SES from “Sandbox”</a> for ability to send emails everywhere</p>

    <p>Basically, you are obliged to write a short Support Ticket explaining how exactly you are going to use your SES.</p>

    <p>Once done, soon enough Amazon guys will review your request and your SES state will switch from “Sandbox”:</p>

    <p><img src="/assets/images/startup/serverless-email-service/2-ses-sandbox.png" alt="ses-sandbox" /></p>

    <p>to a Proud “Production” state:</p>

    <p><img src="/assets/images/startup/serverless-email-service/2-ses-prod-ready.png" alt="ses-production" /></p>
  </li>
  <li>
    <p><a href="https://github.com/leshcat/serverless-email-service#environment-variables" target="_blank">Export environment variables</a></p>
  </li>
  <li>
    <p><a href="https://github.com/leshcat/serverless-email-service#environment-variables" target="_blank">Create an S3 bucket for Terraform remote state storage</a> you’ve provided in variable in step above</p>

    <p>For my trial run, I ‘ve chosen following name for my S3 bucket:</p>

    <p><code class="language-plaintext highlighter-rouge">ldhq-us-east-1-ses-tfstate</code></p>
  </li>
  <li>
    <p><a href="https://github.com/leshcat/serverless-email-service#terraform-variables" target="_blank">Modify Terraform variables</a></p>

    <p>Here is my choice:</p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>% <span class="nb">cp </span>us-east-1.tfvars.example us-east-1.tfvars
% <span class="nb">cat </span>us-east-1.tfvars
</code></pre></div>    </div>
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config <span class="o">=</span> <span class="o">{</span>
  <span class="s2">"ldhq.io"</span> : <span class="o">{</span>
    fromEmail : <span class="s2">"aws-ses-lambda-forwarder@ldhq.io"</span>,
    emailBucket : <span class="s2">"us-east-1-ldhq.io-ses"</span>,
    emailKeyPrefix : <span class="s2">"emails/"</span>,
    forwardMapping : <span class="o">{</span>
      <span class="s2">"luckydoge@ldhq.io"</span> : <span class="o">[</span>
        <span class="s2">"my.gmail.account@gmail.com"</span>
      <span class="o">]</span>,
      <span class="s2">"benita@ldhq.io"</span> : <span class="o">[</span>
        <span class="s2">"my.other.gmail.account@gmail.com"</span>
      <span class="o">]</span>
    <span class="o">}</span>
  <span class="o">}</span>
<span class="o">}</span>
</code></pre></div>    </div>
  </li>
</ul>

<h3 id="installation">Installation</h3>

<p>Okay, looks like we are all set!</p>

<p>As <a href="https://github.com/leshcat/serverless-email-service#install" target="_blank">README</a> claims, all i need to do is to execute single command:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>% make
</code></pre></div></div>

<p>If you did everything right, within a minute or so, Terraform will complete its work.</p>

<p>Check your <code class="language-plaintext highlighter-rouge">"./outputs"</code> folder for DNS Verification Records and SES Credentials.</p>

<h3 id="updating-your-domain-dns-configuration">Updating your Domain DNS Configuration</h3>

<p>Lets check DNS Verification Records:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jq <span class="nb">.</span> ./outputs/326278417061-us-east-1-dns-records.txt
</code></pre></div></div>
<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"ldhq.io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"dkim-0"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;._domainkey"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"record"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;.dkim.amazonses.com"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"ttl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"600"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CNAME"</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="nl">"dkim-1"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;._domainkey"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"record"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;.dkim.amazonses.com"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"ttl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"600"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CNAME"</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="nl">"dkim-2"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;._domainkey"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"record"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;.dkim.amazonses.com"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"ttl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"600"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CNAME"</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="nl">"verification"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"_amazonses.ldhq.io"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"record"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;redacted&gt;"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"ttl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"600"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"TXT"</span><span class="w">
    </span><span class="p">}</span><span class="w">
  </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Following records should be set in the DNS configuration for your domain.</p>

<p>More information on how to do that for various Domain providers can be <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-authentication-dkim-easy-setup-domain.html" target="_blank">found here</a>.</p>

<p><strong>NOTE</strong>: If you are using <strong>GoDaddy</strong> like me, you need to drop the domain apex from verification record, just like <a href="https://inkplant.com/code/amazon-ses-godaddy" target="_blank">inkplant’s “amazon-ses-godaddy”</a> post noted.</p>

<p>You can check your domain’s records via <a href="https://mxtoolbox.com/dkim.aspx" target="_blank">mxtoolbox</a> or <a href="https://www.dmarcanalyzer.com/how-to-validate-a-domainkey-dkim-record/" target="_blank">dmarcanalyzer</a>, example:</p>

<p><img src="/assets/images/startup/serverless-email-service/3-dkim-check.png" alt="dkim-check" /></p>

<p>Once your records propagate, it takes approx ~10 minutes for domain to change status from Pending:</p>

<p><img src="/assets/images/startup/serverless-email-service/2-ses-verification-pending.png" alt="verification-pending" /></p>

<p>To Verified state:</p>

<p><img src="/assets/images/startup/serverless-email-service/2-ses-verified.png" alt="verification-completed" /></p>

<h3 id="email-address-setup-in-gmail-account">Email Address setup in Gmail account</h3>

<p>Next, its time to update Gmail with following creds:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jq <span class="nb">.</span> ./outputs/326278417061-us-east-1-ses-credentials.txt
</code></pre></div></div>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"smtp_server"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"email-smtp.us-east-1.amazonaws.com"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"port"</span><span class="p">:</span><span class="w"> </span><span class="s2">"587"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"us-east-1-benita@ldhq.io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"benita@ldhq.io"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"login"</span><span class="p">:</span><span class="w"> </span><span class="s2">"AKIA&lt;redacted&gt;"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"BLWMr&lt;redacted&gt;"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"us-east-1-luckydoge@ldhq.io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"luckydoge@ldhq.io"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"login"</span><span class="p">:</span><span class="w"> </span><span class="s2">"AKIA&lt;redacted&gt;"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"BFans&lt;redacted&gt;"</span><span class="w">
  </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Simply follow <a href="https://github.com/leshcat/serverless-email-service#email-address-setup-in-gmail-account" target="_blank">this part of README</a> to add your new and shiny Email Addresses.</p>

<h2 id="testing-time">Testing Time!</h2>

<p>Lets send an email from <code class="language-plaintext highlighter-rouge">"luckydoge@ldhq.io"</code> to some other user:</p>

<p><img src="/assets/images/startup/serverless-email-service/6-outgoing-email-to-ext-sent.png" alt="6-outgoing-email-to-ext-sent" /></p>

<p>As you can see, we’ve got it:</p>

<p><img src="/assets/images/startup/serverless-email-service/6-outgoing-email-to-ext-received.png" alt="6-outgoing-email-to-ext-received" /></p>

<p>People respecting Doge always write a reply. And here is the final result:</p>

<p><img src="/assets/images/startup/serverless-email-service/6-incoming-mail-from-ext-received-full.png" alt="6-outgoing-email-to-ext-received" /></p>

<p>Works like charm :smirk:</p>

<h2 id="being-free--prod-grade-solution">Being Free* &amp; Prod-Grade solution</h2>

<p>As of time of writing this post, Amazon Billing Dashboard forecasted 0.00 USD for the end of month and reported plenty of Free Tier resources available:</p>

<p><img src="/assets/images/startup/serverless-email-service/5-pricing-results.png" alt="pricing" /></p>

<p>Unless you are sending thousands of mails per day with 4K videos attached (not to worry, <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html" target="_blank">limits</a> won’t allow that), you ‘ll probably never pay a dime for months to come.</p>

<p>:fire: However! :fire:</p>

<p>Serverless Email Service <strong>should not be considered Production-Grade solution for Companies larger than ~5-7 users</strong>, as budget predictability becomes uncertain and overall control is basically limited.</p>

<p>If your Company or Startup rapidly extends the numbers of employees, in my opinion it’s best to consider paid alternatives provided above.</p>

<p>Anyway, it’s up to you :slightly_smiling_face:.</p>

<h2 id="conclusion-1">Conclusion</h2>

<p>In less than 20 minutes, we have created a Serverless Email Service that requires no maintenance and slim-to-none cost!</p>

<p>Target goal achieved :wink:</p>

<p>Stay Frosty,</p>

<p>L.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><category term="aws" /><category term="ses" /><category term="email" /><category term="service" /><summary type="html"><![CDATA[Eventually you will require a professional-grade email address. What are the options and pricing? Can this service be Free?]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way Finale: Org Transformation</title><link href="https://ldhq.io/posts/ldhw-part-six/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way Finale: Org Transformation" /><published>2021-08-19T00:00:00+00:00</published><updated>2021-08-19T00:00:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-six</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-six/"><![CDATA[<h2 id="preamble">Preamble</h2>

<p><img src="/assets/images/ldhw-part-six/big-things-have-small-beginnings-small-beginnings.gif" alt="Big things have small beginnings" /></p>

<p>Sooo…where do we Begin? :slightly_smiling_face:</p>

<p>First, lets figure out to what type of Organizations DevOps Methodology can be applied.</p>

<hr />

<h2 id="suitable-organizations">Suitable Organizations</h2>

<p>Common thing I keep hearing is that existing Organizations are unlikely to succeed in DevOps Transformation, as it’s Legacy Processes, Systems and “Silo-ed” Mindset make it virtually impossible, all you can do is to perform some practices and apply the tools.</p>

<p>However, According to <a href="https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002/ref=sr_1_1?dchild=1&amp;keywords=devops+handbook&amp;qid=1623762578&amp;s=books&amp;sr=1-1" target="_blank">“The DevOps Handbook”</a>, <a href="https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339" target="_blank">“Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology”</a> and many-many other sources, Real DevOps Transformation is possible in any type of Organization, regardless if its Mature Enterprise or New Born Startup.</p>

<h3 id="observation-devops-in-existing-organizations">Observation: DevOps in existing Organizations</h3>

<p>Hiring a bunch of “DevOps” guys and safely assuming you have DevOps now, <em>“just like everybody else”</em> - is the most common mistake existing Organizations do.</p>

<p>Being <em>“one of these”</em> guys, generally speaking there are two places you can fall-in:</p>

<ul>
  <li>
    <p>with very low probability you ‘ll be assigned to some “RnD” Team with strict Infrastructure &amp; CI/CD activities</p>
  </li>
  <li>
    <p>with highest probability you will end up in “bit-of-everything” Team called a “DevOps” Team, covering pretty much all Engineering Activities: starting from physical networks &amp; servers setup, laptops distributions, email and access provisioning, CI/CD, Clouds and ending up as late night deployers or/and lvl 1 support.</p>
  </li>
</ul>

<p>Regardless of your luck, by forming such Teams, Org does the same old mistake: handover from devs to ops over the wall just with extra steps.</p>

<p>Lack of core understanding of what DevOps Methodology is and what “DevOps Engineers”, or simply “Systems Engineers following DevOps Methodology” are supposed to do - is the primary reason of this to happen.</p>

<h3 id="observation-devops-in-startups">Observation: DevOps in Startups</h3>

<p>Or missing entirely, or not taken seriously, which actually kinda makes sense.</p>

<p>To back this up, <a href="https://www.amazon.com/INSPIRED-Create-Tech-Products-Customers-ebook/dp/B077NRB36N" target="_blank">CHAPTER 3 of “Inspired” book</a> states that Startups don’t really care much about Processes and Methodologies, as their primary goal is to get the market niche and earn its first attention before they run out of money.</p>

<p>Nevertheless, I believe it is imperative to establish DevOps Methodology right from the start, thus ensuring rapid delivery which is pivotal for any Startup survival and solid basis for future scaling.</p>

<h2 id="starting-devops-transformation">Starting DevOps Transformation</h2>

<p>It is highly unlikely you will succeed in Transforming entire Org right away just by showing some promising slides with nice numbers, obviously it takes much more than that.</p>

<p>However, in order to increase your chances of success, let’s <strong>Start Small</strong> here:</p>

<ul>
  <li>
    <p>Create or re-use one or two Teams sized by <a href="https://landing.directorpoint.com/blog/amazon-two-pizza-rule/#:~:text=Amazon's%20Two%20Pizza%20Rule%3A%20One,one's%20ideas%20get%20drowned%20out." target="_blank">“Two Pizza Size” rule</a></p>
  </li>
  <li>
    <p>Establish some basic process changes to facilitate the behaviour change, following <a href="https://www.lean.org/WhoWeAre/LeanPerson.cfm?LeanPersonId=4" target="_blank">John Shook</a> quote: <em>“…the way to change culture is not to first change how people think, but instead to start by changing how people behave — what they do.”</em></p>
  </li>
  <li>
    <p>Start shifting to DevOps Mindset</p>
  </li>
</ul>

<h3 id="preparing-the-teams">Preparing the Team(s)</h3>

<h4 id="new-productservice-team">New Product/Service Team</h4>

<p>Form or re-use fully fledged self-sustained product/service Team with all necessary people on board: Devs, QAs, BAs, InfoSec, Ops, SM/PM/DM, etc and DevOps guys, consisting of <a href="https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations-ebook/dp/B01M9ASFQ3/ref=sr_1_1?crid=EVX6LIKLWU9A&amp;dchild=1&amp;keywords=devops+handbook&amp;qid=1629229560&amp;s=digital-text&amp;sprefix=devops+hand%2Cdigital-text%2C275&amp;sr=1-1" target="_blank">“innovators and early adopters”</a> whenever possible.</p>

<p>If assembling new Team is not possible nor viable, lets go with existing DevOps Team vast majority of Orgs have.</p>

<h4 id="current-devops-team">Current DevOps Team</h4>

<ul>
  <li>Ensure to read an article <a href="https://lethain.com/durably-excellent-teams/" target="_blank">“Staying on the path to high performing Teams”</a> by Will Larson and decide if you need Hire or extend DevOps Team to the point they can actually create something new.</li>
</ul>

<h3 id="rules--processes">Rules &amp; Processes</h3>

<p>Nothing crazy new will follow below, but it’s important you do a self-check:</p>

<ul>
  <li>
    <p>Create entirely new “Jira/Other Software Development provider” Project with single Backlog for the Team’s amusement :wink:</p>
  </li>
  <li>
    <p>Assuming you are practicing Agile:</p>

    <ul>
      <li>
        <p>Make everyone in a Team a part of daily standups, retrospectives, grooming and planning</p>
      </li>
      <li>
        <p>Establish rules for Tickets Creation:</p>

        <p>Use simple DoR (Definition of Ready), in example:</p>

        <ul>
          <li><strong>Why</strong> are we doing this: what’s the Business/Technical value?</li>
          <li><strong>What</strong> is exactly expected: links, “just like they have”, metrics etc</li>
          <li><strong>How</strong> it should be implemented: recommendations or restrictions of desired solution</li>
        </ul>
      </li>
      <li>
        <p>If your Sprints constantly fail due to the lack of working Prioritising Mechanism or it is simply not respected, as a workaround, instead of Sprints consider ScrumBan:</p>

        <p>Check out following resources for proper ScrumBan transition in terms of steps and calculating Work In Process(WIP):</p>
        <ul>
          <li><a href="https://medium.com/@shehanb/agile-scrum-kanban-scrumban-cheatsheet-sprint-artifacts-ceremonies-software-jira-trello-scrumage-pmbok-e669d5dbf6f3" target="_blank">“Agile: Scrum, Kanban &amp; Scrumban”</a></li>
          <li><a href="https://kanbanzone.com/resources/kanban/wip-limits/" target="_blank">“Kanban WIP Limits”</a></li>
          <li><a href="https://kanbanzone.com/resources/lean/value-stream-mapping/" target="_blank">“Value Stream Mapping”</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li>
    <p>Ensure your Team has 20% time reserved to solve their Tech Debt</p>

    <p>There is a good quote from <a href="https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592" target="_blank">Project Phoenix</a>: If the Team <em>“doesn’t pay down its technical debt, every calorie in the Organization can be spent just paying interest, in the form of unplanned work.”</em></p>
  </li>
  <li>
    <p>Ensure your Team has 20% of time for Innovations &amp; Improvements</p>
  </li>
  <li>
    <p>Check out <a href="https://www.amazon.com/Value-Stream-Mapping-Organizational-Transformation/dp/0071828915" target="_blank">“Value Stream Mapping” Book</a></p>

    <p>VSM allows you to understand and optimise your existing Value Streams by removing wasted time and even obsolete parts of your chain, hence reducing “TTM”</p>
  </li>
</ul>

<h3 id="start-shifting-to-devops-mindset">Start shifting to DevOps Mindset</h3>

<p>Based on experience i ‘ve gained through the years and books combined I present to you the following steps:</p>

<ol>
  <li>
    <p>Pretty much everything in this world we understand and master through Learning.</p>

    <p>Why should this case be any different?</p>

    <p>Make an accent that the Team is now working under <a href="https://miro.com/app/board/o9J_l_dQ8LQ=/?fromEmbed=3" target="_blank">DevOps Methodology and its 3 Ways</a>, every single member should understand its goals and expected outcomes, spend enough time together studying it &amp; questioning its benefits, sign up for <a href="https://www.coursera.org/learn/devops-culture-and-mindset" target="_blank">DevOps Culture and Mindset</a> course and complete it</p>
  </li>
  <li>
    <p>Develop and maintain the DevOps mindset:</p>

    <ul>
      <li>
        <p>Own and be responsible for the whole delivery lifecycle as a Team</p>
      </li>
      <li>
        <p>Know how all the counterparts are stitched together for your service and how it Impacts the Whole System, recall <a href="https://ldhq.io/posts/ldhw-part-five/#the-systems-thinking" target="_blank">Systems Thinking</a></p>
      </li>
      <li>
        <p>Share your local knowledge with Organization by Documenting it in Org’s Confluence, start <a href="https://www.mindtools.com/pages/article/lunch-and-learn.htm" target="_blank">“Lunch n’ Learn”</a> days</p>
      </li>
    </ul>
  </li>
  <li>
    <p>Make it your own:</p>

    <p>Don’t try to execute all the DevOps Principles &amp; their Practices perfectly at first, some things can be dropped out for now. As once pretty famous CEO said: <em>“In order to become a Butterfly the creature must to go through the cattle pillar form first”</em></p>
  </li>
  <li>
    <p>Lead by example:</p>

    <p>Always question your decisions against <a href="https://ldhq.io/glossary/#devops-principles" target="_blank">“3 Ways”</a>. Note, it is absolutely fine to deviate from it for substantial quick Business win, given your solution is registered as Tech Debt afterwards</p>
  </li>
  <li>
    <p>Practice patience: Rome wasn’t built right away</p>
  </li>
  <li>
    <p>Practice practice: try, fail, repeat</p>
  </li>
  <li>
    <p>People of DevOps culture do not pass the work over the wall to other Teams, its a one Team mindset</p>
  </li>
  <li>
    <p>DevOps is about a culture of collaboration</p>
  </li>
  <li>
    <p>Leadership (with help of Management if required) is to provide recurring reports with evidence of Transformation progress Organization-wide, for better or worse</p>
  </li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>Once <strong>Start Small</strong> actions yield positive results, you will have enough experience and knowledge to scale-out your Transformation on other Teams, slowly but surely establishing DevOps Culture in your Org :slightly_smiling_face:</p>

<p>It is also important to bear one thing in mind:</p>

<p>Improvements in software delivery by adopting Methodologies like Agile or DevOps, implementing Spotify Engineering Organizational Structure for your Org and so on and so on are only possible, as long as leadership provides consistent support: including time, actions, and resources — demonstrating a true commitment to improvement, and as long as Team members commit themselves to the work.</p>

<p>If you are one of the Leadership and reading this - you now know what to do :slightly_smiling_face:</p>

<p>If you are DevOps/Engineering Manager or even CTO in “existing Organization” described above, who wants:</p>

<ul>
  <li>Organization to succeed in ever-rising competition</li>
  <li>Have a humane work/life balance</li>
  <li>Calmly think through the Modern Tech that will make your Org success even greater with obvious benefits for you and your colleagues</li>
</ul>

<p>I call you to re-read this blog from the beginning very carefully, add your thoughts, do some Nice Customer-Centric Slides for the Leadership and get to the Tops with your Plan.</p>

<p>In the event of failure - don’t give up just yet, recall the Samuel Beckett’s words:</p>

<p><em>“Ever tried. Ever failed. No matter. Try again. Fail again. Fail better”</em></p>

<p>Stay Frosty,</p>

<p>L.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[So we know what DevOps Methodology is and willing to apply it. So where do we Begin?]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way: 2021</title><link href="https://ldhq.io/posts/ldhw-part-five/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way: 2021" /><published>2021-07-06T00:00:00+00:00</published><updated>2021-07-06T00:00:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-five</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-five/"><![CDATA[<h2 id="devops-culture-and-mindset-course">“DevOps Culture and Mindset” Course</h2>

<p>Welcome back,</p>

<p>To complete on “3 Ways” vision, i ‘ve selected Coursera’s course: <a href="https://www.coursera.org/learn/devops-culture-and-mindset" target="_blank">DevOps Culture and Mindset</a> offered by University of California, Davis.</p>

<p>Why did i choose this course out of hundreds around?</p>

<p>Well, for three main reasons:</p>

<p>First: The instructor for this course, <a href="https://www.coursera.org/instructor/ckissler" target="_blank">Courtney Kissler</a> “was there when magic was written” :copyright:, as she:</p>

<ul>
  <li>Participated in “Value Stream Mapping” Chapter of <a href="https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002/ref=sr_1_1?dchild=1&amp;keywords=devops+handbook&amp;qid=1623762578&amp;s=books&amp;sr=1-1" target="_blank">“The DevOps Handbook”</a></li>
  <li>Wrote a foreword for <a href="https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339" target="_blank">“Accelerate”</a></li>
  <li>Noted in acknowledgements in <a href="https://www.amazon.com/Unicorn-Project-Developers-Disruption-Thriving-ebook/dp/B07QT9QR41" target="_blank">“The Unicorn Project”</a></li>
</ul>

<p>Second: That’s the #1 course on my memory that was expecting non-technical practical tasks to be completed in order to move forward with training</p>

<p>Third: i’ve <a href="https://ldhq.io/assets/files/Coursera_DVPZCXRCH94W.pdf" target="_blank">passed the course</a> and it is aligned with my vision :wink:</p>

<h3 id="pricing">Pricing</h3>

<p>Back in the days, you could enroll to the <a href="https://www.coursera.org/learn/devops-culture-and-mindset" target="_blank">course</a> for <em>50$ USD</em>, and now apparently it is free to our benefit, therefore, it is strongly encouraged to find the time (50 bucks too if there is still a fee) and study it hard by everyone who takes DevOps seriously.</p>

<p>Trust me on this, you won’t regret it!</p>

<h2 id="the-systems-thinking">The Systems Thinking</h2>

<p>So, what’s new?</p>

<p>The <strong>Systems Thinking</strong>!</p>

<p>I personally like the definition by <a href="https://searchcio.techtarget.com/definition/systems-thinking" target="_blank">techtarget.com</a>:</p>

<blockquote>
  <p>Systems thinking is a holistic approach to analysis that focuses on the way that a system’s constituent parts interrelate and how systems work over time and within the context of larger systems.</p>
</blockquote>

<p>From <a href="https://www.coursera.org/learn/devops-culture-and-mindset" target="_blank">DevOps Culture and Mindset</a> standpoint, Systems Thinking:</p>
<ul>
  <li>Emphasises on performance of the entire System “as opposed to performance of the specific silo, workgroup or the team” :copyright:</li>
  <li>Enables collaboration across functional lines, breaking down the silos</li>
  <li>Focuses on IT enabled Value Streams (Make sure to check out the <a href="https://www.amazon.com/Value-Stream-Mapping-Organizational-Transformation/dp/0071828915" target="_blank">“Value Stream Mapping”</a> book)</li>
</ul>

<p>Another priceless takeaway are <strong>Outcomes</strong> (not to be confused with <em>Outputs</em>), provided by each of Three Ways.</p>

<h2 id="devops-principles-cheatsheet-devops-culture-and-mindset">DevOps Principles Cheatsheet: “DevOps Culture and Mindset”</h2>

<p>I ‘ve took the liberty to incorporate all this knowledge in Three Ways Diagram and now it looks like a handy cheatsheet:</p>

<iframe height="500" width="100%" src="https://miro.com/app/embed/o9J_l_dQ8LQ=/?pres=1&amp;frameId=3074457361041562880&amp;autoplay=yep" frameborder="0" scrolling="no" allowfullscreen=""></iframe>

<h2 id="conclusion">Conclusion</h2>

<p>Okay, we are now weaponised with up-to-date DevOps Methodology Structure, its Core Principles, Practices around them and can explain what actual outcomes they provide.</p>

<p>But how do we actually proceed with implementing it?</p>

<p>We’ll talk about it in the next post :wink:</p>

<p>Stay Frosty,</p>

<p>L.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[DevOps Methodology in 2021: "DevOps Culture and Mindset" Course to an aid!]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way: Part IV</title><link href="https://ldhq.io/posts/ldhw-part-four/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way: Part IV" /><published>2021-06-23T00:00:00+00:00</published><updated>2021-06-23T00:00:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-four</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-four/"><![CDATA[<h2 id="preamble">Preamble</h2>

<p>Published in 2018, <a href="https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339" target="_blank">“Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology”</a> by Nicole Forsgren, Jez Humble &amp; Gene Kim quickly became the bestseller among IT Leadership &amp; Management alike.</p>

<p>It could not pass my attention either as i am always ready to get more clarifications and guidance on DevOps Methodology practical application.</p>

<p>At the end of the day the title had a <em>“The Science of .. DevOps”</em> excerpt, right? :wink:</p>

<h2 id="into-accelerate-book">Into “Accelerate” Book</h2>

<h3 id="general-overview">General Overview</h3>

<p>Briefly, “Accelerate” covers very interesing topics, for example:</p>
<ul>
  <li>Westrum’s typology of organizational cultures</li>
  <li>eNPS (eNPS Employee Net Promoter Score)</li>
  <li>Fighting People’s Burnouts</li>
  <li>Defining Managers, Leaders and Leadership and their roles</li>
  <li>Transformational Leadership characteristics</li>
</ul>

<p>and many-many more “here and there” valuable takeaways, all backed up by research they did/used while writing the Book.</p>

<h3 id="accelerate-part-iii-transformation">“Accelerate”, Part III: “Transformation”</h3>

<p>“Accelerate” has also an “Ace in the Sleeve” - 3rd part of the book: “Transformation”, my personal favourite.</p>

<p>Simply put: how do you actually shift from current state of things in your Org to a proposed one:
among numerous methods you can find well-known <a href="https://youtu.be/Yvfz4HGtoPc" target="_blank">“Spotify Organizational Structure”</a> and a very handy “Team, Management &amp; Leadership practices” Martix (Figure 16.4: High-Performance Team, Management, and Leadership Behaviors and Practices).</p>

<p>However, from engineering standpoint, pretty much nothing changed to <a href="https://ldhq.io/posts/ldhw-part-three/#devops-principles-cheatsheet-devops-handbook" target="_blank">“Three Ways”</a>.</p>

<p>Moreover, i find peculiar the fact, that while the technical practices in “Accelerate” Book remained if not identical, than pretty much the same in comparison to <a href="https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002/ref=sr_1_1?dchild=1&amp;keywords=devops+handbook&amp;qid=1623762578&amp;s=books&amp;sr=1-1" target="_blank">“DevOps Handbook”</a>, i have failed to find any mentions of the “Three Ways” despite that 2 authors of “Handbook” were participating in creating “Accelerate”.</p>

<h2 id="devops-principles-cheatsheet-accelerate">DevOps Principles Cheatsheet: “Accelerate”</h2>

<p>Nonetheless, 2 valuable additions to “the Flow” and “the Learning” principles were discovered, namely:</p>

<ul>
  <li><a href="https://trunkbaseddevelopment.com/" target="_blank">“TBD: Trunk Based Development”</a> (Ensure to check it out!)</li>
  <li>Demo Days</li>
</ul>

<p>and this is how they align on DevOps Principles schema (new marked with yellow circles):</p>

<iframe height="500" width="100%" src="https://miro.com/app/embed/o9J_l_dQ8LQ=/?pres=1&amp;frameId=3074457360556876015&amp;autoplay=yep" frameborder="0" scrolling="no" allowfullscreen=""></iframe>

<h2 id="conclusion">Conclusion</h2>

<p>To sum up, in my humble opinion “Accelerate” is designed for Managers &amp; Leadership of all levels in a first place…which might discourage some engineers from reading it. By <strong>ALL</strong> means please don’t!</p>

<p>As reading it from cover to cover, will grant you the least minumum - the knowledge of what to expect from Management and in best case scenario - you, my friend, the DevOps Engineer, will start shifting from simply <em>Using</em> tools &amp; <em>Applying</em> practices to a much more meaninful <strong>Establishing</strong> DevOps Methodology, completely aligned with Higher Command :wink:</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[How "Accelerate: The Science of Lean Software and DevOps" contributes to DevOps Methodology?]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way: Part III</title><link href="https://ldhq.io/posts/ldhw-part-three/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way: Part III" /><published>2021-06-15T16:13:00+00:00</published><updated>2021-06-15T16:13:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-three</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-three/"><![CDATA[<h2 id="rise-of-the-devops-the-three-ways">Rise of the DevOps: “The Three Ways”</h2>

<p>At least for me, The Real Game Changer became a book <a href="https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592" target="_blank">“Project Phoenix”</a> by Gene Kim, Kevin Behr &amp; George Spafford.</p>

<p>Presented as a novel, it introduced many interesting thoughts like what “the Change” &amp; Change Management toolset are, overall Engineering Goals, what happens when the Org’s tech debt and bottlenecks aren’t taken seriously (spoiler: your Biz will be disrupted often until full halt).</p>

<p>However, most importantly, “Project Phoenix” introduced pivotal principles called “The Three Ways”:</p>
<ul>
  <li>The Flow</li>
  <li>The Feedback Loop</li>
  <li>Continuous Experimentation &amp; Learning</li>
</ul>

<p>on which modern vision of DevOps as a Methodology is based on.</p>

<h2 id="devops-expansion-the-devops-handbook">DevOps Expansion: “The DevOps Handbook”</h2>

<p>Further expansion of those ideas resulted in a must-read book by DevOps Engineer (and frankly speaking by everyone in the Org):
<a href="https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002/ref=sr_1_1?dchild=1&amp;keywords=devops+handbook&amp;qid=1623762578&amp;s=books&amp;sr=1-1" target="_blank">“The DevOps Handbook”</a> by Gene Kim, Patrick Debois, John Willis, Jez Humble &amp; John Allspaw.</p>

<p>Among loads of helpful knowledge, it has an invaluable technical practices of what each Way consists of &amp; how to apply it.</p>

<h2 id="devops-principles-cheatsheet-devops-handbook">DevOps Principles Cheatsheet: “DevOps Handbook”</h2>

<p>In order to simplify the overall mass of data covered in “Handbook”, I ‘ve took a liberty to <em>generically</em> visualise it in One Picture, emphasising on “Three Ways”:</p>

<iframe height="500" width="100%" src="https://miro.com/app/embed/o9J_l_dQ8LQ=/?pres=1&amp;frameId=3074457360199775909&amp;autoplay=yep" frameborder="0" scrolling="no" allowfullscreen=""></iframe>

<h2 id="conclusion">Conclusion</h2>

<p>In my humble opinion, this Book was a solid step forward for all DevOps movement out there: fresh, elaborate and consistent view that offered numerous practical steps to come closer to a working model of DevOps <em>Methodology</em> :fire:</p>

<p>Moreover, looks like that complying to “Three Ways” automatically forms a “DevOps culture”…or it’s not? :confused:</p>

<p>Since 2016, the book’s published date, the progress on the matter didn’t stop and “Three Ways” were moderately augmented.</p>

<p>How?</p>

<p>See in the next post :wink:</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[The real game changer for "DevOps" starts from Books: "Project Phoenix" & "The DevOps Handbook"...or Not?]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way: Part II</title><link href="https://ldhq.io/posts/ldhw-part-two/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way: Part II" /><published>2021-06-11T11:50:00+00:00</published><updated>2021-06-11T11:50:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-two</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-two/"><![CDATA[<p>Time flew and I’ve gained pretty good quantity &amp; quality of Tech Knowledge, toolset was learned and mastered, even basic practices established.</p>

<p>But the full picture was missing, thus the question still remained.</p>

<hr />

<p>To search for answers i’ve looked with hope for some consistent courses and found pretty peculiar and promising online course, called:</p>

<p>“DevOps: What, Why and How, Introduction to DevOps”</p>

<p>Offered by EMC Education Services, which presumably didn’t stand the stress of time and is gone by now (i still hold the <a href="https://ldhq.io/assets/files/EMC_DevOps_certificate.pdf">cert</a> though :stuck_out_tongue_winking_eye:).</p>

<p>Of course, i was(and still am :wink:) limited with understanding things, probably they told more than i could comprehend but finally it came out as initial idea of what “DevOps” is and it looked something like this:</p>

<iframe height="500" width="100%" src="https://miro.com/app/embed/o9J_l_gyupY=/?pres=1&amp;frameId=3074457359956540428&amp;autoplay=yep" frameborder="0" scrolling="no" allowfullscreen=""></iframe>

<p>In short:</p>
<ul>
  <li>Starting point is “DevOps” which is a complimentary for Agile</li>
  <li>Automation is a driving force of DevOps</li>
  <li>When enough automated, you can figure out reusable blocks for a whole Organisation</li>
  <li>You monitor the App(s)/Infrastructure(s)</li>
  <li>With every change you check for impact, for good or worse</li>
  <li>You start over</li>
</ul>

<p>As you might notice, in a Сenter of the process there is a <em>Cultural Change</em>, i’ll talk about that later.</p>

<p>Anyway, back then, it felt complete. Finally, something to jump from, lean on.</p>

<p>Later i’ve assumed Lead Role and with confidence was actively propagandising it, presenting it company wide.</p>

<hr />

<p>Time flew, the idea seemed to be all great and shiny, except one thing - <strong>it didn’t work</strong>.</p>

<p>And what i mean by that: sure, we did efficient CI/CD, Deployment, but never reached the mind-shift towards the “DevOps” as <em>Methodology</em>.</p>

<p>Iterating now, it’s clear that it was missing 2 Core Points: Proper understanding what “DevOps” is and the Culture formed around it.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[Searching for the truth ain't easy. Initial understanding of "DevOps" is right here.]]></summary></entry><entry><title type="html">Learn DevOps The Hard Way: Part I</title><link href="https://ldhq.io/posts/ldhw-part-one/" rel="alternate" type="text/html" title="Learn DevOps The Hard Way: Part I" /><published>2021-06-07T15:58:00+00:00</published><updated>2021-06-07T15:58:00+00:00</updated><id>https://ldhq.io/posts/ldhw-part-one</id><content type="html" xml:base="https://ldhq.io/posts/ldhw-part-one/"><![CDATA[<p><img src="/assets/images/ldhw-part-one/devops-logo-ncpyrght.jpg" alt="DevOps Logo" /></p>

<p>Back in 2015, i woke up and found myself being a Junior DevOps Engineer.
I wanted to be on this train and i got lucky to board it.</p>

<p>But the question was: what is “DevOps” and how do you cook it?</p>

<hr />

<p>Truth is, I had no idea what DevOps was, its purpose, assumed little-to-none knowledge about the toolset that demanded mastering(except pretty good Linux knowledge i’ve already had), though company was fine with it and i got the job anyway.</p>

<p>Beyond working hours, it was a time of relentless grinding of the countless documentation, forums and posts, literally my personal <a href="https://en.wikipedia.org/wiki/Age_of_Discovery">“Age of Discovery”</a>, where every single day you were to explore new unknown fields for yourself.</p>

<p>You had to learn all of it and learn it quick, starting from CI/CD toolset like Git or Bamboo/Jenkins, Mythical Clouds, Configuration Management &amp; “Infrastructure as a Code” toolset till Docker Containers and even early Kubernetes, with slim-to-none documentation it had back in the days.</p>

<p>In other words, it was an entirely Different World, especially in comparison with “regular” Linux Engineer role i’ve assumed prior the “DevOps Epoch” and it was extremely exciting &amp; rewarding, felt great!</p>

<p>Of course, as of year 2021, it’s all De Facto standard tools, entry level “DevOps” specialists are working with on daily basis.</p>

<p>Never the less, time passed by, the toolset knowledge, practices, concepts, processes, designs, even mindset - all were shaping, mutating and growing in my head exponentially.</p>

<p>But One Thing remained absolutely the same: <strong>it was still unclear what “DevOps” is</strong> :confused:</p>

<p>I am called “DevOps” engineer. Is “DevOps” about toolset or some kind of set of practices?</p>

<p>Logo in the beginning of this post perfectly represents my idea of “DevOps” in 2015: obscure, vague and dull.</p>

<p>Sure, there was a <a href="https://en.wikipedia.org/wiki/DevOps">Wikipedia</a>, numerous Posts &amp; Slides across the Web, explaining their vision &amp; people with their opinion on the subject.</p>

<p>However, none of those sources were compelling nor complete for me.</p>

<p>There was always a feeling that some mythic core component is missing and it blocks the puzzle from being resolved so “DevOps” word would finally make complete sense.</p>

<p>And i was intended to discover it.</p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="devops" /><summary type="html"><![CDATA[Back in 2015, i woke up and found myself being a Junior DevOps Engineer. But the question was: what is "DevOps" and how do you cook it?]]></summary></entry><entry><title type="html">Hola Benita!</title><link href="https://ldhq.io/posts/hola-benita/" rel="alternate" type="text/html" title="Hola Benita!" /><published>2021-06-06T11:30:00+00:00</published><updated>2021-06-06T11:30:00+00:00</updated><id>https://ldhq.io/posts/hola-benita</id><content type="html" xml:base="https://ldhq.io/posts/hola-benita/"><![CDATA[<p><img src="https://static.wikia.nocookie.net/awkward_puppets/images/d/de/Benita.jpg" alt="The Benita" /></p>]]></content><author><name>Alexey Denisevich</name></author><category term="posts" /><category term="benita" /><summary type="html"><![CDATA[]]></summary></entry></feed>