Listed below are some of the projects I’ve worked on throughout my career. Some are full-fledged products, and some are just libraries. Some I’m the primary developer (e.g. most things below) and some I’ve just contributed to (e.g. Link Bubble).
Brave browser blocks all the greed and ugliness on the Web that slows you down and invades your privacy.
Then we put clean ads back, to fund website owners and Brave users alike.
Link Bubble makes the Android mobile web more efficient. When you click on a link in any app, Link Bubble loads that webpage in the background and presents it in a floating bubble, leaving you free to continue using your current app.
Unique amongst Android web browsers, it saves precious time normally spent watching pages load.
The current website you’re visiting. This website is written in Node, Hapi, Redis React, and ES6 transpiled with Babel.
This website has been redone several times before. Previous versions were written in Google App Engine, Django, ASP .NET (C#), Flash / ActionScript, and the original one was generated from C++ code.
Only the last couple sites were open source.
Adblock Plus filter parsing and matching for lists like EasyList.
This library allows users to prevent page elements, such as advertisements, from being downloaded and displayed.
It is an implementation of AdBlockPlus’ filter rules. This library is in no way affiliated with Adblock Plus.
It just parses the same rules as Adblock Plus does. It does it significantly faster than other adblock implementations.
Simple AWS SDK wrapper library for starting, stopping, listing, and executing commands on Amazon Elastic Compute Cloud (EC2)instances.
EC2 is a central part of Amazon.com’s cloud computing platform, Amazon Web Services (AWS).
EC2 allows users to rent virtual computers on which to run their own computer applications.
Lead and primary developer for the Khan Academy app for Firefox OS.
Khan Academy allows you to learn almost anything for free.
The Firefox OS app is the best way to view Khan Academy’s complete library of over 6,000 videos and articles on a Firefox OS device.
Becoming a Mozilla contributor can be intimidating. There’s a lot of information to consume, and that information can be dispersed in a variety of different places. This site aim to outline the process of becoming a Mozilla contributor, from start to finish, with gentle, short, consumable 2-10 minute videos.
Contributed a significant amount of contributions to the Khan Academy Modern UI Windows Store app.
Khan Academy allows you to learn almost anything for free. Our Windows app is the best way to view Khan Academy’s complete library of over 6000 videos on your Windows device.
Enterprise level Windows backup software made in C++ which offers remote office branch office (ROBO) backup with features such as deduplication, agentless backup, replication, and more. Offers a WCF HTTP REST based SDK. Was acquired in 2011.
Micro business backup of any hard drive, network computer, or FTP/FTPS/SFTP site to another hard drive, FTP/FTPS/SFTP location, CD/DVD/BluRay, or tape drive. SQL Server, Exchange Server, and many other plug-in based applications supported. Was acquired in 2011.
Cryptex was designed to keep your data safe by creating an encrypted vault on your hard drive. The encrypted drive showed up as a new hard drive which allowed you to drag and dropping files in and out of it. It only used as much space as the files took up. When it was locked, the drive would disappear from view. Was acquired in 2011.
FTP, FTPS (FTP over SSL), SFTP (FTP over SSH), HTTP, WebDAV server and client software. The client and server were 2 distinct products. I still use it today as my primary FTP client and whenever I need an FTP server. The client and server was acquired along with the other vwsolutions products in 2011.
Worked on project via contract work. Windows drive which has a back-end of WebDAV, similar to xdrive. Coded both the Windows C++ source side and the C# ASP .NET web side.
Worked on project via contract work. Certified email service. Worked on Windows only via a TDI filter. On sender side it, would insert and certify that email came from a specific sender. On the receiver side, it would certify that the email came from the specified sender.
Auction Tool for eBay
Worked on project via contract work. Used eBay API to insert special visible counters on auctions and kept track of a lot of tracking information. Similar to Google Analytics for eBay items though.
BidGuru for eBay
Worked on project via contract work. Used eBay API to make a bid on an item just before the item expired.
NullShare is an open source C++ file sharing application. For more information. I stopped working on this due to legal concerns that other companies were going through.
NullShare Convert is an application for converting video file types. It basically ties into ffmpeg command line tools and outputs a GUI and preview. The product is used by my wife but I never actually released it.
Large library built from scratch using C++ that supports FTP, FTPS (FTP over SSL), SFTP (FTP over SSH), SMTP, POP3, HTTP (with support for cookies), HTTPS, TCP, UDP, HTTP Servers, HTTPS Servers, FTP Servers, Proxies, HTML parsers and much more. Runs on windows, but can easily be ported to linux/unix/. This library is the basis of several large scale applications.
TDI Network Filters
SMTP and POP3 low level network TDI filters. Has the ability to modify, block or add to network traffic.
Virtual disk drive implementation
Disk drive that windows can communicate with. Actual data does not exists but windows and other programs think that it does.
Windows Networking (LAN)
Supports functions for easily working with the windows LAN including, searching for files, connection to computers, reading/writing operations and access to administrative shares. Also has the ability to treat an FTP/FTPS server as a computer on your LAN. Library gives you access to these resources in the same way.
True 3D Tetris
Fully customizable Tetris game along the x, y and z axis. You can specify what type of blocks you want to play with and you can specify how big you want the board in the x, y and z axis respectively. Game is played with left and right arrow keys moving left and right, and the up and down arrow keys for moving towards you and away from you. Supports particle explosions when full lines are complete. Supports several other features as well.
Easy access and control over all windows schedules. Used in several large scale applications.
An image manipulation library that supports opening/obtaining info and modifying many different image file formats. Also has support for ‘layers’ in images and many different methods of blending.
Counter HTTP server
Generates images based on current count for given user. Responds to HTTP requests.
Several basic utilities related to computer vision and A.I. Most of this work was done using Video4Linux and Video4Windows libraries.
An open source implementation of an Msn Messenger client build from scratch using C++ and Qt3. Portable to Linux/Unix/Mac/Windows/BSD.
A library to pack and unpack a set of files into a single archive file. Similar (but more efficient) then tar. Runs on any platform. This is the core of the enterprise software Vision Backup - Enterprise that is sold worldwide.
Call .NET web services without .NET
Some SOAP wrappers and other misc to easily call .NET web services from any c++ application.
Utilities and a library to encode data into an image and later decode it.
Adaptive Huffman Compression
Utilities to compress and uncompress data using an adaptive Huffman technique. Originally started as a school project but has been significantly improved since then.
Created an application to perform Modeling, Viewing and Perspective Transformations along with line Clipping and resizable viewport representation within a window. It implements part of OpenGL graphical pipeline and uses a cube representation to test the correctness of the transformations visually. Implemented using Python and C++.
This program emulates the operations of a router and communicates to other routers in the network to keep track of routes for packets and minimize the time taken for packets to travel. It is a version of OSPF protocol with Dijkstra’s algorithm. It was built in Unix using UDP and C++.
Reliable transfer protocol
Implemented the Go Back N protocol for reliable transmission and delivery of packets across a network. It is built on top of UDP. It was tested with both Client and Servers running over a congested network. This was build on Unix using UDP and C++.
Simple Language Compiler
Implemented a compiler that translated programs, made in a c++ like language, into assembly code (MIPS) and executed it in a Unix environment. The compiler makes use of parsing trees, Context Free Grammar (CFG) and bottom up parsing to generate the Assembly code. Used technologies include java, JLex, Cup, and Assembly.
Misc data structures and algorithms
A collection of data structures that I created for my own personal use.
Some experience writting Firefox extensions such as tracking user habbits.
Several reusable Qt widgets.
Briefcase used to synchronize files between 2 mounted directories in linux/unix based systems
Pyroflow web site
The entire source code for the .NET, XML/XSLT driven web site. Also comes with an app for updating the web site from any remote computer
Waterloo Aerial Robotics Group
Fully autonomous flying robots (This project is a group effort and is not undertaken by me alone)
Nachos Operating System
My CS354 Operating systems group project
This section holds a variety of tests helpful for getting started on a new project fast and easy.
Hundreds of other libraries, applications and custom software jobs - Lots and lots of various projects.