<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Godwill Barasa on Medium]]></title>
        <description><![CDATA[Stories by Godwill Barasa on Medium]]></description>
        <link>https://medium.com/@iamgodwillb?source=rss-50eecd965f97------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*BI3_lWRQytFqkxDFyklQLA.jpeg</url>
            <title>Stories by Godwill Barasa on Medium</title>
            <link>https://medium.com/@iamgodwillb?source=rss-50eecd965f97------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 04:17:02 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@iamgodwillb/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[My career review: 2022, 2023 and beyond by Godwill Barasa]]></title>
            <link>https://iamgodwillb.medium.com/my-career-review-2022-2023-and-beyond-by-godwill-barasa-4223b57c3e75?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/4223b57c3e75</guid>
            <category><![CDATA[nairobi]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[kenya]]></category>
            <category><![CDATA[data]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Tue, 24 Jan 2023 15:02:53 GMT</pubDate>
            <atom:updated>2023-01-24T15:21:05.950Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AB8UnLxfimPbHCyzY0M_8A.jpeg" /></figure><p>Hello World,</p><p>My name is Godwill Barasa, a Software Engineer based in Nairobi, Kenya.</p><p>It has been a while since I last wrote a personal blog, a lot has happened over the past few months. A lot has changed, but some things remain the same. The last article I wrote was about a Day in the life of a software developer three years back. Since then, I have definitely grown as a software developer, teammate, and human being.</p><p>Here are some of the highlights from the last year :</p><p><strong>a) Dealing with Imposter Syndrome</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9vsxpMMx028lGJtXr9swhA.jpeg" /></figure><p>Earlier this month made a joke about how I wanted to write an article on Imposter Syndrome but was unable to due to Imposter Syndrome.</p><h3>Godwill Barasa on Twitter: &quot;Was writing an article on Imposter Syndrome, and how I overcame it, but, I stopped, mainly because there was a constantly nagging voice in my head , &quot;Who are you to write about Imposter Syndrome, what authority do you have?&quot; / Twitter&quot;</h3><p>Was writing an article on Imposter Syndrome, and how I overcame it, but, I stopped, mainly because there was a constantly nagging voice in my head , &quot;Who are you to write about Imposter Syndrome, what authority do you have?&quot;</p><p>This was generally part of the reason I did not write as often in the past year. Working for one of the best digital agencies in Africa, meeting up and collaborating with top-tech talents with more experience gave me a deep sense of cluelessness in broad topics such as DNS management, API conundrums, Vue, Laravel, and React.</p><p>Made a deliberate effort to get better, bought a couple of courses on Udemy, and studied my heart out. I’m not the best, but I’d rate myself a 6/10 cumulatively from the skills mentioned above.</p><p><strong>b) Growth Mindset</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/540/1*nwq72iJDKajYRFak_i7BsQ.gif" /></figure><p>Transitioning from a junior role to an associate level was a bit of a hassle. From an entry position, where your time is managed directly by your supervisor to an associate, although this position is not significantly larger than that of a junior engineer, the position carries higher expectations. Associates complete the solution with little or no guidance and also guide junior engineers to get up to speed.</p><p>My ego aside, I still have a long way to go but I’m getting better by reading a lot of books such as Execution: The Discipline of Getting Things Done By Larry and Conscious Leadership: Elevating Humanity Through Business by Whole Foods CEO John Mackey. Also having friends whom you could call on in case a conundrum ensues goes a long way. Deep down, I still wish I had a StackOverflow for people.</p><p><strong>c) New technologies</strong></p><p>For the longest time, I used coupled CMS: it organized development efforts and gave clients the autonomy to manage their sites. This made the handover of web projects and customization by the client easier.</p><p><em>But that was 5+ years ago.</em></p><p>Many web developers have since felt the pains of working with CMS. We became aware that traditional CMSs (WordPress) were too much. We realized how cumbersome and opinionated they were. They also had numerous security problems such as cross-site scripting, brute force attack, file inclusion exploits, and malware mostly from Plug-Ins.</p><p><strong><em>Jamstack Enters Chat</em></strong></p><p>Hiyo haibambi, Jam stack ndio inabamba,</p><p>It’s typically comprised of 3 components: Javascript, APIs, and Markup. Its history stems from growing the term “static site” into something more meaningful (and marketable). So while ultimately a static site is the end result, it’s blown up to include first-class tooling for every step of the way. Javascript is for any dynamic programming during the request/response cycle, running exclusively on the client. APIs are for All server-side functions or database actions. They are abstracted into reusable APIs, and accessed over HTTPS with JS. Markup is prebuilt at build time, usually using a site generator for content sites or a build tool for web apps.</p><p><strong>d) Consultation</strong></p><p>As my finance bros say wearing Patagonia vests over his plain white shirt, two income streams are always better than one.</p><p>I was blessed to serve a bunch of brands such as <a href="https://lawyeringafrica.com/">Lawyering Africa</a>, an international conglomerate, a network of legal practices &amp; consultancies within Kenya, the East African region &amp; across Africa, specifically founded to augment a multi-jurisdictional presence for lawyers with small or medium-sized practices and consultancies, while bypassing the huge budget limitations forecasted for such.</p><p>I pray for more this year.</p><p>Consider this an invitation to reach out for web projects. Proceeds from the projects would go to a good cause (Mazda Demio Diesel 2016 with a turbo)\</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*jVMczQz3gZ2dYaDWWi4jsQ.jpeg" /></figure><p><strong>Being intentional in 2023</strong></p><ol><li>Top 10% mindset. This year I want to horn in on Laravel, Vue, and Nuxt platforms to be among the top 10% worldwide.</li><li>Attending and giving talks. I want to attend 20 events, including Twitter Spaces on industry trends and host at least 5 online and two physical ones. Feel free to also <a href="https://twitter.com/godwill_codes">reach out</a> if you’d be interested in a Speaker for your tech events.</li><li>Collaboration. I am open to collaboration and general meetups to discuss non-technical aspects of the profession such as career advice and imposter syndrome.</li><li>Project and Time Management. With help from apps such as Linear, Notion for notetaking, and Pomodoro timers, I am re-aligned my whole meaning of being productive. With mentors such <a href="https://www.youtube.com/@aliabdaal">Ali Abdaal</a> and <a href="https://www.youtube.com/@hellomayuko/videos">Mayuko</a></li><li>More stabs at products. I will be launching two products this year. For more details, feel free to follow me on <a href="https://twitter.com/godwill_codes">Twitter</a></li><li>Graduating in June 2023. ( just had a whole other blog idea of working while on campus)</li><li>Buying a car (the affirmation Mazda Demio Diesel with a Turbo)</li></ol><p>This is all for now. Feel free to reach out on Twitter for connections, banter or if you’d want to join my cult.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4223b57c3e75" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to setup Laravel elegantly with LocalWP by Godwill Barasa]]></title>
            <link>https://iamgodwillb.medium.com/how-to-setup-laravel-elegantly-with-localwp-by-godwill-barasa-cc21130f89ef?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/cc21130f89ef</guid>
            <category><![CDATA[wordpress]]></category>
            <category><![CDATA[laravel]]></category>
            <category><![CDATA[php]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Thu, 21 Jul 2022 07:57:46 GMT</pubDate>
            <atom:updated>2022-07-21T07:57:46.560Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WkAh0-cylTC49VGSWcet-Q.jpeg" /><figcaption>This elegant photo was shot by Thomas William</figcaption></figure><p>You might, or might not have heard of LocalWP. Simply put, it is a game-changer for WordPress theme developers like myself by providing developers with advanced workflow features. It has revolutionized my experience in developing WordPress Applications over the last couple of months that I have been using it.</p><h3>Backstory</h3><p>Yes, a couple of months. Before I had the old LAMP stack tutorial-advised XAMPP for the last three years. Everything was super fine until I got a job at an agency where not only was I dealing with a lot of sites, but also mitigating versions of specific packages was literally hell. These projects were mostly from different eras with different dependencies ie PHP versions.</p><p>Switching from one PHP version to another during projects on XAMPP, although possible was hell, and doing that concurrently as I switch between different projects during my day was also going to be a definite party pooper!</p><p>Adding to this conundrum: UX/UI for XAMPP has not changed over the last 10 years or so. What if I need a database instance that’s not MySQL?</p><p>Clearly old XAMPP is not going to cut it. I needed to handle such exceptions more efficiently so that I could hit my KPIs like Will Smith hit Chris Rock.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*xW7nNAvPGd3flcFEPEd7pQ.gif" /><figcaption>Me hitting my KPIs</figcaption></figure><h3><strong>Separation of concern, do what thou wilt</strong></h3><p>During a vision, while at Mt. Kenya (I meant, Googled when I was at a cabin in Nanyuki Town), I found the Local, in all its glory, Local sets up WordPress for you. One-click and your site is ready to go, SSL included! It also offers root SSH access, WP-CLI, and the ability to hot-swap PHP environments for easy testing!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oekboS-nqJdt0e_fQGrqYA.png" /><figcaption>Said cabin in the mountains</figcaption></figure><p>Very cool! I thought. I have finessed my way into a very fluid workflow. The Dev-Ops Engineer in me was very satisfied. I felt like a God!</p><p>Until !</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*RlwNf9V_aa-UVtmL1w-p9w.gif" /><figcaption>Me dreading for the day I was going to have to switch my setup</figcaption></figure><h3><strong>The Lore of Laravel</strong></h3><p>Three months down, the line with my perfect setup. The agency I work for started getting a ton of Laravel-related work. I had to modify my current scenario and going back to my ex (XAMPP) was not going to cut it, the relationship was abusive and it did not understand PHP environment variable boundaries</p><h3><strong>Here is how I did it</strong></h3><p><strong>Setup LocalWP</strong></p><ol><li>Head over to <a href="https://localwp.com/">Local</a> website and click on the download button</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Nix8VY3u0RmBCoDPpIWfVA.png" /></figure><ol><li>Once installed, click that green “+” button usually on the bottom left of your screen</li><li>Give the site a name (let’s say “CoverLetterGenerator”)</li><li>Select the environment your want (the Preferred Nginx will work just fine with Laravel)</li><li>Enter your WP username and password (these are required now but will be deleted later)</li><li>Click add site.</li><li>Once the site is created, update the PHP version to the latest 8.0.x (as of today, Local only goes up to PHP 8.0.0, but hopefully this will be resolved soon).</li><li>Add SSL</li></ol><h4>Install Laravel and a New Laravel Project</h4><p>Download composer from <a href="https://getcomposer.org/download/">here</a>. In addition, I recommend installing NodeJS which comes pre-packaged with NPM.</p><p>Those are found <a href="https://laravel.com/docs/5.7/installation">here</a>, but the basic command will be:</p><pre>composer global require laravel/installer</pre><p>Note: You need to run the above command (and all php artisancommands) from the Local machine. To do this, in the Local app, right-click on your new Laravel site, and select “Open Site Shell”. If you change to the laravel/appdirectory, you’ll be able to run these commands.</p><p>Once you have Larvel installed globally you can do the following:</p><ul><li>In Site Shell Terminal, change to the “Laravel” directory you just created (cd ../.. most likely) .</li><li>Delete the currentapp folder (either in your Finder/Explorer window or via command line)</li><li>Then run the following command from the new site directory:</li></ul><pre>laravel new app</pre><p>This will create a new Laravel project within the app directory, and will include the public folder where Local will normally look for it.</p><p>At this point, you should be able to click “View Site” in the Local app, and it should show you the Laravel welcome page at htts://laravel.local, for instance. If you’re getting a 502, 404, or some other error, you may need to restart the server:</p><h3>If you get a minimum PHP version requirement</h3><p>Temporary fix! Local only includes PHP support to 8.0.0, but Laravel’s current dependencies require PHP 8.0.2.</p><p>So, on the homepage, if you see a fatal error that says Your Composer dependencies require a PHP version &quot;&gt;= 8.0.2&quot;, you can do one of two things:</p><p>1. According to the <a href="https://getcomposer.org/doc/06-config.md#platform">Composer docs here,</a> you should emulate your PHP environment like so in your composer.json file:</p><pre>{<br>    &quot;config&quot;: {<br>        &quot;platform&quot;:{<br>            &quot;php&quot;:&quot;8.0.2&quot;<br>        }<br>    }<br>}</pre><p>This adds a spoof to your platform so that even though you’re not really running PHP 8.0.2, it will install dependencies as such.</p><p>2. Remove the vendor directory and run:</p><pre>composer install --ignore-platform-reqs</pre><p>Obviously, this is a temporary solution to get you going. You can follow this thread to get the latest: <a href="https://community.localwp.com/t/add-support-for-php-8-1-in-local/29352/8">https://community.localwp.com/t/add-support-for-php-8-1-in-local/29352/8</a></p><h3>Connecting the Database</h3><p>In your .envfile, you can replace the following credentials (assuming you haven’t changed the default LocalWP</p><pre>DB_CONNECTION=mysql<br>DB_HOST=localhost<br>DB_PORT=3306<br>DB_SOCKET=&quot;/Users/yourusername/Library/Application Support/Local/run/somethinglikethis12312123/mysql/mysqld.sock&quot;<br>DB_DATABASE=local<br>DB_USERNAME=root<br>DB_PASSWORD=root</pre><p>The above will connect to the Local DB. If you open your database using <a href="https://www.tableplus.com/">TablePlus</a>, you can go in and delete the standard wp_ tables.</p><p>Finally, you can seed your Laravel database with the command:</p><pre>php artisan migrate</pre><p>After running the above command, you can refresh your database in <a href="https://www.tableplus.io/">Table+</a> and see the default seeded database.</p><h3>Misc</h3><p>My name is Godwill Barasa, a Senior Web Developer at Belva Digital, Building (and occasionally designing) exceptional digital experiences.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/957/1*BI3_lWRQytFqkxDFyklQLA.jpeg" /></figure><p>I am currently learning Laravel, trying to get a fundamental understanding of the framework thanks to an <a href="https://www.udemy.com/course/laravel-beginner-fundamentals/">amazing course</a> and future content will revolve around this.</p><p>Catch me on <a href="https://twitter.com/GodwillCodes">Twitter</a>, and let’s banter about tech, career advice, cars, women, or anything in between.</p><p>My resume is here. Feel free to reach out for side gigs because weuh !</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cc21130f89ef" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to fix “Error: No valid exports main found for ‘/node_modules/packname by Godwill Barasa]]></title>
            <link>https://iamgodwillb.medium.com/how-to-fix-error-no-valid-exports-main-found-for-node-modules-packname-by-godwill-barasa-4b3170ec42e0?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/4b3170ec42e0</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[nodejs]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Wed, 12 May 2021 12:53:47 GMT</pubDate>
            <atom:updated>2021-05-12T12:53:47.685Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OQ03bF90DoywEoxUAnCj7Q.jpeg" /></figure><p>On 12th May, as I was trying to “npm run dev” a react application that I hadn’t pulled from the master branch in a while, I came across the following error when trying to start the app:</p><blockquote>Error: No valid exports main found for ‘/node_modules/postcss’</blockquote><p>Quick google search, I noticed the problem is because of one or more of the packages was bumped to support a more recent version. So, I checked what is the version I was running:</p><blockquote>node -v</blockquote><p>Turns out I was running V.10, yet the package was updated for version 13.</p><p>Next thing was to install nvm. This piece of software allows you to install and maintain many different independent versions of Node.js, and their associated Node packages, at the same time. visit the project’s <a href="https://github.com/nvm-sh/nvm">GitHub page</a>.</p><p>Before piping the command through to bash, it is always a good idea to audit the script to make sure it isn’t doing anything you don’t think might be indifferent from your case</p><blockquote>curl -o- <a href="https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh">https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh</a></blockquote><p>Take a look and make sure you are comfortable with the changes it is making. When you are satisfied, run the command again with | bash appended at the end.</p><blockquote>curl -o- <a href="https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh">https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh</a> | bash</blockquote><p>This will install the nvm script to your user account. To use it, you must first source your .bashrc file:</p><blockquote>source ~/.bashrc</blockquote><p>Now, you can ask NVM which versions of Node are available:</p><blockquote>nvm list-remote</blockquote><p>This will list a whole bunch of versions, just select a newer version. In my case I contacted the software developer asked him which version he was using in his dev environment. Turns out he uses v14.5</p><p>It’s a very long list! You can install a version of Node by typing any of the release versions you see.</p><blockquote>nvm install v14.5</blockquote><p>You can see the different versions you have installed by typing:</p><blockquote>nvm list</blockquote><p>You can switch between installed versions with nvm use:</p><blockquote>nvm use v13.6.0</blockquote><p>Now using node v13.6.0 (npm v6.13.4)</p><p>You can verify that the install was successful using the same technique from the other sections, by typing:</p><blockquote>node -v</blockquote><p>Output</p><blockquote>v13.6.0</blockquote><p>Then I,</p><blockquote>npm cache clean — force</blockquote><p>Delete node_modules by</p><blockquote>rm -rf node_modules</blockquote><p>delete the package-lock.json file too.</p><p>To install the dependencies again.</p><blockquote>npm install</blockquote><p>Last step was to run, <strong>npm run dev </strong>which worked perfectly</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QCSxlq2YFdJ5GY6oEIIVhQ.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4b3170ec42e0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Learning Path by Godwill Barasa]]></title>
            <link>https://iamgodwillb.medium.com/react-learning-path-by-godwill-barasa-bfa442f498d9?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/bfa442f498d9</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[reactjs]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[nairobi]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Fri, 19 Mar 2021 06:06:45 GMT</pubDate>
            <atom:updated>2021-03-19T06:06:45.003Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CHFUIkCEwAp0KDGyLqve4w.jpeg" /></figure><p>So, you have chosen the path to become a React Ninja. In that case, I am Sensei, (Seonsaeng) Godwill Barasa, a software developer with 4 years of experience in React. This young warrior is going to be a journey like no other, be ready for a journey of a lifetime.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FeNMrFVCX3KQO5vNVaM%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fdreamworks-kung-fu-panda-wise-master-shifu-eNMrFVCX3KQO5vNVaM&amp;image=https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2FeNMrFVCX3KQO5vNVaM%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="435" frameborder="0" scrolling="no"><a href="https://medium.com/media/eb504bcc03ce2964536623122bc9f706/href">https://medium.com/media/eb504bcc03ce2964536623122bc9f706/href</a></iframe><p>React (also known as React.js or ReactJS) is an open-source, front-end, JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies. React was created by Jordan Walke, a software engineer at Facebook, who released an early prototype of React called “FaxJS”.</p><blockquote>He was influenced by XHP, an HTML component library for PHP. It was first deployed on Facebook’s News Feed in 2011 and later on Instagram in 2012. It was open-sourced at JSConf US in May 2013.</blockquote><p><strong><em>Why you would want to learn React.</em></strong></p><ul><li>React uses declarative instead of imperative syntax. It’s a simpler way of developing apps, and you can learn why here. Basically, React is faster to develop because you don’t need to tell the app how to represent the state — you just need to say what you’d like to happen. It’s quick, it’s easy, and there’s less room for human error.</li><li>React Native makes app development easier. It brings that kind of philosophy to React with “Learn once, write anywhere”.Once you understand the basic architecture and thinking behind React, you’ll be able to develop fully functioning apps for both Android and iOS. You won’t have to learn two different ways to represent your app. So after you learn React, you can bring your new product to users not just as quickly as possible, but as widely as possible.</li><li>The React community is amazing. React has a massive community of dedicated developers. The community helps to maintain and grow the open-source library, with everyone able to contribute their own components to the library.</li></ul><blockquote>The community is also so strong because of the great tools you can work within React, including React Profiler and React dev tools.</blockquote><ul><li>React is all about Reusable Components. This taps into the current thinking behind ‘Design Systems’. These enable developers to provide a single source of truth for designers, ensuring consistency for large companies working across multiple tech platforms. Talking of which…</li><li>React is used by huge organizations, who pay handsomely for React wizardry</li><li>React is SEO-friendly</li><li>React fully embraces JavaScript. JavaScript is at the forefront of current thinking in the development field. React is a JavaScript library that makes full use of JS’s capabilities.</li><li>React is flexible and back-end agnostic, meaning you can use React no matter what the rest of your tech stack is.</li><li>React is unopinionated. It won’t force you to use certain types of forms or routing. Instead, the choice is yours, so you can respond more dynamically and adapt to your users’ changing needs.</li><li>You’ll increase your earning power. Learning React now will future-proof your career and increase your earning power.</li><li>React has a fast learning curve i.e relatively easy to learn</li><li>BONUS: Little to no breaking changes. Although it’s constantly changing, React doesn’t depreciate or remove APIs very often. With React, you’ll benefit from the core team’s commitment to maintaining backward compatibility. Companies of all sizes can’t afford to change their applications every year to keep up with technological innovation.</li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FxHMIDAy1qkzNS%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fthumbs-up-xHMIDAy1qkzNS&amp;image=https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2FxHMIDAy1qkzNS%2F200.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="321" frameborder="0" scrolling="no"><a href="https://medium.com/media/295805e7d4a8661a9fd6ba4c0f86bda3/href">https://medium.com/media/295805e7d4a8661a9fd6ba4c0f86bda3/href</a></iframe><p><strong>Prerequisites</strong><br>Basic knowledge of HTML, CSS, and JavaScript.<br>Basic understanding of ES6 features. To get started you should at least know the following features:<br>1. Let<br>2. Const<br>3. Arrow functions<br>4. Imports and Exports<br>5. Classes<br>Basic understanding of how to use npm.</p><p>In addition to that, you will need knowledge in the following tools:<br>Git<br>HTTP(S) protocol<br> Linux Command Line Basics<br>Design Patterns</p><p><strong>Fundamentals</strong></p><p>Now, this is the main deal. You got to learn React and learn it well to become a React developer. The best place to learn React is the official website, but as a beginner, it can be a little bit overwhelming for you. That’s why I suggest you enroll in a couple of courses like:</p><p>React 16- The Complete Guide by Max<br>Modern React with Redux by Stephen Grider<br>Beginners guide to React by Kent C. Dodds<br>Fundamentals of React by Samer Buna</p><p>By now, you should have a basic idea of the fundamentals of React. It’s enough to start developing simple web apps in React.</p><p>Now, take a look at the React official tutorial: It’s a well-written article covering the fundamentals of React. And it also explains the specific topics very clearly.</p><p>Start building some projects<br>Simple todo-app<br>Simple calculator app<br>Build a shopping cart<br>Display GitHub’s user stats using GitHub API</p><p><strong>React Router</strong><br>React Router helps you create routes to your single-page applications. It’s very powerful and easy to use with your React application.</p><p>React Router tutorial by Paul Sherman<br>React Router and intro to SPA by Learn Code Academy<br>Routing React apps by Scotch.io</p><blockquote>These articles are more than enough for you to get started with React routing.</blockquote><p>Projects<br>A simple CURD application<br>Hacker News clone</p><p>If you are really interested in learning much about Router, check out the following guide: React Router complete guide by React Training</p><p><strong>Server rendering</strong><br>Server rendering is one of the coolest features in React. It can be used with any of the back-end technologies.Server-Side Rendering (SSR) in React helps you to create components in the server and render that as HTML in your browser. And when all the JavaScript modules are downloaded in the browser, React takes the stage. Simple!</p><p>I recommend the following for Server-Side Rendering:<br>Next.js, After.js, Rogue</p><p>First of all, take a look at the React-DOM API:And follow the below tutorials to get in-depth knowledge:</p><p>React server rendering by Tyler McGinnis<br>React router server rendering by Roilan Salinas<br>React Server-side rendering guide by Dennis Brotzky</p><p><strong>Redux</strong><br>Redux is a JavaScript library developed for maintaining application states. When you are building a complex application, it will add overhead to manage states across components. Redux helps you store all your states in a single source. And of course, React plays well with Redux :)</p><p>Despite being complicated and introducing a lot of boilerplate code for even the most simple data fetch,</p><blockquote>Redux is still a very popular and widely used state management library in the industry.</blockquote><p>You should learn how to do the following:<br>Set up a project with Redux<br>Use Redux for data fetching and managing state<br>Optionally, look into Redux Thunk</p><p>To get started:</p><p>Redux tutorial by Learn Code Academy<br>Redux tutorial for beginners by Valentino Gagliardi<br>React Redux by CSS Tricks</p><p><strong>API Clients</strong><br>In today’s world, you will rarely build an isolated GUI, instead, there is more chance that you will build something which communicates with other application using APIs like REST and GraphQL.</p><p>Thankfully, there are many API clients available for React developers, here is a list of them:<br>REST — Fetch, SuperAgent, axios<br>GraphQL — Apollo, Relay,urql</p><blockquote>Apollo Client is my favorite and provides an easy way to use GraphQL to build client applications. The client is designed to help you quickly build a UI that fetches data with GraphQL and can be used with any JavaScript front-end.</blockquote><p>Btw, if you don’t know GraphQL and REST, I suggest you spend some time learning them. If you need courses, the following are my recommendations:<br>GraphQL with React: The Complete Developers Guide<br>REST API Design, Development &amp; Management</p><p><strong>Desktop</strong><br>There also exists some React-based framework to build desktop GUI like React Native Windows which allows you to build native UWP and WPF apps with React.<br>The Framework suggests the following libraries:<br>Proton Native<br>Electron<br>React Native Windows</p><p><strong>Virtual Reality</strong><br>If you are interested in building a Virtual Reality based application then also you have some frameworks like React 360, which allows you to exciting 360 and VR experiences using React. If you are interested in that area, you can further explore React 360.</p><p><strong>Conclusion</strong><br>Feel free to reach out on Instagram or LinkedIn for random conversations about geeky stuff. I am also lea<br><a href="https://www.instagram.com/godwllb/">https://www.instagram.com/godwllb/</a><br><a href="https://www.linkedin.com/in/gdwllb/">https://www.linkedin.com/in/gdwllb/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bfa442f498d9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Lessons I learned being a full-time software developer and a university student in Nairobi, Kenya…]]></title>
            <link>https://iamgodwillb.medium.com/lessons-i-learned-being-a-full-time-software-developer-and-a-university-student-in-nairobi-kenya-ecf3f4bb81a7?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/ecf3f4bb81a7</guid>
            <category><![CDATA[kenya]]></category>
            <category><![CDATA[nairobi]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[students]]></category>
            <category><![CDATA[university]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Wed, 20 Jan 2021 00:00:08 GMT</pubDate>
            <atom:updated>2021-01-20T00:00:08.238Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Lessons I learned being a full-time software developer and a university student in Nairobi, Kenya by Godwill Barasa</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*39sgMm5aqYdYzBo3WLXzBg.jpeg" /></figure><p>My name is Godwill Barasa, a software developer, writer, and designer based in Nairobi, Kenya. In case you are interested to know how I undertake my daily work, find my previous viral article <a href="https://dev.to/godwillb/life-of-a-kenyan-software-developer-jbf">here</a>.</p><p>I write this article at 2 am, with an Operating System exam tomorrow morning at 8 am. Thanks to Ali Abdaal, I finessed my study plan, and I believe am ready for the exams so no need for a last-minute rush.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FatHI7U3aP3kl2%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fcool-lazy-atHI7U3aP3kl2&amp;image=https%3A%2F%2Fmedia4.giphy.com%2Fmedia%2FatHI7U3aP3kl2%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="258" frameborder="0" scrolling="no"><a href="https://medium.com/media/c2fb67a3037f26f3eee2f50fde890f44/href">https://medium.com/media/c2fb67a3037f26f3eee2f50fde890f44/href</a></iframe><p>Enough of the self-reassurance, I have been writing code for almost most of my life. When I was younger, it was more of a fun-rebellious kind of hobby I adapted from my big brother Nikki. By 16 years, I was writing code for my high school website, in return they let me work late in the computer labs When I turned 18, I got my first job as a System Developer intern in Nairobi, Kenya.</p><p>Fast forward, a couple of years later, As I celebrate my 23rd birthday in two weeks, celebrating five-year career experience. I feel old, it feels like the older I get the quicker time passes. Regardless, we have to look back on it so that we can make better choices.</p><p>I’ve been a student at JKUAT, Juja, University of Cape Town, and currently JKUAT, CBD Campus. I am also a developer at Legibra Holdings with proficiency in PHP, Javascript, Laravel, React. I’m currently an active community member of the JAMstack movement. Check out my<a href="https://dev.to/godwillb/the-jamstack-by-godwill-barasa-2b02"> article</a> on the movement.</p><p>Here are my lessons:</p><p><strong>Let research lead your intuition</strong></p><p>Before making major career moves, always consult Google, Google tells us all from why there is a spot on the tip of your nose to regex functions. From salary details to reputable hiring managers, you know, the ones who actually mail back in case you fail an interview.</p><p>In an interview, you are not being interviewed by the company. You also interview them. Know as much as possible about the job and the firm before making the deal. This will help you assert self-worth, and help you find work that you enjoy doing. That will in turn bring you a lot of happiness, which is something we all need more of.</p><p><strong>Network</strong></p><p>Get access to tech events with like-minded people. It’s amazing how smiles and shaking hands can really propel your career. I personally suggest Nairobi Metta, Nairobi Garage, and iHub. I’m considering joining the Nairobi Garage the one on Lower Kabete Road. Ikigai is also nice.</p><p>Such hubs have amazing events from a wide array of subjects, from entrepreneurship to personal finance. From career advice to trade fairs. Trust me, your Saturdays will always be booked with events, which lead to connections, which lead to lead generation, which lead to profit.</p><p><strong>Set Goals, but don’t be afraid to aim higher.</strong></p><p>Two people really inspire me on this. One of them is Bruce Lee, with his legendary quote “Be like water my friend”<strong>.</strong> Be willing to change, in fact, the most productive decisions are the ones that make you get away from your comfort zone. The second one, is, a dear friend, UX Designer, Genet Wendy. She inspired me to make mood boards. A mood board is a visual tool that communicates our concepts and visual ideas. It is a well-thought-out and planned arrangement of images, materials, pieces of text, etc. that is intended to evoke or project a particular style or concept.</p><p>Reasons you might need a mood board:</p><ul><li>To give us a process to build a clear design story that we want to use in the space.</li><li>Using a mood board helps you to express the vision you have in mind for the project.</li><li>Sometimes it is very complicated to express your visual ideas to others. A mood board is a very efficient visual communication tool.</li><li>A mood board is a good starting point to get things done. It will help you collate and focus your ideas, and help to define the project</li></ul><p>As with most design processes. There is a ‘standard’ process that’s useful to follow. But as we are designing, I believe that being creative and not following the rules exactly will always give you the best result.</p><p>Creating a mood board will help you to explore and ‘find your own style’ too. The best way to learn about something in design is to do it. This is why I want you to take some time to create a mood board that represents your own style.</p><p>Think about your home, your clothes, your office, your holidays, things you dream of. What do they look like? What do these things feel like? What are the common threads? Is it a color? A texture? A pattern? A feeling/emotion?</p><p>Collect images that represent these thoughts. These images will tell your story and when they come together will start to show you your style. The collection of images will represent your lifestyle and personal style. You can take your time with this.</p><p>Move the images about on the board to create different compositions. Play around with the images until you are happy with the images that you have.</p><p>I know that this is hard to do when you’ve not done it before, but we all start at the beginning. My first few mood boards weren’t very impressive but I started learning how they worked while doing it.</p><p>This isn’t something you can learn by reading about it. You need to do it.</p><p>Another important element to mood boards that can help beginners to convey their message very effectively is to use keywords to help tell your story. 2 or 3 well-selected keywords that help you to describe the abstract message you’re trying to get across.</p><p><strong>It’s always better to start earlier, heck, it is better to start now.</strong></p><p>Like fitness, mostly progress in your career is done when you practice. When you start working out in the gym, the first weeks might feel very taxing with little or no result. This is why many people who get gym memberships only get to go the first week. After that, they feel they have put in too much yet get very little in return since they don’t have their dream body like Arnold Schwarzenegger</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FT9YdDlG5gHj6U%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fokkultmotionpictures-arnold-schwarzenegger-artists-on-tumblr-T9YdDlG5gHj6U&amp;image=https%3A%2F%2Fmedia2.giphy.com%2Fmedia%2FT9YdDlG5gHj6U%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="326" frameborder="0" scrolling="no"><a href="https://medium.com/media/99d4e00f27c1d7991a449552c5f03195/href">https://medium.com/media/99d4e00f27c1d7991a449552c5f03195/href</a></iframe><p>This is further from the truth, The First weeks are important to develop your form, condition your motor skills from normal body movements to unusual body movements such as Deadlifts, Squats, or the Bench press. This is a learning phase, you get to learn so much about how your muscles feel, being sore after a workout, being sore during a workout, shocking muscles on leg day, etc. These basic things form the ultimate conditions for your body to grow.</p><p>Similarly, when you start learning that new language, you might not develop advanced algorithms in your first week. You might even write a bad “spaghetti” code. This is important since you don’t know what you don’t know. The only way to know what you don’t know is to attempt.</p><p>Otherwise, you will be like a spectator in a football match. You will know all the players in the game, know all the moves, you might even know the jargon, and have strong opinions about the game, you never got in the field.</p><p><strong>Be consistent</strong></p><p>Consistency is when you become fixated on a particular goal. Like writing a novel. Or losing weight. For the first couple of days, you ride that wave of motivation. You show up, do the work, move on. Another day won.</p><p>But then the novelty wears off. You start skipping practice. You stop being consistent. A day here and a day there and before long you haven’t written a word for days or been to the gym this month.</p><p>Sounds familiar?</p><p>Every year people make new resolutions. Do they follow up on them? Most don’t. Why? They lack consistency. The only thing they are consistent at is starting and stopping.</p><p>But it doesn’t have to be that way. You need to develop the skill of being consistent.</p><p><strong>Grades matter</strong></p><p>Your grade only really matters for the traditional path and for a small number of research jobs and careers. What matters a lot more is your approach to life:</p><ul><li>Do you always try to do your best? (Do you actually try at all?)</li><li>If you get stuck do you try to solve the problems other ways or just give up? (Also called “grit” which is the current in word.)</li><li>Are you willing to try things and see if it works out?</li><li>Are you curious about new things?</li></ul><p>The thing is that if these are true then students almost always have fairly good grades. These are the things that matter not grades most of the time.</p><p>That being said here are the times that grades matter:</p><ul><li>Your high school grades matter when applying to university BUT if you wait a few years or even just do a few university subjects then try to transfer (assuming they accept transfer students) then your high school grades don’t matter any more than your entrance exam matters or the grades for the university subject you do.</li><li>Your university grades matter when you apply for your first job BUT after the first job, everyone cares about your work experience NOT your grades.</li><li>You need good grades for academic scholarships.</li><li>For research students your grades matter (a lot) until you publish a research paper then your previous research matters more.</li></ul><p>Basically grades matter at a few specific instances in time when transitioning between phases in life. Grades can save you a few years of “catching up” but in the long run, there are other paths to the same thing that take a little bit longer if you are willing to try.</p><p>This is why some high school dropouts succeed. At school, they don’t have the correct attitude to life. They fail, hit rock bottom, go through the school of hard knocks and relatively quickly learn and change who they are then succeed without traditional schooling. The grades try (sometimes badly) to reflect what is important.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FQtpFq0Ejbc0kFPbHvC%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fadultswim-oh-yes-where-was-i-finish-story-QtpFq0Ejbc0kFPbHvC&amp;image=https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2FQtpFq0Ejbc0kFPbHvC%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/fd8a79f58192a5f63619bfbc31d17820/href">https://medium.com/media/fd8a79f58192a5f63619bfbc31d17820/href</a></iframe><p>As I make a mood board for my next five-years, I need to make new habits, know new people, and delve into subjects I have not delved into before. I’m in search of new vibes. You can find me on<a href="https://www.linkedin.com/in/gdwllb/"> LinkedIn</a>, ask me about anything, or pitch new ideas or even new vibes.</p><p>I won&#39;t celebrate my birthday but do wish me a happy birthday in the comments section.</p><p>Regards,</p><p>Godwill Barasa</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ecf3f4bb81a7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Jamstack by Godwill Barasa]]></title>
            <link>https://iamgodwillb.medium.com/the-jamstack-by-godwill-barasa-543122a3def6?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/543122a3def6</guid>
            <category><![CDATA[jamstack]]></category>
            <category><![CDATA[frontend]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[developer]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Tue, 15 Sep 2020 05:53:20 GMT</pubDate>
            <atom:updated>2020-09-15T05:53:20.439Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LG2WOeQugapgwKDN_5mcFQ.jpeg" /><figcaption>Yummy</figcaption></figure><p>JAMstack is quite popular right now in the developer world. But what exactly is it? Should you use JAMstack for your next project?</p><p>Termed as a new approach to make our websites faster and more secure, does it live up to the hype?</p><p>This is quick guide to JAMstack.</p><p><strong>What is it?</strong></p><p>It’s typically comprised of 3 components: Javascript, APIs, and Markup. Its history stems from growing the term “static site” into something more meaningful (and marketable). So while ultimately a static site is the end result, it’s blown up to include first-class tooling for every step of the way. Javascript is for any dynamic programming during the request/response cycle, running exclusively on the client. <strong>APIs</strong> are for All server-side functions or database actions. They are abstracted into reusable APIs, accessed over HTTPS with JS. <strong>Markup</strong> is prebuilt at build time, usually using a site generator for content sites, or a build tool for web apps.</p><p>JAMstack is revolutionizing the way we think about workflow by providing a simpler developer experience, better performance, lower cost, and greater scalability.</p><p>This is all great. But in practice, what does it really mean?</p><p><strong>The problem with the legacy web</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/806/1*pLKgyKpOgRGfpJ0vW803HQ.png" /></figure><p>For a long time, web developers used coupled CMS: it organized development efforts and gave clients the autonomy to manage their site. This made the hand-over of web projects and customization by the client easier.</p><p>But that was 5+ years ago. Many web developers have since felt the pains of working with CMS. We became aware that traditional CMSs (WordPress) were too much. We realized how cumbersome and opinionated they were. They also had numerous security problems such as cross-site scripting, brute force attack, file inclusion exploits, and malware mostly from Plug-Ins</p><p><strong>How JAMstack works</strong></p><p><strong>Decoupling the frontend from the backend</strong></p><p>Unlike the large legacy apps, Jamstack projects neatly separate the frontend pages and UI from the backend apps and databases. Freed from backend servers, the frontend can then be deployed globally, directly to a CDN.</p><p><strong>Prebuilding all pages for speed</strong></p><p>Before deployment, the entire front end is prebuilt into highly optimized static pages and assets. This happens in a build process (before being deployed/hosted).</p><p><strong>Dynamic content via APIs</strong></p><p>The global front end uses Javascript and APIs to talk to backend services, allowing pages to be enhanced and personalized.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VtYXE3_b9NwHjrHDB9n4Mg.jpeg" /></figure><p><strong>Advantages of JAMstack.</strong></p><ul><li>Faster performance</li><li>Serve pre-built markup and assets over a CDN</li><li>More secure</li><li>No need to worry about server or database vulnerabilities</li><li>Less expensive</li><li>Hosting of static files are cheap or even free</li><li>Better developer experience: Front end developers can focus on the front end, without being tied to a monolithic architecture. This usually means quicker and more focused development</li><li>Scalability</li></ul><p>If your product suddenly goes viral and has many active users, the CDN seamlessly compensates.</p><h3>When building Jamstack projects, you can really get the most out of the stack if you stick to a few best practices.</h3><p><strong>Entire Project on a CDN</strong></p><p>Because Jamstack projects don’t rely on server-side code, they can be distributed instead of living on a single server. Serving directly from a CDN unlocks speeds and performance that can’t be beaten. The more of your app you can push to the edge, the better the user experience.</p><p><strong>Everything Lives in Git</strong></p><p>With a Jamstack project, anyone should be able to do a git clone, install any needed dependencies with a standard procedure (like npm install), and be ready to run the full project locally. No databases to clone, no complex installs. This reduces contributor friction and also simplifies staging and testing workflows.</p><p><strong>Modern Build Tools</strong></p><p>Take advantage of the world of modern build tools. It can be a jungle to get oriented in and it’s a fast-moving space, but you’ll want to be able to use tomorrow’s web standards today without waiting for tomorrow’s browsers. And that currently means Babel, PostCSS, Webpack, and friends.</p><p><strong>Automated Builds</strong></p><p>Because Jamstack markup is prebuilt, content changes won’t go live until you run another build. Automating this process will save you lots of frustration. You can do this yourself with webhooks, or use a publishing platform that includes the service automatically.</p><p><strong>Atomic Deploys</strong></p><p>As Jamstack projects grow really large, new changes might require re-deploying hundreds of files. Uploading these one at a time can cause inconsistent state while the process completes. You can avoid this with a system that lets you do “atomic deploys,” where no changes go live until all changed files have been uploaded.</p><p><strong>Instant Cache Invalidation</strong></p><p>When the build-to-deploy cycle becomes a regular occurrence, you need to know that when a deploy goes live, it really goes live. Eliminate any doubt by making sure your CDN can handle instant cache purges.</p><h3>So, what tools should you use for a JAMStack?</h3><p>The good news here, there are a ton of tools currently available and a ton more on the way. They might still be a little rough around the edges, but that’s because this is a brave new world of tooling and that takes some smoothing out to get just right.</p><p>Pick your favorite flavor of the UI framework and get off the ground running.(Gatsby, or Scully for Angular fanboys)</p><p>Tools like Netlify make it easy to configure by hooking into your Github repo and building anytime a new commit gets pushed, but of course, you have options like AWS if you want more control.</p><h3>Making your app dynamic</h3><p>I’m not going to list a bunch of examples per type, even better, here are a few tools and places you can find some resources.</p><ul><li><a href="https://auth0.com/">Auth0</a> — Authentication</li><li><a href="https://cloudinary.com/">Cloudinary</a> — Media management</li><li><a href="https://analytics.google.com/analytics/web/#/">Google Analytics</a> — Web traffic analytics</li><li><a href="https://headlesscms.org/">headlesscms.org</a> — Endless list of headless CMSs</li><li><a href="https://www.sanity.io/">Sanity</a> — CMS</li><li><a href="https://serverless.com/">Serverless Framework</a> — DIY, easy to deploy serverless resources</li><li><a href="https://snipcart.com/">Snipcart</a> — Ecommerce</li><li><a href="https://stripe.com/">Stripe</a> — Payment management</li><li><a href="https://github.com/agarrharr/awesome-static-website-services">And a bunch of other resources…</a></li><li><a href="https://headlesscms.org/">And a bunch of other CMS choices…</a></li><li><a href="https://jamstack.wtf/">And some general info and tools…</a></li></ul><p>Missing your favorite JAMstack tool or an awesome example? Connect with me on <a href="https://www.linkedin.com/in/gdwllb/">LinkedIn</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=543122a3def6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Life of a Kenyan Software Developer]]></title>
            <link>https://iamgodwillb.medium.com/life-of-a-kenyan-software-developer-abafacee6b18?source=rss-50eecd965f97------2</link>
            <guid isPermaLink="false">https://medium.com/p/abafacee6b18</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[kenya]]></category>
            <category><![CDATA[nairobi]]></category>
            <dc:creator><![CDATA[Godwill Barasa]]></dc:creator>
            <pubDate>Tue, 08 Sep 2020 20:14:43 GMT</pubDate>
            <atom:updated>2020-09-10T14:52:22.820Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OtdsGNH10zDXn0asXHzzzg.jpeg" /><figcaption>Godwill Barasa — The engineer in question</figcaption></figure><p>Here is a little context, My name is Godwill Barasa. I am a 23-year-old software developer based in Nairobi, Kenya. I live in Roysambu, TRM Drive. More often than not, when people during family gatherings, ask me what I do for a living.</p><p>Perhaps is the casual wear I am known for having after trying to go to my sister’s wedding with a hoody ( don’t worry it did not happen ). I am going to give everyone a picture of how a 23-year-old software developer based in Kenya undertakes his dailies.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*NkW5_iQKp16V43wr11bRzQ.jpeg" /><figcaption>Godwill Barasa — Software Engineer Nairobi, Kenya</figcaption></figure><p><strong>5:00 AM</strong></p><p>I wake up at 5:00 am. I jog to my local gym which is not far from my apartment. I do a 40-minute work out with my trainer (who is also my neighbor). I take a shower at around 5:50 am and make breakfast which is almost always an egg, four slices of Festive Bread, and Tea.</p><p><strong>6:30 AM</strong></p><p>I put on some mood music usually something like 30 Seconds to Mars or a podcast. I browse my emails, check my LinkedIn for new connections. I do not use Facebook or Instagram because they make me anxious. I get why people employ social media managers. I am not inactive though, I try to post content to keep my brand on point.</p><p><strong>7:00 AM</strong></p><p>My meals are normally pre-packaged which is a pro-move since food prices near the office are pricy and tasteless. I pack them and then pre-heat them in the company kitchen. I take my Acer, Charger, and Notebook and throw it into my olive backpack. Earphones are also definite must-have essential.</p><p><strong>7: 20 AM</strong></p><p>I board a matatu bound to tao. It is almost always chilly and grey in the morning in Nairobi( however, it becomes hotter as the day continues). More mood music and a novel, right now am reading Harper Lees, To kill a mocking bird. <a href="https://www.britannica.com/biography/Harper-Lee">Harper Lee</a> believed to be one of the most influential authors to have ever existed, famously published only a single novel (up until its controversial sequel was published in 2015 just before her death). Lee’s <em>To Kill a Mockingbird</em> was published in 1960 and became an immediate classic of literature.</p><p><strong>8:00 AM</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*iUThkUp4-8w8kAtC8Emqyg.jpeg" /></figure><p>On a good day ill be at the CBD by 8:00 AM. I would then check-in at the Jomo Kenyatta NCBD Campus, my university. I am a student class representative for my Bachelor of Business Information &amp; Technology class. Make sure I have my schedule mapped out. I also water the plants at the reception, sometimes. The receptionist is a middle-aged woman who is so motherly everyone calls her Nana. I call my classmates and send them the days schedule on Slack and WhatsApp.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*ftuWj0vnzOAUaMdLF9u2VQ.jpeg" /></figure><p><strong>8:30 AM</strong></p><p>I’ll arrive at the office. I make a coffee for a little more energy. I take this time to assess my to-do app. I check what has been done and what has not. I also send work emails and alerts on slack teams. This is when I reply to other work emails that require further discussions. These issues are the ones which rise in the next hour.</p><p><strong>9:00 AM</strong></p><p>We have a scrum meeting with designers, project managers, sometimes the CTO (but mostly not). It is designed for teams who break their work into goals that can be completed within timeboxed iterations, called <em>sprints</em>, no longer than one month, and most commonly two weeks. The Scrum Team tracks progress in 15-minute time-boxed daily meetings, called daily scrums. At the end of the sprint, the team holds a sprint review, to demonstrate the work done, and sprint retrospective to continuously improve. Some good ol’ Software Engineering</p><p><strong>9:30 AM</strong></p><p>Problem-solving mostly( very little coding ) just trying to solve problems from a very high level of understanding. This is very important to me as it helps me treat my code as art. Very in touch with what is needed by the user or investor.</p><p><strong>10:00 AM</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r9Uz-NbXS9zJJDWkJaYFLg.jpeg" /><figcaption>Godwill Barasa Set-Up, My purple knight</figcaption></figure><p>Id stack working on the code. My set up is a dual-screened monitor. I also have a very slow purple Acer, Intel Celeron. However, being a Ubuntu Fan-boy this does not lag at all for writing Javascript code. About Javascript, the stack we use is React.js, GraphQL, Gatsby, Strapi, or WordPress Headerless CMS. popularly known as the Jamstack. The Jamstack is not about specific technologies. It’s a new way of building websites and apps that delivers better performance, higher security, lower cost of scaling, and better developer experience.</p><p>Dev lives matter. Loose coupling and separation of controls allow for more targeted development and debugging, and the expanding selection of CMS options for site generators removes the need to maintain a separate stack for content and marketing.</p><p>I listen to Frank Sinatra and finish what I had set out to do on that day as per the daily scrum.</p><p><strong>1:00 pm LUNCH</strong></p><p>Or gaming</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YwYgS0Fvp6_bvclz5IHz5A.jpeg" /><figcaption>Godwill Barasa and Steve on a gentleman game of FIFA</figcaption></figure><p><strong>2:00 2 HOUR CODING SESSION</strong></p><p>Also A short meeting with Human Resource, she says I might be exhausted from school and work. She gives me a go-ahead to work from home on Friday.</p><p>I love working from home. Roysambu is treating me too nice, 15,000KES rent. This is almost a third of what I make. It’s worth it, closeness to CBD, Security. Its also close to Andela ( I need Andela Merchandise, guys.) home of very cool tech events usually Saturdays. Very beautiful minds truly top 1 percent talent</p><p><strong>4:00 PM</strong></p><p>I stop working on the site. Make notes on the day and start thinking of tomorrow’s sprint meeting. For now, I would open my Codecademy account and learn up to around 7:00 pm. Most people I have met have a problem with this, say I spend too much time at work. I use that moment to make sure am at the top of my game in web development. From dealing with JSON data from APIs to Querying data with SQL. I also have a data science course (but font tell anyone)</p><figure><img alt="Outdoor coding" src="https://cdn-images-1.medium.com/max/1024/1*KaiwxfZ_8KR1uFWY2g73KQ.jpeg" /></figure><p>I also have evening classes at this time so whenever am not at work, am in school.</p><p><strong>7:00 pm</strong></p><p>School Work. sometimes classes</p><p><strong>8:00 PM</strong></p><p>A matatu ride back to Roysambu. There are usually no jams in Thika Road at that time. It takes around 10 minutes. It costs around 60 bob and uber costs around 500 bob.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*b_uorqMcCWlcShApjHqAug.jpeg" /><figcaption>Matatu back home</figcaption></figure><p>I cook something and watch a series as I eat. I doze off watching cartoons by around 11 pm.</p><p>Thats it. That&#39;s the story about the software engineer in Nairobi, Kenya</p><p><a href="https://www.instagram.com/godwllb/">https://www.instagram.com/godwllb/</a></p><p>linkedin.com/godwillb</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=abafacee6b18" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>