MeAI / rag-corpus /rag_docs.txt
DylanJTodd's picture
Upload 17 files
cddae53 verified
raw
history blame
28.6 kB
PROFILE SUMMARY
Name: Dylan Todd
Pronouns: He/Him
Headline: Specializing in Data Analysis and Deep Learning
Location: Greater Sudbury, Ontario, Canada
Institution: Laurentian University/Université Laurentienne
Connections: 41
Open to: Software Developer and Software Engineer roles
ABOUT
Computer Applications student at Laurentian University, pivoting towards artificial intelligence and machine learning.
---
Holds certifications in data analysis and deep learning. Academic and professional pursuits focus on how AI can revolutionize industries. Possesses hands-on experience in data preparation and deep learning through multiple personal projects, applying theoretical knowledge to practical solutions.
---
Committed to innovation and excellence in technology.
EDUCATION
Institution: Laurentian University/Université Laurentienne
Degree: Master of Computer Applications - MCA
Specialization: Computer Games and Programming Skills
Duration: January 2022 - May 2026
Grade: 90%
LICENSES & CERTIFICATIONS
Certification: Deep Learning Specialization with Andrew Ng
Issuing Organization: Coursera
Issue Date: February 2024
Associated Skills: Deep Learning, Artificial Neural Networks
Certification: IBM Certified Data Analyst
Issuing Organization: IBM
Associated Skills: Python
Note: Includes "Data Analysis with Python Certificate" with a grade of 100%.
COURSES (Laurentian University/Université Laurentienne)
COSC-3207EL: Algorithm Design and Analysis
COSC-2406EL: Assembly Language Programming
MATH-1717EL: Calculus I
MATH-1037EL: Calculus II
COSC-1701EL: Computer Applications I
COSC-1702EL: Computer Applications II
COSC-3406EL: Computer Organization and Architecture
COSC-1046ELL: Computer Science I
COSC-2047-ELL: Computer Science II
COSC-2006EL: Data Structures and Algorithms
COSC-2307EL: Database Programming
COSC-1056EL: Discrete Mathematics I
COSC-2056EL: Discrete Mathematics II
COSC-3026EL: Game Design
COSC-2206EL: Internet Tools
COSC-3807EL: Intro.
---
To Computer Networks
MATH-1057EL: Linear Algebra I
COSC-3127EL: Programming Languages
STAT-2246EL: Statistics for Scientists
COSC-2306EL: The UNIX Operating System
COSC-2026EL: User Interface Design
---
Name: Dylan Todd
Titles:
- Machine Learning Engineer/Data Scientist/Software Engineer
- Software/Full-Stack Engineer | Python Developer
Location: Greater Sudbury, Ontario, Canada
Contact Email: dylan.todd04@gmail.com
Online Links:
- Github
- Portfolio
SUMMARY_STATEMENTS
Version 1: Software engineer with strong foundations in Python and machine learning, passionate about leveraging technology to solve complex problems.
---
My strong communication skills and analytical mindset, combined with an unwavering commitment to continuous learning, enable me to adapt quickly and deliver meaningful results in dynamic technical environments.
Version 2: Resourceful Software Engineer with expertise in Python, SQL, and full-stack web development.
---
Proven ability to deliver production-grade features, optimize performance, and troubleshoot complex systems. Strong communicator and problem-solver with experience working in startup environments.
---
Passionate about building impactful products and continuously growing technical skills.
EDUCATION
Degree: Bachelor of Computer Science
Institution: Laurentian University
GPA: 90%
Duration: 04/2022 - 05/2026
CERTIFICATIONS
Certification: Deep Learning Specialization
Issuing Organization: Coursera
Grade: 100%
Issue Date/Duration: 12/2023 - 02/2024
EXPERIENCE
Role: Software Engineering Intern
Company: Galatea Solutions
Location: Remote
Duration: 04/2023 - 09/2023
Responsibilities & Achievements:
- Led full-stack web development project, completing 15+ feature implementations ahead of schedule using HTML/CSS/JavaScript.
- Engineered website enhancements resulting in a 50% decrease in website loading time and 30% increase in user engagement.
- Optimized page load speeds by 50% through frontend performance tuning (lazy loading, code splitting) and backend query optimizations.
- Collaborated within a small team of 3 interns, resolving 20+ critical issues and improving platform stability.
Role: Junior Programmer
Company: DataLemur
Location: Remote
Duration: 07/2024 - CURRENT (or 12/2025)
Responsibilities & Achievements:
- Designed and deployed a web-based SQL game/site using HTML, CSS, JavaScript, and PGLite, achieving over 100,000+ visits / boosting site traffic by 1M+.
- Optimized database performance using PGLite, reducing query response time by 60%.
- Developed 10 advanced SQL challenges, improving user engagement and platform growth.
- Enhanced website speed/performance via schema optimizations and additional software changes by 60%.
---
Project Name: Facebook UI Redesign
Tech Stack: HTML, CSS, JavaScript
Problem Solved: Modernized the user interface of Facebook to enhance usability, visual appeal, and responsiveness, addressing outdated design patterns and improving user engagement.
Key Features / Functionality:
Redesigned homepage and fullscreen layouts for improved navigation and aesthetics
Responsive design supporting multiple screen sizes
Custom styles and interactive elements for a modern social media experience
Integration of multimedia content (images, videos)
Enhanced user profile and group views
Architecture & Implementation Details:
Modular structure with separate HTML files for main, fullscreen, and video views
Centralized CSS for consistent theming and responsive layouts
JavaScript used for dynamic UI interactions and DOM manipulation
Organized asset management with a dedicated Images directory for media resources
No backend or database; all functionality is client-side
Outcome / Impact:
Delivered a visually refreshed and user-friendly interface prototype
Demonstrated front-end design skills and proficiency in modern web standards
Provided a foundation for further development or integration with backend services
Led a team of 5 computer science students to completion
Achieved a 95% grade in the course.
---
Project Name: MeAI (Persona-Driven LLM with Adapter Fine-Tuning) #NOT COMPLETE YET (RAG)
Tech Stack: Python, PyTorch, HuggingFace Transformers, PEFT, CUDA
Problem Solved:
Enables the creation of a highly personalized conversational AI agent by fine-tuning a large language model (LLM) with adapter-based methods, capturing nuanced persona traits and professional context for more authentic, context-aware responses.
Key Features / Functionality:
Adapter-based fine-tuning of a pre-trained LLM (Phi-2 Instruct) for efficient persona specialization
Custom prompt engineering to enforce behavioral and stylistic constraints
Automated response generation with configurable decoding parameters (temperature, top-p, top-k, repetition penalty)
Persona emulation with strict adherence to professional and ethical guidelines
Modular checkpoint management for iterative model improvement
Architecture & Implementation Details:
Utilizes HuggingFace Transformers for model and tokenizer management
Loads a base model and applies PEFT adapters from a specified checkpoint (results/checkpoint-450)
Inference pipeline constructs a detailed persona prompt, encodes input, and generates responses using GPU acceleration
Output post-processing enforces persona boundaries and trims extraneous tokens
Designed for future integration with Retrieval-Augmented Generation (RAG)
Outcome / Impact:
Achieved efficient, persona-consistent conversational AI with minimal compute overhead
Demonstrated effective use of adapter-based fine-tuning for rapid persona deployment
Established a robust foundation for further enhancements, including RAG and multi-turn dialogue support
---
Project Name: Portfolio-OS (Fallout 4-Inspired Terminal Portfolio)
Tech Stack: Svelte, TypeScript, Vite, Svelte Stores, HTML/CSS, LAMP stack (Linux, Apache, MySQL, PHP), RESTful API, Playwright (E2E testing)
Problem Solved:
Designed to provide an immersive, accessible, and customizable portfolio experience, Portfolio-OS addresses the need for a distinctive, keyboard-navigable personal website that showcases projects and skills while emulating the retro-futuristic terminal interface of Fallout 4.
Key Features / Functionality:
Fully keyboard-navigable UI with support for mouse interaction
Animated terminal-style text scroll, caret, and sound effects
Customizable terminal color, text speed, font size, and low-graphics mode
User authentication (login/signup), persistent settings via cookies and database
RESTful backend for user data, notes, messages, and configuration
Project pages with dynamic content, image carousels, and external links
Admin-only message management interface
Contact form with server-side message handling
Breadcrumb navigation reflecting user journey
Accessibility features including color themes and keyboard shortcuts
Architecture & Implementation Details:
Frontend: Built with Svelte and TypeScript, leveraging Svelte stores for global state (user session, settings, UI preferences).
---
Components are modular, with reusable UI elements (e.g., ChoiceSelector, TextScroll, ColorSelector).
Routing: Managed via a writable store (currentRoute), with breadcrumb tracking for navigation context.
Customization: User preferences are stored in cookies and synchronized with backend settings for persistence across sessions.
Backend: RESTful API endpoints (PHP) handle authentication, settings, notes, and messages, interfacing with a normalized MySQL database.
Admin Features: Role-based access for message management, including search, read/unread toggling, and bulk deletion.
Testing: Playwright E2E tests validate core UI flows.
UI Effects: Custom Svelte components implement CRT scanlines, text flicker, and animated SVG cursor for authentic terminal aesthetics.
Responsive Design: CSS media queries ensure usability on both desktop and mobile devices.
Outcome / Impact:
Delivered a unique, interactive portfolio platform with high accessibility and engagement
Demonstrated advanced frontend engineering, state management, and integration with a secure backend
Achieved robust separation of concerns and extensibility for future features
---
Project Name: SQL Games (SQL Squid Games)
Tech Stack: HTML5, CSS3, JavaScript (ES6), Web Components, CodeMirror, SQL.js, Custom Elements, PostgreSQL/SQLite (simulated), Figma (UI prototyping)
Problem Solved:
Designed to gamify SQL learning and assessment, SQL Games provides an interactive, scenario-driven environment for users to practice and master SQL queries through progressively challenging, story-based exercises.
---
The platform addresses the need for engaging, hands-on SQL education and self-assessment.
Key Features / Functionality:
Interactive SQL editor with syntax highlighting and auto-refresh (powered by CodeMirror)
Custom web components for exercises and quizzes (<sql-exercise>, <sql-quiz>)
Real-time SQL query execution and result validation using SQL.js
Scenario-based levels with dynamic problem statements and schema diagrams
Automated solution checking with feedback and progression logic
Modular, level-based HTML structure for extensibility
Integrated hints, explanations, and learning resources
Responsive UI with themed styling and accessibility considerations
Architecture & Implementation Details:
Modular codebase with separation of concerns:
main.js implements custom elements for exercises and quizzes, handles user input, query execution, and result comparison
codemirror.js and codemirrorsql.js provide SQL syntax highlighting and editor configuration
Each level is a standalone HTML file embedding custom components and referencing shared scripts and styles
SQL queries are executed client-side using SQL.js, enabling instant feedback without backend dependencies
Solution validation compares normalized query results, abstracting away row order and column naming differences
UI/UX designed in Figma and implemented with custom CSS themes for immersive gameplay
Extensible structure allows for easy addition of new levels, schemas, and challenges
Outcome / Impact:
Delivered an engaging, web-based SQL learning platform adopted for educational and recruitment purposes
Enhanced user engagement and retention through gamification and immediate feedback
Demonstrated effective use of modern web technologies and component-based architecture for interactive learning tools
Over 1 million visits on the page to date
Led a team of 4 engineers.
---
Project Name: ThumbGenie
Tech Stack: Python, PyTorch, Pandas, NumPy, PIL, CSV, StableDiffusion
Problem Solved:
Automates the generation of high-quality thumbnail images using deep learning, streamlining the process for content creators and digital media workflows.
Key Features / Functionality:
Deep learning-based image generation using a trained U-Net model.
Batch processing of images for thumbnail creation.
Preprocessing pipeline for preparing image datasets.
Metadata management for generated images via CSV.
Organized output directories for generated and source images.
Architecture & Implementation Details:
Modular Python codebase with separate scripts for preprocessing (preprocessing.py), model training (training.py), and image generation (thumbgenie.py).
Utilizes a U-Net architecture, with the final trained model stored in unet_final-001.pt.
Data pipeline includes image loading, preprocessing, and augmentation.
Generated images and associated metadata are systematically stored in dedicated directories (generated_images, metadata.csv).
Leverages PyTorch for model definition, training, and inference; Pandas and CSV for metadata handling; PIL for image manipulation.
Outcome / Impact:
Significantly reduces manual effort in thumbnail creation.
Enables scalable, automated image generation for digital content pipelines.
Demonstrates effective application of deep learning to real-world media production tasks.
---
Question: "What motivated you to choose Facebook’s UI as the target for redesign?"
Answer: "Well it was a class project, so we had to choose any website.
---
We found sites like craiglist or 4chan which were very clearly outdated, but we wanted to challenge ourselves.
---
So we chose facebook, which looked nice, but was actually too overcluttered and modern."
Question: "Can you explain the decision to keep the entire application client-side without a backend?"
Answer: "The aim of the project was simply a demonstration of UI and UX principles.
---
With that being said, having a backend or handling client data at all was completely out of scope."
Question: "What tools or methods did you use to ensure visual consistency across all redesigned components?"
Answer: "Well we had already planned out all the pages beforehand first in rough sketches, then in figma.
---
This was done with visual consistency in mind, so the actual coding portion was just putting what we saw into code."
Question: "What challenges did you face in modernizing the UI and how did you overcome them?"
Answer: "Facebook is already pretty modernized and takes into account UI/UX, so it was tough, especially considering we were only second year students at that point.
---
But we found ways around it by researching pain points, finding better ways to handle some navigation (like our dual sidebars), and darkmode especially was nice."
Question: "Which part of the UI redesign are you most proud of, and why?"
Answer: "I really like main home page menus.
---
I thought it was pretty creative, and actually a lot of ideas of our redesign was implemented into the new Facebook look a year after the fact."
Question: "How would you scale or extend this prototype to support real-time data and backend integration?"
Answer: "To be honest, it would require a complete refactor.
---
This code is not meant to handle that kind of operation, and everything was put together this way for a reason."
---
Question: "How does your approach to persona emulation ensure adherence to professional and ethical constraints?"
Answer: "Professionally, the fine-tuning data and prompt template were curated to restrict the model to formal, respectful, and domain-specific language.
---
Ethically, I implemented safety layers including refusal behaviors for inappropriate queries and ensured the model aligns with ethical AI use principles, such as avoiding misinformation and bias."
Question: "Can you explain the decision-making process behind using adapter-based fine-tuning over full fine-tuning?"
Answer: "Absolutely.
---
For one, it comes down to a hardware/time constraint. Training just a 2.7b model with lora takes me a full day on my PC. That's with training ~0.19% of all the weights.
---
Doing some calculations, that would take me months and months of leaving my PC on to just train the full model. This was the first and most important reason. The second reason is just to combat catastrophic forgetting.
---
Of course there are other ways around it, but this way I don't have to worry about it."
Question: "What criteria did you use to evaluate the persona consistency of the model's responses?"
Answer: "Like all LLMS, there's no real objective way to measure how good a response is.
---
So I simply used my own personal judgement.
---
This is adjacent to, say, RLHF."
Question: "What role does prompt engineering play in enforcing behavioral and stylistic traits, and how did you test its effectiveness?"
Answer: "Absolutely this plays a huge part.
---
I do have a prompt engineered for this project, and without it, it doesn't perform nearly as cohesively. Testing it's effectiveness was a matter of trial and error.
---
I found that not overloading the prompt with inputs (given it's limited size constraint) helped it not hallucinate and go out of control.
Question: "What challenges did you face in implementing decoding configuration (temperature, top-p, etc.), and how do these affect output quality?"
Answer: "Plenty.
---
Particulary the repetitiveness was an issue in my code, because 1/3 of the fine tuning dataset was for safety (Specifically not answering inappropriate questions), so it would tend to append that at the end of every answer.
---
Increasing the penalty for repetitiveness and also adding an end of text token really helped."
---
Question: "How did you ensure keyboard navigability and accessibility across different devices and screen sizes?"
Answer: "For navigation, as this is a keyboard based site, I made sure that tabbing felt intuitive and made sense.
---
It properly went from one option to the next, but you can also use arrow keys. However I also wanted to make sure mouse was a valid option for people who cannot use a keyboard.
---
As for differing screen sizes, I used media queries and proper scaling to ensure it looked good no matter the screen size."
Question: "What were some challenges you faced when implementing the animated terminal-style UI, and how did you overcome them?"
Answer: "The animations in particular was the most technically challenging part of this website.
---
The individual tweaking and actually coming up with some of them for at least 10 different components were definitely challenging.
---
Luckily there's a lot of resources online for similar styles of what I want, but none of them came perfect."
Question: "Can you explain how you used Svelte stores to manage user sessions and UI state across components?"
Answer: "I used two main svelte stores for my project.
---
One was a routing store which simply kept track of the current page, and the other was a global store which kept track of all different kinds of variables. (Text speed, size, font color, etc).
---
Therefore, when I needed one in another component (say rendering text), I could reference that svelte store to get the information."
Question: "Why did you choose to use a LAMP stack for the backend instead of a more modern backend framework or language?"
Answer: "Well first and foremost, this was a class project and that was one of the requirements, so this is the main reason.
---
But also, I feel that getting comfortable with maybe the less popular but more low level ways of working with the backend helps me get a better feel of what exactly I'm doing.
---
If it was up to me, I would have just used sveltekit."
Question: "How does the system persist and sync user preferences across sessions and devices?"
Answer: "There's a split of state saving which is local and actual data stores.
---
Locally, we just use cookies that never clear that saves things like your color preferences, sound preferences, etc.
---
However there are also accounts (which do not save between sessions) that have permanant storage by means of a database"
Question: "How did you design the RESTful API endpoints to maintain a clear separation of concerns?"
Answer: "RESTful API is by default separated by concerns.
---
Namely into GET, PUT, DELETE, and POST, however beyond that I also separated each into the different kinds of requests.
---
I did not let the user write their own sql and have it render, rather I had predefined queries, and the only thing that the user could modify was the ID's (which would be checked for security if they had permissions to do so)."
Question: "What measures did you take to secure user authentication and data transmission in your backend?"
Answer: "For user authentification, on login each user is given a certain token (attached to their session data), that represents their credentials.
---
Whenever any request is made, it first identifies if it has a token, then it verifies if the request is eligible for that person (so a regular user can't view another users information, but an admin could), and then no sql injection is possible, so the result is returned and processed by the front end who displays it."
Question: "How scalable is Portfolio-OS, and what would need to change to support a higher user load or new features?"
Answer: "Portfolio-OS is very scalable in terms of the code and infastructure.
---
The only thing that would need to be changed is adding more storage to support the database when/if new customers start writing to it."
Question: "What inspired the Fallout 4 terminal aesthetic, and how did you translate that into a functional web interface?"
Answer: "I've always really liked interacting with the terminal, and I've seen plenty of really cool portfolios that utilize the terminal in this way.
---
However I also wanted to consider accessibility, and realizing that a lot of recruiters wouldn't actually know how to use a terminal, I decided to go with something more user friendly.
---
I also really loved the fallout series (one of my favourites), so I combined the two and made it a fallout style terminal website."
---
Question: "What were some of the most technically challenging aspects of building a client-side SQL execution and validation system using SQL.js?"
Answer: "The hardest part was navigating around some of the syntax and queries that I wasn't used to.
---
I learned basic MySQL, so using postgres was definitely a bit of a challenge to ensure that the queries were structured right.
---
Getting the SQL.js to work on the browser wasn't all that difficult because of examples online."
Question: "How did you ensure the correctness of user-submitted SQL queries given differences in row order or column aliases?"
Answer: "I ignored column names completely, which means aliases does not matter.
---
As for row order, this was strict. In all the queries, you're expected to order them by a certain way, including filters.
---
As for the difference in columns, however, it's as simple as just making sure every row contains the right information in whatever order."
Question: "What was your approach to designing and managing the progression logic for the scenario-based levels?"
Answer: "Honestly my opinion was kind of overruled when it came to managing the progression.
---
I did create every single level and query, however I would have made the learning curve slightly easier if it were up to me.
---
To actually create each level, I first took note of all the games in squid games, and figured out ways to make that into an SQL query.
---
However this alone wasn't enough to make 10 levels, so in between each of these levels, I just thought of the world/lore itself, and designed queries that would make sense given the context of the show.
---
Then I added difficulty either with more operations per query, or multiple steps per query"
Question: "Can you explain how the modular architecture supports the extensibility of new challenges or schemas?"
Answer: "Yes!
---
All it takes to add more levels and schemas is to create a new html page, link it in the navigation, create a new sql file (that creates the database) and link it with the new file.
---
That's all!"
Question: "What role did you play in leading the team of 4 engineers, and how did you manage collaboration?"
Answer: "I was in charge of the main ideas and most of the programming, the other 4 engineers helped out with minor things, formatting, style, etc."
Question: "How did you use Figma in the development process, and how closely was the design followed in the implementation?"
Answer: "I used Figma to create an initial protoype, running it by the ceo for approval, ensuring everything looked formatted well.
---
Then moved on to actually designing the site.
---
For the most part, 90% of what was shown on the figma prototype was on the final product, but there were extra additions, minor color changes, etc."
Question: "What kinds of feedback or metrics did you collect from users to measure engagement or learning outcomes?"
Answer: "I was not the administrator of the site, so I could not directly track performance, however I was able to see the visits to the page which is now over 1 million.
---
Furthermore, the reception on reddit is overwhelmingly positive."
Question: "Why did you choose SQL.js over other client-side SQL engines or backend execution?"
Answer: "At first, I was using SQLite, but to maintain cross site compatibility, I switched to SQL.js (the site teaches postgreSQL)"
---
Question: "What inspired the development of ThumbGenie, and what specific user pain points does it address?"
Answer: "I've never really been good at photoshop or thumbnail making in general, and at the time I was experimenting with stable diffusion, so I thought, 'Why not just make a thumbnail generator?' And I did.
---
"
Question: "What challenges did you face while training the U-Net model, and how were they addressed?"
Answer: "This project was actually my longest. To start, I tried training a GAN to generate these images.
---
I spent over 3 months trying to work at that GAN. Different tweaks, using premade architectures, nothing worked.
---
Later I found out that it's because GANS are really only good for small images (at least what I was trying to do), and so no amount of tweaking would make it generate 1920x1080 images.
---
Then, I transferred to a diffuser architecture and it was much easier. Apart from that, the training times were a huge hurdle. I had to use every free resource available.
---
Azure, Colab, Sagemaker, etc."
Question: "How does ThumbGenie ensure that the generated thumbnails maintain visual relevance or quality for the source content?"
Answer: "ThumbGenie was trained in a way (metadata-CNN) so that when given a prompt, as well as the category, it does very well at generalizing over any type of distribution."
Question: "How scalable is ThumbGenie when applied to large batches of media, and what optimizations were made to support this?"
Answer: "Honestly, I don't know.
---
I know it can generate as much images at a time you want, but as for quality or optimizations, they were unaccounted for.
---
I could barely handle generating 1 image (1hr per image), testing more were unavailble due to GPU requirements.)
Question: "How does the metadata system work in ThumbGenie, and what kind of information is stored in the CSV files?"
Answer: "The metadata file stores the title and the category (up to 2).
---
This is really all the information you need for a thumbnail."