V

Vivek Bansal

Software Engineer

San Francisco, California, United States10 yrs 7 mos experience
Most Likely To SwitchHighly Stable

Key Highlights

  • Enhanced Photoshop performance by 4x impacting millions.
  • Strong background in distributed systems and machine learning.
  • Eager to learn new technologies and mentor others.
Stackforce AI infers this person is a Software Engineer with expertise in high-performance computing and cloud solutions.

Contact

Skills

Core Skills

Software DevelopmentDistributed SystemsAlgorithms

Other Skills

CData StructuresC++ProgrammingMachine LearningLinuxVector ProcessingGPU ProgrammingModel-View-ControllerIPC MechanismHigh-Resolution Monitor SupportDocument Health ReportBug FixingMedia Management LayerNAND Memory

About

With over ten years of software engineering experience, I am passionate about solving complex problems and developing high-performance, reliable, and scalable solutions. Currently, I work as a Software Engineer at Google, where I collaborate with the Edge compute and storage teams to move data from customer on-premises to Google Cloud Storage. I have a strong background in distributed systems, machine learning, data science, and algorithms, which I acquired through my master's degree in Computer Science from Stony Brook University and my previous roles at Adobe and SanDisk. At Adobe, I enhanced the performance of the Composite Core layer of Photoshop by 4x using vector processing and GPU programming, impacting 3.5 million active users. At SanDisk, I worked on the media management layer of flash storage devices, using C, C++, and Linux. Besides coding, I enjoy competitive programming, playing and watching cricket, listening to songs, and volunteering and mentoring. I am always eager to learn new technologies and tools, and I have earned certifications in Learning Go and Stanford CoreNLP. I also share my projects and solutions on my website and various online platforms, such as GitHub, LeetCode, CodeChef, and SPOJ.

Experience

10 yrs 7 mos
Total Experience
2 yrs 7 mos
Average Tenure
6 yrs 4 mos
Current Experience

Google

Software Engineer

Feb 2020Present · 6 yrs 4 mos · Sunnyvale, California

  • AI & Compute Infrastructure for Google Kubernetes Engine (GKE).
  • Worked with Edge compute and storage teams building solutions to move data from customer on-premises to Google Cloud Storage.
CData StructuresC++ProgrammingAlgorithmsSoftware Development+3

Adobe

Software Developer

Jun 2019Aug 2019 · 2 mos · Greater New York City Area

  • Team: Adobe Photoshop Engineering Team.
  • Enhanced performance of Composite Core layer of Photoshop by 4x using vector processing to exploit data-level parallelism in Graphics Processor Unit (GPU) which impacted 3.5 million active users of Photoshop. C++, Halide
C++Vector ProcessingGPU ProgrammingSoftware DevelopmentAlgorithms

Stony brook university

Graduate Student Researcher

Jan 2019May 2019 · 4 mos · Stony Brook, New York

  • Worked with Broadridge Financial Services under the supervision of Professor IV Ramakrishnan to extract executive compensation information from financial documents based on various data points like exec name, exec salary, exec bonus, exec stock awards, exec compensation year etc.

Adobe

2 roles

Senior Member Of Technical Staff

Promoted

Jul 2016Aug 2018 · 2 yrs 1 mo · Noida, Uttar Pradesh, India

  • Team: Adobe FrameMaker team
  • Implemented Model-View-Controller(MVC) architecture to redesign Dita Reference dialogs like Xref Dialogs, Conref Dialogs, and Link Dialogs.
  • Ported our product from 32-bit architecture to 64-bit architecture by fixing many run-time issues like structure data members alignment, pointer truncation issues etc.
  • Implemented IPC mechanism using pipes to solve a non-trivial problem occurring while porting our product to 64-bit architecture. The problem was to load some 32-bit legacy DLLs in our 64-bit product. We build a wrapper 32-bit executable which loads 32-bit legacy DLLs and we were calling this executable from our 64-bit executable and handled communication via pipes. Prevented loading of this 32-bit executable every time by running this process in the background as a server to improve the performance.
  • Implemented MRU list to display the recent files opened by the user on the starter screen of our product. It involves the C++ interface interacting with the JS code of our starter screen. Also, I have added the feature of favorites files where the user can mark a file as favorite and that file would store in favorites list which is maintained even after re-launch of the product.
  • Designed and implemented a mechanism to render the starter screen of our product in a windows tab which can be docked and undocked as and when required. Moreover, I have added functionality to make this feature work on high-resolution monitors as well.
  • Implemented DUDEN dictionary to support the latest spell checking and hyphenation methods for the German language (German, Swiss-German, and Austrian German).
  • Fixed the Cadence Issue by writing the formatting rules inline in the generated XML file so that they will be able to post-process the XML file according to their requirements.
C++Model-View-ControllerIPC MechanismHigh-Resolution Monitor SupportSoftware DevelopmentAlgorithms

Member Of Technical Staff

Oct 2015Jun 2016 · 8 mos · Noida, Uttar Pradesh, India

  • Team: Adobe FrameMaker team
  • Implemented an FDK client of document health report which reports unresolved graphic insets, text insets, cross-reference links in a document.
  • Fixed many bugs in a rigorous environment for the patch releases of our product.
Document Health ReportBug FixingSoftware Development

Sandisk®

Software Engineer

Jul 2014Sep 2015 · 1 yr 2 mos · Bengaluru, Karnataka, India

  • My key responsibilities were to implement the algorithms in Media Management Layer (MML) to efficiently store and retrieve the data from NAND memory.
  • Projects:
  • Formulated and created a new framework for compaction to increase the memory utilization by 8%.
  • Implementation of Double Fine Programming methodology as the memory is not that much reliable to retain the data after single fine programming. This algorithm increased the memory utilization by around 3-4%.
AlgorithmsMedia Management LayerNAND MemorySoftware Development

Education

Delhi College of Engineering

Bachelor of Technology - BTech — Computer Science

Stony Brook University

Master's degree — Computer Science

Stackforce found 100+ more professionals with Software Development & Distributed Systems

Explore similar profiles based on matching skills and experience