<?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>Forem: Sandrava Philips</title>
    <description>The latest articles on Forem by Sandrava Philips (@sandravaphilips).</description>
    <link>https://forem.com/sandravaphilips</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%2F395206%2F2d65ed3f-03a9-4c34-a2a6-e3106dd71da1.JPG</url>
      <title>Forem: Sandrava Philips</title>
      <link>https://forem.com/sandravaphilips</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sandravaphilips"/>
    <language>en</language>
    <item>
      <title>What I've Learned So Far This Year
</title>
      <dc:creator>Sandrava Philips</dc:creator>
      <pubDate>Thu, 04 Mar 2021 06:35:07 +0000</pubDate>
      <link>https://forem.com/sandravaphilips/what-i-ve-learned-so-far-this-year-4len</link>
      <guid>https://forem.com/sandravaphilips/what-i-ve-learned-so-far-this-year-4len</guid>
      <description>&lt;p&gt;It seems just like yesterday when we were screaming and wishing everyone a happy new year, but look, it's the third month already. It's been a roller-coaster of emotions since then; all of which I wouldn't take for granted. Consequently, I learned a lot and would love to share some with you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expand Your Network
&lt;/h3&gt;

&lt;p&gt;This has been said time and time again, but let me tell you how beneficial this has been for me: I've had and completed two paying jobs this year and currently working on my third. All three opportunities were gotten because of someone I know. One was directly from someone in my network and the other two opportunities came to be because I applied for them through links that someone in my network sent me.&lt;br&gt;
There's no limit to what you can learn or receive from your network, you can get resume reviews, coding tips, networking tips, business opportunities and a lot more. I would probably publish a post talking mostly about networking and how to do it but for now, what you need to know is this: long-term relationships have been formed by simply saying hi to another person. Of course, in this case, you'd have to include the reason for your hi. &lt;br&gt;
It is also important to note that you have to ensure you have something to give as well. No one wants to be friends or network with someone who has nothing to offer, so make sure your personality and mind are in good condition, at the very least.&lt;/p&gt;

&lt;h3&gt;
  
  
  Take Breaks
&lt;/h3&gt;

&lt;p&gt;I have to confess that I'm still struggling to do this but there has been some improvement. One can say I get addicted to completely solving a challenge once I begin and so it takes a lot of discipline and self control to take a break even when I'm stuck on a problem for hours. It took working on a challenge for an extra 3 hours and not finding a solution, and then waking up to solve it in just over 30 minutes, for me learn. Now, I have that lesson plastered on my wall for me to see in case I forget.&lt;br&gt;
Learn to take breaks in between work. Close your eyes, take a walk, have lunch or some snacks, get on the phone with a friend or family. Just take that break.&lt;/p&gt;

&lt;h3&gt;
  
  
  Move
&lt;/h3&gt;

&lt;p&gt;This is for those who are concerned about their health—which should be everyone. I spend the bulk of my day sitting in front of my laptop and I can't really maintain the same posture all through. I mean there a posture for when you're tired, another for when you're relaxed, another for when your stuck on a problem, and yet another for when you suddenly get an idea. &lt;br&gt;
Soon, I started experiencing pains due to bad posture which later affected my ability to work. I decided to take long walks and when that took too much time, I switched to jogging. This helped relieve me of those pains and helped me maintain a better posture.&lt;br&gt;
Move your body often, whether it's going to get groceries yourself, walking instead of driving or doing some light workout for 30 minutes. One hack I use is putting a bottle of water nearby so that I can take that walk to the bathroom and back as often as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reflect
&lt;/h3&gt;

&lt;p&gt;Take time out to reflect on your growth or otherwise because only then can we improve on ourselves. Form a habit of learning a lesson from each achievement or failure or from anything at all. Find areas for improvement and make plans for that. You can find an accountability partner—someone who can hold you accountable to your goals, if it'll help. And the good news is you don't have to do it all at once. Space them out so you don’t feel overwhelmed and give up.&lt;br&gt;
If you need to improve your coding skills, take classes, watch tutorial videos or read a book; if you need to improve your social skills and network more, start by saying hi to that person; if you want to be able to write better, start writing, read more articles and learn from them. You'll be better for it, I assure you.&lt;/p&gt;

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

&lt;p&gt;Life always gives us something to learn, relearn and unlearn. Make sure to respond accordingly and become an even better person and/or employee.&lt;br&gt;
Feel free to include some of the things you've learned as well in the comments.&lt;br&gt;
See y'all later.👋&lt;/p&gt;

</description>
    </item>
    <item>
      <title>New Year, New Goals</title>
      <dc:creator>Sandrava Philips</dc:creator>
      <pubDate>Wed, 13 Jan 2021 11:18:37 +0000</pubDate>
      <link>https://forem.com/sandravaphilips/new-year-new-goals-5894</link>
      <guid>https://forem.com/sandravaphilips/new-year-new-goals-5894</guid>
      <description>&lt;p&gt;I usually won't give two fucks about the start of a new year, especially since every day can count as the start of a year but for some reason, this one has got me in my feelings. I keep thinking about what I want to achieve this year and where I'd like to be in my career by the end of 2021, among other things.&lt;/p&gt;

&lt;p&gt;So, I decided to share with you my career goals for this year to help me be accountable and maybe you can learn a thing or two from this.&lt;/p&gt;

&lt;p&gt;To begin, let me quickly share some things about myself:&lt;/p&gt;

&lt;p&gt;My name is &lt;strong&gt;Sandrava Philips&lt;/strong&gt; and I reside in Sandton, South Africa for now. I'm currently unemployed but I do some freelancing and work on personal projects to keep my skills sharp. I love building stuff up, especially from scratch and speaking with people from diverse backgrounds. My dream role is with a startup working as a Software Engineer or Customer Engineer or something related to these two.&lt;/p&gt;

&lt;p&gt;Moving on, I prefer to make short term goals for the period of 3 months and then reflect on what I achieved with regard to those goals after the time has elapsed. Afterwards, I add to or remove from those goals as I see fit.&lt;/p&gt;

&lt;p&gt;With that in mind, these are my career goals for the first quarter of  2021:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get a full-time/part-time job.&lt;/li&gt;
&lt;li&gt;Network and be more social.&lt;/li&gt;
&lt;li&gt;Be a better programmer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, let's break down these goals to weekly/monthly goals:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get a full-time/part-time job.

&lt;ul&gt;
&lt;li&gt;Apply to at least 5 jobs per week, i.e one every weekday.&lt;/li&gt;
&lt;li&gt;Sharpen your skills(code at least every weekday) and broaden your knowledge(refer to goal number 3).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Network and be more social.

&lt;ul&gt;
&lt;li&gt;Post at least once every week on every social platform I use, i.e Twitter and LinkedIn(once every two weeks on LinkedIn).&lt;/li&gt;
&lt;li&gt;Attend a networking event or conference, either virtual or in person, once every month and do cold outreaches at least once a week.&lt;/li&gt;
&lt;li&gt;Publish an article at least once a month.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Be a better programmer.

&lt;ul&gt;
&lt;li&gt;Sharpen your skills everyday of the week, either by coding, reading or taking a course or a combination of two or all three. And since I prefer not to code on weekends, reading or simply taking a course will do.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And that's it. Feel free to join me and you can also send me an update on your progress by email(&lt;a href="mailto:sandra_philips@outlook.com"&gt;sandra_philips@outlook.com&lt;/a&gt;) or tag me on your post on &lt;a href="https://twitter.com/SandravaPhilips"&gt;Twitter&lt;/a&gt;; I'd love to read your stories.&lt;/p&gt;

&lt;p&gt;Till next time, &lt;em&gt;aja aja, fighting&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>newyear</category>
      <category>goals</category>
      <category>newyeargoals</category>
    </item>
    <item>
      <title>What Is GraphQL And Why Is It Used?</title>
      <dc:creator>Sandrava Philips</dc:creator>
      <pubDate>Wed, 02 Dec 2020 08:38:57 +0000</pubDate>
      <link>https://forem.com/sandravaphilips/what-is-graphql-and-why-is-it-used-281l</link>
      <guid>https://forem.com/sandravaphilips/what-is-graphql-and-why-is-it-used-281l</guid>
      <description>&lt;p&gt;There’s been a huge buzz about GraphQL and that has some of us wondering why. I remember when I first heard of it; I was suddenly reminded of graphs which I disliked back in school. It wasn’t until I had to use it for a project I was working on that I decided to check it out. If you’re now wearing those shoes or you’re just being curious about what the hype is all about, allow me to break it down for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Is GraphQL?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;On the official &lt;a href="https://graphql.org/"&gt;website&lt;/a&gt;, GraphQL is defined as a query language for APIs and a runtime for fulfilling those queries with your existing data. It also mentioned that this query language provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Is It Being Used?&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;It Is A Query Language&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;First, let’s talk about it being a query language. You know how there are categories of computer languages in software development such as markup languages(e.g HTML) and programming languages(e.g JavaScript), we also have query languages. And just as we can use HTML with any programming language for the web, we can also use GraphQL with any programming language.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;You Request For Exactly What You Need&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You can think of GraphQL as a way to have a single endpoint( a url for a server or service) from which you can request for whatever you need from your database. Let’s use Facebook as a case study(since GraphQL was developed by Facebook): think about the multiple endpoints that would be required, if GraphQL wasn’t used, for just one Facebook user—one endpoint each for the user, friends of that user, friend requests, posts, comments, pages and so on. And usually, requests through these endpoints often return responses comprising resources or fields that aren’t needed. You send a request to the server for friend requests and you get all the details of each friend-to-be when all you need are their names and probably the mutual friends between them. With GraphQL, you have a single endpoint where you can request for any one or all of the requests above. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;It’s Easier To Evolve APIs Over Time&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Another major reason it’s being used is because with GraphQL, you can seamlessly add new fields to your API whenever you want without impacting your endpoint. Maybe it’s been a while since you built your application and it has grown so much that it needs some new features, you can simply include the fields needed for that feature in your GraphQL API on the backend and then your client can request for those fields. It really is as awesome as it sounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Your Turn&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can learn more about GraphQL on their &lt;a href="https://graphql.org/"&gt;website&lt;/a&gt; or go through their &lt;a href="https://www.howtographql.com/"&gt;practice tutorials&lt;/a&gt;, if you want to try your hands at it. There are also courses on GraphQL on a number of online learning platforms, including the free course on &lt;a href="https://www.edx.org/course/exploring-graphql-a-query-language-for-apis"&gt;edx&lt;/a&gt;. &lt;br&gt;
If you have experimented with GraphQL, let me know about your experiences, and if you haven’t, I’ll be looking forward to reading your stories when you eventually do.&lt;/p&gt;

&lt;p&gt;Till next time.....&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>api</category>
      <category>querylanguage</category>
    </item>
    <item>
      <title>How To Deploy To Heroku Using Postgres</title>
      <dc:creator>Sandrava Philips</dc:creator>
      <pubDate>Sat, 30 May 2020 17:22:44 +0000</pubDate>
      <link>https://forem.com/sandravaphilips/how-to-deploy-to-heroku-using-postgres-2i2p</link>
      <guid>https://forem.com/sandravaphilips/how-to-deploy-to-heroku-using-postgres-2i2p</guid>
      <description>&lt;p&gt;So you've designed your database, built it and it's now running locally on your desktop with no errors. The only thing left is deploying to Heroku. Well, this post provides some guidance on how to do that.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;I'm assuming you already have an account with Heroku and if not, you can sign up &lt;a href="//www.heroku.com"&gt;here&lt;/a&gt;. What you have to do next is install &lt;a href="https://github.com/brianc/node-postgres"&gt;pg&lt;/a&gt;, a Postgres client for NodeJs.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="nx"&gt;pg&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add a Knex configuration for production&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;production&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;DATABASE_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;migrations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./data/migrations&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nx"&gt;seeds&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./data/seeds&lt;/span&gt;&lt;span class="dl"&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;p&gt;I'll explain where the connection value is coming from later.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log in to Heroku, click &lt;strong&gt;New&lt;/strong&gt; to create a new app, give your app a name and create it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose a deployment method. Since we're going to be using Heroku commands to run knex migrations, let's use the Heroku Git deployment method. The instructions on how to install and use Heroku CLI are simple and easy to follow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you're through installing Heroku CLI and running the following commands, move to the &lt;strong&gt;Resources&lt;/strong&gt; tab and type &lt;strong&gt;Heroku Postgres&lt;/strong&gt; in the add-ons search bar. Click on it and provision the plan you prefer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the &lt;strong&gt;Settings&lt;/strong&gt; tab and click to reveal Config Vars. It should already have your DATABASE_URL. If not, go to the &lt;strong&gt;Overview&lt;/strong&gt; tab and you should see your &lt;strong&gt;Heroku Postgres&lt;/strong&gt; add-on, click on it to see all the information about your database. On the same page, go to the &lt;strong&gt;Settings&lt;/strong&gt; tab to view your credentials. There you'll see your URI. Copy that and paste it as a value in your Config Vars with DATABASE_URL as the key. Note: Your key can be any valid name, just ensure it matches the name in your knex configuration. You can also add more config vars like the environment you wish to work with, i.e, production.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Review all your configurations. Make sure your knex configuration environment is not hardcoded to development. It should be similar to this:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;knex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;knex&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;knexConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./knexfile&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;environment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;DB_ENV&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;development&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;knex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;knexConfig&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Your port number should also not be harcoded.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Of course, you can include the DB_ENV value in your Config Vars on &lt;br&gt;
Heroku.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Next, run the following command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;heroku&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;knex&lt;/span&gt; &lt;span class="nx"&gt;migrate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;latest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

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

&lt;p&gt;And you're good to go. You can view the url of your deployed app by clicking on &lt;strong&gt;Open app&lt;/strong&gt; on Heroku or scroll down to the domains section of the &lt;strong&gt;Settings&lt;/strong&gt; tab.&lt;/p&gt;

&lt;p&gt;Well done, champ. Now you can go grab that beer. Don't forget to let me know if you found this helpful, though.&lt;/p&gt;

&lt;p&gt;Till next time......&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>heroku</category>
      <category>node</category>
      <category>knex</category>
    </item>
  </channel>
</rss>
