Tech Stack



Language
  1. Python
Database
  1. MongoDB
  2. PostgreSQL
Cache
  1. Redis
Web Framework
  1. Django
Message Queue
  1. Apache Kafka
Job Workflows
  1. Apache Airflow

Interest



Micro-services
System Design
Large Scale Distributed System
Real Time System
Stream Processing
Docker
Kubernetes
Web 3.0
Blockchain
AWS (Amazon Web Services)


Work Experience




PYTHON BACKEND DEVELOPER
Pligence - Cyber Security

Lahore, Pakistan

October 1st, 2020 - Present

Years of Experience - 1.9+ years



I have been working on different projects, involve in System Design, building Synchronous and Asynchronous REST APIs, implemented near real-time use-cases, work with threat feeds, integrated Google Cloud Messaging service (FCM) with use-cases, automate the database backups and file migrations, collaborates with different teams, etc. And these are the techs and tools which I have been working with :




Open source projects






Finds confirmed cases in 1,2 and 3 km and quarantine center in 10 Km radius range based on user given location, give some useful advice and informational links, and help officials to control covid19 transmission.


Read more
  1. Find the user's zone if they are in the Red, Yellow, or grey zone based on the confirmed case around them.
  2. Advise people on what they should do or not if they are in the infected region or not.
  3. Show clusters of COVID-19 regions for officials to take the right decisions. And for the public to take appropriate precautions. Officials can
    • Easily identify infected regions, and then impose lockdown and run an awareness campaign.
    • (Local authorities) can take quick and real-time decisions.
    • Identify those regions where no of cases increasing.
  4. Show nearest confirmed case and Quarantine center point (address, distance (from user location), and radius range).
  5. Show the total no of confirmed cases and no of points in different ranges around the user.
  6. Provides WHO (World Health Organization) and National website links for the latest information and some other useful links
    • Myth busters
    • When and how to use masks
    • Advice for public
    • Advocacy
  7. Users can also check other regions in case of if they wanna go or someone coming from the infected region based on the result they will take the right decision and appropriate precautions.
If people already know about infected regions and people of these regions transmitting the virus, then they will avoid them, (infected regions and their people as well) so they will be taking the necessary precautions. Read more

REST API module is for mobile application and secured from distributed denial-of-service (DDoS) attack using API rate limiter.

Redis in-memory database is used for the high availability of the application and provides very low latency.

Authentication and Authorization feature for staff members e.g. if multiple laboratories upload confirmed cases of covid19.


View source code on Github



To protect API from DDoS attacks, avoid spikes in traffic, running API efficiently and for API scalability rate limiter component is essential. Python sliding window counter API rate limiter using Redis.


Read more

Compare to other rate limit algorithms sliding window counter is

  1. Avoid spikes (Smooth out brust)
  2. Memory efficient

Rate limit strategies allowed in this algorithm

  1. N requests per second.
  2. N requests per minute
  3. N requests per hour

Rate limit HTTP headers allowed in this algorithm

  1. X-RateLimit-Limit
  2. X_RateLimit_Remaining
  3. X-RateLimit-Reset
  4. Retry-after
Optional parameters can be passed to the rate limiter when the first-time rate limiter initialized. These parameters are used for performance and to reduce memory usage.


View source code on Github



Personal Portfolio database design Entity relationship diagram.


View source code on Github


University work



Right Now - Final year project



We build a social networking application for android using google realtime firebase database.
Why social networking application ?

The reason behind building this kind of application was users were/are dramatically increasing to use social networking applications. We also didn't want to build some management system, want to explore some NoSQL and real-time database which is Google Firebase.

These were features of our application.

    1. One to one and one to many chat
    2. Search user
    3. Micro Blog
    4. 2 way blocking : Blocked user can send 3 predefined messages.
    5. Privacy : User profile not visible if privacy enabled by user.
    6. Online presence
    7. Send friend request,accept request and reject request.
    8. Authentication

Phishing website Detection



Hackers using social engineering attacks to steal user credentials like email, passwords and credit card details using a phishing website. To detect phishing websites using machine learning I trained the model using a cluster-computing framework called Apache Spark on data-bricks cloud because no of records were 11055 and 31 attributes. Train the model on s single machine was not good because it takes a a lot of time. The Data set was also preprocessed before train and test the model.
Loan Prediction



I build a loan prediction machine learning model that predicts loan is returned or not by lonee. Instead of using the scikit-learn library to train and test the model I wrote Navive base mathematical model from scratch in python to understand how this the mathematical method works. Data was in categorical format and some records were missing so data were preprocessed before training and testing the model.
Socket Programming



I implemented client and server architecture using Java. The server was bind to an IP address and port and which listen to client request. The client sends the request to the server and then the server sends a response back to the client. Also, implemented a proxy server where client requests went from the proxy server to the main server and then the response sends back to the proxy server to the client.
Green Veggies



I designed the ERD (Entity Relationship Diagram) of the inventory system and developed a desktop application using java. Green veggies was the name of the application. Customer and staff members log in to the system using their credentials, customers can place orders, view their cart, staff members manage their stock details, ready their shipment details, etc. And I also a wrote software requirements specification document for this project.
Weather App



I developed a weather application in which the application sends the REST API call to Weather API based on user location and then get a response back into JSON format after that result parsed and display back to the application user interface.
School Test System



We developed a school test system for conducting student tests. We developed desktop application using java (Abstract Window Toolkit (AWT) API for front-end) and we used a file system for data storage. Teacher upload their questioner to the system and then the questioner was validated before saving into the storage system. Students log in to the system using their credentials and give test after that result was displayed to student. My responsibility was to design the whole system design and develop backend and my teammate designed the front-end.
Plant and Zombie Game and Car Android Application



I analyzed both applications how they work and which data they were storing. List down the functional and non-functional requirements of both apps. After reverse engineering, I designed the use case diagram, entity-relationship diagram, and UML diagram for both applications. And wrote an SRS (Software Requirement Specification) document for both applications.


Other Stuff






Open Source

Let's chat ...