Download PDF

Experience & Projects

Nov 2015to date

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.


Software & Programming

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

Engineering & Automation

Robotics          Real-Time Embedded Systems          Computer Architecture         Telecommunication

Computer Networking

Network Security          Cisco IOS          GNS3          Wireshark


SQL          Datomic          MongoDB


Zookeeper          Kafka          Solr          Cassandra


VirtualBox          Docker          OpenStack


Sep 2011Nov 2015

B. A. Sc. in Computer Engineering

University of Ottawa

DGPA 8.0/10.0