Skip to content

Instantly share code, notes, and snippets.

@bmuthoga
Last active April 21, 2020 21:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmuthoga/3394611ea9b5fdfa76825b9c3a1a758d to your computer and use it in GitHub Desktop.
Save bmuthoga/3394611ea9b5fdfa76825b9c3a1a758d to your computer and use it in GitHub Desktop.
Resume for Batian Muthoga

Batian Muthoga

Phone: (+254) 722 675 168

Email: bmuthoga@gmail.com

GitHub: @bmuthoga

LinkedIn: linkedin.com/in/batianmuthoga

Summary

Batian is a Full Stack Software Developer with 4 years of active experience as a Software Engineer. He is skilled in JavaScript, React.js, React Native, Node.js and Agile Development. Batian finds excitement in writing code, automating processes, and building solutions to problems.

Education

Major: BSc. Information Technology (2nd Class Honors, Upper Division)

University: Jomo Kenyatta University of Agriculture and Technology (JKUAT)

Year: September 2012 – June 2016

Location: Juja, Kenya

Work Experience

Software Engineer

2017 - 2020

Andela (Nairobi, Kenya)

  • Aura Health (aurahealth.io): a digital wellness ecosystem that provides personalized content & community from therapists & coaches around the world.
    • Worked on the React Native mobile app, contributing to building a mobile platform to be used by both iOS and Android users.
    • Constantly practised context switching in a fast paced environment, switching from delivering bug fixes to delivering new features, ensuring timely deliverables and a robust product.
    • Worked closely with the lead product designer on building new features and redesigning existing ones, following specified design mockups and style guides.
    • Implemented code refactoring, leading to improved code readability and reduced complexity, and consequently improved source code maintainability.
    • Utilized Mixpanel and A/B testing, leading to improved user engagement as a result of reliable data analytics.
    • Acted as a technical team lead, providing technical support and guidance to new on-boarding members.
    • Incorporated reusable components, thereby avoiding code duplication and reducing the overall codebase bundle size.
    • Leveraged knowledge in React Native, Git, Firebase Authentication, Firebase Realtime Database, Mixpanel, Moment.JS, Reusable Components, Styled Components, Props TypeChecking, Agile/Scrum Methodology, A/ B Testing, Trello
  • Bright Parenting (getbright.com): a mobile platform that acts as a guide to great parenting, providing a tailored library of practical topics and examples to parents with children between the age of 3 and 10 years old. The product was featured on Product Hunt as the #3 Product of the Day, and recently on Parents.com's top apps and tools for parents.
    • iOS React Native Mobile App
      • Utilized Storybook, a sandbox tool for building UI components in isolation, to design the mobile components.
      • Implemented styled components, improving codebase readability and maintainability for future developers working on the codebase, as well as performance improvements.
      • Incorporated reusable components, thereby avoiding code duplication and reducing the overall codebase bundle size.
      • Integrated Redux, a state container for Javascript apps, thereby making the app’s state predictable and improving the codebase’s maintainability.
      • Worked closely with the lead design team on redesigning the overall app, following specified design mockups and style guides.
      • Constantly practised context switching in a fast paced environment, switching from delivering bug fixes to delivering new features, ensuring timely deliverables and a robust product.
      • Incorporated a card-based swiper/carousel for displaying Parenting lessons, allowing parents to swipe through bite-sized lessons.
      • Implemented in-app feature tours, highlighting app features to first-time users, as well as newly launched features to existing users, thereby providing a safeguard against confusions in the UI and enabling users to engage with the product right away.
      • Integrated progressive text loading, a form of content placeholder for text as data is loading, providing visual stimulus and loading indication to the user thereby keeping them engaged during the process.
      • Implemented internet connectivity status monitoring, informing users via snack-bar notifications upon loss of connection of their limited access to content.
      • Incorporated deep linking, allowing users to generate links for sharing in-app content that when clicked would navigate the user to the specific UI or resource that contains the shared content.
    • React Admin Dashboard
      • Built an admin dashboard to be used by the lesson creators to manage Parenting lessons displayed on the app. The dashboard ended up cutting down the time taken adding new lessons by 70%, as opposed to manually adding them into the database.
      • Integrated Apollo Client, a state management library for JavaScript apps, to interact with GraphQL queries as well as perform data caching, reducing subsequent load times.
      • Incorporated reusable components, thereby avoiding code duplication and reducing the overall codebase bundle size.
      • Incorporated reusable Higher-Order Components (HOCs), an advanced technique in React for reusing component logic, to restrict access to certain routes from unauthorized or unauthenticated users.
      • Enhanced UI/UX aesthetics by incorporating transition animations, responsive web design and dark/light theme mode switching.
      • Implemented a preview mode for the lessons, displaying them in a draggable card layout as they would appear in the mobile app. Modifying the cards’ order by dragging them would as well modify their displayed order in the mobile app.
    • Leveraged knowledge in React Native, React, Git, Github Projects, Storybook, React Apollo, Apollo Client, Mixpanel, React Navigation, Styled Components, Reusable Components, Redux, Redux Thunk, Agile/Scrum Methodology, HOCs, React Router, Props TypeChecking, SCSS
  • Wire: an open source project currently under Andela Open Source Projects, whose aim is to provide a platform that enables organization staff to report incidents that occur in the workplace to the human resource (HR) department. Wire consists of a REST API web server, a Slack bot, and a React web app, myself having worked on both the web app and the Slack bot.
    • Developed the React web app using Material Design, a design standard developed by Google for creating intuitive and beautiful products.
    • Consumed the REST API to fetch and post data that would be used on the frontend.
    • Incorporated user authentication and authorization on the frontend using Google Social Auth and JWT tokens respectively, allowing users to sign up and sign in using their Google business accounts, as well as be granted additional privileges based on their role levels.
    • Implemented state re-hydration on the web app using localStorage, improving the user’s UX by regenerating the data state upon a browser refresh, thus avoiding having the user be signed out and requiring them to sign back in to restore their session.
    • Incorporated SCSS, a CSS preprocessor, improving CSS code readability and maintenance among the dev team as the project grew bigger.
    • Integrated Redux, a state container for Javascript apps, thereby making the app’s state predictable and improving the codebase’s maintainability.
    • Implemented unit testing on both the web app and the Slack bot, thereby improving the capability of detecting software bugs at an early stage and consequently improving the quality of code.
    • Also integrated test code coverage on both the web app and the Slack bot, thereby providing a quantitative measure of the efficiency of the test implementation.
    • Incorporated reusable Higher-Order Components (HOCs), an advanced technique in React for reusing component logic, to restrict access to certain routes from unauthorized or unauthenticated users.
    • Integrated in-app notifications on the React app, including snack-bar notifications, following Google's Material UI design principles.
    • Implemented search filters, allowing users to filter out displayed incidents based on various traits such as location, status, and time period.
    • Incorporated realtime database querying as users type out incidents they’re searching for.
    • Integrated the Slack API to build a Slack bot that would be used to send notifications to both users and the dev team via Slack. End users would therefore be notified of new events concerning incidents they’re involved in while the dev team would be promptly notified of errors and exceptions as they occur on the web app. The Slack bot could also be used to report new incidents straight from Slack, rather than using the React app, providing users with alternatives and convenience.
    • Implemented customized logging of all HTTP requests made to the bot server, as well as any errors/exceptions that would occur, making the debugging process easier for developers working on the project.
    • Leveraged knowledge in React, Node.JS, Express, Slack API, Git, SCSS, Redux, Redux Thunk, React Router, localStorage, HOCs, Axios, Google Social Auth, ESLint, Material UI, JWT Tokens, Moment.JS, Jest, Enzyme, Test Coverage, Unit Testing, Mocha, Chai, NYC, Sinon, Morgan, Winston, Helmet, Pivotal Tracker
  • Lenken: a mentorship matching platform that automates the process of connecting developers with mentors thereby facilitating knowledge and skills transfer between them.
    • Built a REST API web server using Laravel/Lumen PHP framework, that would be consumed by the Angular frontend client.
    • Setup and configured automated database migrations and seeding on the server for the development environment, saving the developer’s time and workload of having to run these commands on every deployment.
    • Developed the Angular frontend app using Angular Material Design, leading to comprehensive, modern, UI components.
    • Incorporated SCSS, a CSS preprocessor, improving CSS code readability and maintenance among the dev team as the project grew bigger.
    • Incorporated user authentication and authorization using Google Social Auth and JWT tokens on the web server and Angular client respectively, allowing users to sign up and sign in using their Google-based business accounts, and enabling their sessions to be preserved based on the JWT tokens saved to localStorage.
    • Integrated Noko’s API into the server, an online time tracking software, to be used to forward logged mentorship hours thereby allowing the Lenken app to utilize Noko's advanced report generating capabilities. Users would thereby be able to log the mentorship sessions they’ve participated in and generate reports off them on their Noko accounts.
    • Integrated Slack’s API into the backend server, enabling posting of various Slack notifications, such as notifications to the dev team when an exception occurs on the system, or notifications to end users when they have been successfully matched to a mentor.
    • Implemented search filters on the client app and their controllers on the backend server, improving both the UI and UX of the platform by allowing users to filter the various skills they could search for on the platform.
    • Incorporated a ratings feature, allowing users to rate the mentorship sessions they’ve had with their respective mentors, allowing both end users and product owners access to valuable feedback for future reference.
    • Incorporated in-app notifications, pushing relevant notifications to end users as they’re using the web app.
    • Designed email templates to be used for sending email notifications to users, adhering to the official Andela design branding specifications, thereby maintaining standardization of the product brand.
    • Also implemented the sending of email notifications to users and the dev team using the designed email templates, as well as incorporating a notification preference feature, allowing users to select the type of notifications they prefer to receive, choosing from either Slack, email, in-app notifications, or a combination of two or more of them.
    • Leveraged knowledge in Laravel/Lumen, PHP, Angular, Git, Google Social Auth, Freckle API, Slack API, Eloquent ORM, Composer, Sass, Agile/Scrum Methodology, PostgreSQL, localStorage, JWT Tokens, Material Design, SCSS, Pivotal Tracker

Business Analyst | Intern

2015 - 2016

Britam Holdings Ltd. (Nairobi, Kenya)

  • Credit Life System: an ERP system for digitizing and managing credit life insurance policies and claims.
    • Was responsible for gathering system requirements for the system from relevant stakeholders, including from both management and end users.
    • Designed the information architecture for the Credit Life System, visually representing the product’s infrastructure, features, and hierarchy in a concise and easy to understand format.
    • Integrated scan uploads, allowing end users to upload claim files and policies, thereby digitizing the process.
    • Implemented report generation, enabling users to generate various reports involving credit life policies and claims made.
    • Was deeply involved in the stakeholder management processes, carrying out regular syncs, demos and stand ups over each iteration/sprint.
    • Acted as a Single Point of Contact (SPOC) to provide technical assistance to end users of the system after launch of the system to the production environment.
    • Leveraged knowledge in ASP.Net, MySQL, Subversion (SVN) version control system, Agile/Scrum Methodology

Skills

  • Programming Languages: (proficient): Javascript, HTML5, CSS (familiar): PHP, Python
  • Frameworks: (proficient): React, React Native, Node.js, Express, D3.js (familiar): Angular, Ionic, Django/ Flask, Laravel/Lumen
  • Databases: (proficient): MongoDB, PostgreSQL (familiar): SQLite
  • Version Control: (proficient): Git (familiar): Subversion (SVN)
  • Cloud: (proficient): Firebase, Digital Ocean (familiar): Heroku
  • UI/UX Tools: (proficient): Sketch, Balsamiq Mockups, Adobe XD, Zeplin (familiar): Figma, Invision
  • Build/CI: (proficient): CircleCI (familiar): Travis CI
  • Testing Tools: (proficient): Jasmine, Enzyme (familiar): Jest
  • Work Management Tools: (proficient): Asana, Trello, Pivotal Tracker, Github Projects Board

Certifications

TypeScript with Modern React

Certificate of Completion

Udemy

Introduction to TypeScript

Certificate of Completion

Udemy

Pluralsight JavaScript IQ

Pluralsight

React Context and Hooks Tutorial

The Net Ninja

The Advanced Web Developer Bootcamp

Certificate of Completion

Udemy

The Coding Interview Bootcamp: Algorithms + Data Structures

Certificate of Completion

Udemy

React for Beginners

Udemy

The Complete React Native and Redux Course

Udemy

Angular 2: Getting Started

Pluralsight

Referees

Janet Maingi

Country Director

Andela

janet.maingi@andela.com

Elizabeth Kibabu

Director of People

Andela

elizabeth.kibabu@andela.com

Jack Maina

Group Chief Operating Officer

Britam

jmaina@britam.com

Hobbies and Interests

Puzzles, Excursions / Hiking, Video Games, Mindfulness, Volunteering to various works of charity, Volunteering to teach programming to children, Morning group workouts, Baking, Orchestral Music, Open Source Projects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment