Thank you, Purepoint!

As I marked my last working day at Purepoint on August 31st, I thought of sharing my humble gratitude towards the company reflecting some of the learnings I gained over the last few months. Purepoint is a remote-first software development company based out of UK, and I was working with them since November 2017 as a front-end web developer. Although I was motivated to continue my work with the company, I had made a tough decision to quit the company during the last week of July. I wanted to focus more on projects involving different skill-sets from the ones that I was working on with Purepoint.

In spite of Purepoint being a remote-first company, We handled the communication and project planning flawlessly. We used Slack, Zoom and Hangouts for communication. Project management was done using Jira and Trello. We used CI (Continuous Integration) tools to check code quality, and every Pull Request was reviewed thoroughly before a merge. Everyone's positive attitude towards work fostered constructive conversations over slack. On the last Friday of the month, we had a virtual company wide catch-up, during which we discussed ongoing and upcoming projects in brief. It was very motivating to see the progress and success of projects undertaken by the company.

Of many things learnt during the last few months at Purepoint, One of the critical skill I acquired was to maintain a product-based website is managed using Scrum. Scrum is a methodology of developing a product ( or a site) through a series of iterations, known as a “Sprint”. Typically, each sprint is fixed somewhere within two weeks to one month. Sprint Planning meeting finalises the backlog of work planned for that sprint. Daily stand-ups help to communicate the tasks currently undertaken by team members. At the end of Sprint, Retrospective meeting is held to analyse success points and the area for improvement (for next sprint).

I predominantly worked on three technologies with Purepoint: SCSS, Jekyll and Ruby on Rails.

SCSS

At Purepoint, I worked exclusively on SCSS. SCSS is a ruby based preprocessor for CSS. That means SCSS gives some features which are not natively available through CSS. Once a user writes an SCSS code, it has to be transpiled to CSS code (which can then be used by browsers to render the web-pages). Writing SCSS makes CSS code maintainable, easy to understand and curbs code-repetition. The following code snippet demonstrates some of my favourite features of SCSS:

    
    
        // 1. Nesting
        .parent-class{
            .child-class{
               rule:value
             }
        }
        // The above code transpiles to following CSS code:
        .parent class .child-class{
            rule:value 
        }
        
        // ------- //

        // 2. Variables
        $colour-red: #f00;
        .some-class{
            color: $colour-red;
        }
        
        // ------- //

        // 3. Maths with Variables
        $base-font-size: 16px;
        .some-class{
            width: $base-font-size*1.5
        }  
        
        // ------- //

        // 4. Special RGBA and HSL functions
        $color-black: #000;
        $color-white: #FFF;        
        .some-class{
            background-color: rgba($color-black,0.4);
            color: darken($color-white, 30%);
        }
        
        // ------- //

        // 5. Functions/Mixins and No-vendor prefixes
        // For this example, a function calls another function to achieve a purpose
        @mixin crossBrowser($property, $val){
          -webkit-#{$property}: $val;
          -moz-#{$property}: $val;
          -o-#{$property}: $val;
          #{$property}: $val;
        }
        
        @mixin transform($val){
            @include crossBrowser(transform, $val)
        }
        
        .some-class{
            @include transform(translateY(-50%));   
        }
    

SCSS is a superset of CSS and all the CSS written can directly be converted to SCSS by changing the extension. That is usually the first step in transpiling the vanilla CSS to SCSS. Then the developer can focus on utilising and enriching the CSS code by using SCSS features. SCSS also allows CSS-code to be split into multiple files and thereby facilitating a higher level of code-organisation.

Jekyll

Jekyll is a static website generator built on Ruby. Instead of creating a website with static HTML files, it is much easier to create Jekyll components and let it do its job of converting data and components to static HTML files. Jekyll can also take care of running automation tasks like SCSS conversion, setting up localhost, minification of CSS/JS files, and so on.

Ruby on Rails

Ruby on Rails or rails is a server-side framework based on Ruby Language. Embedded Ruby (ERB) template is a front-end templating engine used in most of the Rails Projects. My work was mostly involved in enhancing some of the animations and front-end code for the website.

I would I would like to end this post by thanking all the members of Purepoint and wishing them a successful journey ahead.
Cheers!