🏠 Welcome
📄 about.md (Preview) ×
📄 projects.md (Preview) ×

Nick Irvine

Interactive VS Code-style Portfolio

Start

Recent

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# About Me
Versatile IT Specialist and Software Developer with extensive experience in enterprise-level technical support and full-stack application development.
## Professional Background
Currently working as an IT Specialist and Software Developer, providing remote support across 1000+ workstations while developing secure, HIPAA-compliant applications. Proven track record in managing large-scale infrastructure operations and delivering innovative solutions that enhance operational efficiency. Focused on delivering cost-effective products and solutions while maintaining the highest standards of security and compliance.
Led the development of a peer-to-peer chat application fully compliant with HIPAA regulations, implementing secure messaging protocols and encryption standards to ensure patient data protection and regulatory compliance.
## Technical Expertise
**Mobile & Frontend**: Flutter, Dart, Full-Stack Development
**Backend**: Python, C#, Java, Go
**DevOps & Infrastructure**: Docker, Linux, UniFi Firewalls, Remote Support Tools, Ticketing Systems
**Specializations**: HIPAA Compliance & Security, 3D Design & 3D Printing, Scripting & Automation, Project Management
## Certifications & Awards
- Lenovo Workstation Certified
- Award for Algorithms Design & Planning - Central Memorial High School
## Education
**Software Development Diploma** - Southern Alberta Institute of Technology (2024-2026)
**High School Diploma** - Central Memorial High School
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Featured Projects
## SaladSync.ca
Custom VS Code-inspired portfolio website built from scratch.
**Tech Stack:** HTML, CSS, JavaScript (Vanilla)
[View on GitHub](https://github.com/SaladStik/SaladSync.ca)
## Nicks SAIT Schedule Builder
Custom alternative to the official SAIT scheduling system with advanced course selection, conflict detection, and calendar export capabilities.
**Frontend/UI:** Streamlit (Python web framework), HTML/CSS (custom styling)
**Backend:** Python, Requests (HTTP library), SAIT Banner API integration
**Data Processing:** openpyxl (Excel exports), icalendar (calendar files), pytz (timezone handling)
**DevOps & Hosting:** Docker (containerization), Jenkins (CI/CD pipeline), automated deployment
**Features:** Cookie-based authentication, schedule conflict detection, multi-format exports (.xlsx, .ics)
![SAIT Schedule Builder Screenshot](img/sait_scheduler.png) SAIT Schedule Builder Screenshot
[View it live](https://saitscheduler.saladsync.ca)
[View on GitHub](https://github.com/SaladStik/NicksSaitScheduleBuilderPub)
## Salad Overflow
A full-stack Stack Overflow/Reddit clone with Q&A functionality, voting system, user profiles, and real-time notifications.
**Frontend:** Next.js 14, React 18, TypeScript, Tailwind CSS, Zustand (state management)
**UI Components:** Lucide React (icons), React Markdown, React Syntax Highlighter, React Hot Toast, React Easy Crop
**Backend:** FastAPI, Uvicorn (ASGI), SQLAlchemy 2.0 (ORM), Alembic (migrations), Pydantic (validation)
**Authentication:** python-jose (JWT), Passlib + bcrypt (password hashing), GitHub OAuth
**Database & Caching:** MariaDB 11 (primary database), Redis 7 (caching layer)
**DevOps:** Docker, Docker Compose, Nginx (reverse proxy), Jenkins (CI/CD)
![Salad Overflow Screenshot](img/saladoverflow.png) Salad Overflow Screenshot
[View it live](https://overflow.saladsync.ca)
[View on GitHub](https://github.com/SaladStik/CPRG-306-E-SaladOverflow)
## More Projects
[Check out my GitHub for more exciting projects!](https://github.com/SaladStik)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Technical Skills
## Programming Languages
- Python
- C#
- Java
- Go
- Dart
- JavaScript / TypeScript
## Mobile & Frontend Development
- Flutter (Mobile App Development)
- Full-Stack Web Development
- HTML5 & CSS3
- Responsive Design
## DevOps & Infrastructure
- Docker & Containerization
- Jenkins (CI/CD Pipelines)
- Cloudflare (CDN & Hosting)
- Linux System Administration
- UniFi Firewalls & Network Security
- Remote Support Tools
- Ticketing Systems
- Workstation & Server Configuration
## Security & Compliance
- HIPAA Compliance & Implementation
- Secure Messaging Protocols
- Encryption Standards
- Patient Data Protection
## Product Development
- 3D Design & Modeling
- 3D Printing
- Full Product Development Lifecycle
- Prototyping
## Professional Skills
- Project Management
- Technical Support & Troubleshooting
- Customer Service
- Scripting & Automation
- Hardware/Software Quoting & Procurement
1
2
3
4
5
6
7
8
9
10
11
12
# Get In Touch
I'm always open to new opportunities and collaborations!
## Contact Information
**Email:** [email protected]
**GitHub:** [github.com/SaladStik](https://github.com/SaladStik)
**LinkedIn:** [linkedin.com/in/nicholas-irvine](https://www.linkedin.com/in/nicholas-irvine-303ab5284/)
Feel free to reach out for projects, questions, or just to say hi!
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>VS Code Portfolio</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <!-- Portfolio Content -->
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI';
  background-color: #1e1e1e;
  color: #cccccc;
}
1
2
3
4
5
6
7
8
9
10
// VS Code Portfolio - Interactive JavaScript
document.addEventListener('DOMContentLoaded', () => {
  const fileItems = document.querySelectorAll('.file-item');
  
  fileItems.forEach(item => {
    item.addEventListener('click', () => {
      // Handle file clicks
    });
  });
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Portfolio Website
A modern, interactive portfolio built with vanilla JavaScript, featuring a VS Code-inspired interface.
## 🚀 Features
- **VS Code Theme**: Dark+ theme with authentic VS Code styling
- **Tab System**: Multiple file tabs with close functionality
- **Markdown Support**: Live markdown preview with syntax highlighting
- **Context Menus**: Right-click context menus for markdown files
- **Image Viewer**: Built-in image viewer with zoom controls
- **Responsive Design**: Works on desktop and mobile devices
## 🛠️ Technologies
- HTML5
- CSS3 (Custom VS Code Dark+ Theme)
- Vanilla JavaScript (No frameworks)
## 📦 Project Structure
```
portfolio/
├── index.html # Main HTML structure
├── styles.css # VS Code theme styles
├── script.js # Main application logic
├── tab-system.js # Tab management system
└── assets/ # Images and resources
```
## 🚦 Getting Started
1. Clone the repository
2. Open `index.html` in your browser
3. Explore the interactive portfolio!
## 📝 License
MIT License - feel free to use this project for your own portfolio!
## 🔗 Links
- Live Site: https://saladsync.ca
- GitHub: https://github.com/SaladStik
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
  "workbench.colorCustomizations": {
    "activityBar.background": "#091691",
    "titleBar.activeBackground": "#0C1FCA",
    "titleBar.activeForeground": "#F9F9FF"
  },
1
2
3
4
5
6
7
8
.vscode/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* Component Styles */
/* TODO: Refactor button styles to use CSS variables */
.btn-primary {
  background-color: #007acc;
  color: #ffffff;
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s ease;
}
.btn-primary:hover {
  background-color: #005a9e;
  transform: translateY(-2px);
}
/* Card Component */
/* TODO: Add responsive breakpoints for mobile */
.card {
  background: #2d2d2d;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
/* TODO: Add dark mode toggle support */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Main Application Entry Point
// TODO: Implement lazy loading for components
import { initNavigation } from './navigation.js';
import { analytics } from './analytics.js';
class App {
  constructor() {
    this.version = '1.0.0';
    this.initialized = false;
  }
  async init() {
    // TODO: Add error boundary
    try {
      await initNavigation();
      analytics.track('app_loaded');
      this.initialized = true;
      console.log('App initialized successfully');
    } catch (error) {
      console.error('Initialization failed:', error);
    }
  }
}
// Initialize app on DOM ready
// TODO: Add service worker for PWA support
const app = new App();
document.addEventListener('DOMContentLoaded', () => app.init());
export default app;
profile.jpg Loading...
100%
Profile Picture
logo.png Loading...
100%
Logo
sait_scheduler.png Loading...
100%
SAIT Schedule Builder Screenshot
saladoverflow.png Loading...
100%
Salad Overflow Screenshot
universal_tiny_pc_mount.png Loading...
100%
Universal Tiny PC Mount
profile.png Loading...
100%
Profile
main ✓ 0 ⚠ 0
Ln 1, Col 1 Spaces: 2 UTF-8 Markdown
Open as Editor
Open as Preview