Hi there, I'm Karen!
Global Digital Citizen ~ Lifelong Learner
Full Stack Software Developer 👩💻

About Me
wheeeeeeee
Based in Canada, I'm an experienced IT professional with a background in software development, technical writing, and customer-focused tech support. Friendly and collaborative, I enjoy overcoming challenges with a combination of cheerful determination, grit, and resilience gained through an established work ethic. I'd love to explore opportunities to contribute to meaningful projects and conversations, so please feel free to connect with me on LinkedIn 🙂
Skills
Frontend
- JavaScript
- TypeScript
- React
- Next.js
- HTML
- CSS
- Sass
- Tailwind CSS
Backend
- Node.js
- Express
- Axios
- Python
- Flask
- Java
- Spring
- Spring Boot
- Ruby
- Ruby on Rails
- API
Database & Testing
- PostgreSQL
- MongoDB
- Supabase
- Cypress
- Jest
- Mocha
- Chai
- Selenium
My Projects
Some of my favourite projects are highlighted below. Hover over the images to view the code or demos. To see more, check out my GitHub account!

My GitHub Stats
Latest Blog Posts
Self-Hosting Umami Analytics with Docker, PostgreSQL, and Caddy
Practical setup notes for self-hosting Umami Analytics with Docker, PostgreSQL, and Caddy.
Notes from setting up a self-hosted Umami Analytics instance with Docker, PostgreSQL, and Caddy. “Works on my machine!”™️😏 Adapt as needed. 1. Prerequisites Tested on Debian 13 (Trixie) Docker and Docker Compose installed Caddy installed Project folder (~/docker) Website files...
Pair Programming
Musings on Collaborative Coding
🧑🤝🧑 What is pair programming? Pair programming is a collaborative endeavour in which two people work together on a single coding task. Typically, the person writing the code is called the driver, and the one reviewing the code is the navigator, and they’ll swap roles a few times throughout…
Contact Me
The best way to get in touch with me is via LinkedIn
I'd be happy to connect and chat about exciting projects or new challenges. Please don't hesitate to reach out! 🙂
Alternatively, send a message using the form below: