I'm an experienced full-stack software developer who likes 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.
Jul '18 - Present
Software Developer (Full-Stack)ethicalhat.com
EthicalHat Cyber Security
Currently working in an agile team to develop online platforms that help organizations and their CISOs to better assess and improve their cyber security. Projects developed:
Controls Self-Assessment Tool (CSAT) for the Center of Internet Security (CIS, USA)
- Worked on all aspects of the project, from implementing the UI using Semantic UI and iterating on its design, to 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 containerize 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.
- Currently developing an analytics platform using Flask, Apache Kafka, Elasticsearch and Kibana that will collect anonymized usage data from multiple deployed instances of CSAT.
- Developed this tool from scratch, from designing and implementing the UI to developing the back-end in Django.
- Implemented many of the core features such as the scans for network security, web app security, SSL health and domain abuse.
- Used Celery with RabbitMQ to manage background tasks that run various scans.
- Used Elasticsearch to develop a feature that searches for potential domain name abuse.
- Worked with both relational and non-relational data using MySQL and MongoDB.
Jul '14 - May '18
Bachelor of Technology, Computer Engineeringjmi.ac.in
Jamia Millia Islamia, New Delhi, India
- Designed, developed and administered the event website for TEDxJMI 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.
Schema 2 Backend
- Currently working on a tool written in Python that generates the entire back-end for a web application given the schema of the data it operates on.
- Using a CLI a user can specify the path to the schema file (which is in JSON or YAML), the output path for the generated code, and the characteristics of the generated back-end, such as the type of API (REST or GraphQL), the web framework (Flask, Express, Sinatra and more) and the type of database (SQL or NoSQL).
NutriVision: IIT Delhi research internship project
- Worked in a team of 2 under the guidance of Dr. Tapan Gandhi of IIT Delhi to develop a web and Android app that identifies a food item given its image and displays relevant nutritional information to the user.
- Using Flask at the back-end of the web app along with an SQLite database, and Bootstrap with custom CSS for designing the front-end.
- Using Kotlin and the Anko library for programming the Android app, and XML for designing the UI using Material design elements.
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 an NLU 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.
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.
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 Azure Pipelines.
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.
Algos: 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.
Examination Management System
- Worked in a team of 3 to develop a web app for managing examination-related tasks in college faculties.
- Used Django at the back-end along with PostgreSQL, and SQL for writing database queries.
- Designed a responsive front-end using the Material Design Lite library.
- Deployed the app on Heroku.
Desktop entry creator for Linux
- A user-friendly GTK desktop app for creating desktop entries for installed applications on Linux.
- Created the GUI using Glade and wrote the accompanying code in Python.
- Published it on PyPI.
YouTube video data scraper API
- Developed a web API in Python that scrapes data associated with a YouTube video and returns it as JSON.
- Used the API Star framework for developing the API, and Beautiful Soup for scraping the video data from YouTube.
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.
Bending Moment Calculator
- Developed an Android app for Civil and Mechanical engineers to calculate the values of shear force and bending moment of a beam.
- Used Java for programming the app and XML for designing the layout.
- Currently has over 25,000 downloads on the Google Play Store.