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
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
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
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.