Wahaj Aayani, Developer in Stockholm, Sweden
Wahaj is available for hire
Hire Wahaj

Wahaj Aayani

Verified Expert  in Engineering

Software Developer

Location
Stockholm, Sweden
Toptal Member Since
November 25, 2021

Wahaj is a seasoned software engineer with over five years of experience in the software industry. He has worked with an array of companies, including some startups. From the conception of a project to the final delivery, Wahaj's been involved in every step at every level, whether front end, back end, design, architecture, development, DevOps, CI/CD, monitoring, and logging. He brings to the table expertise, lessons learned, and a skill-set that could be valuable to any business and software.

Portfolio

Volvo Car
React, Web Development, Next.js, Azure, .NET Core, PostgreSQL, Material UI...
Klarna
JavaScript, TypeScript, React, Datadog, Splunk, Bitbucket, Jira, AWS Lambda...
Red Buffer
React, Node.js, Amazon Elastic Container Service (Amazon ECS), Amazon RDS...

Experience

Availability

Part-time

Preferred Environment

Slack, Skype, Visual Studio Code (VS Code), Bitbucket, Amazon Web Services (AWS), Node.js, GitLab, GitHub, Zoom, Docker

The most amazing...

...thing I've done is an eCommerce mobile app as a back-end developer at DealSmash. Designed the system's architecture and wrote APIs to serve over 100,000 users.

Work Experience

Senior Software Engineer

2022 - PRESENT
Volvo Car
  • Developed a UI for the product catalog using Next.js and Material UI that is used by market editors internally.
  • Set up multiple Kibana dashboards to monitor system metrics and track user behavior in the product catalog UI.
  • Rewrote Volvo's internal user authentication service from Go to C# using .NET 7 MVC Core and then deployed it over to Azure Cloud using Azure pipelines and Terraform.
Technologies: React, Web Development, Next.js, Azure, .NET Core, PostgreSQL, Material UI, Kibana, Terraform

Software Engineer

2020 - 2022
Klarna
  • Migrated the code of one of our team's services from Scala to TypeScript component by component after a careful analysis. The company's business need dictates all of its stacks be in a preferred language, so I worked on this for about three months.
  • Wrote several web scrapers to maximize a KPI that seeks to provide images for a customer's purchases. It was measured in terms of enrichment coverage percentage, and we saw that this coverage rose from 70% to 80%.
  • Introduced a cache into the service, which improved overall system performance without putting additional strain on resources. One of our SLAs is to have a p99 response time of 250 milliseconds, regardless of the number of requests.
  • Migrated our services from a soon-to-be deprecated pipeline to C2C, which required some meticulous work and extensive testing. Our team was one of the first ones in the company to do so. Afterward, I assisted other teams.
Technologies: JavaScript, TypeScript, React, Datadog, Splunk, Bitbucket, Jira, AWS Lambda, Jest, Amazon API Gateway, Jenkins, Microservices, Redis, Apache Kafka, Amazon Web Services (AWS), Amazon S3 (AWS S3), Software Engineering

Senior Software Engineer

2018 - 2020
Red Buffer
  • Managed and designed a scalable architecture for a sports-related mobile application using NestJS and React Native. Used RabbitMQ and web sockets for real-time commentary. Set up CI/CD pipelines to deploy over AWS ECS and monitored on Elastic Stack.
  • Built a serverless web tool for designing custom charts in Adobe XD. The front end was in Vue.js 2.0, while the parse-server was for storing and managing data. The element was used as the UI library. Demo: https://odinchart.com.
  • Developed an AI-based content management platform using React, where a user can read and upload PDF reports. The back end of the application was in Express.js, AWS S3 was used for object storage, and Elasticsearch was used as the search engine.
Technologies: React, Node.js, Amazon Elastic Container Service (Amazon ECS), Amazon RDS, Docker, GitLab, GitLab CI/CD, TypeScript, NestJS, AWS Fargate, JavaScript, Vue, Elasticsearch, Kibana, Elastic APM, Beats, Amazon S3 (AWS S3)

Full-stack Developer

2017 - 2018
DealSmash
  • Designed the architecture and wrote APIs for the company's mobile application. The tech stack was Express.js and deployed onto AWS Elastic Beanstalk. The app had over 100,000 users.
  • Designed an FSM pipeline with Machina.js for when a user uploads a receipt via the app. First, the receipt goes through OCR from a cloud service (ABBY), and then it's manually vetted by the next available agent if the confidence is below a threshold.
  • Led the development of the app's loyalty program where users received specific reward points (whenever they uploaded a purchase receipt) based on their tier. These points could then be redeemed to claim various vouchers from the app.
  • Designed a React dashboard for the merchant to analyze the in-app purchases that we gathered from the customers' purchase history through their uploaded receipts. The merchant could then run promotions and send notifications to the app users.
  • Developed a smart shopping experience for the app users whenever they're near a partner store. The on-site BLE beacons would trigger a notification on the user's mobile whenever there's any promotion available in the customer's proximity.
Technologies: JavaScript, Node.js, Express.js, AWS Elastic Beanstalk, React, Amazon S3 (AWS S3), Amazon RDS, ABBYY, Scrum, Agile Sprints, Redux-Saga, React Redux, Sequelize

Full-stack Developer

2016 - 2017
CyTech Solutions
  • Introduced jQuery Ajax into the equation to update the web page without refreshing it every time. This was done because the company's websites were all rendered fully on the server-side, which could be annoying from an end user's perspective.
  • Introduced a micro Dapper as an ORM that increased the overall efficiency and performance of the existing projects. All of the company's web apps used EF for CRUD operations, and it'd take a significant toll on the system's performance.
  • Made a VoIP client (using SIP.js) for making audio calls to a person's mobile phone. SIP trunks and Asterisk server was configured on the back end.
  • Created a RESTful service to generate a PDF report from the SQL database.
Technologies: ASP.NET MVC 5, Dapper, Entity Framework, jQuery, Bootstrap, Asterisk, VoIP

Odin Chart

https://odinchart.com
A Vue.js-based data-agnostic tool for designing custom charts in Adobe XD.

I was the full-stack developer for the project. A user can choose from various graphs like pie, donut, line, and area to visualize the data they uploaded in CSV format or copy-pasted.

The app had a Parse Server on the back end. It was responsible for writing and updating data to the database.

Monarch Tracker

A vehicle tracker application provides real-time locations of vehicles with a central dashboard to plot them on a map.

I was engaged majorly to help design the back end's architecture and the web's dashboard.

Each vehicle would emit its stats like location, state, speed, mileage, and fuel status every 15 seconds, which would end up in a stream (Kafka). Each stream had two consumers—the app ingestor and a unified stream processor (Flink).

After a few transformations, the ingestor would provide this data to the app's back end. At the same time, Flink would perform an analytical operation in real-time to extract meaningful data for various purposes, such as average mileage, occasional proximity, potential theft, over-speeding, among others.

The Vue.js-based dashboard would then show this information to the user.

MyMonorepo

MyMonorepo is my very own self-investment in pursuit of having a single space for all good coding practices that I have acquired throughout my professional exploits.

It has a variety of project types and boilerplates that can fire up and deploy a fully working project in a matter of minutes.

Currently, MyMonorepo supports three project types that it can deploy with a few simple commands documented in the README Lambda template (with or without cron), services like Node.js, Express, and NestJS, as well as websites, such as CRA and Next.js.

The CI/CD pipeline is set up to dynamically generate a Terraform file that deploys the project on one push. The deployment states are maintained in an AWS S3 bucket, so it is possible to decommission a running project instantly.

Right now, it is capable of deploying to AWS EC2, ECS, and Lambda, but it will always be a work in progress to accommodate different deployment types.

RaveOn | Previously Bad Call

A mobile application with real-time match commentary for several sporting events like NBA, NCAA, and UEFA.

I was the chief architect, project manager, and developer of the overall project, but I was primarily engaged in back-end work and developing a few admin dashboards.

The mobile application is made in React Native, while the back end is in the NestJS framework of Node.js.

SportsRadar API (later Sports Data) is used for fetching live sporting events that end up in a queue (RabbitMQ). These events are added to a PostgreSQL database running on an AWS RDS server and broadcast to a user's mobile phone in real-time using WebSockets.

The user can then comment on each unique event which is instantly visible to other users of the app.

Extensive use of Node.js and React is made across all twelve application services. It has different dashboards built for other purposes. A React-based admin dashboard, an analytical dashboard with a Cube.js back end, and a video manager generate match highlights for each game that communicates with a Python back end.

Additionally, I set up CI/CD pipelines using GitLab that makes the new changes live as soon as the code is merged. And the system metrics and logs can be viewed in the ELK.
2011 - 2015

Bachelor's Degree in Software Engineering

National University of Sciences and Technology (NUST) - Islamabad, Pakistan

APRIL 2020 - PRESENT

React Basic Skills Certification

HackerRank

SEPTEMBER 2019 - PRESENT

Cloud Architecture

Google

SEPTEMBER 2019 - PRESENT

Principles of Reactive Architecture

Lightbend, Inc.

SEPTEMBER 2019 - PRESENT

Docker Essentials | A Developer Introduction

IBM

Languages

TypeScript, JavaScript, Python 3

Frameworks

Jest, NestJS, Express.js, Next.js, Akka, ASP.NET MVC 5, Bootstrap, .NET Core, Material UI

Libraries/APIs

Node.js, React, Vue, Redux-Saga, React Redux, Entity Framework, jQuery, Vue 2

Tools

Bitbucket, Amazon Elastic Container Service (Amazon ECS), Terraform, Splunk, Jira, Jenkins, Docker Swarm, Google Kubernetes Engine (GKE), GitLab, GitLab CI/CD, AWS Fargate, Kibana, ABBYY, Sequelize, Dapper, Asterisk, Element, RabbitMQ, ELK (Elastic Stack), Amazon Elastic Container Registry (ECR)

Platforms

Amazon Web Services (AWS), Docker, AWS Lambda, Kubernetes, Apache Kafka, Google Cloud Platform (GCP), AWS Elastic Beanstalk, Parse Server, Apache Flink, Amazon EC2, Azure

Other

Amazon RDS, Amazon API Gateway, Elastic APM, Beats, Agile Sprints, VoIP, Cube.js, Infrastructure as Code (IaC), Software Engineering, Web Development

Paradigms

Lambda Architecture, Microservices, Actor Model, Scrum

Storage

MongoDB, Google Cloud, Datadog, Amazon Aurora, Redis, Docker Cloud, Elasticsearch, Amazon S3 (AWS S3), PostgreSQL

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring