Karim Hamasni

View Menu

Karim Hamasni

Software Developer
Looking to solve some of the world's problems through code.

Computer Science Breakdown
Videos, Data Structures, Algorithms, Educational



Computer Science Breakdown

When learning about Data Structures and Algorithm Design, I felt that the topic was not adequately covered online in video form. Using the power of YouTube, I partnered up with my colleague, James Earle, and we set out to teach the topic in a clear and concise manner.
The videos have since been a hit, with a small yet active following that continues to grow daily. Often times, I receive e-mails and positive comments from followers of the YouTube channel expressing their gratitude for our videos. Here's a quote from an e-mail I received:
“I got to know about you from the YouTube channel CSBreakdown, The videos are very educational, crisp and clear. The videos have motivated me a lot to delve again into algorithms. I have started participating in the competitive programming forums, the beginners level of course, all thanks to you! Keep up the good work!”
- Santosh
I find it very important, as a developer, to be an active member in the global development community. Through Computer Science Breakdown, I feel my knowledge of the topics not only improve, but that I can share this knowledge with a wider audience. Be sure to visit Computer Science Breakdown at and let me know what you think!

Client Advisor Communications
Android, Java, Message Server, SSL Encryption

Expense Management
Android, Java, JSON

Instagram Companion App
Android, Java, JSON, APIs, Web

Java, Machine Learning, Genetic Programming, APIs, JSON, Cryptocurrency

Student Driven Calendar
Android, iOS, MonoTouch, MonoDevelop, C#, SQL



Student Driven Calendar

Planbook was an application project that I came up with in Niagara College and started developing there. It rose from the need for a better student calendar system. The school at the time were handing out paper agendas in orientation bags, and I noticed that almost no students were using them. Those students that kept track of their deadlines and important dates did so on their smartphones. Surprisingly, most students calendars were incomplete and missing deadlines was not an uncommon occurrence. The learning management systems that many colleges and universities employed did have calendar features, but we found that most instructors and professors were not diligent in updating them with all of the important dates.
Planbook set to change all of that by being a student driven calendar system where the entire class works together to maintain a complete and effective calendar. Students simply subscribe to the classes that they are in, and as other students begin to enter class related items into the calendar, these items begin to fade into the Planbook calendars of the students that have yet to enter the event. As more and more students confirm already entered events, they become less and less opaque on unconfirmed calendars. This technique provides more importance and focus to the events that the majority of the class deem important. Students could also subscribe to other calendars such as the school sports teams or student union events.
In Niagara College, we developed a proof of concept application for Apple's iOS devices using MonoTouch as our development environment. This allowed us to code for iOS using our language of choice at the time C#. I had a pivotal development role on the team as the developer of the calendar timeline interface screens, programming in the fading effect. We scored 100% on this assignment for developing it from sketches on paper to a proof of concept. Along the way, we employed technical diagrams, storyboard walkthroughs, and other development techniques to ensure a smooth development cycle. Here is the original iOS storyboarded walkthrough:
Kickstart Weekend Hackathon
In 2014, I was part of a team with two developers (myself included) and 3 business students to participate in a hackathon called KickStart Weekend held at Bio-Linc at Brock University. We developed Planbook as an Android Proof of Concept Application from scratch in 48 hours. We were surprised to find out that in the finals of the competition, we were the only team that actually had a working proof of concept application! To read more about our project, click to read out Application Proposal and our Application Outline.

OPG E-Learning Portal
C#,,, SQL, MVC3, HTML5, CSS3



OPG E-Learning Portal
Learning Management System for Staff Training

During my studies, I did a Co-op work placement term at Ontario Power Generation's Pickering Nuclear plant in their Learning and Training Centre. I was tasked with taking the current Learning Management System (LMS), written in, originally implemented over 10 years ago, and upgrade it to work with more modern technology using C# on the MVC3 framework.
I had to create a few separate E-Learning portals, for external contractors of the company, and internal employees. The sites task was to track the completion of learning modules by interfacing with the company database. For the portal that handled external contractors, I had to develop a registration form as well. The challenge in this project was to ensure that the system worked on legacy versions of Internet Explorer as the company still used many older Windows PCs that were not scheduled to be upgraded anytime soon.
I've created a video to highlight the project so you can see what I've done:

Android, Java, JSON, SQL

AI Chess
C#, Artificial Intelligence, Game Trees, Alpha-Beta Pruning

Paris For You Luxury Tours
HTML5, CSS3, JavaScript, PHP


Eastway Auto
HTML5, CSS3, JavaScript, PHP


Additional Projects
Portfolio Page v1.0, MyBillsAreHigh, RoyalTea Cupcakes



Portfolio Page v1.0

Originally in College, for a career development class, we were tasked to create a portfolio page to highlight our skills and our resume. This site built from scratch features numerous JQuery plugins like Tabs and Text Effects. There is also an eased JQuery scroll effect on menu selection.
Although this site has been replaced by the one you are visiting now, you can still visit the old one here: Personal Page v1.0

In 2009, I joined a company called Universal Wireless that managed the business We would help customers and business negotiate much better contracts through their digital service providers, be it mobile, internet, television and landline.
At the beginning, the company had no online presence so I developed the website that features many JQuery plugins and a PHP submission form. Additionally, to aide in the operations of the business, I wrote an applet that could give an estimate to a client on the savings we can provide them by inputting their current mobile usage patterns, and the software would perform all of the requisite calculations and suggest a discounted plan.
At the beginning, the company had no online presence so I developed the website that features many JQuery plugins and a PHP submission form. Additionally, to aide in the operations of the business, I wrote an applet that could give an estimate to a client on the savings we can provide them by inputting their current mobile usage patterns, and the software would perform all of the requisite calculations and suggest a discounted plan.

RoyalTea Cupcakes

In 2011, my then girlfriend, and soon to be wife, exhibited a true talent for making amazing cupcakes. At the time, I was tasked in a web development class to build a website of my choosing. I thought 'why not make a cupcake retail site?' and so I did, called RoyalTea cupcakes. This website was used as a way to showcase hers and her mom's creations to the world and drum up some business between family and friends.
This business is no longer operational as my fiancé now holds a teaching degree and is pursuing a career in education. However you can still visit the site here: RoyalTea Cupcakes

Encrypted Client-Advisor Communicator

In November of 2015, Royal Bank of Canada (Canada's largest bank) and their Wealth Management Division (One of the world's top 10 wealth management firms) held a software and business development competition called The Next Great Innovator Challenge. My team and I set out to make a secure communication tool to help connect clients to their personal advisors to take advantage of the increasingly text savvy demographic.
We solved a problem of offering round-the clock response times using an innovative feature called HandOff.
Our prototype took the Grand Prize at the event beating out 28 other development teams. My role for the project was conceptualizing the idea, developing the UI, handling front end communication, and working on server communications with a partner.

The team from left to right: Ryan Spring, Peter Wilson, Karim Hamasni, Matt Peskett, Mehrdad Arabpour

Expense Management

Expense management and budgeting is key to financial success. Royal Bank of Canada (Canada's largest bank) ran a coding competition/hackathon to find the next big thing in mobile banking. With balance, a user can quickly sort their expenses with simple swipe gestures that make the process easy and fun. Categorized expenses can be split between personal and business expenses and reports are then generated to show spending break downs as well as progress towards goals.
The largest and most popular expense management app, with over 15 million users, can be too cumbersome when categorizing expenses, and often it categorizes expenses incorrectly when it tries to guess. Balance solves those pain points with an intuitive, easy to use UI to make expense management easier and more accurate.
This was my entry in the 2015 RBC Make It Mobile Hackathon that took place in Toronto. Working with Android Studio, my partner and I developed the application from concepts on paper to a working prototype. When presented in front of the judges, our app took the top prize beating out 17 other teams.
Royal Bank of Canada has expressed interest in helping to continuously develop this app and having it launch as a value add to their millions of customers.
Here are some quotes from the judges:

"Very clean UX that is ubiquitous with mobile today." - Len Covello - CTO at Engage People Inc.

"Good use of gestures. Solid thinking and presentation." - Esteban Contreras - Director of Digital at Sprinklr

"Solves one of the very real challenges with current digital money management solutions...categorization. Great looking UI. Like the inspiration from email management to solve a financial services problem." - Stephen Schroth - Vice President, Head of Digital Channels at RBC

"Loved this simple elegant use of swiping to categorize." - Darren Murata - Founder and Creative Director at Comrade

"UX and intuitive nature is really great. The swipe gestures are great." - Melody Adhami - President and COO of Plastic Mobile

Instagram Companion App

Instagram, with over 400 million users, and 80 million posted photos daily, has one of the largest internet audiences of any digital medium. A major problem for users with many followers is their inability to monetize their audience. Many of the most popular Instagram posters provide fashion inspiration to their followers, however their fans are left on their own to find the products that inspired them. GetThat is an Instagram companion app that connects the Instagram follower to the products found in a post so they can easily purchase them.
I created this original idea for the MasterCard sponsored Masters of Code Hackathon that took place in Montreal in September of 2015. I captained a team of 3 other developers, and a business analyst to develop a proof of concept application from scratch in 24 hours. After a tireless night, and countless coffees, our application landed us in 3rd place overall on the only Canadian stop of this Global hackathon.
The application was written for Android using Android Studio. The primarily language for Android is Java with layouts done in XML. This application features the use of JSON returning API calls for product searches, as well as Instagram's Android Intents for posting to their social network. We included use of the hardware camera, as well as Bluetooth for use with the NYMI echocardiogram authenticating wristband.
This application is currently still in development and we hope to launch into the Android Play Store sometime in early 2016 with an iOS version to follow shortly.

BitCoin Trader
Market Lag Trading

This project was developed for a course on Machine Learning for the topic of Genetic Programming specifically. I set out to create an application that measures real time differences between numerous markets and makes buy or sell actions of the commodity Bitcoin accordingly.
Bitcoin is a very interesting security because it is traded on various markets spanning all corners of the world. Similar to Gold, Silver, and other precious metals, traders of Bitcoin are essentially trading the same thing in real time on various different markets. When the price spikes, or drops in one market, other markets react in generally the same direction. The time between when a market moving action occurs in one market, and the reaction in another, provides a trading opportunity which BitcoinTrader capitalizes on. What makes Bitcoin unique is the relatively long 'lag time' compared to that of precious metals as there is far less liquidity in the Bitcoin markets.
Using real time API data from the four largest Bitcoin markets, I was able to track relative variance between markets over a certain period of time. The challenge lay in determining which of the four major markets can be considered the most influential over the movement of the other markets. This is where the power of Genetic Programming was used. Employing various functions, such as variance, volume, MACD, and other trading stats, a Genetic Programming algorithm would attempt to write a program that maximizes the return on historic data. When successful, the program was effective at determining which market holds the most influence, and performs trades on other markets based on its movement. Every so often, to prevent the program written by GP from going stale, the program would re-execute the algorithm so it works with more recent data.
Project Status
The results were promising, providing steady returns on paper (moneyless) trades. Despite positive returns, there are still many aspects of the algorithm that require further testing. Paper trading, although useful to show that the system can work, is not a good indicator of real world performance. Actively making trades on a market influences the price in ways that paper trading cannot account for. The provided free web API's by the markets have limited data refresh rates, and paid for telnet API connections would prove to be much more effective. Also, most markets have trading fees that can greatly impact returns if the algorithm decides to execute many trades. This project is still in development as I study the economics of the Bitcoin markets further and work with more reliable APIs.
Demo Video

Appointment Booking

One of the biggest problems facing restaurants, hair salons, and other reservation based businesses is the problem of no show customers. A restaurant with 10 tables loses a significant portion of their nightly revenue if only 1 table decides to not show up to their confirmed booking.
In the world of entertainment, the ticket holder is on the hook for making the event, otherwise they stand to lose financially. An evening out at a fine restaurant with a rockstar Chef is a form of Entertainment, so why does the venue stand to lose if a patron doesn't show up? BookEase is a restaurant reservation app that provides incentive to the customer to make their appointment by requiring an upfront deposit on bookings. Customers in return gain access to hot tables at busy restaurants, and discounts on their meals or service.
The app was developed in native Android Studio for the MasterCard sponsored N>XT Hackathon that took place in October of 2014. I was the team captain of a team that consisted of three other developers and myself. We developed a proof of concept application that we did a live demo of on stage in the final round. We placed 5th overall and were the highest placing all student team.
To read more about this project, be sure to download the Application Outline and the Project Proposal.

Artificial Intelligent Chess
using Game Trees with Alpha-Beta Pruning

For a final project in a course on Artificial Intelligence, I wrote the game engine for Artificial Intelligence powered Chess. The AI consisted of a scoring system that would rank moves based on a number of metrics and construct a game tree.
Since there are a very large amount of possible chess moves at every step of the way through a game, it's unreasonable for a chess engine to perform the scoring calculations for every single move. An effective way to drastically reduce processing time is the effective use of Alpha-Beta pruning, where the engine will 'cut' branches of the tree for moves that do not progress the game in any meaningful way. Speeding up the game engine would allow the system to "look ahead" further in the game, with each look ahead move creating a new layer of the tree. The power of a game's ability to look ahead is measured in 'Ply's' and this project was able to achieve 7-ply within a reasonable amount of time.
This project was written in C# using Visual Studio as the IDE.

Paris for you Luxury Tours

A friend of mine started up her own tour company in the beautiful city of Paris and reached out to me to help her develop her website. This site features JQuery carousel image sliders, as well as mapping using Google Maps web api and Javascript for marking the destinations.
You can visit the site here:

Eastway Auto Services

A close family friend had been operating his automotive repair business since 1993 but had zero online presence. I set out to help him by creating his website and getting him listed onto Google and various social media sites. This site features JQuery carousel image sliders and eased page scrolling on menu selections.
You can visit the site here:

Hi, I'm Karim Hamasni, a passionate
Software Developer

My Skills
I code in a variety of languages spanning desktop, web and mobile. I'm also an ideas guy that has seen great success in development hackathons and programming competitions that bring my ideas to life. Topics of interest include Mobile Development, UI/UX Design, Data Structures, Algorithms and Artificial Intelligence.

See my resume for a full list of skills.

Mak Boox
Contact Me

Give me a shout!
I'd love to work with you.

2310 Abbott Crescent
Ontario Canada L1X 2T5
+1 905 321 0109

A quick learning, highly adaptive software developer.

High Level
  • Java
  • C#
  • Android Studio
  • HTML5
  • CSS3
  • Photoshop

Mid Level
  • SQL Server
  • MySQL
  • Javascript

Low Level
  • C++
  • Prolog
  • Ada
  • Objective C
  • Swift
  • Report Creation
  • Sales
  • Presentations
  • Proposals
  • UIX Design
  • Microsoft Office Suite
  • MacOSx
  • Microsoft Windows
  • Linux
Sep 2014 - Jan 2015
Teaching Assistant / Marker
Brock University Computer Science Department
I was responsible for grading assignments, projects and final exams. I maintained close communications with the course instructor to satisfy their expectations.
Sep 2014 - Jan 2015
Student Help Desk Support
Brock University Computer Science Department
I helped students with Computer Science related material by supervising a drop in centre on campus. This required me to have a wide variety of knowledge across many Computer Science subjects.
May 2012 - Sep 2012
Software Developer Co-op
Ontario Power Generation Pickering Nuclear
I was on a development team tasked with upgrading the company Learning Management System (LMS) from legacy Visual Basic technology to modern C# based technologies.
Nov 2010 - Jan 2015
Client Relations and Marketing VP
Universal Wireless Communications
I consulted clients on managing communications related expenses in their organizations, while developing and maintaining the web and marketing strategy for the company.
Sep 2007 - Sep 2009
Accounts Manager
Xerox - Advanced Office Solutions
I did sales and client relations for clients of Xerox technologies, including software and hardware printing solutions.
Graduated Jul 2015
H.BSc Computer Science with a concentration in Software Engineering
Brock University
Average: 89% (3.94 GPA)
Achievements: Dean's Honour List (All Semesters of Study), Returning Scholar Award (Year 3), Member of the Golden Key International Honour Society, Graduated First Class Standings
Graduated Dec 2013
Computer Programmer Analyst Co-op
Niagara College Canada
Average: 92%
Achievements: President's Honour Roll (All Semesters of Study), Niagara Scholar Award
Sep 2008 - Present
Big Brothers Big Sisters of Niagara Falls
I'm proud to have been a role model to a child in need of mentorship for over 6 years.
Jan 2015 - Present
Computer Science Breakdown
Created and maintain an online learning resource discussing topics of computer science through video.
Nov 2015
Team Captain / Lead Developer
RBC Make It Mobile Hackathon
Built an app that innovates expense management using UI gestures. Grand Prize Winner.
Sep 2015
Team Captain / Developer
MasterCard Masters of Code Developer Challenge
I conceptualized, and helped develop an Instagram companion app to help monetize followers. We placed 3rd in Canada.
Sep 2014 - Jun 2015
Executive Member
Brock Computer Science Club
I organized computer science related and professional development activities for fellow Computer Science students.
Sep 2014 - Jun 2015
Executive Member / Webmaster
Golden Key International Honour Society
I organized professional development and charity events, maintained the website, and engaged members through social media.
Mar 2014 & 2015
Participant & Captain (2015)
Brock Computer Science Games Team
I participated in 2014, and was the team captain in 2015 for the Brock University team competing in a national competition against universities from across Canada.
Nov 2014
Participant / Developer
Brock KickStart Weekend
Participant in a business development hackathon by developing a student driven learning management system.
Oct 2014
Team Captain/Developer
MasterCard N>XT Developer Challenge
I captained a finalist placing team in a mobile app development hackathon sponsored by MasterCard.