<?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: Rukundo Kevin</title>
    <description>The latest articles on DEV Community by Rukundo Kevin (@rukundokevin).</description>
    <link>https://dev.to/rukundokevin</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%2F538826%2F5051eae7-70dd-4c19-8c37-80b9c46617d1.jpg</url>
      <title>DEV Community: Rukundo Kevin</title>
      <link>https://dev.to/rukundokevin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rukundokevin"/>
    <language>en</language>
    <item>
      <title>Using Git aliases to improve your productivity.</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Mon, 08 May 2023 11:00:49 +0000</pubDate>
      <link>https://dev.to/rukundokevin/using-git-aliases-to-improve-your-productivity-8gn</link>
      <guid>https://dev.to/rukundokevin/using-git-aliases-to-improve-your-productivity-8gn</guid>
      <description>&lt;p&gt;Git is a powerful tool but can be challenging to learn and remember commands for frequent use.&lt;/p&gt;

&lt;p&gt;This is where Git alias comes in handy, Git aliases are user-defined shorthand for a sequence of commands that can be easily executed by typing a short name, which gets translated into the full command. &lt;/p&gt;

&lt;p&gt;They are of 2 types. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git aliases and &lt;/li&gt;
&lt;li&gt;Shell Aliases&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating Git Aliases
&lt;/h2&gt;

&lt;p&gt;open ~/.gitconfig in your favorite editor- for my case VSCode.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;code ~/.gitconfig&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Then add your alias.&lt;/p&gt;

&lt;p&gt;Before creating your alias, it is important to ensure that it does not conflict with any existing git commands, as this can cause issues.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[alias]
    s = status -s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can just type &lt;code&gt;git s&lt;/code&gt; to view your git status.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Aliases
&lt;/h3&gt;

&lt;p&gt;Here are some of Aliases that use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    s = status
    cnv = commit --no-verify
    cane = commit --amend --no-edit
    aa = add .
    p = push
    pf = push --force
    la = log --oneline --decorate --graph --all
    l = log --oneline --decorate --graph
    rl= ref log
    la = "!git config -l | grep alias | cut -c 7-"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But these are just a few which are useful for me, if you need to explore more &lt;a href="https://www.durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/"&gt;Must Have Git Aliases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On&lt;/p&gt;

&lt;h2&gt;
  
  
  Shell Aliases
&lt;/h2&gt;

&lt;p&gt;Unlike Git Aliases, Shell alias are stored in ~/.bashrc or ~/.zshrc&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Shell aliases.
&lt;/h3&gt;

&lt;p&gt;open ~/.zshrc or ~/.bashrc in your editor.&lt;br&gt;
Then add your alias in this format.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias gs='git status -s'&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
So, when you are going to check, just write gs without the Git prefix.&lt;/p&gt;

&lt;p&gt;One thing to take into account though before creating your alias is to make sure that your alias doesn't collide with the already existing git command which can mess &lt;br&gt;
Hope Aliases makes your development more productive and faster.&lt;br&gt;
If you find the content useful, you can follow me on &lt;a href="https://github.com/rukundo-kevin"&gt;Github &lt;/a&gt; or &lt;a href="https://twitter.com/rukundokevin_"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;References.&lt;br&gt;
&lt;a href="https://gist.github.com/mwhite/6887990"&gt;https://gist.github.com/mwhite/6887990&lt;/a&gt;&lt;br&gt;
&lt;a href="https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases"&gt;https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>productivity</category>
      <category>shell</category>
      <category>beginners</category>
    </item>
    <item>
      <title>GitHub Action: With Coveralls</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Tue, 07 Mar 2023 11:29:27 +0000</pubDate>
      <link>https://dev.to/rukundokevin/coveralls-with-github-action-4f25</link>
      <guid>https://dev.to/rukundokevin/coveralls-with-github-action-4f25</guid>
      <description>&lt;p&gt;In the previous articles, we created a GitHub Action workflow for one or multiple NodeJS project.&lt;/p&gt;

&lt;p&gt;Today, we are going to go through the steps required to generate code coverage badge using &lt;a href="https://coveralls.io/" rel="noopener noreferrer"&gt;coveralls&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Connect Coveralls with GitHub&lt;/strong&gt; Go to Coveralls and Under "Add repo", add the repository you want to include.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notice that with the free tier, the repository has to be public.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 : Add the test coverage script&lt;/strong&gt; &lt;br&gt;
If you use jest to run your tests, you can run jest --coverage to create a coverage report but if you are using another testing framework like Mocha, you can use &lt;a href="https://istanbul.js.org/" rel="noopener noreferrer"&gt;nyc&lt;/a&gt;the Istanbul cli.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "test": "mocha --recursive --require @babel/register",
    "test-coverage": "nyc npm test &amp;amp;&amp;amp; nyc report --reporter=text-lcov"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;--recursive&lt;/em&gt; option looks for tests in subdirectories recursively&lt;br&gt;
&lt;em&gt;--reporter=lcov&lt;/em&gt; means it will create a ./coverage/lcov.info to save the coverage results. We only need to the results on the CI pipeline, if you run this command locally, you can safely gitignore or delete the results again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Add test coverage to our CI workflow&lt;/strong&gt;&lt;br&gt;
So we will replace the &lt;em&gt;npm run test&lt;/em&gt; in our previous workflow with &lt;em&gt;npm run test-coverage&lt;/em&gt; and another step to the workflow&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Send coverage report to Coveralls
    - name: Coveralls
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the new workflow will look like this,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This workflow will do a clean install of node dependencies, build the source code and run tests
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: CI Pipeline

# trigger build when pushing, or when creating a pull request
on: [push, pull_request]

jobs:
  build:

    # run build on latest ubuntu
    runs-on: ubuntu-latest

    steps:
    # this will check out the current branch (https://github.com/actions/checkout#Push-a-commit-using-the-built-in-token)
    - uses: actions/checkout@v3
    # installing Node
    - name: Use Node.js 16.16.0
      uses: actions/setup-node@v3
      with:
        # this will use the latest Node 16 version
        node-version: 16.16.0
    # install dependencies using clean install to avoid package lock updates
    - run: npm ci
    # build the project if necessary
    - run: npm run build --if-present
    # finally run the tests
    - run: npm run coverage

    # Save coverage report in Coveralls
    - name: Coveralls
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We used Coveralls' GitHub Action which can be found &lt;a href="https://github.com/marketplace/actions/coveralls-github-action" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note that GITHUB_TOKEN is automatically passed and does not have to be configured by you in any way. Since our GitHub account is linked with Coveralls, there is also no additional setup necessary to authenticate your Coveralls account.&lt;/p&gt;

&lt;p&gt;Now commit &amp;amp; push your changes and wait for the build to finish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Adding the badge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sign in to coveralls and navigate to your repository. and click on upper embed in badge tab. &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%2Fntszyxmgeud1sum9aso0.jpg" 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%2Fntszyxmgeud1sum9aso0.jpg" alt="Coveralls test badge"&gt;&lt;/a&gt;&lt;br&gt;
 Copy the Markdown, go and paste it in your repo's README.&lt;/p&gt;

&lt;p&gt;After all that you should be able to see your coverage badge like this one( Hope your coverage a higher than 70 )&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%2F8ng6lm8r5hygx1tg5hip.jpg" 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%2F8ng6lm8r5hygx1tg5hip.jpg" alt="Coverage results"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all there is to it. Now all that's left is to set up the CD workflow. &lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://github.com/rukundo-kevin" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>testing</category>
      <category>devops</category>
      <category>github</category>
    </item>
    <item>
      <title>GitHub Actions: Building and testing multiple NodeJS versions with one action</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Tue, 07 Mar 2023 10:19:19 +0000</pubDate>
      <link>https://dev.to/rukundokevin/github-actions-building-and-testing-multiple-nodejs-versions-with-one-action-1dhk</link>
      <guid>https://dev.to/rukundokevin/github-actions-building-and-testing-multiple-nodejs-versions-with-one-action-1dhk</guid>
      <description>&lt;p&gt;In the &lt;a href="https://dev.to/rukundokevin/github-actions-setting-up-ci-for-a-node-project-51l1"&gt;previous article&lt;/a&gt; we set a node project with GitHub Actions.&lt;/p&gt;

&lt;p&gt;Now we are going to build and test for multiple NodeJS version in one action, because it sometimes important to build and test your software with multiple versions of NodeJS, e.g. to cover backward compatibility or to test against all available LTS releases.&lt;/p&gt;

&lt;p&gt;Sounds fun --- let's get to it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This workflow will do a clean install of node dependencies, build the source code and run tests
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: CI Pipeline

# trigger build when pushing, or when creating a pull request
on: [push, pull_request]

jobs:
  build:

    # run build on latest ubuntu
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.x, 18.x]
    steps:
    # this will check out the current branch (https://github.com/actions/checkout#Push-a-commit-using-the-built-in-token)
    - uses: actions/checkout@v3
    # installing Node
    - name: Use Node.js 16.16.0
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
    # install dependencies using clean install to avoid package lock updates
    - run: npm ci
    # build the project if necessary
    - run: npm run build --if-present
    # finally run the test
    - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that commit &amp;amp; push your work and head over to action section of your repo to view all executed workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F8si612z5jyhuwvwhk0yc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F8si612z5jyhuwvwhk0yc.jpg" alt="Workflow for multiple Node Versions" width="588" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next article we will add coveralls to view code coverage badge.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>GitHub Actions: Setting up CI for a Node project</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Tue, 07 Mar 2023 10:00:35 +0000</pubDate>
      <link>https://dev.to/rukundokevin/github-actions-setting-up-ci-for-a-node-project-51l1</link>
      <guid>https://dev.to/rukundokevin/github-actions-setting-up-ci-for-a-node-project-51l1</guid>
      <description>&lt;p&gt;CI/CD (Continuous Integration/Continuous Delivery/Development) is now an essential part of all kind of software projects. Today I am going to work you through setting up CI/CD with GitHub Actions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up CI&lt;/strong&gt;&lt;br&gt;
To use a GitHub action for building your repository at each push (on all branches), all you have to do is to place a YAML file under .github/workflows and commit it with your repo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir .github
cd .github
mkdir workflows
cd workflows
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the created &lt;code&gt;.yml&lt;/code&gt; file, Add the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This workflow will do a clean install of node dependencies, build the source code and run tests
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: CI Pipeline

# trigger build when pushing, or when creating a pull request
on: [push, pull_request]

jobs:
  build:

    # run build on latest ubuntu
    runs-on: ubuntu-latest

    steps:
    # this will check out the current branch (https://github.com/actions/checkout#Push-a-commit-using-the-built-in-token)
    - uses: actions/checkout@v3
    # installing Node
    - name: Use Node.js 16.16.0
      uses: actions/setup-node@v3
      with:
        # this will use the latest Node 16 version
        node-version: 16.16.0
    # install dependencies using clean install to avoid package lock updates
    - run: npm ci
    # build the project if necessary
    - run: npm run build --if-present
    # finally run the test
    - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this workflow basically does is,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checkout the branch&lt;/li&gt;
&lt;li&gt;install node (on ubuntu)&lt;/li&gt;
&lt;li&gt;install the dependencies of your project and build it if necessary&lt;/li&gt;
&lt;li&gt;finally, run the tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comments are added on every line explaining the setup.&lt;/p&gt;

&lt;p&gt;After! Commit &amp;amp; push your work and head over to the Actions section of your repo where you can see all executed workflows…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tQcyBLF4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rpu1iqtk1mpov5uv4v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tQcyBLF4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rpu1iqtk1mpov5uv4v2.png" alt="GitHub Action execution" width="880" height="347"&gt;&lt;/a&gt;&lt;br&gt;
And Click on the workflow to view detailed results&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--khAMpy_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dx1nv85k2fg24fd0ehc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--khAMpy_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dx1nv85k2fg24fd0ehc3.png" alt="Image description" width="683" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And Voila, you have a working GitHub Action workflow now.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/1BFEEIo4h1BuTH8eqP/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1BFEEIo4h1BuTH8eqP/giphy.gif" width="484" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>githubactions</category>
      <category>coveralls</category>
      <category>node</category>
    </item>
    <item>
      <title>Making it through Andela Technical Leadership Program(ATLP).</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Wed, 22 Feb 2023 16:38:10 +0000</pubDate>
      <link>https://dev.to/rukundokevin/my-atlp-journey-58o7</link>
      <guid>https://dev.to/rukundokevin/my-atlp-journey-58o7</guid>
      <description>&lt;p&gt;The ATLP(Andela Technical Leadership Program) is a 9 month bootcamp for university graduates who want to get into coding in Rwanda. In this blog, I'll be sharing my experiences surrounding the program and some tips that will hopefully help you gain some insight into it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fcx8ktbwly5cxauvje33z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fcx8ktbwly5cxauvje33z.png" alt="ATLP IMAGE" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to be residing in Rwanda during the whole bootcamp.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Willing to commit 30 Hours per week (6 hours per day)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Application process*&lt;br&gt;
Applications to ATLP opens once a year - in October to November. You'll get 2 weeks to submit your application.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Complete the application form&lt;/strong&gt;&lt;br&gt;
The first step is to complete the application form which is usually on GlassDoor, which I did in October, 2021.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complete the technical assessment&lt;/strong&gt;&lt;br&gt;
After completing the application you're required to complete a technical assessment on HackerRank which test your problem solving capabilities with question in HTML, CSS, JS and logic. I completed the assessment and my codes passed all the tests. &lt;br&gt;
I was given a simple project to complete before the interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Technical Interview&lt;/strong&gt;&lt;br&gt;
If you pass the technical assessment you are invited to an interview. During my interview, I was asked about how I developed the project I was given and given a challenge which I also did.&lt;/p&gt;

&lt;p&gt;After a week after completing the interview I received the acceptance email which was delightful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fklhjz9zn3z53s7xe530x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fklhjz9zn3z53s7xe530x.png" alt="ATLP acceptance email" width="800" height="410"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Experience ✨&lt;/strong&gt;&lt;br&gt;
After being accepted, we were onboarded and given the timeline of the program. The bootcamp was to be divided into 3 sections.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core Concepts&lt;/strong&gt; (2 month): Where trainees would learn basic web technologies, version control and best practices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Projects&lt;/strong&gt; (3 month ): Where trainees who were able to progress from the previous phase, would collaborate to develop a project using PERN(PostgreSQL, Express, React and NodeJS) stack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apprenticeship&lt;/strong&gt; (3 Month ): Lastly, progressed trainees would be assigned to local and international companies for internship. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1. Core Concepts&lt;/strong&gt;&lt;br&gt;
We started core concepts where we learnt using Figma, Trello, Git and GitHub but I was lucky because I was already familiar with everything so it was easy for to progress to the next phase.&lt;br&gt;
We were required to build a personal website using the skills we have acquired which can be found &lt;a href="http://www.rukundokevin.codes" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Team Projects&lt;/strong&gt;&lt;br&gt;
In the second phase I collaborated with 4 other trainees to build accommodation booking website using PERN Stack. &lt;/p&gt;

&lt;p&gt;During this phase I knew some of the things but It was my first time collaborating with a lot of people so it was challenging but luckily our Manager and Team Lead were helpful and helped us. &lt;/p&gt;

&lt;p&gt;All 5 of us progressed to the next phase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.  Apprenticeship&lt;/strong&gt;&lt;br&gt;
After team projects, I was placed on an internal project because I was student and couldn't be assigned to external company.&lt;/p&gt;

&lt;p&gt;I was onboarded on the projects trainees from other cohorts were working on, a website for education institutions to record and track student or trainee performance called DevPulse(&lt;a href="https://metron-devpulse.vercel.app" rel="noopener noreferrer"&gt;https://metron-devpulse.vercel.app&lt;/a&gt; ).&lt;/p&gt;

&lt;p&gt;During this phase I when I met the real challenge as we were using GraphQl, TypeScript, Nexus most of  which I was unfamiliar with. But with the help from fellow trainees and Manager I was able to familiarize myself with different tools and concepts and finished the last phase.&lt;/p&gt;

&lt;p&gt;Thank you for reading! I hope this was worth your time and provided you with useful insights. Please feel free to reach to me if you have any queries (or if you'd simply like to connect!) via &lt;a href="https://www.linkedin.com/in/rukundokevin" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. I'll be happy to help! Good luck!&lt;/p&gt;

</description>
      <category>welcome</category>
    </item>
    <item>
      <title>Open Source internships for students</title>
      <dc:creator>Rukundo Kevin</dc:creator>
      <pubDate>Thu, 26 Jan 2023 05:48:20 +0000</pubDate>
      <link>https://dev.to/rukundokevin/open-source-internships-for-students-1i9c</link>
      <guid>https://dev.to/rukundokevin/open-source-internships-for-students-1i9c</guid>
      <description>&lt;p&gt;We just went into the holiday and my friends were looking for internships which made me think that there might be a lot of people out there also looking for such good opportunities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I want internship in the summer, it could be valuable usage of my time&lt;/p&gt;

&lt;p&gt;I want to get into opensource but I am a beginner.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, without further ado, Here is a list of some internship opportunities, that might be of interest to you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opportunities in Rwanda&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Duration&lt;/th&gt;
&lt;th&gt;Stipend&lt;/th&gt;
&lt;th&gt;Timeline&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://andela.com/engineers/technical-leadership-program-rwanda/" rel="noopener noreferrer"&gt;Andela Technical Leadership Program&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;9 Months&lt;/td&gt;
&lt;td&gt;No- 25000 RWF for Internet&lt;/td&gt;
&lt;td&gt;Application from Octo - Dec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.solvit.africa/opportunities" rel="noopener noreferrer"&gt;Solvit Africa Bootcamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3 Months&lt;/td&gt;
&lt;td&gt;No- 60000 Rwf For Transport&lt;/td&gt;
&lt;td&gt;Application in Jan, May and August.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.zatec.io/" rel="noopener noreferrer"&gt;Zatech Bootcamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;9-12 Months&lt;/td&gt;
&lt;td&gt;Yes - 100 000RWF - 150 000RWF&lt;/td&gt;
&lt;td&gt;February&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aipi.rw/tech-upskill/" rel="noopener noreferrer"&gt;Klab Tech Upskill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;6 Months&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.google.com/forms/d/e/1FAIpQLScImgyHmGKeb5fTlSIe1KuFDEFptre85lUPwyS4c9O5fA4Otw/viewform" rel="noopener noreferrer"&gt;The Gym Rwanda &amp;amp; Ojemba &lt;/a&gt;&lt;/td&gt;
&lt;td&gt;6 Month&lt;/td&gt;
&lt;td&gt;Yes - 120 000 Rwf - 150 000RWF&lt;/td&gt;
&lt;td&gt;23rd of April 2023 -&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;International opportunities&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Duration&lt;/th&gt;
&lt;th&gt;Stipend&lt;/th&gt;
&lt;th&gt;Timeline&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://summerofcode.withgoogle.com/" rel="noopener noreferrer"&gt;Google Summer of Code&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;10-22 Weeks (flexible)&lt;/td&gt;
&lt;td&gt;Yes - Need based (15000$ - 3000$)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developers.google.com/open-source/gsoc/timeline" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://fellowship.mlh.io/" rel="noopener noreferrer"&gt;MLH Fellowship&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;12 Weeks&lt;/td&gt;
&lt;td&gt;Yes - 5000$&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.tfaforms.com/4956119" rel="noopener noreferrer"&gt;January 30th - September 8th (3 batches year round)&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.gnome.org/outreachy/" rel="noopener noreferrer"&gt;Outreachy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3 Months&lt;/td&gt;
&lt;td&gt;Yes - 7000$&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.gnome.org/outreachy/" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://wiki.lfnetworking.org/display/LN/LFN+Mentorship+Program" rel="noopener noreferrer"&gt;LFN Mentorship Program&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;12 Weeks FT, 24 Weeks PT&lt;/td&gt;
&lt;td&gt;Yes- Need based (3000$ - 6000$)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wiki.lfnetworking.org/display/LN/LFN+Mentorship+Program#LFNMentorshipProgram-2023ProgramTimeline*" rel="noopener noreferrer"&gt;March 1st - May 31st , June 1st - August 31st , September 1st - November 30th&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://lfx.linuxfoundation.org/tools/mentorship/" rel="noopener noreferrer"&gt;LFX Mentorship Program&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;12 Weeks&lt;/td&gt;
&lt;td&gt;Yes- Need based (3000$ - 6600$)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://wiki.lfnetworking.org/display/LN/LFN+Mentorship+Program#LFNMentorshipProgram-2023ProgramTimeline*" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://developers.google.com/season-of-docs/" rel="noopener noreferrer"&gt;Season of Docs&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;6 Months&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developers.google.com/season-of-docs/docs/timeline" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.x.org/wiki/XorgEVoC/" rel="noopener noreferrer"&gt;The X.Org Endless Vacation of Code (EVoC)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3 - 4 Months&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://summerofcode.withgoogle.com/how-it-works/#timeline" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://fossasia.org/internship" rel="noopener noreferrer"&gt;FOSSASIA Internship Programme&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2 - 6 Months&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://fossasia.org/internship" rel="noopener noreferrer"&gt;Timeline&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://wiki.linuxfoundation.org/lkmp" rel="noopener noreferrer"&gt;Linux Kernel Mentorship Program&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;12 Weeks Full-time, 24 Weeks Part-time&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.linuxfoundation.org/lfx/mentorship/mentorship-program-timelines" rel="noopener noreferrer"&gt;March 1st - May 31st , June 1st - August 31st , September 1st - November 30th&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>tooling</category>
      <category>llm</category>
      <category>productivity</category>
      <category>integrations</category>
    </item>
  </channel>
</rss>
