Summary
Overview
Work History
Education
Skills
Timeline
Generic

Devraj Singh Chouhan

Mobile Graphics Developer
Ajmer

Summary

Software developer with 10+ of years of experience on creating cross-platform software, optimization of graphics API for Low ended Mobile devices with experience on C++ , Android , JNI , NDK ,OpenGLES . Detail-oriented, organized, and meticulous employee. Works at fast pace to meet tight deadlines. Enthusiastic team player ready to contribute to company success.

Overview

12
12
years of professional experience
7
7
years of post-secondary education

Work History

Senior Software Engineer

Microsoft India
07.2021 - Current

1.) Flipgrid GPU based Camera Integration

Removed Snap-SDK decadency by creating own rendering engine for camera library for Flipgrid , optimized the library to work on Mobile devices.

Worked one creating color and face filter for AR based camera application.


Lead Software Engineer

Hike Messenger , Delhi , India
9 2017 - 7 2021

Project:->

Skills :OpenGL ES , C++ , Android , JNI , NDK , Cross Platform


Graphics Project this include OpenGLES interaction

1) HikeMoji( User Avatar Generation and Customizations )

Developed Optimized Version of Avatar Generation

KeyTech : Rendering Engine based on OpenglES and Vulkan


1) Worked on Creating minimalistic rendering engine for Mobile Devices.

2) Added Support for Vulkan to Rendering Engine

3) Optimized the Rendering for low-end device

4) Our engine support PBR based rendering of 3D Model this include

lighting , shadow , material rendering , animations.

5) Added Support for tessellation using zoom level of scene.

6) Worked on Anti Aliasing technique’s

7) Worked on Analyzing FPS and bottleneck in Draw call , optimized rendering time using batching , shader optimization , memory benchmarking



2) Camera FrameWork ( Android , SurfaceTexture, GLSurfaceView , Shader ,C++ , NDK)

Summary :->

Revamp the entire architecture of Hike App camera to Optimised performance.

  • Implemented GLSurface based renderer for Camera Module
  • SurfaceTexture based shader for rendering Camera Frame.
  • Implemented Optimised Shader for Color filter on Live Camera.
  • Implemented Night Mode Enhancement for Camera Module.
  • Implemented Beauty Face Filter for Front Camera.


4) Free Hand Drawing with Artistic Brush ( Android GLSurfaceView , Canvas Path ) :->

Summary :->

Currently Android Canvas Support Path drawing but some feature like bitmapShader are implemented in software layer thus drawing can slow.

So aim was to rewrite path rendering using hardware accelerated opengl api for android.

Task

  • Implemented architecture of canvas drawing classes.
  • Implemented path generation using four point cubic spline equation.
  • Implemented wrapper over GLSurfaceView ( Opengl View) for rendering path points.
  • Stroke width generation algorithm for cubic point.
  • Stroke rendering using opengl and shader.
  • Gradient Brush Rendering using shader.
  • Variable width brush rendering.

Optimization:->

  • Partial Rendering :-> Optimized rendering for connected path by not drawing full path on every draw call ( On every touch point).
  • Memory Optimization :-> Not retaining cpu buffer for path point , Generation of path done in rendering thread .


Android Framework Projects


Worked on Developing feature include Sticker Shop , Chat , Timeline and Story creation ( Include Rest API , UI development , Database ,Local and Push Notification , Feature Gate , Reactive framework)

1) Story Creation(Image/Video Editor) and Display Flow ( Android)

1.1) Added Support to post story using Camera

1.2) Worked on Adding Stickers and Text on the Story

1.3) Integrated Rest API to post and fetch Story


Group Chat and 1-1 Conversation ( MQQT Protcol , Sqlite/Room DB , Optimized Recycler View , UI , MVVM )

1.1) Implemented Group Chat and 1-1 Conversation flow for Client Side , added sticker support in chat send box , also added recommendation of sticker according to last conversation

1.2) Implemented Media Message support

1.3) Optimized the Thumbnail creation time for message

1.4) Design Multi packet request to send bulk message using mqtt client 1.5) Added Push Notification and Swipe ro reply for chat

1.6) Worked on Sticker Genera


<p>Lead Software Engineer</p> <p></p>

Samsung R&D Institute India
03.2013 - 08.2017

Summary:->3) User Interface Layer ( Java , Android)

Project :->

1) 3D Dynamic Chart Engine ( Android chartSDK )

It was part of samsung android sdk , aim was to provide native rendering using hardware acceleration with Opengl and jni , work Along with HQ to integrations of Skia font rendering library.

Task ->

1) Native Layer ( C++ , Opengl)

  • Developed Architecture of Rendering Engine.
  • Implemented wrapper for opengl.
  • Implemented Color Picking algorithm for 3D Object Selection.
  • 3D Slice based Pie Chart Rendering .

2) Interop Layer ( JNI )

  • Implemented JNI Classes for binding Native Layer and Application Layer.
  • Implemented android chart api using java classes.

Optimisation:->

Have removed 3D color picking due to double rendering overhead , and implemented ray picking algorithm for 3d chart selection.

2) 2D Tizen TV SDK

Summary:-

It is part of tizen tv , aim was to provide sdk for tizen os smilier to android so user can developed UI Application:

Currently it's using in tizen smart tv application like ( Apps Panel , USB Browser , Menu , HomeScreen Panel)

Major Task:->

  • Implementation of Text Layouting and rendering engine.
  • Implementation of Shadow for UI object.
  • GL based Nine Patch Image Component Implementation.
  • Scrollable Marque Text Widget Development.
  • Opengl Shader based Gaussian blur implementation.
  • Image masking shader development.

Optimisation:-

  • Previously SDK was single thread for animation and rendering , so changed architecture to support rendering in separate render thread using double buffered and messaging queue.
  • Opengl State change optimisation using batching which includes :->
  • Shader Batching
  • Texture Atlas for reducing bindTexture calls.
  • Text to Texture caching using offscreen buffer.
  • Removing Scissor clip calls.

3) Mono .Net based SDK development

Summary :->

As C# widely used for application development, we decided to developed sdk in mono over our native (C++) sdk.

Task:->

Interop Layer (C#)

  • Developed Interop layer to bind C++ classes to C# layer.
  • Delegate/Event and Action Integration for event callback propagation.

User Interface Layer(C#)

  • Developed C# based Widget for Image , Text , Color Component.
  • Developed Horizontal and Linear Layout for widget layouting.

4) C# Opengl Widget

Summary :->

Development of Pluggable Widget for rendering opengl Application.

Task

  • Implemented EGL Wayland layer for window creation.
  • Implemented Opengl LifeCycle Callback so user can plug their code easily.

<p>Game Developer</p>

Gameloft Software Pvt ltd
08.2012 - 01.2013
Worked Rendering  Optimisation of existing Game.

Have developed Optimised Dynamic shadow for AAA game.

Worked on Shader Programming.

Worked on Irlitch

Education

undefined

Rajasthan Technical University , Rajasthan , India
07.2008 - 05.2012

undefined

Birla Institute of Technology & Science, Pilani, india
03.2014 - 04.2017

Skills

Android

JAVA

NDK/C

OpenglES

Vulkan/Directx12

Unity3D/Cocos2D

Kotlin

Timeline

Senior Software Engineer

Microsoft India
07.2021 - Current

undefined

Birla Institute of Technology & Science, Pilani, india
03.2014 - 04.2017

<p>Lead Software Engineer</p> <p></p>

Samsung R&D Institute India
03.2013 - 08.2017

<p>Game Developer</p>

Gameloft Software Pvt ltd
08.2012 - 01.2013

undefined

Rajasthan Technical University , Rajasthan , India
07.2008 - 05.2012

Lead Software Engineer

Hike Messenger , Delhi , India
9 2017 - 7 2021
Devraj Singh ChouhanMobile Graphics Developer