<?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: Christian Vasquez</title>
    <description>The latest articles on DEV Community by Christian Vasquez (@chrisvasqm).</description>
    <link>https://dev.to/chrisvasqm</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%2F3727%2Fc82b98dc-439a-43e2-9aac-3c54f5f18aad.png</url>
      <title>DEV Community: Christian Vasquez</title>
      <link>https://dev.to/chrisvasqm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chrisvasqm"/>
    <language>en</language>
    <item>
      <title>How did you end up in this career?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Sun, 31 Mar 2024 04:34:49 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/how-did-you-end-up-in-this-career-md2</link>
      <guid>https://dev.to/chrisvasqm/how-did-you-end-up-in-this-career-md2</guid>
      <description>&lt;p&gt;The rise of great job opportunities have lead to software being made by people with a wide range of skills and different backgrounds.&lt;/p&gt;

&lt;p&gt;So, I would love to read your story of how you ended up in this career?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>change</category>
    </item>
    <item>
      <title>How do you get back into studying?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Fri, 29 Jul 2022 14:11:00 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/how-do-you-get-back-into-studying-3bg6</link>
      <guid>https://dev.to/chrisvasqm/how-do-you-get-back-into-studying-3bg6</guid>
      <description></description>
      <category>discuss</category>
      <category>learn</category>
    </item>
    <item>
      <title>Doing Page Object Model the Right Way - Part 2</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Tue, 22 Mar 2022 00:00:01 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/doing-page-object-model-the-right-way-part-2-3jc7</link>
      <guid>https://dev.to/chrisvasqm/doing-page-object-model-the-right-way-part-2-3jc7</guid>
      <description>&lt;p&gt;For this video, I've decided to take some time to refactor some parts of the code and improve it a tiny bit before we head over to Part 3.&lt;/p&gt;

&lt;p&gt;Now, based on previous feedback from Part 1, I decided to keep this (and the future parts) short and sweet being 10 minutes or so.&lt;/p&gt;

&lt;p&gt;I hope you enjoy it and I'll see you in the next one!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UH1Liw5PLjM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>testing</category>
      <category>selenium</category>
      <category>java</category>
      <category>pageobjectmodel</category>
    </item>
    <item>
      <title>How do you deal with estimates?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Fri, 18 Mar 2022 21:11:53 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/how-do-you-deal-with-estimates-50f2</link>
      <guid>https://dev.to/chrisvasqm/how-do-you-deal-with-estimates-50f2</guid>
      <description>&lt;p&gt;One of the scariest things to reply back to another human being as a Software Developer is the dreaded question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"How long is it going to take?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We all hope we could answer "Whatever it takes" to our managers or bosses, but we need a stable income in our lives.&lt;/p&gt;

&lt;p&gt;Some people come up with arbitrary times, whether it's a few days, a week or two, maybe 3... but we can all agree that overshooting and getting it done sooner than expected makes us look way better than undershooting and responding with the classic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;It was more complicated than what I expected...&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some people prefer using points systems, others might argue that time intervals might be better... But ultimately, we can all agree that we all, as human, are pretty terrible at estimating.&lt;/p&gt;

&lt;p&gt;So, how do &lt;em&gt;you&lt;/em&gt; do it?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Solving the FizzBuzz exercise with TDD</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Tue, 15 Mar 2022 10:34:45 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/solving-the-fizzbuzz-exercise-with-tdd-1l64</link>
      <guid>https://dev.to/chrisvasqm/solving-the-fizzbuzz-exercise-with-tdd-1l64</guid>
      <description>&lt;p&gt;Test-Driven Development (TDD) can be a scary concept to hear at first. &lt;/p&gt;

&lt;p&gt;How are you supposed to write code that test your code... even before it even exists?&lt;/p&gt;

&lt;p&gt;Well, yeah. It can be done and it's a really awesome way of writing code.&lt;/p&gt;

&lt;p&gt;Some of the benefits of TDD are: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The code coverage will (most of the time) be pretty high.&lt;/li&gt;
&lt;li&gt;There won't be more tests "to write later".&lt;/li&gt;
&lt;li&gt;You can refactor your code with more confidence since there should be a bunch of tests that will make sure you don't break anything.&lt;/li&gt;
&lt;li&gt;The code will be testable from the beginning because you would not be able to do it without it from the get go.&lt;/li&gt;
&lt;li&gt;Probably a few more that I can't remember right now 🤓&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Alright, enough chitchat. I've decided to do it while solving a well-known interview question/exercise named FizzBuzz on this video:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pUELmNADwMQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>tdd</category>
      <category>kotlin</category>
      <category>unittest</category>
      <category>fizzbuzz</category>
    </item>
    <item>
      <title>Refactoring code with the Strate Pattern</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Tue, 15 Mar 2022 09:07:41 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/refactoring-code-with-the-strategy-pattern-4pp1</link>
      <guid>https://dev.to/chrisvasqm/refactoring-code-with-the-strategy-pattern-4pp1</guid>
      <description>&lt;center&gt;_Banner image from [Refactoring Guru](https://refactoring.guru/)_&lt;/center&gt;




&lt;p&gt;The &lt;a href="https://refactoring.guru/design-patterns/state"&gt;State Pattern&lt;/a&gt; is one of the most helpful and also underrated Design Patterns that comes in handy when we end up having to make changes to multiple modules each time we need to add new logic based on the &lt;strong&gt;state&lt;/strong&gt; of a particular object.&lt;/p&gt;

&lt;p&gt;I hope this is helpful for you. Happy coding 🤝&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Sxr3lunr7FI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>designpattern</category>
      <category>enum</category>
      <category>tutorial</category>
      <category>video</category>
    </item>
    <item>
      <title>How I finally understood what Encapsulation is</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Tue, 15 Mar 2022 07:27:03 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/how-i-finally-understood-encapsulation-i9m</link>
      <guid>https://dev.to/chrisvasqm/how-i-finally-understood-encapsulation-i9m</guid>
      <description>&lt;center&gt; _Banner image from [Mackenzie Child](https://dribbble.com/mackenziechild) on Dribbble_ &lt;/center&gt;




&lt;h2&gt;
  
  
  The &lt;em&gt;Intro&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;As I'm struggling to sleep today, here goes my attempt to try help out anyone out there who's having a hard time trying to understand the concept of &lt;em&gt;Encapsulation&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;em&gt;What&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;But before we dive in, let's see what our good-old friend, Wikipedia, defines it as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;In object-oriented programming, &lt;strong&gt;encapsulation&lt;/strong&gt; refers to the bundling of data with the methods that operate on that data, or the restricting of direct access to some of an object's components&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perfect. Now that's it for today everyone, thanks for reading this post...&lt;/p&gt;

&lt;p&gt;Just kidding!&lt;/p&gt;

&lt;p&gt;Let's start with an idea:&lt;/p&gt;

&lt;p&gt;Imagine we are going to design a code that would represent a &lt;em&gt;Stopwatch&lt;/em&gt; (now you're probably guessing why I chose Mackenzie's illustration, aren't you?).&lt;/p&gt;

&lt;p&gt;I want you to picture it in your head. If you can't do it, don't worry. Here you go:&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%2Fc.tadst.com%2Fgfx%2F1200x630%2Ffb-stopwatch2.png%3F1" 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%2Fc.tadst.com%2Fgfx%2F1200x630%2Ffb-stopwatch2.png%3F1" alt="Stopwatch image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice how we &lt;em&gt;interact&lt;/em&gt; with the Stopwatch. It has 1 button that we can &lt;em&gt;click&lt;/em&gt; in order to get it started/running. That right there tells us what is the &lt;em&gt;behavior&lt;/em&gt; of the Stopwatch or the possible actions we can do with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;em&gt;How&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;So, in code that would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Stopwatch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Nothing going on here. Keep reading!&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we start adding &lt;em&gt;implementation details&lt;/em&gt; to this &lt;code&gt;Stopwatch&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For the sake of simplicity, let's just display a message in the console. (In case you didn't notice already, I'm using Kotlin for this example, but you can get this to work on any other language you prefer, some way or another. But I will leave that up to you).&lt;/p&gt;

&lt;p&gt;So, the first thing we are going to add to our &lt;code&gt;click()&lt;/code&gt; method is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Started Stopwatch"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we run this code in our &lt;code&gt;main&lt;/code&gt; function, we would get the message on the console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;stopwatch&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StopWatch&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;stopwatch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Awesome!&lt;/p&gt;

&lt;p&gt;But, what would happen if we call the &lt;code&gt;click()&lt;/code&gt; method multiple times? We would get the same message, but that's not the right way to do it. We would like the Stopwatch to be stopped/paused if we click it a second time and then resumed/restarted if we click it a third time.&lt;/p&gt;

&lt;p&gt;How can we do that?&lt;/p&gt;

&lt;p&gt;Well, we would need a second piece of the puzzle. We already have &lt;em&gt;behavior&lt;/em&gt; so... we would need &lt;em&gt;state&lt;/em&gt;. A way to "save" some data related to the Stopwatch.&lt;/p&gt;

&lt;p&gt;Let's do that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;StopWatch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;isRunning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Boolean&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;

    &lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Started Stopwatch"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By adding a &lt;code&gt;Boolean&lt;/code&gt; variable we can store and change that value inside of our &lt;code&gt;click()&lt;/code&gt; method and change the &lt;em&gt;behavior&lt;/em&gt; depending on whether the &lt;code&gt;isRunning&lt;/code&gt; boolean value is set to &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now, notice how we prefixed the definition of this field/property with the keyword &lt;code&gt;private&lt;/code&gt;.  That's interesting... if something is &lt;code&gt;private&lt;/code&gt; then, that means that it can also be &lt;code&gt;public&lt;/code&gt;, right?&lt;/p&gt;

&lt;p&gt;That's correct!&lt;/p&gt;

&lt;p&gt;Now, why did I do that? That is how we can apply &lt;code&gt;Encapsulation&lt;/code&gt; (finally, took us long enough to get there).&lt;/p&gt;

&lt;p&gt;But let's keep that little word in our background, and let's continue with the &lt;code&gt;Stopwatch&lt;/code&gt; implementation.&lt;/p&gt;

&lt;p&gt;Here's how I would change the &lt;code&gt;click()&lt;/code&gt; method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isRunning&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;isRunning&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;
      &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Stopped"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;isRunning&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;
      &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Started"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, if we call the &lt;code&gt;click()&lt;/code&gt; method twice, we will see the messages&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Started
Stopped
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hooray!&lt;/p&gt;

&lt;p&gt;But... what if we do it three times?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Started
Stopped
Started
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are still good, don't worry 😄&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;em&gt;Why&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Now, how about you try something else with the &lt;code&gt;stopwatch&lt;/code&gt; object?&lt;/p&gt;

&lt;p&gt;Check out what the IDE shows if you type exactly: &lt;code&gt;stopwatch.&lt;/code&gt;&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%2Fuploads%2Farticles%2Fz5qvftpv31qst5o6zpdi.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%2Fuploads%2Farticles%2Fz5qvftpv31qst5o6zpdi.png" alt="Stopwatch methods list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What are all the options you have? The first one would be the &lt;code&gt;click()&lt;/code&gt; method we implemented, and then there's &lt;em&gt;a lot&lt;/em&gt; of others weird stuff. But focus on how there's nothing that mentions the &lt;code&gt;isRunning&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;No one else knows about it, except you and everyone else reading this post. But that's the beauty of &lt;em&gt;Encapsulation&lt;/em&gt;. You can &lt;strong&gt;design&lt;/strong&gt; your objects to be &lt;strong&gt;boring&lt;/strong&gt; and &lt;strong&gt;predictable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It doesn't sound interesting or exciting right now, &lt;strong&gt;but trust me... it will once you get your hands into some nightmare code.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;em&gt;Goodbye&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;That's it for now, I will try to come up with other ideas and make it into a Series of posts. This one came to me after remembering a good-old post I wrote &lt;em&gt;just a few years ago&lt;/em&gt;: &lt;a href="https://dev.to/chrisvasqm/how-i-finally-understood-what-a-class-is--24pl"&gt;How I finally understood what a class is&lt;/a&gt;, which you might wanna checkout as well or recommend it to a friend if they are also struggling as we all do in this difficult times.&lt;/p&gt;

&lt;p&gt;Without more to say, have a good one and stay safe 🤝&lt;/p&gt;

</description>
      <category>howifinallyunderstood</category>
      <category>kotlin</category>
      <category>oop</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Doing Page Object Model the Right Way - Part 1</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Thu, 24 Feb 2022 02:58:38 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/doing-page-object-model-the-right-way-o4i</link>
      <guid>https://dev.to/chrisvasqm/doing-page-object-model-the-right-way-o4i</guid>
      <description>&lt;p&gt;I'm back at it again, but this time in a video format with one of the most common topics that QA Engineers tend to discuss about on how to implement in their code in order to make it easier to maintain in the future, but many of us have struggled to understand it or use it properly. So, hopefully I will help you get a better grip of it at the end of this video.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SrPc2Zhz7nQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Right after recording this I noticed there are a few things I could improve upon, so stay tuned for a few more videos around this and other topics related to automated UI testing.&lt;/p&gt;

&lt;p&gt;If you want to follow along, here's the &lt;a href="https://github.com/chrisvasqm/pom-the-right-way"&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As always, feel free to ask any questions in the comment section and I'll do my best to not ignore it 🤓.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>e2e</category>
      <category>testing</category>
      <category>pageobjectmodel</category>
    </item>
    <item>
      <title>Be your own light in the darkness</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Tue, 19 May 2020 19:30:34 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/be-your-own-light-in-the-darkness-3h98</link>
      <guid>https://dev.to/chrisvasqm/be-your-own-light-in-the-darkness-3h98</guid>
      <description>&lt;center&gt;_Cover image by [Nadine Shaabana](https://unsplash.com/@nadineshaabana?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/)_&lt;/center&gt;




&lt;p&gt;I'm most likely not the first person to do this kind of practice, but I would like to share it in case it might help anyone else.&lt;/p&gt;

&lt;p&gt;I'm well aware of my incredible ability to forget things. It has always been like this since I was a kid. So in order to counter attack my weakness, I've come up with different practices like using To-Do lists, taking notes, writing things in paper, using a bunch of different calendar apps and yet I had to find something else that would help me to get back into old projects that are just sitting there in my GitHub profile collecting dust.&lt;/p&gt;

&lt;p&gt;So here's where I introduce you to...&lt;/p&gt;

&lt;p&gt;Writing.&lt;/p&gt;

&lt;p&gt;Amazing, who would have thought, right?&lt;/p&gt;

&lt;p&gt;Well... more specifically, writing to yourself in your tasks descriptions.&lt;/p&gt;

&lt;p&gt;I've had a really nice relationship with apps like &lt;a href="https://trello.com/"&gt;Trello&lt;/a&gt;, which are really easy to get into and get things going with a few minutes of trying them out. &lt;/p&gt;

&lt;p&gt;So for me, I've used the good old To-Do, In Progress, On Hold, Done statuses for each task related to my projects.&lt;/p&gt;

&lt;p&gt;But there's one thing that I came across and it's that none of those cards had any actual detail description of their progress. Sure, you can tell when it changed from one state to the other, but what happened there? I can't remember what I had for breakfast yesterday, so how the hell am I going to remember that.&lt;/p&gt;

&lt;p&gt;Here's the trick: every time you are going to take a break, whether it is for a day or just for lunch, go ahead an write a comment on that card with your new findings, concerns, possible solutions or crazy ideas why something is not done yet.&lt;/p&gt;

&lt;p&gt;And most importantly, write it down like a normal conversation to yourself, you don't need to be super formal and go all &lt;a href="https://www.grammarly.com/"&gt;Grammarly&lt;/a&gt; mode.&lt;/p&gt;

&lt;p&gt;You could even go deeper into it and take it as a self loving practice, if you will.&lt;/p&gt;

&lt;p&gt;"Oh! your past-self is there to help you, to protect you from getting lost in the sea of ideas and symbols that we so cleverly wrote without ever questioning how the heck it will affect us in the future"&lt;/p&gt;

&lt;p&gt;Yeah, we've all done it, and we still do. But hopefully this tip will make things just a bit better this time around :)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What pulled you away from coding for a while?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Fri, 12 Jul 2019 04:16:29 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/what-pulled-you-away-from-coding-for-a-while-2jbf</link>
      <guid>https://dev.to/chrisvasqm/what-pulled-you-away-from-coding-for-a-while-2jbf</guid>
      <description>&lt;p&gt;Maybe it was feeling burned out, anxiety, or feelings of not being good enough... I would like to know your story.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;grabs popcorn&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How do you get back into a side project after months?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Wed, 12 Dec 2018 15:30:35 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/how-do-you-get-back-into-a-side-project-after-months-4pkl</link>
      <guid>https://dev.to/chrisvasqm/how-do-you-get-back-into-a-side-project-after-months-4pkl</guid>
      <description>&lt;center&gt;_Photo by [Simon Migaj](https://unsplash.com/@simonmigaj) on [Unsplash](https://unsplash.com/)_&lt;/center&gt;




&lt;p&gt;We've probably all been there, that boost of energy late at night that doesn't let us go to sleep while our mind is bombarded with cool ideas about a new project or tool we want to use.&lt;/p&gt;

&lt;p&gt;Your turn on your computer, break your sleep habits for a few days and then never look back at it after months because being an adult is hard.&lt;/p&gt;

&lt;p&gt;But then... one day, you come across that side/pet project again in your &lt;a href="https://dev.to/t/graveyard"&gt;GitHub Graveyard&lt;/a&gt; and the spark starts to come back at you again.&lt;/p&gt;

&lt;p&gt;You &lt;code&gt;git clone&lt;/code&gt; the hell of out it and when you finally open it you are just like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l0Iych4GHWMRxci2I/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l0Iych4GHWMRxci2I/giphy.gif" alt="Dog astronaut lost in space" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;So,&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;center&gt;What helps you to get back on track?&lt;/center&gt;
&lt;/h3&gt;

</description>
      <category>discuss</category>
      <category>motivation</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Is College Worth It?</title>
      <dc:creator>Christian Vasquez</dc:creator>
      <pubDate>Thu, 15 Nov 2018 02:19:51 +0000</pubDate>
      <link>https://dev.to/chrisvasqm/is-college-worth-it-4dko</link>
      <guid>https://dev.to/chrisvasqm/is-college-worth-it-4dko</guid>
      <description>&lt;center&gt;_Cover image by [Jesse Orrico](https://unsplash.com/@jessedo81)_&lt;/center&gt;




&lt;p&gt;It's quite a heated topic, I know. But I've personally struggled to keep up my motivation to go to class and I'm guilty of charge of thinking that college can be a total waste of money and time.&lt;/p&gt;

&lt;p&gt;I know some jobs require a candidate to have a degree or it may prevent someone from getting a promotion in some companies, but at the same time, I also agree with the following opinion:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"If a company cares more about a degree than your skills, maybe you shouldn't be there at all".&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I would love to &lt;em&gt;read&lt;/em&gt; your thoughts on this 🤓&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
