Asad Ullah

asad.u@outlook.com · (+92)-334-1366328

I am a Staff Software Engineer at 10Pearls having experience of working on several large scale web products based on MERN (MongoDB, ExpressJS, ReactJS, NodeJS) stack & Golang. I also have moderate level expertise on AWS based technologies & cloud development. Over time, I have developed skills to translate business processes into software solutions. My ability to adapt to different stacks have made me comfortable with several technologies and I also have exposure of working with both business and technical stakeholders in agile environments. TDD is what I believe [most of the times] is the way to write safe and robust code.


Academic Summary

Education

Bachelors in Computer Science from IBA Karachi

Professional Courses
  • Ultimate Go Programming by William Kennedy (O'Reilly)
  • Java Design and Architecture Patterns by John Purcell (Udemy)
  • MongoDB Data Modeling (MognDB Univeristy)
  • Deploying Containerized Applications Technical (Redhat Inc.)
  • Modern React with Redux by Stephen Grider (Udemy)
  • Web Developer Bootcamp by Colt Steele (Udemy)

Skills

Programming Languages & Tools
  • JavaScript / TypeScript / ES5 & ES6+
  • NodeJS / ExpressJS / NestJS
  • ReactJS / Redux / Webpack
  • Golang
  • RESTful APIs / GraphQL APIs
  • Mocha / Chai / Enzyme / Jest
  • Cypress
  • MySql / PostgreSQL
  • MongoDB / DynamoDB
  • SocketIO
  • Redis / Docker
  • Test Driven Development (TDD)
  • Micro-component driven FE architecture
  • Micro-services driven BE architecture
  • Unix System Familiarity
  • Git / Jira / Basecamp / Confluence
  • Scrum / Agile / Kanban

Interests

Apart from making software, I enjoy video games and football. I like to watch movies and read books sometimes. I spend a large amount of my free time studying about web development and cloud computing.


Projects & Domain Experience

EdTech Platform — Web Apps + Serverless Systems

Tech Stack
  • ReactJS (with typescript) & Redux ToolKit (RTK)
  • NodeJS (with typescript) & PostgreSQL
  • AWS (Multiple services)
  • AWS CDK
  • Jest for unit tests
  • Cypress (Integration Tests)
  • nx (monorepo management tool) & Webpack
  • Codefresh for CI
Outline

A EdTech platform which connects higher education institutes with the high schools and students via various portals. This engagement was mostly focused on serverless areas of the client's system to migrate functionalities from monolith to serverless services. Feature enhancements in existing web applications was also part of the job.

Role

FullStack Engineer

Project Challenges
  • Working Remotely with team which involves collaborations and daily scrums.
  • Migrated existing features from PHP monolith to serverless services on AWS
  • Implemented feature toggle (Launch Darkly) functionality in serverless apps using a caching store mechanism to minimize cold starts.
  • Feature enhancements in existing web applications according to new school year requirements.
  • Investigating and developing scripts to do rollover of data from previous year to upcoming school year.
  • Developing CI pipelines using Codefresh to ensure smooth code integration.
  • Ensured complete type safety using advanced concepts of TypeScript (utilities, generics etc.)
  • Regularly update the documentations on confluence with latest app flows.
  • Attending sprint ceremonies like sprint planing and retrospective with remote teams to increase agility & productivity.

Education Company Core Platform — Module Modernization

Tech Stack
  • ReactJS (with typescript) & Redux ToolKit (RTK)
  • NodeJS (with typescript) & PostgreSQL
  • AWS
  • Launch Darkly
  • Jest for unit tests
  • Cypress (Integration Tests)
  • nx (monorepo management tool) & Webpack
  • antD UI library
  • Micro-component driven frontend architecture
  • Codefresh for CI & fluxCD for CD
  • Kubernetes for backend deployment
Outline

Project was to modernize some critical modules of client's platform. This migration involved usage of micro frontend architecture & proxy patterns to ensure that rest of the modules and systems stay intact. It also involved some features in the newer version of the modules. From setting up the pipelines to micro-component architecture, I was working as lead engineer with dev team who implemented and migrated the feature set in newer technology.

Role

FullStack Engineer

Project Challenges
  • Worked closely with product owners and architects to derive the solutions as per requirements
  • Developed and maintained monorepo using nx to keep independently deployed modules in the same repository.
  • Developed backend system using TS+Node with postgre as data store to house new backend functionality.
  • Implemented middlewares in Gateway service to implement logging and request IDs for all incoming requests
  • Implemented the micro frontend architecture to enable loading the new module UI in existing PHP plateform (using a host PHP component)
  • Created CI pipeline using CodeFresh to ensure continuous integration & deployment of UI artifects. I Worked with DevOps team to create CD pipeline and ensured CD using FluxCD for backend service artifect.
  • Fixing reported GDs (general defects) by end users in legacy PHP system.
  • Being part of Scrum planning and ticket grooming sessions for preparing the sprint.
  • Ensuring the unit tests are updated and code coverage (95%+ for frontend & 100% for backend) requirements are met.
  • Implemented feature toggles using launch darkly to gradually roll out the newer version of the system.

Education Connect Platform — Web Application & Backend Services

Tech Stack
  • ReactJS & Redux
  • ExpressJS & Apollo Server
  • Mocha & Chai & Enzyme (Karma Test Runner)
  • Cypress (Integration Tests)
  • Babel & Webpack
  • Sementic React UI
  • ElasticSearch & MongoDB
Outline

The product included intuitive portals for higher ed representatives and high schools to schedules events, fairs and representative visits. It also included a functionality for students to target the majors and institutes of their choice to pursue higher education. ​Project was to make the frontend clients (React Apps) WCAG 2.0 compliant. Project scope also included Code cleaning along with new feature implementation in the backend powered by GraphQL, MongoDB and ElasticSearch.

Role

FullStack Engineer

Project Challenges
  • Working Remotely with team which involves collaborations and daily scrums.
  • Make the frontend portals compliant with accessibility standards I.e. WCAG 2.0 AA.
  • Writing and updating the unit tests using Mocha & Chai and Enzyme for UI tests
  • Writing Integration tests using Cypress to make the testing process more automated
  • Removing feature flags from frontend and backend applications I.e. UI components, backend queries, GraphQL queries.
  • Implemented centralized logging for all the packages present in the monorepo.
  • Making the third party UI components focus order compliant across browsers.
  • Ensuring the unit tests are updated and codecov (92%+ for frontend & 100% for backend) requirements are met.
  • Implementing features in backend spanning over multiple backend services i.e. Elastic Search service, mongo service.
  • Being part of Scrum planning and ticket grooming sessions for preparing the scrum.

HR Travel Booking Platform — Web Application

Tech Stack
  • ReactJS (with TypeScript) & Redux
  • antD React UI
  • Mocha & Chai & Enzyme
  • Google Places API
  • Babel & Webpack
  • Sharepoint (backend) & SPFX framework for frontend
  • JIRA
Outline

A web platform which enables the employees to making the requests for travel booking reimbursements and apply leaves. The managerial staff is thus responsible to process those requests and applications. Since it involved multiple level of managerial hierarchy to approve or reject, role based authentication was used to decide the UI components which needed to be served.

Role

Frontend Engineer

Project Challenges
  • Introducing Redux setup for state management in sharepoint react webpart (SPFX).
  • Using Redux selectors to keep the react components reusable and data agnostic
  • Types for third party components to ensure the code quality.
  • Being part of Scrum planning and ticket grooming sessions for preparing the scrum.
  • Use of Google Places API to get real location end points for source destination.
  • Enabling tree shaking and bundle splitting to reduce the webpart bundle size.
  • Writing unit tests to ensure coverage stays 70% plus.
  • Attending sprint grooming sessions and retrospective meetings to improve the process of estimates.
  • Writing gulp tasks to transpile the ES7+ features

Urdu OCR - Urdu Text Recognition

Tech Stack
  • Python
  • Tesseract Engine
  • JIRA
Outline

​Research project for developing a POC (proof of concept) which detects different Urdu fonts. CLI tool will take an image of some written Urdu and will pass it through tesseract engine to recognize the urdu text and return in Unicode format

Role

Research Engineer

Project Challenges
  • Understanding the training process of tesseract engine for custom data sets i.e. Urdu Image Data set
  • Acquiring and cleaning of Urdu handwritten datasets.
  • Increasing accuracy of images with digital urdu print recognition (score was good for Nastaleeq Font)
  • Obtaining a good recognition score for handwritten datasets.

Telemedicine Platform — Web Application & Backend Endpoints

Tech Stack
  • AngularJS & Vanilla JS
  • NodeJS (ExpressJS) & SocketIO
  • MySQL & SQL
  • Mocha & Chai
  • Babel & Gulp
  • JIRA & BitBucket
Outline

​​A web platform which enables the medical professionals to provide medical assistance via web. Patients and hospital staff were able to schedule video call setups for the doctor to remotely inspect and prescribe. It also tracked the medical history of the patient throughout the cycle. Project was to modernize the existing appointment booking system to the latest technology and requirements with enhanced features.

Role

FullStack Engineer

Project Challenges
  • Making the calendar feature DST compliant and accurate in different DST time zones.
  • Migration of the Event Calendar to newer version of the platform.
  • Tackling the technical limitations posed by AngularJS and fullcalendar for meeting requirements.
  • Performance tuning of some FE modules to identify the resource heavy angularjs function calls to replace with custom implementations i.e. copy etc.
  • Keeping the UI same and similar to mocks and earlier design during the migration.
  • Keeping the code modular by breaking into modules and services.
  • Writing Unit tests in Mocha & Chai to meet the test coverage requirements.
  • Attending Sprint planning meetings and grooming the tickets

Messenger Marketing Platform — Web Portal & Backend Services

Tech Stack
  • NodeJS (ExpressJS)
  • SocketIO
  • ReactJS & Redux
  • Mocha & Chai
  • MongoDB & Postgre
  • Unix cron Jobs to run automated scripts
  • Gulp & Babel
  • Messenger Platform API
  • Facebook Graph API
  • WhatsApp Business API
Outline

A web portal to facilitate the E-Commerce startups and shopify / darazpk stores to enhance product reach via messenger bots. E-Commerce store will use the portal to send bulk messages, sequence messages and bot communication to enhance the Facebook page engagements with targeted users.

Role

FullStack Engineer

Project Challenges
  • Creating reusable react components for different modules & then consuming them in containers
  • Implementing webhook & the message queue to ensure smooth consumption of FB & Messenger events(Webhook setup).
  • A SQL based cron service to show aggregated KPIs and stats on the dashboard component.
  • SocketIO setup to send real time notification to web client & dashboard service.
  • Integration of platform with twitter and WordPress blogs via Webhooks.
  • Creating reusable react components for different modules & then consuming them in containers
  • Writing Unit tests in Mocha & Chai to meet the test coverage requirements.
  • Attending Sprint planning meetings and grooming the tickets

Shopping Application — Web Application + Backend

Tech Stack
  • Golang stdlib
  • Golang testing framework
  • ReactJS & Redux ToolKit (RTK)
  • PostgreSQL
  • antD UI
Outline

​​​Project was to develop a shopping platform with frontend application in React & backend written in golang. Features included role based authentication, admin panel & shopping cart.

Role

FullStack Engineer

Project Challenges
  • Doing requirement exploration meetings with client to define functional & non functional requirements.
  • Creating reusable react components for different modules & then consuming them in containers
  • Developing golang api along with data model on PostgreSQL
  • Serving the react bundle application from same golang server.
  • Using go stdlib to create middlewares i.e. logging, authentication in backend service
  • Implementing role based authentication to manage access and features of system
  • Implementing cart in the FE app and syncing it with backend service using service worker.
  • Using golang testing framework to write unit tests for apis.
  • Writing unit tests for FE react application using react-testing-library & jest

Crypto Dashboard — Backend service for FE

Tech Stack
  • Golang stdlib
  • Golang testing framework
  • Coingecko Data API
  • MongoDB
Outline

A backend service for the front end dashboard which fetches crypto coin data from CoinGecko data api and stores it in mongo store. This data is then served to front end on demand. Service is also supposed to do caching to minimize the usage of external API.

Role

FullStack Engineer

Project Challenges
  • Developing golang api along with MongoDB data modeling.
  • Doing caching and async data fetching from external api.
  • Serving the data to FE on demand.
  • Using go stdlib to create middlewares i.e. logging.
  • Using golang testing framework to write unit tests for apis
  • Automatic deployment of service using Github actions.