I'm a full-stack software developer who's currently focusing on back-end technologies. I like creating clean and useful software interfaces - whether they are UIs, CLIs or APIs - for websites, mobile apps or system software. I'm also an open source enthusiast, and have contributed to several open source projects on GitHub.
Work Experience
-
Jul '18 - Present
Software Developer (Full-Stack)
ethicalhat.comEthicalHat Cyber Security
I'm currently working with a small team in building online platforms that help security professionals assess their attack surface and improve their cyber security. Following are the projects that I'm currently working on or have previously worked on:
-
[Confidential]
- Currently building a serverless back-end for a cyber security product using AWS and the Serverless framework.
- Used Python, Go and JavaScript (Node.js) for writing various Lambda functions and Fargate tasks.
- Used SNS as the notification system to create an event-driven back-end.
- Created a rate-limiting setup using SQS FIFO queues for calling third-party APIs.
- Designed key schemas for DynamoDB tables and their indices based on their query patterns. Also used DynamoDB streams to aggregate item counts across multiple categories.
- Implemented several REST API endpoints using API Gateway and Lambda.
- Created a user management module using Cognito user pools, clients and authorizers, along with API Gateway and Lambda.
- Created a setup to deploy the front-end to S3 and to serve it from CloudFront using the Serverless framework, which worked 15x faster than the standard deployment process using AWS Amplify.
- Created a script to deploy all of the micro-services in topological order by resolving their resource dependencies. This also created a dependency graph for the entire back-end in the Graphviz DOT format, which helped in automated documentation.
- Also worked on the front-end app written in Vue.js to integrate APIs, improve the component structure and fix UI bugs.
-
[Confidential]
- Worked on all aspects of the project, from designing the UI and implementing it using Semantic UI to developing the back-end in Django.
- Implemented many of the core features, including the integration of multiple security scanners and vulnerability feeds.
- Used Celery with RabbitMQ to manage background and periodic tasks.
- Used Elasticsearch to develop a feature that searches for similar domains among 250 million of them.
- Worked with both relational and non-relational data using PostgreSQL and MongoDB.
- Containerised the various apps in the Django project using Docker and then defined all of the required services in a single YAML file to be run using Docker Compose.
-
csat.cisecurity.org
Controls Self-Assessment Tool (CSAT)
Developed for the Center for Internet Security (CIS), USA- Worked on all aspects of the project: implementing the UI using Semantic UI and iterating on its design, developing the back-end using Django, independently developing some of the core features, and integrating services of third-party tools such as Slack.
- Used Docker to containerise the web app, and Docker Compose to automatically launch configured containers for the web app and the database.
- Created the PRD and architecture diagram for the next phase of the project.
-
Education
-
Jul '14 - May '18
Bachelor of Technology, Computer Engineering
jmi.ac.inJamia Millia Islamia, New Delhi, India
- Designed, developed and administered the event website for TEDx JMI 2017.
- Organised competitive programming events at CSI/IEEE Spring Fest 2017.
- Designed and developed websites for the Internship Fair of 2017 and 2015.
- Helped organise gaming events at IEEE Encomium 2016.
- Participated in many competitive programming contests, such as the ACM-ICPC, Google Code Jam, CodeChef SnackDown, TopCoder SRMs, and Codeforces rounds.
Projects
-
LinkStats
- Currently building a SaaS platform that crawls and analyses links on a given website and presents the user with a dashboard containing useful insights about the links.
- Developing the back-end using Go and Python, using Dgraph as the database, and the front-end using Vue.js and Nuxt.js.
-
github.com/Flex-lang/transpiler
Flex programming language
- Worked in a team of 3 to create a programming language that can interpret statements written in natural language, and has a flexible and minimal syntax.
- Trained a natural language understanding model using Rasa NLU with multiple sample statements for each programming construct.
- Wrote a transpiler in Python that transpiles Flex code to either C++, Python or Java, with a modular architecture to easily add support for more output languages in the future.
-
github.com/faheel/isro-web-player
Satellite image animation for ISRO
- Was selected to participate in a team of 6 in Smart India Hackathon 2018 under ISRO to develop a web player for customised animation of satellite images.
- Used Material Components Web for creating a responsive front-end based on Material design, and used Django at the back-end along with an SQLite database.
- Used JavaScript and HTML5 canvas for creating the animation player.
-
github.com/faheel/BigInt
BigInt: C++ library for arbitrary-sized integers
- Developed a modern C++ library implementing an arbitrary-sized integer class that has a simple interface.
- Wrote unit tests using the Catch test framework, with 100% code coverage.
- Used CMake for cross-platform builds, and set up continuous integration using Travis CI and set up code coverage analysis using Codecov.
-
github.com/RaspberrySense/messenger-chatbot
Home monitoring chatbot
- Worked in a team of 2 to create a home monitoring system using a Raspberry Pi 3 and a Facebook Messenger chatbot that continuously monitors the environment and reports any anomaly to the user, and can also provide information to the user on-demand.
- Trained the chatbot model on Wit.ai, and programmed the chatbot and monitoring system in Python using Flask, PyMessenger and the GPIO Zero library for the Raspberry Pi.
-
github.com/faheel/cleanup
CleanUp: CLI for organising files
- Developed a command line utility in Python using Docopt that organises files in a directory into subdirectories based on their extensions.
- Used Beautiful Soup for scraping a list of extensions for each available file category on FileInfo.com.
- Set up continuous integration using Travis CI, and published the project on PyPI.
-
github.com/ProAlgos/ProAlgos-Cpp
ProAlgos C++: GitHub community project
- Implemented algorithms and data structures using a consistent coding style while following best practices of modern C++.
- Made the GitHub repository community-friendly to encourage contributions from others.
- Reviewed pull requests from contributors and discussed improvements.
- Wrote unit tests using the Catch test framework, and set up continuous integration using Travis CI.