Daniel Nadeau

Electrical Engineering Student. Software Developer. Maker. Pretty Nice Guy.

About Me .

Since you're already here

I am an Electrical Engineering student studying at Queen's University in Kingston.

A strong history

A solid employment history with experience at Microsoft Corporation; an open-source Android library covered on XDA-Developers, and more.

A creative mind

With a strong academic background, including Queen's University in Canada and the University of Leeds in the United Kingdom, I not only think smartly, but flexibly.

A bit more than driven

With many projects in my past and hopefully many more in my future, I can't wait to see what happens next.

Some of my history

Since you're so nosy.


This is what I've been working on

As a member of the Queen's Space Engineering Team, I developed hardware and software components for a 6 degree of freedom robotic arm which operated in the XYZ plane, as well as for the movement of a Mars rover.

Having competed in the University Rover Challenge in Arizona, our team did incredibly well as a first­-time competitor, placing 5th of 31 in the equipment servicing task, in which the robotic arm is almost exclusively used.

A video of the robotic arm and movement system can be seen in the competition below:

As a project for my university (Queen's University in Canada, if you're curious) I created an Android radio streaming app for the local CFRC Radio station.

I have to say, it was quite the experience dealing with a client on such a personal level (they were right on campus). But in order to create the application, there were a few steps we had to go through first.


The main task which was faced when determining the design of the application had to deal with how the user interface is able to integrate all the various features in a simple, easy to use, visually appealing manner.
To generate ideas for possible solutions to this problem, the team took to researching design solutions that had been used by other companies developing similar applications. Sampling other Android based radio streaming applications enabled the team to get a feel for the advantages and disadvantages of various methods to organize all the necessary features. Through this research, it was determined that there were realistically three design solutions which could be feasible in the scope of this project.

The simplest solution would be the listing of features in a formation similar to that shown by the CBC Music application. This would provide easy to find links to all the available features the application would provide, which would then appear on a separate page which would require the use of a “back” button to return the user to the main screen. Figure 1 also demonstrates a possible layout for the page which would outline the program the customer is listening to as well as providing a simple play/pause interface, and space for popup advertisements.

The CBC Music application shows how the Android guidelines of a modern, bright, simple interface could be easily incorporated into a list design.

A second option to be considered is demonstrated in Figure 2, which is some sample screenshots of the Digitally Imported Radio application by AudioAddict Inc. This application sorts its features using a tab design which minimizes the need for the application to open up new pages. With this design, the user is able to browse the different categories no matter which tab they have currently selected. The application also contains many of the advantages of the listed design shown in Figure 1 because the tab could contain listed content. The second screenshot of Figure 2 shows a similar play/pause interface to that of the CBC Musicapplication.

A final option which could provide a solution would be the large categorized buttons shown on the main screen of the Slacker Radioapplication (Figure 3). This visually appealing application breaks down its features into a few simple categories which than link the user to a new page. The main page of the application also sports a search bar which would help enable the user to more quickly find a desired radio stream rather than browse through categories. This solution is less cluttered and perfectly follows the Android guidelines. The second screenshot also demonstrates how to have a simple play/pause interface which does not feel empty thanks to the large album artwork being displayed. 

These three applications show that there are many successful methods to build a radio streaming application that need to be considered by the team before carrying on with development.


Seeing as we wanted to objectively - well, as objectively as we could given the subjective nature - find which design worked best for us, we made an evaluation matrix. We assigned a value from 1-5 for each individual quality of the application design under the categories: Intuitiveness, Simplicity, Appeal, Orginization of Content, and Spatial Arrangement

Method of Organization of Features
Design Simplicity
Visual Appeal
Spatial Arrangement
It is easy to find the links to different features from the home screen, but without any visual cues, which features each listed link leads the user to are left up to interpretation of the wording.
The list option would utilise the least amount of content, and thus would be the least cluttered.
Very sleek and modern, but overall bland design.
Everything is categorized through the main page, but in doing so there may be too many options at once, making it difficult to find which feature the user desires.
With many links placed in a small space with a scroll ability, the list option is effective in managing space to make available for additional features such as advertisements
Along with some simple icons, the tabs are descriptive improvements on the list method. With a similar design to internet browsers, the layout is user friendly
Along with the tabs, listed content or features would be visible on the same screen. If a media bar or advertisements were added, the page would be very cluttered
The icons add flavour to this design which mimics tabbed folders
Breaks down features into broader categories and makes it easy for the user to switch between tabs and features. Can also contain listed content.
The space taken up by the tabs on every page of the application takes up valuable space and gives the application a crowded look
Categorized Buttons
The large buttons with simple icons and a short description are easy to understand and use. Their size means that any user can access the features and is not overwhelmed by other details.
Very minimalistic design with minimal amount of links and clutter with adaptability for added features
Modern and chic, these large buttons fill the screen with bright colours without clutter. The icons are practical and visually appealing.
Using broad categories to contain all features, it is easy to find content as long as the description of the categories is accurate
The buttons take up a large space on the main screen but these sizes can be adjustable to suit additional features like advertisements. As well the space used is a clean design.

It was quick to see that the Slacker Radio app had more positives in our situation. The design was very intuitive with its large buttons, and the minimalist design matched our goals. In addition, it was modern (a must for Android development). While it was not as organized as the tabbed interface, it was still well laid out and easy enough to use. Finally, the button design was scalable and could work well on devices of many sizes. This was important, as we were developing for all Android phones, not just one.


Within our application, there were a few design choices we had to make, such as placement of UI elements (such as buttons, icons, etc.), placement of content (such as the calendar for the broadcasting schedule).  While doing this, we had to take into consideration the range of motion of the user’s thumb when using the application. As this is an Android device and the most popular Android devices have a 4.2 inch screen or above, we based our work off of the assumption that the standard device would be the Galaxy Nexus – Google’s recommended developer phone. Keeping this phone in mind, we made created an image (Figure 7) to examine the range of motion exhibited by the average user’s thumb.

Keeping this in mind, the UI was designed to include most interactive content within this human-defined boundary. For example, the main screen was designed with all of the main icons on the bottom half of the screen. This was done in order to allow easy interaction with most UI elements presented to the user.
In addition, the CFRC logo is prominently placed throughout the application. This allows the application to create a strong mental connection with the CFRC radio station itself, rather than just the application they are using. 


Good design takes time. You need to analyze the pros and cons of many decisions. Does the design of the app concede too much to functionality? Then it may be ugly. Or does functionality lose out over design? Then it may not be useful to most. You have to strike a happy medium.

Good design isn't just about colors or shapes, either. You must take into account the way in which the user is going to access your work. Does it make sense to place an often used control at the top of the screen, out of reach of the user? No. But where it is placed must make sense within the design itself.

Good design takes time. So take it.

I am very happy to announce the release of my newest app, Keeper.

Keeper is a finance app focused on keeping you "in-the-know" when it comes to your finances. Tracking transactions, account balances, bills and budgets, the Keeper released today is just start. 


  • Organizing accounts: with support for checking, savings, and credit card accounts, its easy to keep track of your finances
  • Bill payments: add and pay your bills with ease
  • Budgeting: with easy-to-create budgets, it simple to monitor your spending
  • Transaction records
  • Local storage - no funny "cloud" business
With your help, I hope to make this app prosper. Please send feature requests, bug reports, and anything that may cross your mind!


While working on one of my personal projects, I came across the need to use a graph or two for displaying some information to the user. Unfortunately, no matter how hard I looked, I was unable to find a graphing library that looks good. So, I decided to make my own!

Introducing, HoloGraphLibrary

This library is an open-source set of graph types that are easy to add to your app, and in addition, look gorgeous. Themed in the much-loved Holo style of Android, the graphing library should fit in with any of your modern, standards-compliant apps.

The library is available on BitBucket, free to download and modify to your pleasure. But please, be kind and add a link in your about page!

This is really just an app that I really wanted to see on Android. A friend of mine had it on his iDevice and I was disappointed that there was no Android equivalent. So, I got in contact with the devs (who were quite kind and more accommodating than I thought they would be - Thank-you!) and they gave me permission to make the Android version.

Now, to be clear, this is not a port. This is brand-new and from scratch, so bugs are expected. 

MintChip - Android Application

MintChip for Android is designed from the bottom-up to be a smooth, user-friendly, and beautiful mobile payment app. Whether it be for your phone or otherwise, the MintChip platform is made to be universal, and  functionally simple. The MintChip for Android app has not strayed from this belief. From micro-payments to sending a little bit of money to your friends, MintChip for Android has you covered.

The MintChip app for Android was built while keeping backwards-compatibility - as well as simplicity and current Android design - in mind, and this means that, yes, even devices without SD card slots are supported.

In doing this, MintChip has been made to be an attractive, easy to use app for quick mobile payments. One that would not get in the way of the user and their payment.


The menu screen is the central part of the application, allowing you to visit any other section of the application using just a tap of the screen. 

In addition, there is a drop-down menu activated by clicking "My MintChip" in the action bar. Using the drop-down menu, you are able to quickly view many details about your MintChip, including the ID, amount of money contained, and number of transactions completed using your MintChip.

As well, the camera icon allows you to scan a QR code which may contain payment data. Using this method, you can easily obtain someone's MintChip ID (shown in a later screen), or quickly fill in other fields and payment methods.


The MintChip holds a log of all completed transactions on your device. Using this, you can easily view past debit and credit transactions. Clicking on an entry will show further details, such as the time of day, and the payer / payee of the transaction.

In addition, the app offers the ability to export all debit and credit transactions to an Excel file. This can be useful when someone may require to keep records of their transactions.

Making and Receiving Payments

Making payments is simple using this MintChip app. Using the camera button, one can easily scan a QR code to enter someone's MintChip ID or fill in payment methods.

There are a variety of payment methods:

  1. Email
    Using the email method, one can send a payment file as an attachment in an email. Just click send, and your payment will be automatically attached to an email, ready to send.
  2. SMS / Text Message
    Using the SMS method, one can send a payment through text message to any other Android phone. They will receive this payment and will be notified. Easy!
    If the user chooses not to accept an SMS payment when it is received, it will be placed in a queue of pending requests. The user can then choose to accept whenever they feel is a good time.
  3. Web Payments
    Using web payments, one can upload their payment file to a web service. This may be useful to businesses which may specify a website to upload your payments to.
  4. Saving Locally
    Using this method, you can (you guessed it!) save the payment file locally. Once this is done, you have the freedom to transfer it via USB, email, or any other file-sharing method.
  5. Sending via Bluetooth
    This method is hidden by default, due to the inherent complexities with P2P communication, but a merchant can enable the functionality. Should a merchant choose to enable it, the phone will search for a specified device on which to connect (likely at the cashier) and can transfer the file using Bluetooth.
In addition, payments can be made using info from a special value request file. Opening this file on your phone will, just like the QR codes, populate the payment page with all of the required data for the user to make their payment.

Given so many methods of sending money, it's easy to receive or send your payments however you like.

My MintChip

This part of the app will allow you to obtain a QR code containing your MintChip ID, as well as your email and phone number (given that you have provided them in the setup page). It will also allow you to view pending payments received through SMS, and accept them on a payment-by-payment basis.



Being a merchant, you will certainly want to customize your interaction with the customer. We've got you covered.

Using this MintChip app, QR codes can be easily customized to provide specific information to the customer, hide other information, and prevent the editing of information provided. Some tags included to customize your payment requests are:
  • id : used to provide an ID to the device
  • editId : prevent the editing of a provided ID (true / false)
  • value : provide a value to the device (in dollar amount)
  • editValue : prevent the editing of a value (true / false)
  • phone : provide a phone number for SMS payments
  • email : provide an email address for email payments
  • hideOpts : hide payment options for which information has not been specified (true / false)
  • editOpts : disable the editing of information for payment methods (true / false)
  • many, many more...
An example QR code would look something like the following:
*Note: some may consider this syntax for a MintChip payment request 'URL' to be disgustingly wrong. I consider it innovative.

**Note: By innovative, I mean it works well enough for me and can be changed at any time.


During the initial setup of your MintChip, you will be given the option to include your email address and phone number in your MintChip's QR code. Should you not want to provide these, you do not need to, and can edit them any time in the future. 


Send me a message! You don't want me to be lonely... do you?

Contact Me

If you are interested in contacting me, or even just want to talk, see the links below


Newmarket, Ontario Canada