Now you can Instantly Chat with Mandeep!
About Me
Dear Sir/Madam,
I am C, C++ and Python programmer with 8 years of experience in IT industry.
My areas of expertise and interest include network, embedded and system programming.
I am looking for a career opportunities where I can put m...
Show More
Skills
Portfolio Projects
Description
I was part of team setting up internal practices for IoT.
To demostrate our IoT stack we developed Smart Conference Room application which would sense the occupancy of the conference room and generate data.
We used different sensors like camera, PIR sensors and noise detectors to generate signalsfrom different sources.
This data was later analyzed using different machine learning algorithms.
Applications of this data analysis was to predict the occupancy in future and control the cooling of the room.
This could be scaled to big halls and offices.
Show More Show LessDescription
I was working to create a proof of concept which would insert
the entries in the state table of the IPFilter.
IPFilter provides firewall and NAT services to the UNIX like systems. When system is rebooted the packet
filtering rules and connections made are saved on the disk and read back when the system is up again.
These connections are saved on the disk and read back again using utility called ipfs.
Due to project requirement, it was needed that these entries to be saved to some other temporary file on
the disk and read back (not to system default files) while system is running (no reboot).
I usually analyze the need for the requirement but since this was pending since a year before I joined I
directly went to work on PoC.
The calls to ipf kernel module were made from the user space function and appropriate data
structures filled with required values and read and write options.
These data structure represented TCP/IP or UDP connections and its members represented entities like
IP address, port number, TTL, etc.
I reused the existing functions as much as possible to keep the code changes to minimum and added an
additional command line option which will make call to kernel module to save these rules and entries
into the temporary file and read it back while system is running.
My focus was on to provide correct functionality, keeping changes to minimum and seamless integration
with existing code.
This PoC can add entry to the state table (which holds the rules and connections as cache so as to avoid
revaluation for each packet from a particular IP and port) as well as it can remove it with additional
command line option while system is running.
This functionality was used in the main firewall application.
Description
The project aimed at creating software simulators for testing the features, load capacity and security of
SBCs, SIP proxies, IMS and security gateways.
I was responsible for writing the processing logic of Gateway which was written in C++ on Solaris
operating system.
I translated the protocols and rules written in RFCs to C++ code which was made up of structures
representing the entities like SIP Endpoint and functions which simulated the different processes
entities would go through.
It was aimed at integrating voice, media, SMS, text and sending it over the internet.
IMS architecture modularizes the implementation of whole system into layers which makes it easy for
maintenance and modification.
A media gateway is a translation device or service that converts digital media streams between
disparate telecommunications networks. Media gateways are often controlled by a separate Media
Gateway Controller which provides the call control and signaling functionality.
The core functionality was implemented in C++ on UNIX Operating System.
Description
One of the major projects, which I accomplished, was to develop and maintain the hardware and
software for EDM products. Electronica Machine Tools manufactures the EDM machines which are
used to cut metal in a desired shape with electric energy. It needed the microcontroller to run these
machines perfectly as it included numerous variables like speed of the job, amount of electric current
passing through electrode, coolant speed and volume, temperature monitoring, etc.
I was part of the R&D team which was responsible for new development and maintenance of the
machines. The aim of the project was to give the USB capability to MS DOS operating system which
does not support USB inherently.
The embedded software running on these machines was developed in 1990s when MSDOS was
extensively used. The input data was fed to machine using floppy discs. These discs had limited
capacity and life. As the USB immerged as a preferred media for data transfer it became necessary to
provide USB compatibility to these machines.
I implemented the hardware using VNC1L and other necessary components. VNC1L is a single chip
embedded dual USB host controller.
I also wrote the software APIs necessary to support and control the USB host controller.
This whole project was developed using Borland C.
I also worked in software maintenance of the machines where I had to use different
development, debugging and testing technics.
Using bank of LEDs was my favorite to debug the hardware as well as JTAG, oscilloscope and
digital multimeter.
Description
This is an Internet of Things platform developed by Atomiton. It is used for different fields like farming, medicine, asset management, smart cities. I am working on implementing APIs to build IoT applications for above mentioned domains. This platform has its proprietary language called TQL. It’s XML based language which uses inbuilt features to implement functionality. I also worked on setting up the IoT processes for Xoriant. While doing it, I explored different IoT platforms like IoT Eclipse, AWS IoT and different IoT sensors, communication mediums, hardware, connectivity, programming, boards like Raspberry Pi, Arduino, etc. I also contributed in design and development of the Smart meeting room which will let administrator know the parameters like temperature, motion, sound, etc.
Show More Show LessDescription
After successfully implementing the smart conference with sensors and R-Pi, we wanted to take it step further and add image processing capabilities. We also realized, many capabilities (graphics mode) provided by R-Pi CPU (Arm Cortex A10) were redundant and can be replaced with ARM Cortex M4 to save the power. It also provided Floating Point Unit to do the DSP and SIMD made it suitable for image processing and so we switched to STM32 board and did the rewiring of the circuit and wrote new programs for image processing. It also has Wake Up Interrupt Controller which made it even more power efficient but it was optional. We used I2C line to connect sensors to the board as it required lesser hardware which made it more cost effective with increasing number of sensors. My role was to assemble and solder the software, to debug the hardware/software and write image processing code. Here we tried to use Convolutional Neural Network to predict the occupancy of the room.
Show More Show Less