I'm a Linux Developer with software development experiences on Linux
spanning over 16 years. My expertrise is in developing software in C,C++,Python
on the Linux opertating system.
I am passionate about engaging with customers, understanding their needs and
developing optimum solutions for them.
Over the years I have developed software using numerous libraries and on x86 and ARM
systems supporting client requirements and solving busineess critical problems.
Having worked on a range of requirements from speeding up processing of raw XML
files to edge analytics in industries ranging from Petroleum to Manfucaturing, I am
sure I can be of assitance to your technology needs.
On the left, you will a brief write up about some of the projects I have developed.
Hi, I'm Mandar
I'm a Linux Developer with software development experiences on Linux
spanning over 16 years. My expertrise is in developing software in C,C++,Python
on the Linux opertating system.
I am passionate about engaging with customers, understanding their needs and
developing optimum solutions for them.
Over the years I have developed software using numerous libraries and on x86 and ARM
systems supporting client requirements and solving busineess critical problems.
Having worked on a range of requirements from speeding up processing of raw XML
files to edge analytics in industries ranging from Petroleum to Manfucaturing, I am
sure I can be of assitance to your technology needs.
On the left, you will a brief write up about some of the projects I have developed.
If you have any requirements for software development on Linux, reach out ot me on
emailmandar@gmail.com or on my cell +91 9967820381. You can find me on LinkedIn and
GitHub as well.
Contact
Email: emailmandar@gmail.com
Cell: +91 9967820381
Loyalty Programme For a Premier Retail Chain In Bahrain
Mifare Smart Cards and Payments Terminals & Pinpads Interfaced Over RS232
The Requirement:
The retail chain wanted to move away from their previous vendor to a new Loyalty Programme having Payment Terminals and Pin Pads that would
make the Sales experience smoother. The retail chain had Point-Of-Sale (POS) Terminals running DOS that provided an RS232 Interface for the billing data.
The job was to capture the data over RS232, write to the Mifare cards, provide the POS terminal data from the Mifare card and to have an option to migrate
the data from the old system to the new system by using free area on the Mifare cards.
The Solution:
Living and Developing the solution in Bahrain was an unforgettable experience. After engaging with the client and getting a detailed description of the requirements,
understanding the pain points and their reasons for wanting the new solution, I began the coding binges in the hotel. The payment terminal API was well documented with
coding done in C. A GCC 3.4 Cross compiler provided by the payment terminal vendor and the code signing utilities provided as seamless development experience.
The solution was developed in a mere 3 weeks and deployed just before Ramadan, just in time.
Technologies:
Castles Vega 9300, Mifare, ISO 14443, Payment Terminals, RS232, DOS
FreeSwtich - VoIP Phone For Stock Traders
FreeSwitch Event System and the Twisted Python Library
The Requirement:
The company I was working for needed a new server software to manage the calls for their VoIP phone terminals. The VoIP phone terminals running Arch Linux were
managing the calls with the help of a Proprietary Server. Moving to FreeSwitch, a new management software had to be develeoped.
The Solution:
Using the Twisted Python Library, I worked on controlling FreeSwitch via the event system interface and managing the calls, initiating them, terminating them and provided
an output interface to view the status of the calls
Technologies:
FreeSwitch, Arch Linux, Embedded Linux, VoIP Phone
Linux Kernel Code In the NASA Ingenuity Helicopter
My contribution the Linux Kernel earned me the Mars 2020 Contributor badge on GitHub
The Requirement:
Being a huge Music fan, I was into external DACs (Digital To Analog Converters or External Sound Cards) in the mid-late 2000s.
I bought the Creative USB X-FI USB S51 and realzied that the Volume Knob on the device and the LED had no support under Linux.
Thus began the journey of learning how to write Linux Kernel Modules and patching the Linux Kernel.
I used SniffUSB under WindowsXP to capture the USB Traffic as I used the Volume Knob and kept a watch on the LED on the Creative USB X-Fi S51.
After a few hours of capturing data and sifting through it, I traced down the Control Transfers in the URBs (USB Request Blocks) that had the repeating
pattern with the Volume Knob being turned clockwise, anticlockwise and pressed (The volume knob also served as a button to mute audio).
Going through the Linux Kernel source code, I found the struct that held values for similar devices. Filling the values I had captured and many compiles and restarts a
few times got me a functional usbaudio kernel module that supported the volume knob and passed on the events to LIRC (Linux Infrared Remote Control). I made the patch and
sent the Patch on the Alsa-Devel mailing list where it was reviewd and accepted into kernel 2.6.37.
Technologies:
Linux Kernel, SniffUSB, Reverse Engineering, USB, Linux Kenrel Modules, ALSA, LIRC
Surveillance - The Next Step In Video Monitoring
Emnbedded Linux Systems used as Surveillance Devices
The Requirement:
With increasing focus on our security, we need surveillance solutions to get better, faster. Solutions need to get smarter to reduce the human workload in monitoring systems. The project I developed is one such solution. It's called Surveillance. It’s not just an application which allows capture and storage of video stream 24x7.
It’s an extendable framework that allows you to do custom processing on video streams using simple shared libraries/ GStreamer plugins and report results in plain text, allowing you to easily parse it and take decisions. This system comprises of Cameras/Camera Sensors, Processing Hardware (camera endpoints) and a central server. Processing happens on the camera endpoints and is collected by the central server.
The Solution:
A custom GstMeta library provides an API for GStBaseTransform plugins to add custom metadata related to a video stream. The GstMeta is retreived and posted on the Gstreamer Bus which is retrieved by the monitoring application.
I developed this as a framework. The monitoring application allows custom video analytics plugins to simply dropped in to a directory and configured for use with the monitoing application.
I presented a talk at the GStreamer Conference 2016 in Berlin titled Intelligent Surveillance describing the project.
Technologies:
GStreamer, Gtk+, Qt, Gentoo, Ubuntu, OpenCV, Dlib
Edge Analytics architecture on the NVidia Jetson Platform
An Extensible architecture using Nvidia Deepstream and GStreamer
The Requirement:
A Computer Vision company was running their algorithms as independent applicaitons.
The job was to develop an architecture using the Nvidia Deepstream framework that will allow plugging in of any algorithm for any appplication into the architecture.
The Solution:
Living in Chennai was a memorable experience. GStreamer expertise combined with the functionality provided by NVidia Deepstream provided the right tools for
developing an extensible architecture for the Edge Analytics platform.
After integrating the Zed 2 from Stereolabs with the Nvidia Jetson platform, I designed a architecture capable
of supporting growing number of applications using the NVida Deepstream framework for the company. Dynamically Loadable libraries were used to provide a "drop new functioanlity into directory" feature. The end result was a
happy client with architecture locked under NDA. That's why you don't see many details here. Sorry!
Technologies:
NVidia Deepstream, NVidia Jetson, GStreamer, C, C++
Pattern Matching Addresses - Petroleum Industry
Finding duplicate addresses in a very large database
The Requirement:
Government Subsidized gas connections were being missued by fraudsters by manipulating addresses to receive a double subsidy. The job was to design
and implement an algorithm to find such duplicate addresses, frequently manipulated tactfully to avoid theft detection.
The Solution:
Again not many details during the NDA but here's a broad view of what I did. Regex was used extensively to find known manipulated words. Using a geographical database,
processing size was considerable reduced by running computationally heavy processing only on addresses grouped by approximate location. The result was a stunning expose on how
miscreants were manipulating names and addresses to benefit from Government subsidies illegally.
Technologies:
Regex, MySQl, MsSQL, Cursors, SQL, C, C++
RootFS Build Factory for Centos - GSoC 2015
A successful Google Summer of Code 2015
The Requirement:
CentOS ARMv7 was being built and a toolkit to generate rootfs images for various vendor boards was needed. Every vendor could release their their custom kernel and a mechanism was needed
where CentOS could be run there boards with custom kernels and packages.
The Solution:
After discussions with my mentor, I designed a Python based solution where a XML generated using a NCurses GUI (PyDialog) would be used to generated a custom RootFS for the board.
RootFS images were generated and tested on Cubietruck, Odroid C1, Raspberry Pi 2, Banana Pi, Cubieboard 2, Cubiboard
Stock trading companies are high stake operations and near flawless uptime is a must requirement. This was my first job and I thoroughly enjoyed it
I managed the network of a hundred computers for over a year ensuring smooth functioning of the facility.
My job involved interacting with various vendors to ensure
the client was able to effectively use software and hardware systems supplied by the vendors. I managed Eicon card based sytems, an Internet Trading System, Cisco Routers and Fortinet firewalls
OpenVPN for Voice Trading @ A Stock Trading Company
Embedded Linux Voip Phones networked over a Virtual Private Network (VPN)
The Requirement:
At the peak of COVID as the city went into lockdown, a stock trader was left with traders unable to trade efficiently as their voice trading terminals, voip phones running embeeded linux
couldn't be used from the trader's homes. I was hired to design a Virutal Private Network (VPN) solution to have them on the company network.
The Solution:
I designed the VPN solution to have a OpenVPN Server on the client's network exposed via their public IP. The Embeedded Linux terminals running Ubuntu were configured
to have a OpenVPN client start at boot and login to the company network making them local rather than remote as far as the voip phone application running on them was concered.
The VoIP application was designed to have the VoIP phones on a single network. After discussing with the architecture with the client, I desinged and implemented a OpenVPN server and
confiured OpenVPN clients on the the VoIP phones to 'hide' the fact that the terminals were actually remote.
The result was a stock trader having full trading fucntionality during a Corona virus lockdown