Microsoft
Senior Software Development Engineer @ Microsoft Azure
Microsoft Sep 2017 - May 2018
Software Development Engineer - Ii @ Microsoft Azure
Microsoft May 2014 - Sep 2017
Software Development Engineer - Ii
Microsoft Jan 2014 - Apr 2014
Software Development Engineer In Test - Ii
Microsoft Jul 2012 - Jan 2014
Software Development Engineer In Test
Education:
Purdue University 2010 - 2012
Master of Science, Masters, Computer Science
Delhi University 2005 - 2007
Master of Science, Masters, Informatics
Delhi University 2002 - 2005
Bachelors, Bachelor of Science, Electronics
Skills:
Development Mobile Distributed Systems Linux C Operating Systems Windows Phone Asic Gps Navigation Tcp/Ip Html Ipv6 Data Structures Algorithm Design Embedded Systems Oop Php C++ Lte Software Development Wireless Mobile Devices Device Drivers Cloud Computing Data Mining
Interests:
Subway (Sandwich Chain) Gulzar Shakira New Delhi Television Limited (Ndtv) Mother Teresa Windows Phone Purdue University Education Environment Roger Federer Gotomeeting Facebook Platform Science and Technology Qualcomm Salman Khan Michael Phelps (Swimmer) Poverty Alleviation Forbes Bing Com and Magazine Techcrunch Arts and Culture Bill Gates Hindi (Language)
- Redmond WA, US Parmjeet SINGH - Bellevue WA, US Shahar MAROM - Redmond WA, US Aman ARNEJA - Redmond WA, US
International Classification:
H04W 48/16 H04W 64/00 H04L 29/08
Abstract:
The methods described herein are configured to collect profile data on a device, scan for access points based on the profile data, and update a machine learning (ML) component based on feedback from the scan. Profile data is collected on a device as input to the ML component and a scan pattern is generated by the ML component based on the collected profile data, the scan pattern including a scan frequency, a scan iteration count, and a channel hint. A scan for access points is run in accordance with the generated scan pattern and the ML component receives feedback including a scanning result based on the scan for access points. ML component is then updated based on the scanning result, the scan pattern, and the profile data. Improving the ML component and thereby, the scanning efficiency of the device provides consistent network connection and improved battery performance.
- Redmond WA, US Parmjeet Singh - Seattle WA, US Lakshmi Narayana Mummidi - Bellevue WA, US Siddhartha Cingh Arora - Redmond WA, US
Assignee:
Microsoft Technology Licensing, LLC - Redmond WA
International Classification:
H04M 1/725 H04W 4/02 H04W 24/10 H04W 68/00
Abstract:
Intent-based reminders are provided. A user is enabled to initiate a reminder request based on an intent to enter or leave a given location. In a geofence training process, a plurality of geofences are created for plotting a path and subsequently tracking the user's traversal of the path for inferring the user's intent to depart or enter the location. A signal strength of a WLAN is recorded at each geofence. As the user traverses the path, a determination is made as to whether a predetermined percentage of the geofences is triggered in a sequential order by comparing the signal strength of the WLAN against the recorded WLAN signal strengths at the geofences. In some examples, signal strengths of neighboring WLANs are recorded and used to filter out false triggers. When a determination is made that the user's intent is to depart or enter the location, a reminder is provided.
Techniques for determining conditions associated with a vehicle are described. Vehicle data associated with one or more conditions of a vehicle, passenger data indicative of one or more occupants of the vehicle, and user data indicative of a state of a computing device associated with a user are received. The received environment data, passenger data, and user data are analyzed. Based on the analyzing, a state of the vehicle, occupants, and user is derived. An action is determined based on the derived state, the received vehicle data, passenger data, and user data, and one or more user preferences. An action is initiated via a communication to the vehicle, a communication to the computing device associated with the user, a communication to a predetermined contact, or a combination.
Material Estimate For Fabrication Of Three-Dimensional Object
The system includes a predictive model trained to estimate an amount of material to be used to fabricate three-dimensional objects. The system further includes an estimation component that receives information regarding the three-dimensional object. The estimation component, using the predictive model, estimates the amount of material to be used to fabricate the three-dimensional object based upon the information regarding the three-dimensional object. The estimation component compares the estimated amount of material with an available amount to determine whether the material available is less than the estimated amount of material to fabricate the three-dimensional object. When it is determined the material available is less than the estimated amount of material, the estimation component can perform an action such as preventing commencement of a fabrication process and/or providing information to a user. The predictive model can be adaptively updated based upon an actual amount of material used during the fabrication process.
Described herein is a three-dimensional object validation system in which a source model generation component is configured to receive information about a three-dimensional object to be fabricated (e.g., 3MF file) and, based upon the received information, generate a source model of the three-dimensional object to be fabricated. A fabricated model generation component is configured to receive information about a fabricated three-dimensional object from one or more observation components and, based upon the received information, generate a fabricated model of the three-dimensional object of the fabricated three-dimensional object. A comparison component is configured to compare the generated fabricated model to the generated source model to determine whether a discrepancy exists between the generated fabricated model and the generated source model, and, when the discrepancy is determined to exist, take an action such as halting a fabrication process.
Determining Print-Time For Generation Of 3D Objects Based On 3D Printing Parameters
Methods, systems, and devices are described herein for estimating a three dimensional (3D) print-time for generating a 3D object relative to one or more 3D model or printer parameters. In one aspect, at least one 3D model or printer parameter may be received for generating a 3D object by a 3D printer. Historical print-time data associated with at least one 3D model or printer parameter for generating other 3D objects may be obtained. Based on the received 3D model and printer parameters and the obtained historical print-time data, an estimated print-time for generating the 3D object by the 3D printer may be determined before slicing the 3D model by the 3D printer. In another aspect, a desired print-time for generating a 3D object may be received. One or more 3D model/print parameters may then be configured to achieve or exceed the desired print-time.
Scalability And Reliability Of Hardware Geo-Fencing With Failover Support
- Redmond WA, US Fernando Gonzalez - Bellevue WA, US Shaun Hedrick - Seattle WA, US Parmjeet Singh - Seattle WA, US Ashish Gadre - Kirkland WA, US Frank Gorgenyi - Bremerton WA, US Mark Inderhees - Woodinville WA, US Janet Schneider - Bellevue WA, US Stuart Harper - Seattle WA, US
Assignee:
Microsoft Technology Licensing, LLC - Redmond WA
International Classification:
H04W 4/02 G01S 19/34 G01S 19/48
Abstract:
A computing device includes at least one processor and a memory, the memory storing computer-executable instructions for causing the device to be configured to load a subset of geo-fences from secondary storage to primary storage for tracking by the computing device, the subset of geo-fences selected from a set of available geo-fences stored in the secondary storage, based on a selection criteria. The computing device further creates a boundary geo-fence with a radius corresponding to a distance between a current location of the computing device and an edge of a geo-fence in the subset of geo-fences that is furthest from the current location of the computing device. Upon detecting a geo-fence event associated with a new location of the computing device in relation to the boundary geo-fence, a new subset of geo-fences is re-loaded, and a new boundary geo-fence is created based on the new location of the computing device.
Improving Scalability And Reliability Of Hardware Geo-Fencing With Failover Support
- Redmond WA, US Fernando Gonzalez - Bellevue WA, US Shaun Hedrick - Seattle WA, US Parmjeet Singh - Seattle WA, US Ashish Gadre - Kirkland WA, US Frank Gorgenyi - Bremerton WA, US Mark Inderhees - Woodinville WA, US Janet Schneider - Bellevue WA, US Stuart Harper - Seattle WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
H04W 4/02
US Classification:
4554561
Abstract:
Systems and methods disclosed herein may include tracking one or more geo-fences using a GNSS hardware processor within a computing device. The tracking may use at least one GNSS signal. State changes of the one or more geo-fences during the tracking may be saved in a shared state database. The shared state database may be shared between the GNSS hardware processor and an application processor within the computing device. Upon detecting a deterioration of the at least one GNSS signal, tracking the one or more geo-fences may be switched from using the GNSS hardware processor to using the application processor. After the switching, an initial state of each of the one or more geo-fences may be set by using states currently stored in the shared state database prior to the switching.