Kashif Iftikhar

Kashif Photo

Kashif Iftikhar

System Architect / Senior Developer
Full Stack Web Developer
IoT Enthusiast
Security Researcher
IT Consultant

kashif@compulife.com.pk

+92-345-5080255

https://kashif.compulife.com.pk

https://github.com/kashifpk

https://www.linkedin.com/in/compulife

About

Software engineer with over 25+ years of experience developing wide range of IT products ranging from traditional client server desktop solutions, to dynamic websites, REST APIs, mobile apps, backend solutions, highly scalable distributed solutions, security and penetration testing tools.

Software Engineer, Web Developer & Security Researcher.

I develop sophisticated and well-designed applications.

  • Website: kashif.compulife.com.pk
  • Phone: +92 345 5080255
  • City: Rawalpindi, Pakistan
  • Degree: Master
  • Email: kashif@compulife.com.pk
  • Skype: kashif_iftikhar

I mostly develop solutions for Linux platform using primarily Python as the backend programming language. While I am proficient with many other technoglogies Linux & Python are my main tools that I like to work with. I like to develop IT security or IoT related software and services but you'll always find me interested in doing things that are out-of-the-box.

Top Skills

Linux Python FastAPI Django Flask Pyramid JavaScript VueJS PHP Git Docker PostgreSQL MySQL ArangoDB MongoDB Elasticsearch Networking Server Administration DevOps Rust RabbitMQ Kafka

Education & Experience

Education

Master of Computer Science (MCS)

2002 - 2004

Institute of Information Technology and Management (Muhi-ud-din Islamic University), Rawalpindi.

Bachelors in Electronic Engineering Specializing in Computer Science (BCS)

1998 - 2000

ICCMS (Newport University), Rawalpindi.

Professional Experience

Senior Software Engineer

2021 - Dec 2023

Nebra, Ltd.

Designed and developeda LoRa based IoT solution (FastAPI, VueJS). Maintained and contributed to LoRa hotspot dashboard (Django), embedded in-device dashboard (Flask) and an automated QA & testing tool for routers (Python)

Lead System Architect

2016 - 2021

Threatify, Ltd.

Incharge of managing a team of developers and developing a highly scalable and comprehensive information security and prevention platform.

Backend Engineer

2013 - 2015

KLab America

Worked with KLab America as a backend engineer for mobile games for 18 months. Technologies included: Python, PostgreSQL, MongoDB, Flask, SQLAlchemy, Heroku, Git.

Project Manager MIS

2012 - 2013

FAFEN TDEA

Worked as Project Manager MIS at Free and Fair Election Network before general elections 2013. Incharge of developing a comprehensive election monitoring system. Managed a team of 8 developers and network personnel.

Project Lead

2008 - 2012

Compulife

Managed a team of 5-6 developers on different projects and also developed projects with them.

System Architect

2003 - 2008

Pakistan Army Induction System

Developed and maintained online-registration and computerzied induction system for Pakistan Army for Officers Exams (PMA, Graduate Courses). NADRA previously conducted these tests for Pakistan Army. Linux Apache MySQL PHP Python.

Freelancer

2002 - 2016 (Interim work between jobs)

Elance/Upwork.

Developed 100+ big and small projects as freelancer.

Please see a complete list of skills and past projects at: https://kashif.compulife.com.pk

Skills

Skills are listed in order of most proficient and most recently used.

Operating Systems

Linux 95%
Ubuntu/Kubuntu/Mint95%
Debian 80%
Slackware 90%
Alpine 70%
Redhat/Fedora 75%
Gentoo 70%
Kali 85%
IPCop/IPFire (Linux Firewall Distros) 70%
FreeBSD 70%
OpnSense65%
OpenWRT 70%
Microsoft Windows 65%
Windows 10 50%
Windows 8 40%
Windows 7 70%

Data Stores & Databases

PostgreSQL (Relational) 70%
MySQL/MariaDB (Relational) 70%
SQLite 3 (Relational) 80%
Oracle (Relational)50%
SQL Server (Relational)60%
MS Access (Relational)80%
ArangoDB (Multi-model NoSQL - Graph - Document Store) 80%
MongoDB (Document Store)60%
Neo4j (Graph)50%
ELK Stack (Elasticserch, Logstash & Kibana)75%
Big Query65%

Networking & Administration

Linux Installation & Hardening 90%
Networking & Protocols 80%
Linux based Firewalls, IDS & IPS 70%
Linux based VPNs (WireGuard, OpenVPN) 70%
Web Server Configuration (Apache/Nginx) 90%
Common Networking Services (DHCP/DNS/FTP/SSH/NFS) 70%

Proramming Languages (General Purpose)

Python (Preferred) 95%
Rust 60%
C/C++ 80%
Java (Not Preferred) 65%
Ruby 55%
Linux Shell Scripting 75%

ORMs For Data Access

SQLAlchemy (Python) 95%
Django ORM (Python) 90%
Arango ORM (Python) (Self Developed) 100%
MongoEngine (Python) 80%

Cross Platform UI Toolkits & Mobile Apps

Kivy (Python) 85%
PySide/PyQt (Python) 75%
BeeWare (Python) 60%

Client End Web Development

HTML 90%
CSS 85%
Less (CSS Preprocessor)60%
Bootstrap (CSS Framework)90%
Javascript 85%
JQuery80%
VueJS (JS Framework) 75%
React 60%
Angular (JS Framework) 60%
Dojo (JS UI Widgets Framework)80%

Server End Web Development

FastAPI (Python Web Framework) 95%
Flask (Python Web Framework) 95%
Pyramid (Python Web Framwork) 75%
PyCK (Python web framwork scaffold - self developed) 100%
Bottle (Python Web Framework) 85%
Django (Python Web Framework) 90%
PHP80%
Symfony (PHP Web Framwork) 70%
CodeIgniter (PHP Web Framwork) 60%
Yii (PHP Web Framwork) 65%

IoT

Home Assistant 90%
ESPHome 80%
Tasmota 50%
MicroPython 95%
ESP8266/ESP32 75%
LoRa Network & Sensors 75%

Electronics

Arduino Based Development 80%
Microcontroller Programming 70%
Hardware Interfacing using Arduino, RPi, etc 90%
Wireless Cummunication 60%
Home Automation 75%
Circuit Design 75%

Documentation & Data Modeling

UML 60%
RestructuredText (reST)90%
Sphinx Documentation Generator90%
PyDoc70%

Version Control

GIT 90%
Subversion (SVN) 70%
Mercurial60%

DevOps

Git hooks 90%
Github Actions & Workflows 80%
CI/CD (Google Cloud, Custom Servers) 70%
Ansible based deployment 80%

Information Security

Network Security Assessment 70%
Penetration Testing 70%
Risk Mitigation Strategies 80%

Web CMS and Related

Odoo (Python Web Based ERP) 60%
Wordpress (PHP CMS) 50%

Task Orchestrators / Workflow Runners

StackStorm 80%
Node-Red 75%
Airflow 70%

Distributed Execution

Celery 80%
RabbitMQ 70%
Kafka 70%

Templating Languages

Mako (Python) 95%
Jinja2 (Python) 85%
Smarty (PHP) 70%
Cheetah (PHP) 60%
Mustache (JS) 60%

Payment Processing

Chargify 80%
PayPal 70%
Authorize.Net 70%

GIS Related

QGis 50%
PostGis (Postgresql GIS Extension) 70%
GeoAlchemy (SQLAlchemy GIS Extension) 70%

Cloud Related

Docker 85%
Docker Swarm (Orchestrator) 80%
Kubernetes (Orchestrator) 60%
Amazon EC2 60%
Google Cloud Platform70%
Balena Cloud70%
Heroku 70%
DotCloud 65%

Analytics & Central Logging

Segment/Maxio 75%
Logtail 70%
Mixpanel 60%
Mobile App Tracking (MAT) 60%
Grow Mobile 50%
Ad-X 50%

Old deprecated stuff that I knew but is no longer used

Windows Vista 60%
Windows 2000 60%
Windows XP 70%
Windows 9.x 70%
MS-DOS 95%
FoxPro 85%
DBase III 85%
GW-BASIC/QBASIC 85%

Projects

Nebra Sense

LoRa IoT Dashboard
Role: Project Lead / Lead Engineer

https://sense.nebra.com

IoT dashboard for monitoring LoRaWAN sensors. Supports directly receiving data from sensors through LoRa hotspots running Nebra firmware and receiving data using the Helium LoRa network. Notifications/alerts processing and daily emails in case there are active alerts.

Frontend: VueJS 3, material design, bootstrap.
Backend: Python, FastAPI, Pydantic, SQLAlchemy, PostgreSQL, Celery, RabbitMQ.

Nebra Hotspot Dashboard

Hotspot Management Dashboard
Role: One of two main contributors

https://dashboard.nebra.com

Dashboard for managing LoRa hotspots running Nebra firmware. These hotspots also earn crypto currency called HNT (Helium Network). The dashboard allows monitoring earnings and status of the hotspots.

Dashboard backend runs periodic celery tasks using RabbitMQ as the message broker.

Frontend: Django, VueJS 3, material design, bootstrap.
Backend: Python, Django, Pydantic, DjangoORM, PostgreSQL, RabbitMQ, Redis, Google BigQuery, Chargify payment gateway.

Nebra Hotspot Production Tool

Hotspot quality assurance and registration tool
Tole: Lead/Sole Developer

Tool used in manufacturing to verify fresh hotspots, identify any potential problems and offer possible fixes & register hotspots that pass Q&A into Nebra Hotspot Dashboard.

Tech: Python CLI software utilizing Rich (TUI library), requests (for communicating with hotspot and dashboard)

Arango ORM

Object Relational Mapper library for ArangoDB
Role: Creator and Maitainer

Homepage: https://arango-orm.compulife.com.pk/
Github: https://github.com/kashifpk/arango-orm
PyPi: https://pypi.org/project/arango-orm/

ORM library inspired by Python's SQLAlchemy ORM (for relational databases). Allows using the multi-model (Graph, document store, key-value store) database ArangoDB using Classes and database sessions. Uses SQLAlchemy 2.x style class definitions using type hints. Type hints mechanism is derived from Pydantic and is compatible with Pydantic models eliminating the need to define separate request/response data models in most cases.

Tech: Python, pydantic.

QuranRef

SPA Website for Holy Quran translations and statistics
Role: Creator and Maitainer

Website: https://quranref.info
Github: https://github.com/kashifpk/QuranRef

This website displays Holy Quran's arabic text in 4 formats and offers translations in English and Urdu. For comparitive study multiple translations can be viewed at a time. Also allows search, browsing by words, words by count.

Frontend: VueJS
Backend: Python, Flask, Arango-ORM, ArangoDB.

Threatify Risk Management Service

Service for analyzing Internet facing assets of clients and doing threat assessment on those assets.
Role: Lead Engineer

This project is a collection of microservices and a front facing website that allows clients to subscribe and add their assets. The service then performs further assets discovery, scans those assets (domains, web servers, emails, etc) and keeps track of any security issues with those.

The backend run multiple microservices and workers (communicating via RabbitMQ). Workers are responsible for doing things like performing security scans, asset discovery etc. Some services use large data sets to alert the clients if any of their accounts on popular sites (Yahoo, LinkedIn, Facebook, etc) have been compromised or not (similar to https://haveibeenpwned.com/). Health checks for servers and services are also included (see https://tools.pingdom.com/ as a similar but simpler health check example).

Frontend: VueJS
Backend: Python, Flask, MongoDB, ElasticSearch, Redis, RabbitMQ, StackStorm.

PyCK Framework

Python framework similar to Django based on Pyramid framework.
Role: Creator (No longer maintained)

Github: https://github.com/kashifpk/PyCK

Opinionated web framework based on Pyramid framework. Uses SQLAlchemy as ORM, Mako as templating language, Dojo and WTForms as the UI/Forms toolkit.

Frontend: HTML/CSS
Backend: Python, Pyramid, SQLAlchemy.

WTDojo

Library integrating WTForms into Dojo UI kit.
Role: Creator (No longer maintained)

Github: https://github.com/kashifpk/wtdojo

UI and forms tookit primarily used in PyCK framework.

Pakistan Army Induction System

Officers induction system for Pakistan Army
Role: Creator

Developed and maintained online-registration and computerzied induction system for Pakistan Army for Officers Exams (PMA, Graduate Courses). NADRA previously conducted these tests for Pakistan Army.

Frontend: PHP
Backend: PHP, MySQL

Pakistan Army Recruitement System

Soldiers recruitement system for Pakistan Army
Role: Creator

Smart rule-based recruitement system that automates selection of candidates based on criteria (rule-set) and assigns them to appropriate regiments.

Frontend: PHP
Backend: Python, PHP, MySQL

Join Pakistan Army Website

Website and online registration portal
Role: Creator

Web: https://joinpakarmy.gov.pk/

Website for people who wish to join Pakistan Army. Allows online registration and status check. Backend allots test slots to candidates according to available seats in reach registration center.

Frontend: PHP
Backend: Python, PHP, MySQL.

DNS-NG

DNS server that suports on the fly dns record change
Role: Creator

Github: https://github.com/kashifpk/DNS-NG

DNS server with support for dynamic redirection, easy management and usage of a backend database for record keeping

Frontend: PyQT
Backend: Python, Twisted Framework, SQLAlchemy, SQLite.

Older Projects

mawakhaat.appspot.com
Website for flood relief coordination (created after the historical floods in Pakistan in 2010). Python Google AppEngine
IceRocket Search Spider
An RSS Feeds web spider that crawls the Internet searching for RSS feeds and populating search DBs of www.icerocket.com. Linux MySQL Python
Multiple Sites Content Management System
Web site to manage simple WYSIWYG editting of multiple sites for non-technical website owners. Linux Apache MySQL PHP
Tabcrawler
A music search engine and web spiderLinux Apache MySQL PHP Python
Lyrics Crawler
Software to scrap song lyrics from popular lyrics sites and then search for their official videos at youtube. Collected lyrics and videos are displayed via customized Wordpress Theme. Linux MySQL Python
Google Resume Spider
A php application to fetch and process resumes via google. PHP
Yahoo Finance Scraper
Scraps yahoo finance data for further research. Python
U.S Phone Records Scraper
Software to scrap United States phone records alongwith addresses. Linux MySQL Python Amazon EC2
Twitter Scraper
Software to scrap tweets for given person from twitter. Python
Tires Scraper
Software to scrap automobile tires information for all brands, models and makes from popular auto/tires websites. Linux Apache MySQL PHP Python
Flights Fare Scraper
Software to scrap air-flights fares for various routes.
Demonoid Scraper
Software to scrap torrents with associated info from Demonoid. MySQL Python
SMPP Client
Extending the python-smpp library. Used for communicating with telecom SMPP (Short Message Peer-to-Peer Protocol) server for sending and receiving SMSes.
SMS Marketting and Interaction Software
Uses SMPP client to send and receive SMSes with options for bulk sending and performing actions based on received SMSes.
Rezillient Electronics
An on-line electronics store with paypal integration (electronics.rezilient.com)
Ecommerce web site for Cosmetic Garments
Using php/mysql with Authorize.Net Integration.
Ecommerce web site for Automobiles
Ecommerce website for Buying and Selling cars developed in MySQL and Python
Phrase finder
A PHP and Javascript based project used for SEO (Search Engine Optimizations).
iTunes Extractor
A PHP based system that searches, verifies and processes information from given web sites regarding music records present in the Apple iPod.
MIS PA Dte (GHQ)
Developed a comprehensive MIS system for PA Dte GHQ. Visual Basic / Oracle
Custom Shopping Cart
A custom implementation of a shopping cart system in PHP with PayPal integration.
HTML validations and modification system
A Python based script to modify and validate thousands of files according to HTML 4.01 TRANSITIONAL DTD.
System Network Alerter
A VB task bar applet notifying of network status.
Real State EXE Creator
An ASP Project to create real state tour EXE files on the fly.
Newspaper Data Importer
A comprehensive data importing system for a newspaper vendor in U.S. Developed in VB.
SMS list sender
Send SMSes to a list of contacts developed using VB/XML.
Birthday Automailer
A PHP based web service enabling its users to subscribe customers for recieving auto emails on their birthdays. Integrated with MaxSponder autoresponder system.
Specialized PHP Form Processor
A project to validate and encipher submitted data and to mail it to specified emails addresses.
Order Tracking System
Developed in ASP.
LED Display System
An application developed in VB to post data to an LED ActiveX control by parsing log files.
Multimedia Real State Viewer
An application for viewing property details created in VB.
Gutenberg Processor
Visual Basic Program to process Project Gutenberg E-Text files.
Striker's Toolkit
A collection of Cryptographic, Steganographic and misc. utilities. Developed in VB.
Hospital Payroll System
Payroll management system for Rawalpindi General Hospital (2002)
Textile Mill Payroll System
Payroll system for Redco Textile Mills, Rawat, Pakistan (1998).
MS Word 97 Password Bruteforcer
Password brute forcer for Microsoft Word.
Misc Password Decryptors
Password decryptors for Microsoft Access 97/2000, Windows 98 Screen saver and Cute FTP.
IM Contact List Retriever
MSN and Yahoo messenger contact list retriever programs.
Luddo Game
Created the computer version of a board game called “Luddo” in C++.