Nick Cross

Nicholas Cross

Senior Fullstack Software Engineer.

Email: njcross1990@gmail.com

LinkedIn: Nicholas Cross

GitHub: Nicholas Cross

Professional Summary

Versatile Full-Stack Software Engineer with 10+ years of experience driving enterprise-scale development at companies like Ontraport and BigCommerce. Adept at building scalable, cloud-based solutions using modern technologies including React, Python, PHP, and C++. Combines strong programming and DevOps expertise with a passion for problem-solving, performance optimization, and cross-functional collaboration. Known for rapidly mastering recent technologies, tackling complex challenges, and delivering under pressure in both independent and team-driven environments.

Projects

MyPlayTray – Consultant / Senior Product Engineer

Coding Temple Projects

Explore More Projects: github.com/njcross

Components Showcase

Authentication
Authentication
Catalog & discovery
Catalog & Discovery
Inline content editing
Inline Editing
Ratings & reviews
Ratings & Reviews
Favorites
Favorites
Account settings
Account Settings
Admin create kit
Admin: Create Kit
Newsletter composer
Newsletter Studio
Inventory management
Inventory
Orders dashboard
Orders
User administration
Admin Users
Inventory map
Inventory Map
Location selector
Location Selector
Cart and checkout
Cart
Billing & payment modal
Billing & Payment

Deployment & CI Output

Frontend: 57/57 tests Backend: all tests passed Build: completed Redis + PM2: online

CI pipeline runs unit tests, builds React, syncs content.json, and restarts backend services on EC2 (PM2 + Redis listener).

PS C:\Users\njcro\m7project> .\deploy.bat "fixes"
Uploading restart script...
restart_backend.sh                                                                                                                                                                 100% 1257    15.7KB/s   00:00
Restarting backend on EC2...
🔍 Inspecting content.json status...
📁 Found content.json
📄 Committing local content.json changes before pulling...
[main bdac228] Auto-commit: Preserve local content.json before pull
 1 file changed, 2 insertions(+), 2 deletions(-)
📥 Pulling latest changes from main...
From github.com:njcross/ProductSite
 * branch            main       -> FETCH_HEAD
   336505e..16f604f  main       -> origin/main
Successfully rebased and updated refs/heads/main.
🔍 Checking for content.json differences from origin/main...
📤 Pushing merged content.json changes...
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

Untracked files:
  (use "git add ..." to include in what will be committed)
        react-router-bootstrap-app/public/images/game_kit.jpg
        react-router-bootstrap-app/public/images/gears.jpg
        react-router-bootstrap-app/public/images/solar_system.jpg

nothing added to commit but untracked files present (use "git add" to track)
✅ content.json sync complete.
To github.com:njcross/ProductSite.git
   16f604f..f7530f7  main -> main
➜ 1. Committing changes...
[main ae3c6b0] fixes
 2 files changed, 3 insertions(+), 3 deletions(-)
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 5), reused 5 (delta 4), pack-reused 0 (from 0)
Unpacking objects: 100% (8/8), 5.63 KiB | 128.00 KiB/s, done.
From github.com:njcross/ProductSite
 * branch            main       -> FETCH_HEAD
   e44af6a..f7530f7  main       -> origin/main
Merge made by the 'ort' strategy.
 README.md                                      | Bin 21756 -> 10975 bytes
 react-router-bootstrap-app/public/content.json |   4 ++--
 2 files changed, 2 insertions(+), 2 deletions(-)
Enumerating objects: 18, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 8 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 766 bytes | 766.00 KiB/s, done.
Total 8 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
To github.com:njcross/ProductSite.git
   f7530f7..ecebe59  main -> main
🎨 Deploying FRONTEND...
🧪 Running frontend tests...
Test Suites: 51 passed, 51 total
Tests:       57 passed, 57 total
Snapshots:   0 total
Time:        16.695 s
Ran all test suites.
npm notice
npm notice New major version of npm available! 10.9.0 -> 11.5.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.5.2
npm notice To update run: npm install -g npm@11.5.2
npm notice
➜ Frontend tests passed.
🔄 Syncing content.json from server...
content.json                                                                                                                                                                       100% 9127    53.4KB/s   00:00
🏗️ Building the frontend...

> react-router-bootstrap-app@0.1.0 build
> react-scripts build && node sitemap-generator.js

Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  217.91 kB  build\static\js\main.2662862b.js
  46.15 kB   build\static\css\main.afb16abe.css
  2.71 kB    build\static\js\488.a3b316c2.chunk.js

The project was built assuming it is hosted at /.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.
You may serve it with a static server:

  serve -s build

Find out more about deployment here:

  https://cra.link/deployment

➜ Build completed successfully.
🚀 Uploading React build to EC2...
📦 Backing up current build on EC2...
📤 Uploading new build...
apple-touch-icon.png                                                                                                                                                               100% 9824   111.6KB/s   00:00
asset-manifest.json                                                                                                                                                                100%  517     6.1KB/s   00:00
content.json                                                                                                                                                                       100% 9127   107.4KB/s   00:00
favicon-96x96.png                                                                                                                                                                  100% 4757    56.7KB/s   00:00
favicon.ico                                                                                                                                                                        100%   15KB 179.7KB/s   00:00
favicon.svg                                                                                                                                                                        100%   32KB 377.4KB/s   00:00
0FB1E43D-AE6E-4F5D-9291-2EB72C8CBD6B.png                                                                                                                                           100% 3176KB   3.7MB/s   00:00
6cfd37544b11fa9e03b3480eec1fe8f7.jpg                                                                                                                                               100%  372KB   1.8MB/s   00:00
AdvancedMarker.css                                                                                                                                                                 100%  425     6.5KB/s   00:00
C8121279-0275-40C4-8B38-F0CD0DCE627F.png                                                                                                                                           100%  323KB   1.7MB/s   00:00
canstockphoto22402523-arcos-creator.com_.jpg                                                                                                                                       100%   72KB 435.7KB/s   00:00
character_routes.py                                                                                                                                                                100% 2961    43.2KB/s   00:00
content.json                                                                                                                                                                       100% 5449    66.5KB/s   00:00
download.jfif                                                                                                                                                                      100% 3595    41.8KB/s   00:00
download_1.jfif                                                                                                                                                                    100% 4122    49.1KB/s   00:00
favicon.ico                                                                                                                                                                        100%   15KB 191.3KB/s   00:00
hero.png                                                                                                                                                                           100%  341KB   1.8MB/s   00:00
InventoryMap.css                                                                                                                                                                   100%  177     1.8KB/s   00:00
kit_01.png                                                                                                                                                                         100%   27KB 323.8KB/s   00:00
paperplateanimals-main.jpg                                                                                                                                                         100%  141KB 779.0KB/s   00:00
paper_toy_houses.jpg                                                                                                                                                               100%  210KB   1.2MB/s   00:00
pipecleaner_animals.jpg                                                                                                                                                            100%   56KB 373.0KB/s   00:00
step1.png                                                                                                                                                                          100%  135KB 841.6KB/s   00:00
step2.png                                                                                                                                                                          100%  130KB 794.8KB/s   00:00
step3.png                                                                                                                                                                          100%  136KB 757.2KB/s   00:00
Story_Card_Game_1.jpg                                                                                                                                                              100%  213KB   1.3MB/s   00:00
Turkey_Day_Placematjpg.jfif                                                                                                                                                        100% 8894   125.9KB/s   00:00
index.html                                                                                                                                                                         100% 1626    18.9KB/s   00:00
manifest.json                                                                                                                                                                      100%  618     7.2KB/s   00:00
robots.txt                                                                                                                                                                         100%  178     1.8KB/s   00:00
sitemap.xml                                                                                                                                                                        100%  938     9.4KB/s   00:00
main.afb16abe.css                                                                                                                                                                  100%  309KB   1.7MB/s   00:00
main.afb16abe.css.map                                                                                                                                                              100%  680KB   3.4MB/s   00:00
488.a3b316c2.chunk.js                                                                                                                                                              100% 7424    58.5KB/s   00:00
488.a3b316c2.chunk.js.map                                                                                                                                                          100%   17KB 178.9KB/s   00:00
main.2662862b.js                                                                                                                                                                   100%  832KB   3.0MB/s   00:00
main.2662862b.js.LICENSE.txt                                                                                                                                                       100% 2711    29.1KB/s   00:00
main.2662862b.js.map                                                                                                                                                               100% 3160KB   7.6MB/s   00:00
web-app-manifest-192x192.png                                                                                                                                                       100% 9415    98.9KB/s   00:00
web-app-manifest-512x512.png                                                                                                                                                       100%   26KB 299.4KB/s   00:00
✅ Deployment completed successfully
🚀 Deploying BACKEND...
🧰 Ensuring Redis is installed on EC2...
🛠️ Configuring Redis keyspace notifications...
OK
🧩 Ensuring Redis listener is running via PM2...
[PM2] Applying action deleteProcessId on app [redis-listener](ids: [ 1 ])
 ✓
┌────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name       │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 2  │ backend    │ default     │ N/A     │ fork    │ 1897129  │ 2M     │ 0    │ online    │ 0%       │ 13.4mb   │ ec2-user │ disabled │
└────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[PM2] Starting /home/ec2-user/ProductSite/backend/scripts/redis_listener.py in fork_mode (1 instance)
[PM2] Done.
┌────┬───────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name              │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┬──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 2  │ backend           │ default     │ N/A     │ fork    │ 1897129  │ 2M     │ 0    │ online    │ 0%       │ 13.4mb   │ ec2-user │ disabled │
│ 3  │ redis-listener    │ default     │ N/A     │ fork    │ 1784031  │ 0s     │ 0    │ online    │ 0%       │ 4.0kb    │ ec2-user │ disabled │
└────┴───────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

[notice] A new release of pip is available: 24.3.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
🧪 Running backend tests...
✅ Backend tests passed.
Restarting backend on EC2...
WARNING: You are using pip version 21.3.1; however, version 25.2 is available.
You should consider upgrading via the '/home/ec2-user/ProductSite/backend/venv/bin/python3 -m pip install --upgrade pip' command.
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
CORS_ORIGIN: ['https://www.myplaytray.com', 'https:/myplaytray.com']
Database tables created!
[PM2] Applying action deleteProcessId on app [backend](ids: [ 2 ])
 ✓
┌────┬───────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name              │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┬──────┼───────────┬──────────┬──────────┬──────────┬──────────┤
│ 5  │ backend           │ default     │ N/A     │ fork    │ 1784591  │ 0s     │ 0    │ online    │ 0%       │ 4.0kb    │ ec2-user │ disabled │
│ 4  │ redis-listener    │ default     │ N/A     │ fork    │ 0        │ 0      │ 15   │ errored   │ 0%       │ 0b       │ ec2-user │ disabled │
└────┴───────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
✅ Deployment completed successfully

Skills

Technology Proficiency Years of Experience
PHPExpert12
SQL/RedisExpert12
C++Intermediate10
PythonAdvanced2
JavaScript/ReactAdvanced6
TypeScriptIntermediate1+

Frameworks, Tools & APIs

Other Skills

Work Experience

Full Stack Senior Product Development Engineer, Consultant (2025–Present)

Senior Fullstack Engineer, BigCommerce (2023–2024)

Backend Engineer, Ontraport (2013–2023)

IT Specialist, Mindspan Consulting (2009–2013)

Education

Contact Me