<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dan Tsekhanskiy</title>
    <description>The latest articles on DEV Community by Dan Tsekhanskiy (@tseknet).</description>
    <link>https://dev.to/tseknet</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F467899%2F575c16c4-c7b0-4f92-b35e-50c5781e94fa.jpeg</url>
      <title>DEV Community: Dan Tsekhanskiy</title>
      <link>https://dev.to/tseknet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tseknet"/>
    <language>en</language>
    <item>
      <title>Help Desk Intern to SRE @Google in Five Years</title>
      <dc:creator>Dan Tsekhanskiy</dc:creator>
      <pubDate>Tue, 24 Nov 2020 13:25:09 +0000</pubDate>
      <link>https://dev.to/tseknet/help-desk-intern-to-sre-google-in-five-years-j8d</link>
      <guid>https://dev.to/tseknet/help-desk-intern-to-sre-google-in-five-years-j8d</guid>
      <description>&lt;p&gt;&lt;em&gt;Five years ago I was a help desk intern. Last week was my first week as an SRE at Google.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's start with the understanding that working on the help desk puts you in the perfect position to eventually transition into one of these roles. Help desk affords you the ability to see &lt;em&gt;how&lt;/em&gt; the technologies that the business relies on function, as you're often tasked with troubleshooting when they &lt;em&gt;don't&lt;/em&gt; work. Learning through reverse engineering, especially in IT, is often an overlooked method of gaining a deep understanding of new technologies. Reverse engineering requires you to get your hands dirty and take a deep dive into what you're troubleshooting. This is where learning happens.&lt;/p&gt;

&lt;p&gt;Next, what's SRE? SRE started in 2003 at Google and is often compared to DevOps (coined around 2008). SRE is what you get when you treat operations as if it’s a software problem.&lt;sup&gt;1&lt;/sup&gt; These two disciplines share the same foundational principles but have subtle differences.&lt;sup&gt;2&lt;/sup&gt; I've found these to involve themes such as code-based configuration, reliability, and &lt;em&gt;service&lt;/em&gt; (rather than &lt;em&gt;server&lt;/em&gt;) management.&lt;/p&gt;

&lt;p&gt;Let's dive right in with themes I've kept in mind throughout my career. If you're interested in the actual positions I've held as a reference, check out my &lt;a href="https://linkedin.com/in/tseknet"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Always be Learning
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Throughout my career, I've found one theme to be ever-present: Always be learning.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Regardless of the position, I've always aspired to go above and beyond what was "written on the tin" of the job requirements. Are there tasks that you find mundane and repetitive? Automate them. I've often found the quickest way to learn a new programming language is to find a simple problem and start looking up potential solutions to that problem in a given language. Try to replicate those solutions, and work through the issues you run into along the way.&lt;/p&gt;

&lt;p&gt;Once you've fixed your first problem, odds are you've become at least familiar with new technology, and provided value in the process. Here's where I note that value is subjective. For example, a &lt;a href="https://github.com/TsekNet/mailit"&gt;side project&lt;/a&gt; I worked on to get my feet wet with Go sends friends daily emails of the cutest pictures from Reddit. Did that provide value to anyone other than the person who's day was most definitely improved by receiving cute pictures? Definitely. It helped me get familiar with a programming language that I had never seriously touched before.&lt;/p&gt;

&lt;p&gt;Every toolbox starts with one tool. What's important is you keep adding multipurpose tools to your toolbox. For example, Puppet, Terraform, Git, etc. can be used to solve a wide variety of problems. Notice I did not mention problems &lt;em&gt;for a company&lt;/em&gt; here.&lt;sup&gt;3&lt;/sup&gt; Learning these tools will take some effort, but this is &lt;em&gt;your&lt;/em&gt; toolbox. It's got your name right on the front in big bold letters. You can take it with you wherever you go.&lt;/p&gt;

&lt;p&gt;These tools can be used to automate your company's fancy new rollout or even automate your grandparent's software updates. You'll soon see your toolbox overflowing with tools. Every tool you master will put you in a significantly better place in the job market than you were, or at the very least, grow your toolbox and&lt;br&gt;
help you solve the IT problems you are facing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passion
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;It helps if you're passionate about what you do.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I am passionate about all things IT, job-related or not. I've been fortunate to pick a career that allows me to explore my passions, and a company that allows me to explore new ideas and designs that are fueled by my passions.&lt;/p&gt;

&lt;p&gt;I often say that I'd be doing IT-related side projects even if I wasn't in the IT industry. Ever since playing with (and on) my dad's computer at five years old, I've had a passion for all things technology. I enjoy taking things apart (read: breaking things), figuring out how they work, and (sometimes) putting them back together.&lt;/p&gt;

&lt;p&gt;I often work on side projects on GitHub or my home lab (stay tuned for an upcoming post), in addition to my day job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask questions
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Be comfortable not being the smartest person in the room.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Especially since joining Google, it's clear to me that there will always be someone more knowledgeable than you. Reach out to those people.&lt;/p&gt;

&lt;p&gt;I've been lucky to hold positions where curiosity could be endlessly fed by fantastic peers and mentors. Often when troubleshooting issues, even during my internship, if I had questions, I could just turn to a peer and ask away. I've found that people love talking about things they're experts in. If you're fortunate enough to have peers such as these, make sure to thank them early and often.&lt;/p&gt;

&lt;p&gt;Learning when to ask questions is a skill in and of itself (and a good interview question). There's no definitive answer for &lt;em&gt;when&lt;/em&gt; is the right time to reach out. What's certain is you will find yourself reaching out, especially as you learn new technologies, programming languages, etc. Just know that questions are part of the learning process. If you find yourself spending endless cycles on a problem, that's probably a good sign that you could reach out for some help.&lt;/p&gt;

&lt;p&gt;Finally, asking questions is part of the process of how a junior member of a team becomes a senior member. Eventually, that junior member asking questions becomes the senior member fielding them. The cycle continues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take Charge
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Set goal. Set aside time. Accomplish goal. Repeat.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I've adhered to the principles of S.M.A.R.T goals&lt;sup&gt;4&lt;/sup&gt; and calendar blocking&lt;sup&gt;5&lt;/sup&gt; to meet those goals. Being intentional with your time is a productivity "hack" I wish I'd learned long ago. If you're serious about an endeavor, set aside time to accomplish it. Remove all other distractions from your life, and focus on achieving what you've set to achieve. Set goals, and keep yourself accountable for achieving your goals.&lt;/p&gt;

&lt;p&gt;Life will always get in the way. Be reasonable with your goals. Everyone is different, and timelines are likely to slip. It's important to be realistic and kind to yourself when goals slip.&lt;/p&gt;

&lt;p&gt;Set aside time to set overarching goals for your career. Some example questions should help you get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do I want to work until retirement?&lt;/li&gt;
&lt;li&gt;Do I want to run my own business?&lt;/li&gt;
&lt;li&gt;Do I want to work from home?&lt;/li&gt;
&lt;li&gt;Do I want to work full time or part-time?&lt;/li&gt;
&lt;li&gt;Do I want to move?&lt;/li&gt;
&lt;li&gt;What do I need to start working on to achieve these goals?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;An unending thirst for knowledge, fantastic mentors, and taking advantage of opportunity have led me to this point in my career. What's next for me? My toolbox still has plenty of room. My career still has plenty of room to grow. What's for certain is I'll continue to ask questions, break things, and share my journey with you along the way. Check out my &lt;a href="https://twitter.com/tseknet"&gt;twitter&lt;/a&gt; if you'd like to follow along.&lt;/p&gt;

&lt;p&gt;Now get out there and take charge of your career 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  Footnotes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://landing.google.com/sre/"&gt;What is Site Reliability Engineering (SRE)?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Site_reliability_engineering"&gt;DevOps vs SRE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://donjones.com/2019/09/05/career-vs-job/"&gt;Career vs. Job&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/SMART_criteria"&gt;SMART Criteria&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tseknet.com/blog/intent"&gt;Be Intentional&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>devops</category>
      <category>motivation</category>
    </item>
    <item>
      <title>What skill or hobby have you picked up during WFH?</title>
      <dc:creator>Dan Tsekhanskiy</dc:creator>
      <pubDate>Sat, 26 Sep 2020 22:09:34 +0000</pubDate>
      <link>https://dev.to/tseknet/what-skill-or-hobby-have-you-picked-up-during-wfh-42mm</link>
      <guid>https://dev.to/tseknet/what-skill-or-hobby-have-you-picked-up-during-wfh-42mm</guid>
      <description>&lt;p&gt;Some of us have been fortunate enough to work from home during this time. What fun new skills or hobbies have you picked up?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>career</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Show and Tell: Show off your PowerShell Profile :)</title>
      <dc:creator>Dan Tsekhanskiy</dc:creator>
      <pubDate>Thu, 17 Sep 2020 22:52:59 +0000</pubDate>
      <link>https://dev.to/tseknet/show-and-tell-show-off-your-powershell-profile-1ho8</link>
      <guid>https://dev.to/tseknet/show-and-tell-show-off-your-powershell-profile-1ho8</guid>
      <description>&lt;p&gt;Hey DEV community 👋&lt;/p&gt;

&lt;p&gt;I was inspired by the post about &lt;a href="https://dev.to/danielw/show-and-tell-show-off-your-vs-code-setup-47be"&gt;VS Code&lt;/a&gt; setups and decided to create one for PowerShell profiles.&lt;/p&gt;

&lt;p&gt;I'm in the process of converting my &lt;a href="https://github.com/tseknet/tsekprofile"&gt;PowerShell profile&lt;/a&gt; to a fully-featured PowerShell module that I'll publish on the PSGallery.&lt;/p&gt;

&lt;p&gt;I'd love to see how everyone's making the most of their PowerShell profile :)&lt;/p&gt;

&lt;p&gt;From pretty themes and icon sets to your favorite modules for productivity and simplicity.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>powershell</category>
    </item>
    <item>
      <title>Be Intentional With Your Time</title>
      <dc:creator>Dan Tsekhanskiy</dc:creator>
      <pubDate>Thu, 17 Sep 2020 12:00:53 +0000</pubDate>
      <link>https://dev.to/tseknet/be-intentional-with-your-time-1ohk</link>
      <guid>https://dev.to/tseknet/be-intentional-with-your-time-1ohk</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intend to be intentional.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Time—somehow it's already 5PM, and the last thing you remember is sipping your morning coffee. How can you take control of your day?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you are serious about an endeavor, you will remove every distraction from your life. This is the idea behind intentionality that we'll dive into today. Set aside time to do the things that are important to you.&lt;/p&gt;

&lt;p&gt;One of the first things I've learned from my time at Google has been: if you don't take control of your time, someone else will. You will inevitably be pulled into meetings, you will have the urge to work through lunch, and you will make up reasons to avoid working on the task at hand.&lt;/p&gt;

&lt;p&gt;I struggled with meeting overload. Trying to get things done within 30-minute breaks between meetings is not sustainable. Combining my meetings onto "meeting days" (future blog post), in conjunction with blocking out time to work on what I determine to be valuable allowed me to regain control over my time.&lt;/p&gt;

&lt;p&gt;Example calendar blocks for a standard Tuesday:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feodsqyvpkfu3usxwhdtl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feodsqyvpkfu3usxwhdtl.png" alt="Example Calendar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's dive into how &lt;em&gt;you&lt;/em&gt; can take control of &lt;em&gt;your&lt;/em&gt; time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Action
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Time keeps on slippin', slippin', slippin' into the fuuuture...&lt;/em&gt; whether or not you take control of it is up to you.&lt;/p&gt;

&lt;p&gt;I challenge you to think about something that you want to accomplish today. Now get out your calendar and block out time to get that task done. More importantly, set a notification to remind you that this event is upcoming, giving you ample time to prepare and set everything else aside.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6ahlm9571cvoqaraz93h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6ahlm9571cvoqaraz93h.png" alt="Intentional Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start small. Examples include settings aside time to appropriately respond to an email, read one chapter of a book, or go for a one-mile run. If you don't set aside time, you will become burdened with the tax associated with context switching between getting your task done and everything else on your plate. It's easy to become complacent if you aren't intentional. Setting aside a calendar block is your personal accountabilibuddy.&lt;/p&gt;

&lt;p&gt;Tasks can be as specific or as vague as you'd like. What's important is that there are clear exit criterion. If your goal was "run one mile" in your 15-minute calendar block, then there's no question of what the exit criteria is. If your goal is something like "investigate work issue," the exit criteria may be that you've identified the root cause of your work issue. It's ultimately up to you how specific you are with your goals, I'll just note that the smaller the scope of your goal, the more likely it is to be achieved.&lt;/p&gt;

&lt;p&gt;Use your calendar as your to-do list to prioritize tasks. The first time you&lt;br&gt;
intend to work on something, create a calendar block to work on it. Don't wait&lt;br&gt;
until it's been on your to-do list for months, as the same dread you associate&lt;br&gt;
with that task will be there, just on your calendar instead of your to-do list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Success
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;You did it 🎉&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I guarantee you will get a better feeling from accomplishing a task you've blocked out time to accomplish vs. just checking something off a to-do list. This is more than a chore. It's something you set out to do, set aside a specific time to do it, and you've done it. You'll feel better knowing you've intentionally set aside scheduled time for that task, and accomplished your goal within that time frame.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Life—it has a way of getting in the way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's critically important to not beat yourself up if you haven't accomplished your task in the allotted time slot. Other things will come up. In this likely scenario, simply reschedule your calendar event for a later date.&lt;/p&gt;

&lt;p&gt;Learn from your mistakes. Why were you not able to accomplish your goal? Was the time you allotted too short? Was the task harder than you initially expected? Did other tasks overrun your allotted time? These are all opportunities for better scheduling in the future. Ultimately, if it's something you truly care about, you'll make time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Be intentional with your time. Take control of your day. Begin by reflecting on what is important to you. Next, create a block of time on your calendar to achieve that goal. Reflect on whether that goal was achieved, and don't be too hard on yourself if it wasn't. Iterate, improve.&lt;/p&gt;

&lt;p&gt;I wrote this article in the hopes that it helps you accomplish your goals. I invite you to let me know if it worked. Let me know if it didn't work. Let me know if you have any suggestions for how this methodology can be improved.&lt;/p&gt;

&lt;p&gt;Now get out there and hack your productivity 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  Related Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/SMART_criteria" rel="noopener noreferrer"&gt;S.M.A.R.T criteria&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>motivation</category>
      <category>tips</category>
    </item>
    <item>
      <title>Get started with Jekyll, GitHub, and Netlify 🚀</title>
      <dc:creator>Dan Tsekhanskiy</dc:creator>
      <pubDate>Mon, 14 Sep 2020 13:18:45 +0000</pubDate>
      <link>https://dev.to/tseknet/get-started-with-jekyll-github-and-netlify-3and</link>
      <guid>https://dev.to/tseknet/get-started-with-jekyll-github-and-netlify-3and</guid>
      <description>&lt;p&gt;Let's build a free, open-source website!&lt;/p&gt;




&lt;p&gt;Jekyll theme, code on GitHub, hosted by Netlify. You'll reap the following benefits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A full history of your changes to any part of the website&lt;/li&gt;
&lt;li&gt;Write blog posts entirely in Markdown&lt;/li&gt;
&lt;li&gt;Free, automatic SSL&lt;/li&gt;
&lt;li&gt;Quick deployments, including CI/CD by default&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;...and much more!&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Background&lt;/li&gt;
&lt;li&gt;Overview&lt;/li&gt;
&lt;li&gt;
Jekyll

&lt;ul&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;My Theme&lt;/li&gt;
&lt;li&gt;Customization and Iteration&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
GitHub

&lt;ul&gt;
&lt;li&gt;Set Up Your Repository&lt;/li&gt;
&lt;li&gt;GitHub Files&lt;/li&gt;
&lt;li&gt;Open Source Your Website&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Netlify CMS

&lt;ul&gt;
&lt;li&gt;Netlify vs GitHub Pages&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;li&gt;Related Links&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;You’re going to learn a lot but you’re also expected to come to the table with a few things. If you plan to follow along, be sure you have the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://TsekNet.com/blog/chocolatey"&gt;Chocolatey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;Familiarity with Git&lt;/li&gt;
&lt;li&gt;Familiarity with HTML/CSS/Markdown&lt;/li&gt;
&lt;li&gt;(Optional) &lt;a href="https://code.visualstudio.com"&gt;VSCode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;(Optional) A custom domain name&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;📝NOTE: While this tutorial was written with Windows in mind, the only difference per platform is how you &lt;a href="https://jekyllrb.com/docs/installation/"&gt;install Jekyll&lt;/a&gt; and file paths.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;Getting &lt;a href="https://tseknet.com"&gt;my blog&lt;/a&gt; launched was a story of false starts. I started this project to push myself to learn new tools (read: play with new toys).&lt;/p&gt;

&lt;p&gt;For years, I hosted a basic cover page website via a virtualized Nginx VM, shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3bjZyCjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m5ffiuwtrc1rwc1v73pz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3bjZyCjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m5ffiuwtrc1rwc1v73pz.png" width="500" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've been toying with the idea of hosting my blog using the tools noted below ever since that old website was launched. I documented how I accomplished that goal for your viewing (reading?) pleasure.&lt;/p&gt;

&lt;p&gt;Let's dive right in with how &lt;em&gt;you&lt;/em&gt; can copy my homework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;The puzzle pieces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://jekyllrb.com"&gt;Jekyll&lt;/a&gt;: Transforms plain text into static websites.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com"&gt;GitHub&lt;/a&gt;: Where the static files used by Jekyll are hosted.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://netlify.com"&gt;Netlify&lt;/a&gt;: Detects changes pushed to GitHub, deploys a website, and handles HTTPS.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Jekyll
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;You'll first need to install some prerequisites:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://tseknet.com/blog/chocolatey"&gt;Chocolatey&lt;/a&gt; for Windows, a (great) software management solution.&lt;/li&gt;
&lt;li&gt;Install ruby: &lt;code&gt;choco install ruby&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Close and re-open your preferred terminal (as admin) or
refresh your environment before continuing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next up, you'll need to install Jekyll and its prerequisites:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install bundler: &lt;code&gt;gem install bundler&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install Jekyll:

&lt;ul&gt;
&lt;li&gt;Install mysys2: &lt;code&gt;choco install msys2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install the Ruby Installer Development Kit: &lt;code&gt;ridk install 3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gem install jekyll&lt;/code&gt; or your preferred theme (see note below)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;📝NOTE: I would pause here if you're interested in leveraging a custom theme, as Jekyll themes often&lt;br&gt;
provide all the files you'll need to get started. My blog uses the HydeJack theme, described below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Finally, let's get your blog up and running:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the root folder for your blog, for example: &lt;code&gt;cd C:\Projects&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Initialize your blog: &lt;code&gt;jekyll new myblog&lt;/code&gt; (skip this step if
you're using a custom theme)&lt;/li&gt;
&lt;li&gt;Navigate to your blog: &lt;code&gt;cd myblog&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install required bundles: &lt;code&gt;bundle install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Start your blog: &lt;code&gt;jekyll serve&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Browse to &lt;a href="http://localhost:4000"&gt;http://localhost:4000&lt;/a&gt;. Congrats, &amp;lt;you're the blogger now&amp;gt;.gif 🎉&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  My Theme
&lt;/h3&gt;

&lt;p&gt;My blog leverages the Hydejack Pro theme. The &lt;a href="https://hydejack.com/docs/"&gt;Hydejack documentation&lt;/a&gt; is a good place to get started if you're interested. The main benefit I've found for the pro version of this theme is dark mode support.&lt;/p&gt;

&lt;p&gt;If you want to use the free version, clone (or download) the &lt;a href="https://github.com/hydecorp/hydejack-starter-kit/tree/gh-pages"&gt;Hydejack starter kit&lt;/a&gt;. You'll find all the files required to get your blog up and running included.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customization and Iteration
&lt;/h3&gt;

&lt;p&gt;This is where you'll spend most of your time, and this is &lt;em&gt;never&lt;/em&gt; really done. You'll want to add some personality to your website. Feel free to copy anything you like from &lt;a href="https://github.com/tseknet/website"&gt;my GitHub repo&lt;/a&gt;. Another good place to start is searching for popular Jekyll plugins.&lt;/p&gt;

&lt;p&gt;At the very least, you'll want to modify the &lt;code&gt;_config.yml&lt;/code&gt;, &lt;code&gt;Gemfile&lt;/code&gt;, and any included markdown files (e.g. &lt;code&gt;about.markdown&lt;/code&gt; and &lt;code&gt;index.markdown&lt;/code&gt;) to reference your information, rather than the defaults. I'd recommend spending some time looking through your site's basic configuration(s).&lt;/p&gt;

&lt;p&gt;To make changes to my blog, here's the workflow that I usually follow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to your site: &lt;a href="http://localhost:4000"&gt;http://localhost:4000&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make a change to a file such as &lt;code&gt;_config.yml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Did anything break? Did the updates take effect?&lt;/li&gt;
&lt;li&gt;???&lt;/li&gt;
&lt;li&gt;Repeat&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;Step one of three done already? Onwards to making your website open source!&lt;/p&gt;

&lt;h3&gt;
  
  
  Set Up Your Repository
&lt;/h3&gt;

&lt;p&gt;Everything you are seeing on this website is hosted on my &lt;a href="https://github.com/tseknet/website"&gt;GitHub&lt;br&gt;
Repo&lt;/a&gt;. Here's how you can do the same:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt;, creating an account if necessary.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigate to &lt;a href="https://github.com/new"&gt;https://github.com/new&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter your desired repository name (ex: myblog) and an optional description.&lt;/li&gt;
&lt;li&gt;Initialize with a README&lt;/li&gt;
&lt;li&gt;Add .gitignore: &lt;code&gt;Jekyll&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;I normally select an &lt;code&gt;MIT License&lt;/code&gt;, but that's up to you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X0dFp22u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3cwhi0ka10ua6zt5er8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X0dFp22u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3cwhi0ka10ua6zt5er8w.png" width="500" height="100"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;code&gt;Create Repository&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clone your newly created repo via VSCode. See this &lt;a href="https://medium.com/@brygrill/version-control-basics-with-github-and-vs-code-1c1906cadd33"&gt;post&lt;/a&gt; to learn how.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 TIP: I manage my repo in VSCode, but this will work via the &lt;a href="https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository"&gt;command line&lt;/a&gt; as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  GitHub Files
&lt;/h3&gt;

&lt;p&gt;You'll want to modify a few commonly used GitHub files in VSCode locally.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;README.md&lt;/code&gt;: This will be what everyone sees when they visit your repository. See &lt;a href="https://www.makeareadme.com/"&gt;makeareadme.com&lt;/a&gt; for tips on how to make awesome README files.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt; This repo hosts my website, which leverages Jekyll and Netlify to serve this static website.
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;code&gt;.gitignore&lt;/code&gt;: Files not uploaded to GitHub, you'll want to ensure the following exist at the very least.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_site
.jekyll-cache
Gemfile.lock
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Open Source Your Website
&lt;/h3&gt;

&lt;p&gt;To upload your website to GitHub:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy the entire &lt;em&gt;contents&lt;/em&gt; of your website into the new folder containing your repository.&lt;/li&gt;
&lt;li&gt;Commit your changes, then push your code to GitHub. Again, see &lt;a href="https://medium.com/@brygrill/version-control-basics-with-github-and-vs-code-1c1906cadd33"&gt;this post&lt;/a&gt; for how that works.&lt;/li&gt;
&lt;li&gt;Navigate back to your GitHub repository to confirm the files were uploaded successfully.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Netlify CMS
&lt;/h2&gt;

&lt;p&gt;Final stretch! Now let's automate that website!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💬 TL;DR: Netlify runs the &lt;code&gt;jekyll build&lt;/code&gt; command for you against your GitHub repo, does SSL/optimization/CDN "magic", and publishes your website.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The following steps will get you started, taken directly from the official &lt;a href="https://www.netlify.com/blog/2020/04/02/a-step-by-step-guide-jekyll-1.0-on-netlify/"&gt;Netlify Jekyll guide&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;a href="https://netlify.com"&gt;Netlify&lt;/a&gt;, creating an account if necessary.&lt;/li&gt;
&lt;li&gt;Add your new site by clicking &lt;code&gt;New site from Git&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Link to your GitHub by following the prompts to connect, pick a repo, and build.

&lt;ul&gt;
&lt;li&gt;Build options can be left as the default for Jekyll.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Build your site. You should now see &lt;code&gt;Deploy in progress&lt;/code&gt;, and after a minute or so, your new website (with a custom URL) should be live!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Netlify vs GitHub Pages
&lt;/h3&gt;

&lt;p&gt;Netlify has free &lt;a href="https://docs.netlify.com/domains-https/custom-domains"&gt;custom domain support&lt;/a&gt;, &lt;a href="https://docs.netlify.com/domains-https/https-ssl"&gt;automatic certificate management&lt;/a&gt;, &lt;a href="https://www.netlify.com/blog/2019/08/05/control-your-asset-optimization-settings-from-netlify.toml/"&gt;handles minify for CSS and JavaScript&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;There are also paid features such as &lt;a href="https://www.netlify.com/products/analytics/"&gt;analytics&lt;/a&gt;, with no cookies required.&lt;/p&gt;

&lt;p&gt;Netlify has a good comparison listed directly on their &lt;a href="https://www.netlify.com/github-pages-vs-netlify/"&gt;website&lt;/a&gt; if you're interested in learning more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By leveraging Jekyll, GitHub, and Netlify, you can reap all the benefits of code-based configuration, take for granted features such as automatic SSL, and have a beautiful website with tons of&lt;br&gt;
plugins available.&lt;/p&gt;

&lt;p&gt;I hope you've found this guide useful. I appreciate your time in reading my first blog post!&lt;/p&gt;

&lt;p&gt;If you run into any issues or have any suggestions, please reach out to me directly (&lt;a href="https://twitter.com/tseknet"&gt;@tseknet&lt;/a&gt;) or leave a comment.&lt;/p&gt;

&lt;p&gt;Now get out there and build that beautiful website 🏗️&lt;/p&gt;

&lt;h2&gt;
  
  
  Related Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=hBQlCtfRmqs"&gt;Hosting Your Website With Github and Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Q9giWrfIJKk"&gt;Setup Custom Domain On Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lazyren.github.io/devlog/how-i-customized-hydejack-theme.html#conclusion"&gt;How I customized Hydejack Theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hydejack.com/showcase/"&gt;Hydejack Showcase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ben.balter.com/jekyll-style-guide/"&gt;Jekyll Style Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devhints.io/jekyll"&gt;Jekyll Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>webdev</category>
      <category>jekyll</category>
      <category>netlify</category>
    </item>
  </channel>
</rss>
