Fold button{
"aboutMe": "Welcome to my personal website! I am Bruce Blore, a software developer. I have been a tinkerer with an interest in technology for as long as I can remember. As a child, I liked to take things apart to see what was inside. My parents, seeing my interest for how things worked, signed me up for an after school STEM program. There, I discovered Scratch, and enjoyed messing with it, not even realizing that I was programming. My first exposure to "real" programming was shortly after with an Arduino board, and I have been doing it for fun ever since. In high school, I joined the coding club, which introduced me to web development. (And during my last year of high school, I ended up being a leader of the club.) Since then, I have been exploring and learning more on my own time, through my university courses, and now on the job. I hope to make a difference in the world doing what I love.",
"ownProjects": Unfold button[
Fold button{
"description": "An RGB light vest consisting of a WS2811 addressible LED strand and a raspberry pi. Controllable by an app on my watch written in javascript, through a server written with express.js in typecript running on a raspberry pi.",
},
Fold button{
"name": "Set Your Sites",
"description": "A chrome extension that uses a local language model to have a character of your choice yell at you for visiting time-wasting sites. Developed for nwhacks 2025",
},
Fold button{
"description": "A Python script to automatically generate class schedules in seconds given a list of classes, with the ability to configure things like minimum lunch break time and earliest and latest class times. Uses Beautifulsoup4 to scrape the classes from UBC’s website, then uses a search algorithm to find schedules matching the desired constraints.",
},
Fold button{
"description": "A few new apps and slight modifications to existing apps for the Bangle.js, an open source smartwatch used by thousands of people.",
},
Fold button{
"description": "A social media website written for CPSC 304, along with two other students. Supports multiple images per post and multiple authors per post. Makes heavy use of SQL queries to oracledb, from the backend written in Javascript using node and express.js.",
},
Fold button{
"name": "Text Reminder",
"description": "A program to send SMS reminders, using node.js to interact with the Twilio API. Developed along with 3 other students for nwhacks 2023.",
},
Fold button{
"description": "A Wordle solver written in Java using a search algorithm to play Wordle games.",
}
. . . ],
"contributedProjects": Unfold button[
Fold button{
"name": "Waybar",
"projectDescription": "A system bar for wlroots based compositors:",
"contribution": "Improved battery level display to more accurately represent remaining energy on laptops with two batteries.",
},
Fold button{
"name": "postmarketOS",
"projectDescription": "A project to enable devices to be kept up to date for years by providing a modular proper Linux environment.",
"projectHref": "https://postmarketos.org",
"contribution": "Made configuration changes to enable my Galaxy Tab 2 10.1 to perform better and access more software.",
}
. . . ],
"links": Unfold button[
Fold button{
"item": "Resume",
},
Fold button{
"item": "Linkedin",
},
Fold button{
"item": "Gitlab",
"note": "My main place for dumping personal stuff",
},
Fold button{
"item": "Github",
"note": "Mainly used for contributing to other projects",
}
. . . ],
"education": Unfold button{
"school": "Universiy of British Columbia",
"degree": "Bachelor of Science",
"major": "Computer Science",
"years": "2021 to 2025",
"myElectives": Unfold button[
Fold button{
"courseCode": "CPSC 302",
"summary": "Numerical computation",
},
Fold button{
"courseCode": "CPSC 304",
"summary": "Databases",
},
Fold button{
"courseCode": "CPSC 317",
"summary": "Networking",
},
Fold button{
"courseCode": "CPSC 322",
"summary": "Artificial intelligence",
},
Fold button{
"courseCode": "CPSC 340",
"summary": "Machine learning algorithms",
},
Fold button{
"courseCode": "CPSC 404",
"summary": "Databases",
},
Fold button{
"courseCode": "CPSC 416",
"summary": "Distributed systems",
},
Fold button{
"courseCode": "CPSC 418",
"summary": "Parallel processing",
},
Fold button{
"courseCode": "CPSC 422",
"summary": "Artificial intelligence",
},
Fold button{
"courseCode": "CPSC 425",
"summary": "Machine vision",
},
Fold button{
"courseCode": "CPSC 436s",
"summary": "Cybersecurity",
}
. . . ]
. . . }
}