Download PDF

Experience & Projects

Nov 2015Present

Software Developer


My role includes working with version control and issue tracking applications to meet customer requirements by providing software solutions for the telecommunication industry. On a continuous basis, I perform the following:

- Investigate and collaborate with peers to find the best way to implement solutions.

- Review code to learn from experienced programmers and make suggestions to improve software.

- Inspect execution flow, refactor, and write tests as part of our test-driven development process.

- Document development procedures for ease of access by other members and teams.

- Present and demonstrate my work to my team and managers.

- Mentor new hires of all types of seniority, and present system overview and code walk-through.

In a short period of time, I have made contributions to the  majority of components in the code base. I have written parsers for large files as well as improved the speed and performance of existing parsers and DB queries through concurrent and parallel programming. I have written helper functions and namespaces for existing and new micro-services, including a REST API for serving time series information for graph rendering. I have also updated UI code to reflect the back-end functionality. Through-out my experience at CENX, I have worked with tools and services from the Clojure family (Clojure, ClojureScript, Datomic) and the Apache family (Zookeeper, Kafka, Solr, Cassandra).

Jan 2015Dec 2015

Co-creator & Project Manager


Intelligent Shading Systems - A network of autonomous and self-sustaining blinds units intended for home automation and consumer-controlled convenience. Responsibilities included developing a RF transceiver controller using C++ for full duplex communication between central unit and controller, porting a real-time OS on the local controller using C, evaluating mobile app UI, and managing a team of three students, which involved producing proposals, WBS, gantt charts, BOM, and presentations.  

MATLAB Scripting

- Image processing and robot arm manipulation in order to solve an object classification problem.

- Signal processing to filter out noise and extract information from audio files.

Mobile App Development

Developed a Java app for the Android platform which reminds users to take their medicine on time.

Systems Development

Scrum approach for programming an Arduino powered robot in C using FreeRTOS library for real-time embedded systems in order to produce a robot that mimics the behaviour of a Chihuahua dog.

Computer Architecture

Designed a multi-core CPU and a GPU heterogeneous system to speed up C programs using OpenCL. Designed and Implemented a MIPS processor in VHDL on a FPGA board.



Scrum Agile          Enterprise Software          Git          JIRA          Clojure          Java          C          C++          Python    MATLAB          Android          Unix          


Robotics          Real-Time Embedded Systems          Computer Architecture         Telecommunication


SQL          Datomic          MongoDB


Zookeeper          Kafka          Solr          Cassandra


VirtualBox          Docker


Sep 2011Nov 2015

B. A. Sc. in Computer Engineering

University of Ottawa

GPA 8.0/10.0