Projects

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 macOS, Windows, and Linux browser

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.


brianbondy.com

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.


Brave Ad Block Engine (C++)

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.


Babel JSM module formatter

Babel plugin for converting ES6 modules into JavaScript code modules (JSM). JavaScript code modules let multiple privileged JavaScript scopes share code. For example, a module could be used by Firefox itself as well as by extensions, in order to avoid code duplication.


j

Simple AWS EC2 wrapper library

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.


Khan Academy app for FirefoxOS

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.


Code Firefox

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.


JS abstract syntax tree grader

Check JavaScript code structure against a set of goals in JavaScript. codecheckjs is based on Acorn - a small, fast, JavaScript-based JavaScript parser. Amongst other things, codecheckjs matches a desired template javascript code in an abstract syntax tree against a user created program.


Khan Academy app for Windows 8

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.


Gecko / Firefox

I started contributing to Firefox around when I started full time in 2011. I worked mostly on Windows related code in C++, but also XUL, XBL, Javascript, CSS, Python, and more. Some features I worked on were the Windows 8 Metro Firefox browser, the installer, silent updates, hundreds of fixes, and enhancements.


ROBOBAK

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.


Vision Backup

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

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.


Null FTP

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.


GlobalDrive

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.


Microsentry

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

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

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.


Internet Library

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.


Scheduling Library

Easy access and control over all windows schedules. Used in several large scale applications.


Image Flow

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.


Computer Vision

Several basic utilities related to computer vision and A.I. Most of this work was done using Video4Linux and Video4Windows libraries.


Pyroflow MSN

An open source implementation of an Msn Messenger client build from scratch using C++ and Qt3. Portable to Linux/Unix/Mac/Windows/BSD.


Pyroflow Archiving

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.


Stego Flow

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.


Graphical Pipeline

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++.


Router Emulator

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.


Firefox Extensions

Some experience writting Firefox extensions such as tracking user habbits.


Qt Extensions

Several reusable Qt widgets.


Pyroflow Briefcase

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


Various tests

This section holds a variety of tests helpful for getting started on a new project fast and easy.


Other

Hundreds of other libraries, applications and custom software jobs - Lots and lots of various projects.