Hi there!

Welcome to my site.

Jim profile photo

I'm Jim

a developer / linguist

Jim profile photo

I'm a translator-turned-developer who has a passion for languages, both human and computer. I love to explore the ways through which we encode and decode the messages we convey to each other.

My Projects

kitchen companion logo

As someone who dreads having to think of meal ideas, I created KitchenCompanion Customizable Cookbook to aid users in finding countless recipe ideas based on ingredients on-hand and helps them decide "What am I going to make for dinner tonight?"

Tech Specs

Challenges

Successes

Front end: React, JavaScript, Ant Design, SASS, Axios, Winwheel.js

Back end: Node.js, Express, MySQL, Spoonacular API, Knex, CORS, Axios, React Router

KitchenCompanion uses the Spoonacular API to retrieve and display thousands of different recipes and allows users to sort/filter them according to different search criteria. This includes being able to filter recipes based on ingredients that the user has on hand, which is saved in the application's state, as well as a random selector wheel that chooses a recipe randomly for easy meal decisions.

The application also uses a number of Ant Design components for a smooth user experience.

I initially explored several different recipe APIs to find the functionality I wanted. After selecting one, I ended up having to make a change halfway through the project due to a lack of one category of information I needed.

The Dinner Wheel was easy to build with Winwheel.js, but manipulating the funcionality proved to be difficult. I was able to modify the dependency package to get the results I wanted after many hours of scouring Stack Overflow.

With only two weeks to get a working product, I was amazed at what I could build in such a short amount of time. Despite all the moving parts and discovering what I could and could not complete in the given timeframe, I am so proud to have integrated all the moving parts well and deliver an application so full of good functionality.

Despite my ability to customize the functionality of Winwheel.js, I also had trouble maintaining it after deploying the application. However, this opened me to the experience of modifying the dependency, saving it to my GitHub and using my own dependency in the project - something I would not have had to experiment with otherwise.

encounter dex logo

Think you're a Pokémon Master? Test your knowledge of Pokémon cries from all 1025 Pokémon. There are 3 levels of difficulty for you to choose from for Trainers to really show what they've got!

Tech Specs

Challenges

Successes

Front end: Svelte, TypeScript

Back end: Node.js, Express, PokéAPI, Axios

This Svelte application calls the PokéAPI on the Node back end, while the front end manages UI components to keep track of score, question count, and response handling.

This was my first project built in Svelte, and learning typical Svelte patterns and state management as I went along took some research.

As I went along, some of the limitations of data retrieved in the PokéAPI required changes to expected behaviour and functionality.

Svelte turned out to be intuitive and simpler to use than some other JavaScript frameworks.

Using Svelte state management was much simpler than I expected.

encounter dex logo

Trying to catch 'em all? encounterDex uses the PokéAPI to retrieve a list of Pokémon that players can encounter in all areas of the games. You can search by different encounter methods and see available Pokémon's levels and encounter conditions.

Tech Specs

Challenges

Successes

Front end: React, JavaScript, Material UI, SASS, Axios

Back end: Node.js, Express, PokéAPI, CORS, Axios, React Router

This React application makes calls to the PokéAPI on the Node back end, while the front end filters data to sort encounter methods, conditions and Pokemon levels.

As I moved the information retrieved from the API down through the components, it became increasingly challenging to filter out irrelevant information.

Using CSS Grid also proved to be difficult in terms of responsiveness. However, I was able to learn much more about how Grid really works.

This project really helped me cement my understanding of JavaScript higher-order functions, as I often needed to use .map(), .filter(), and .any() in order to separate and compile retrieved information to display in the appropriate component.

I was able to set the application up to easily add game and route information for any of the other games in the main series by adding an array of route information. As I am able, I will be adding this information in without adjusting the app's functionality.

simon game logo

A challenge project from Angela Yu's Complete Web Development Bootcamp, this simple JavaScript game is simple to play. With each turn, a square will light up and add to a sequence. It's your job to remember the sequence and click the corresponding squares in the correct order as it continues to get longer and longer.

Tech Specs

Challenges

Successes

Stack: JavaScript, HTML, CSS

This Single-Page Application uses a simple JavaScript file that stores colour strings in two arrays - one "chosen" by the game, the other clicked by the player - and compares them before proceeding or restarting the game.

As my first JavaScript project, this game really challenged my understanding of using functions to follow logic. Understanding how to break down each step into smaller steps was key!

Furthermore, the Simon game tested my ability to iterate through and add to arrays, and then to validate their values.

Completing this challenge solidified my grasp of project flow and the importance of breaking down tasks.

It also showed me the advantage of clean, reusable code to make it easier to understand and use.

My Interests

computer code

Web Development

Last year, a couple good friends introduced me to the world of web development. Although my previous roles were challenging in their own ways, I was eager to take on a new challenge and learn to create applications with my own two hands. Having learned a lot about the way different human languages work, learning computer languages to start coding seemed like a natural next step. With each day, I learn more, build more and grow more curious about the endless possibilities of software development.

More

Tech Stack:

Languages: HTML, CSS (SASS), JavaScript/TypeScript (Node.js, EJS), php, Dart, C#
Libraries: React, jQuery, Axios, CORS, lodash
Frameworks: Angular/AngularJS, Express.js, Bootstrap, Ant Design
Databases: MySQL (Knex), MongoDB (Mongoose)
APIs: DOM APIs, Web APIs (Spoonacular, PokéAPI)
Version control: Git, GitHub, Tortoise SVN
Methodologies: Agile (JIRA, Kanban), Waterfall
Deployment: Jenkins, Heroku, Netlify

phrase in various languages

Language

I'm obsessed with the countless ways we can use sounds and symbols to convey complex ideas to one another (often without even thinking about it). Nothing excites me more than examining new words for familiar concepts, new scripts for familiar messages, or new idoms that paint new pictures for familiar thoughts.

More

Languages:

Native: English
Advanced: French
Intermediate: Mandarin
Beginner/Casual: Arabic, Cantonese, German, Malay, Spanish, Swedish

cake

Baking

It's no secret I have a killer sweettooth, nor is it that it is spoiled with desserts and goodies. Due in part to the Great Canadian Baking Show, I have sank my teeth into the world of creating elegant and sugary desserts (and then enjoy sinking my teeth into the desserts themselves!). I've come a long way, but I have a lot to learn and bake before I earn the title of Star Baker.

More

My specialties: macarons (they're easier than they look!), croissants, cakes & cookies.

Check out my Instagram for more!

piano

Piano

Sitting down at the bench and turning scribblings into melodies never fails to transport me to another world. Since I was a wee lad, I have been in love with creating music and putting my emotions into the ether. It's a beautiful thing.

More

I have my Grade 8 Piano from the Royal Conservatory of Music, and I perform semi-annually with Lupton Street Studios in fundraisers.

I also play the trumpet!

video games

Video Games

From the moment I received my first console (Nintendo 64) one Christmas, I've had a passion for gaming. A good game brings you into its constructed world and lets you explore and solve challenges within its constructs, and it's exactly this feeling of immersion that I keep coming back for.

More

Video games also integrate with a number of other interests of mine: listening to beautiful soundtracks, finding and exploiting program bugs, examining game translations and localizations.

My favourite games include The Legend of Zelda (my fav being Majora's Mask), the Pokémon series, the Super Mario series (especially Mario Karts and Mario Partys), Banjo-Kazooie/Tooie, Octopath Traveler, Perfect Dark, and the list goes on...

Let's Chat

I love making applications that solve problems and build communities based on ideas, and I'd love to help you build yours!

Please contact me via any of the channels listed below to find out what I can do for you. You can learn more about my skills and experience by viewing by downloading my CV.

CV downloadMy CV
LinkedIn icon

jim-lougheed

github icon

jim-lougheed

twitter icon

@JimsCodes

instagram icon

@fader08

email icon

jglougheed@gmail.com

Whether it be about technology, linguistics, science, books, or whatever else, I'm always up for exchanging thoughts and ideas