Wahaj Aayani
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
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.
Software Engineer
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.
Senior Software Engineer
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.
Full-stack Developer
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.
Full-stack Developer
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.
Experience
Odin Chart
https://odinchart.comI 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
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
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
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.
Education
Bachelor's Degree in Software Engineering
National University of Sciences and Technology (NUST) - Islamabad, Pakistan
Certifications
React Basic Skills Certification
HackerRank
Cloud Architecture
Principles of Reactive Architecture
Lightbend, Inc.
Docker Essentials | A Developer Introduction
IBM
Skills
Libraries/APIs
Node.js, React, Vue, Redux-Saga, React Redux, Entity Framework, jQuery, Vue 2
Tools
Bitbucket, Amazon Elastic Container Service (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)
Languages
TypeScript, JavaScript, Python 3
Frameworks
Jest, NestJS, Express.js, Next.js, Akka, ASP.NET MVC 5, Bootstrap, Cube.js, .NET Core, Material UI
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
Paradigms
Lambda Architecture, Microservices, Actor Model, Scrum
Storage
MongoDB, Google Cloud, Datadog, Amazon Aurora, Redis, Docker Cloud, Elasticsearch, Amazon S3 (AWS S3), PostgreSQL
Other
Amazon RDS, Amazon API Gateway, Elastic APM, Beats, Agile Sprints, VoIP, Infrastructure as Code (IaC), Software Engineering, Web Development
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring