Python, C, Bash, Wireshark
Projects
CTF Challenges
Toronto, ON
- Hacked networks to conduct different types of attacks, like packet sniffing (with wireshark, and scapy python library), malicious gateway, APR spoofing, ICMP Ping flood, TCP-syc flooding, TCP connection reset, DNS cache poisoning, http sniffer, ssl striping, as well as doing general penetration testing (using nmap, openvas, metasploit).
- Looked at rainbow tables to reverse hashed passwords.
- Hacked systems using different attacks like buffer overflow (Stack Smashing Attack (Branching), Stack Smashing Attack (Shellcode), Adjacent Memory Shellcode), TOCTOU, hidden malware (malware inside a Debian package).
- Hacked web applications using various attacks like Incomplete Mediation, SQL injection (SQLi), Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF).
- Wrote a protocol that is similar to TLS version 1.3, that used the Diffie Hellman key exchange algorithm.
- Worked with different public and symmetric key algorithms like Caesar Ciphers, Substitution Ciphers, Poly alphabetic Ciphers, One Time Pad Ciphers, Stream Ciphers (RC4, Salsa20/Chacha20), Block Ciphers (DES, AES), RSA, ECC. Also exploited different vulnerability like key reuse attacks, known plain text, etc.
- Explored cryptographic hash functions and message authentication codes (MD5 SHA-1, etc), and exploited different vulnerability like hash length extensions. Also used GPG to encrypt and sign messages.
React, Express, MongoDB, Docker, Web Sockets, Git
Projects
Collaborative Web Builder App
Toronto, ON
- Built a drag and drop website builder with React and expressJS, that allowed multiple users to work on the same site and chat using web sockets and allowed them to share their videos and audio with webRTC.
- Used Cookies to store user sessions, and OAuth to authenticate users.
- Deployed the website on a google cloud virtual machine using docker images for the frontend and backend.
- Deployed using a nginx reverse proxy to have both the front and backend on the same machine.
- Wrote a shell script to help automate the deployment process.
React, MongoDB, ExpressJS, NodeJS, Jira
Projects
- Collaborated with a startup founder to build a MERN platform facilitating interaction between students and companies for internships and competitions.
- Developed a short polling chat application within the platform for users/companies interaction.
- Automated the deployment process using Git actions to build Docker images and push them to Docker Hub.
- Used Git Flow including merging, rebasing, and PRs, and release management.
- Tracked team progress with 2 weeks agile sprints, and Jira as a management tool
- Scoped project by creating user stories, use cases, personas, acceptance criteria, and estimating stories
HTML5/CSS3, Javascript, Flask, SQLite, Git
Projects
Web Learning Management System
Toronto, ON
- Created a website that allowed student and teachers to interact, by allowing teachers to post lecture material, assignments and grades, and allowed students to submit assignments and ask questions on a discussion board.
- Engineered a responsive website using HTML/CSS and JS in the frontend as well as Python Flask, and SQLite in the backend.
Java, XML, Git, Andriod Studio
Projects
Budget for the Masses
Toronto, ON
- Engineered a budgeting Andriod app for the everyday person.
- Built and tested over a 3 day period during the Hack the Valley 4 Hackathon.
HTML5/CSS3, Javascript, React, Express, MongoDB, Docker, Web Sockets, Git
Academic Experience
Programming on the Web
Toronto, ON
- Introduced to software development on the web, covering operational concepts of the internet and the web, static and dynamic client content, dynamically served content, n-tiered architectures, web development processes, and web security.
- Learned and utilized JavaScript (including concepts like Asynchronism, Event Loop, and Web Workers) to develop dynamic HTML and CSS websites and applications.
- Acquired skills in building web APIs following the REST framework, enabling data transfer between frontend and backend, including file handling.
- Worked with cookies, sessions, and various web authentication methods (Local, Token Based, Third Party), and implemented security measures against common attacks such as Cryptographic Failure, Broken Access Control, Injections (SQL/XSS), and Security Misconfiguration (CSRF/CORS).
- Explored different communication methods between applications, including long polling, short polling, web sockets, and WebRTC.
- Deployed real applications to the internet using technologies such as Docker, VMs, domains, reverse proxies, certificates, web packing, HTTP/2, HTTP/3, progressive web apps, and CDNs.
- Studied methods for internationalizing apps (i18n) with specific localization (L10n).
- Explored web advertising, analytics, tracking, and fraud detection techniques.
- Developed an online web gallery allowing users to upload image collections and comment on others' images, utilizing HTML5, CSS3, and JavaScript.
- Created a drag and drop website builder using React and ExpressJS, enabling multiple users to collaborate on the same site, chat using web sockets, and share videos and audio with WebRTC.
- Deployed the website on a Google Cloud virtual machine using Docker for frontend and backend images, with an Nginx reverse proxy for hosting both on the same machine, and automated the process using a shell script.
Figma, Balsamiq Wireframes
Academic Experience
Human-Computer Interaction
Toronto, ON
- Explored the field of Human-Computer Interaction (HCI), focusing on guidelines, principles, methodologies, and tools for analyzing, designing, and evaluating user interfaces.
- Learned to design software with a primary emphasis on UI/UX, considering factors like universal usability, the 8 golden rules for interface design, and user-centered design principles.
- Studied how to establish requirements using various data gathering methods such as interviews and surveys to understand and map user interactions, utilizing tools like Hierarchical Task Analysis (HTA) to make low-level designs with wireframing, creating interactive prototypes, and evaluating the design through testing.
- Built an interactive prototype UI using Figma for a task management app allowing users to create groups and share tasks on the board.
- Conducted user testing on the UI through surveys and semi-structured interviews to identify strengths and weaknesses, iterated on the design based on feedback to enhance usability and user experience.
React, MongoDB, ExpressJS, NodeJS, Jira
Academic Experience
Introduction to Software Engineering
Toronto, ON
- Explored software development methodologies with a focus on agile methods suitable for rapidly moving projects, covering basic software development infrastructure, requirements elicitation and tracking, prototyping, project management, basic UML, software architecture, design patterns, and testing.
- Studied the software development lifecycle and various models including waterfall, V-shape, and agile, with a detailed examination of scrum elements such as product backlog, sprint backlog, sprint planning, daily scrum, sprint retrospective, sprint review meeting, burnup and burndown charts, pair programming, and test-driven development.
- Learned how to scope projects by creating user stories, use cases, personas, acceptance criteria, and estimating stories.
- Explored REST API design and database types including SQL, NoSQL, and GraphQL.
- Investigated different software architectures such as Multi-Tier architecture, Multi-Layer architecture, MVC, Microservices, Monolithic, and Event Driven, and their design in UML considering non-functional requirements like scalability, performance, and availability, using use case diagrams, sequence diagrams, activity diagrams, and state chart diagrams.
- Studied design principles like SOLID and design patterns such as singleton, factory method, builder, and strategy design pattern.
- Explored Git Flow including merging, rebasing, and PRs, and release management.
- Learned about continuous integration and continuous deployment, utilizing Docker to componentize different aspects of the system.
- Collaborated with a startup founder to build a MERN platform facilitating interaction between students and companies for internships and competitions.
- Developed a short polling chat application within the platform for users/companies interaction.
- Automated the deployment process using Git actions to build Docker images and push them to Docker Hub.
C, C++, Java, Python, Scheme, ML, Haskell, Prolog
Academic Experience
Principles of Programming Languages
Toronto, ON
- Explored programming paradigms including procedural (e.g., C, Java, Python), functional (e.g., Scheme, ML, Haskell), and logic programming (e.g., Prolog).
- Utilized higher-order functions such as map, filter, fold, and others in programming tasks.
- Developed functional programs employing techniques like pattern matching, tail-recursion, list comprehension, lazy evaluation, and closures.
- Gained practical experience in various programming paradigms through hands-on work and study.
HTML5/CSS3, Javascript, Flask, SQLite, Git
Academic Experience
Introduction to Databases and Web Applications
Toronto, ON
- Developed a web platform facilitating interaction between students and teachers, enabling teachers to post lecture material, assignments, and grades, while allowing students to submit assignments and engage in discussions.
- Designed and implemented a responsive website using HTML/CSS for the frontend and Python Flask framework with SQLite for the backend.
- Utilized CSS flexbox to implement various UI features, ensuring responsiveness across different devices.
- Acquired proficiency in basic relational algebra and SQL for database management.
- Employed GitHub as a version control and collaboration tool to manage project changes and facilitate teamwork.