"All that is now proven, was only once imagined." William Blake.

Fahad Zafar



I am primarily a back-end software engineer. I love server-side programming and I'm truly passionate about multi-core computing and computer graphics.

§ Technical Skills

    C++, Java, C#, CUDA, OpenCL, MPI, Android OS, OpenGL, GLSL, SQL, ASP, JSP, PCL.

§ Education

Ph.D. in C.S. (computer graphics and multi-core computing) University of Maryland Baltimore County Jan. 2010 – Dec. 2014
M.S. in C. S. (computer graphics) University of Maryland Baltimore County Jan. 2008 – May 2010

§ Hobby Projects

- Android

Shop3D: An Android app that allows users to customize collectibles, which are 3D printed and shipped to their doorstep.

Smiley Live Wallpaper: A complete 2D physics environment as your live wallpaper with collisions for objects based on touch and accelerometer events. Through the settings you can change their skins and other parameters of the system like gravite, background color etc. with complete on screen widget integration.

RaiPoll: Allows users to pose questions to the community and set answers. The answers are graphically represented in real-time using a chart engine.

YouMp3: Allows mobile users to strip the audio off any youtube video, and its automatically downloaded to their phone.

Fire Touch Live Wallpaper: Burn your desktop with fire rings using numerous colors. A beautiful fire ring burns any place you touch your desktop. The fire continues to burn till you touch some other place. A bunch of colors to choose from including a random color option to lighten up your desktop with new colors every time.

- Server-Side

Shop3D Order Server (Java, Parse): The server for Shop3D uses a passive execution approach using an online datastore as an asynchronous priority queue. This allows for a fault tolerant scalable system where the server can run on a laptop as well as AWS at the same time. It connects to STRIPE and 3rd party APIs to complete an order and tracks failed orders, cancellations, sales per day, profit per dat and other important metrics.

Shop3D Uploader Utility (Java, Parse): This utility performs about 20 functions in steps in order to place a 3D model online for fast and super-easy display on a mobile device. Some of the operations include compression, uploading model images, calculating the available sizes at runtime based on existing printer XYZ dimension limitations, price calculation based on profits, issues with the model size, texture checks etc. and so on.

Raipoll Analytics Core (Java): Implemented inside the android app that calculates the percetages of choice based on age, gender, race, location and other demographics. It also generates charts to share at realtime, handing different screen size issues.

YouMp3 Audio Extration Server (Java): Works using a passive approach, saves on a lot of money and dont need to use AWS 24/7. The server can run on any laptop and is multi-threaded. This server also auto adjusts pool timing whenc checking the work request queue and can alter pooling time based on usage. It runs "youtube-dl" to extract the audio, then updates the audio-strip request to allow the app to pick up the audio from the online datastore.

Multiplayer Asteroids (Java): Player-vs-Player and Player-vs-Environment, both play mechanics tested in this sample project. Upto 4 players can join, 1 phone becomes the server and co-ordinates the game. This project is not 100% complete yet.

Web Crawler (C#, ASP, SQL Server 2005, Action Script 3.0): The crawler (Action Script 3.0) extracts information from an existing website online, parses it all using REG-EX and enters it into the database (sql server 2005). The data is then accessible through a web interface using ASP 2.0. The server also provides web services for remote connections and data passing (in xml).

Scalable Particle Collision Simulation for a Cluster (C++, OpenGL, MPI): Simulating particle collision and effects like gravity. The project uses 1 display node and “n” compute nodes and scales to “n” number of nodes. Algorithm executes in parallel and data sharing occurs after every time step. Particles simulated can be triangles , points , spheres or any custom shape. Work load reduction equal to many orders of magnitude.

- Desktop

Complete Spherical Harmonics Implementation (C++, DirectX): Complete implementation of projecting a cube map in and out of Spherical Harmonics . Graphically visualizing the results with different orders when projection in and out of Spherical Harmonics.

Gallery Virtual Tour (C++, OpenGL): A Virtual gallery tour where the user can move anywhere. My first project in OpenGL. The walls and pictures are fully collision sensitive and do not allow the user to get out of the control evironment which has fixed function lighting.

§ Achievements

    - Best API Integration Award for ESRI ArcGIS, Hackathon at Stanford University June 2013
    - Second year M.S. sponsored by Northrop Grumman.
    - Four year Ph.D. research sponsored by Food and Drug Administration
    - Titled “Team Worker” at the Residential Life UMBC Summer Program 2009
    - Featured on the University website as Intern of the week.

§ Work Experience

Nemetschek Vectorworks

Software Engineer.
 Jan. 2015 to Current Research and Development. Wrote the entire point cloud plug-in for Vectorworks 2016 using the Point Cloud Library (PCL). This work was a launch feature for Vectorworks 2016.

Amazon Lab126

Software Engineering Intern.
 May. 2014 to Aug. 2014

Computer Vision Research Group.

Wrote a multi-threaded depth map extractor that generates a pointcloud using the plane sweep algorithm for the Amazon Fire Phone.

Google Inc.

Software Engineering Intern.
  May. 2013 to Aug. 2013

YouTube Data Analytics Team.

Wrote the utility used for solving the Slowly Changing Dimensions problem for the columnIO tables in the YouTube data warehouse using C++ Map Reduce.

Google Inc.

Software Engineering Intern.
 May. 2012 to Aug. 2012

YouTube Video Editor Team.

Integrated the slow motion effect into the YouTube video editor as well as some other effects that were used to create more complex ones.

Slow Motion (1X)
Slow Motion (2X)
Slow Motion (4X)
Slow Motion (8X)
Motion Blur (Original)
Motion Blur (High)

§ Publications

14. Characterization of crosstalk in stereoscopic display devices. Download
Fahad Zafar, Aldo Badano
Journal of the Society for Information Display 2014
13. Computational observers and visualization methods for stereoscopic medical imaging. Download
Fahad Zafar, Yaacov Yesha, Aldo Badano
Optics Express 2014
12. The Effect of Ambient Illumination on Handheld Display Image Quality. Download
Peter Lui, Fahad Zafar, Aldo Badano
Journal of Digital Imaging 2014
11. A real-time radiation dose monitoring system for patients and staff during interventional fluoroscopy using a GPU-accelerated Monte Carlo simulator and an automatic 3D localization system based on a depth camera. Download
Andreu Badal, Fahad Zafar, Han Dong, Aldo Badano
Proc SPIE Medical Imaging 2013
10. Cross-Platform OpenCL Code and Performance Portability for CPU and GPU Architectures Investigated with a Climate and Weather Physics Model. Download
Han Dong, Dibyajyoti Ghosh,Fahad Zafar, Shujia Zhou
International Conference on Parallel Processing (ICPP) 2012
9. Computational Observer approach for Assessment of Stereoscopic Visualizations of 3D Medical Images. Download
Fahad Zafar, John Dorband, Aldo Badano
International Society for Optics and Photonics (SPIE Medical Imaging) 2012
8. Visual methods for determining ambient illumination Conditions when viewing medical images in mobile Displays. Download
Fahad Zafar, Mina Choi, Joel Wang, Peter Lui, Aldo Badano
Journal of Society of Information Display 2011
7. Accelerating a Climate model with OpenCL. Download
Fahad Zafar, Dibyajyoti Ghosh, Lawrence Sebald, Shujia Zhou
IEEE Symposium on Application Accelerators in High-Performance Computing (SAAHPC) 2011
6. Recombination models for spatio-temporal Monte Carlo transport of interacting carriers in semiconductors. Download
Diksha Sharma, Yuan Fang, Fahad Zafar, Karim S. Karim, Aldo Badano
Journal Applied Physics Letters (APL) 2011
5. Does veiling glare in the human eye hinder detection in high-dynamic range displays ?
Mina Choi, Fahad Zafar, Diksha Sharma, Wei Chung, Luigi Albani, Aldo Badano
Journal of Display Technology IEEE Transactions (JDT) 2011
4. Experimental Methodology to Measure the Veiling Glare Limit for Detection Tasks in High-Dynamic Range Display Download
Mina Choi, Fahad Zafar, Diksha Sharma, Wei Chung, Luigi Albani, Aldo Badano
Society of Information Display (SID) 2011
3. Estimating the perceptual limits of mobile displays Download
Fahad Zafar, Mina Choi, Aldo Badano
Society of Information Display (SID) 2011
2. GPU Random Numbers via Tiny Encryption Algorithm Download
Fahad Zafar, Marc Olano, Aaron Curtis
High Performance Graphics (HPG) 2010
1. Tiny Encryption Algorithm for Parallel Random Numbers on the GPU Download
Fahad Zafar, Marc Olano
ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D) 2010