Categories
Uncategorized

20 Years in Product Development: My Journey

Wrote this a while ago…when I reached 20 years of experience. This post is atleast 15 years old…

Work Experience

20 years in Product Development and Product Design Services.

Mistral Solutions Inc

2007 – Now
Vice President – Design Services (U.S.A)
  • Technical front end for interfacing with customers, and Partners
  • Program management for all projects being executed in the United States of America
  • Manage the US Development Center
  • Speak regularly at International Conferences

Mistral Solutions Private Limited

2005 – 2007
Vice President – Product Development
  • Planning and executing a strategy for Product Design and Engineering
  • Managing multiple product lines and design services teams
  • Technical front-end with Customers, Partners and Stakeholders
  • Speak regularly at International Conferences

Encore Software Limited

1998 – 2005
General Manager
  • Responsible for Multiple Product Lines (Concept to Implementation)
  • Designed and built Encore’s VoIP Product Suite, Simputer, Chhota, SATHI
  • Manage Customers’ and Customer Expectation
  • Team selection, Mentoring and Cohesion
  • Speak regularly at International and Local Conferences

Xpert Systems

1993 – 1998
Chief Technology Officer
  • Built large high performance robotic scanning system
  • Built real time testing/monitoring software and automated test software
  • Technical design of our products and customer projects

KnoxWare (Krishna Computers Pvt. Ltd.)

1991 – 1993
Systems Architect
  • Designed and built on-line disk compression software
  • Designed windows based anti-virus protection mechanisms

Proland Software Pvt. Ltd.

1989 – 1991
Senior Software Engineer
  • Built protector-plus anti-virus software
  • Built hardware based anti-virus protection software

Mistral Solutions Inc, U. S. A & 2005-Now

Mistral Solutions Private Limited

I moved from Mistral Solutions Private Limited in India to our wholly owned subsidiary in the United States of America. Here my primary role is to front end Product Development and Design Services for all our customers in the United States of America. I also run projects with teams in India.

My roles and responsibilities include…

  • To be a Technical Front end, interfacing with our current and future customers
  • Program management for all projects that are being executed in the United States of America
  • Managing development teams in the USA
  • Liaison for communication with Customers and Partners
  • Product Management of our Existing Products and IP’s
  • Explore new Product Development and Partnership opportunities

Significant highlights:

Worked with Texas Instruments to become a strategic supplier of the OMAP3EVM, making Mistral the first in the world to announce support for the ARM Cortex A8 Processor http://embeddedsystemnews.com/mistral-announces-omap35x-evaluation-module-evm.html this has resulted in significant business providing solutions for customers who would like to build solutions that use the Texas Instruments OMAP 3 Processor.

Worked out a Partnership with Wireless LAN companies – Including Texas Instruments, Murata, Marvell and LS Research for bringing Wireless LAN chipsets to the broad market (traditionally WLAN chipsets support a narrow high volume market) http://wiki.omap.com/index.php/OMAP35x_Wireless_Connectivity_Partners

Work with future technology companies like Kopin and Taser International to bring out cutting edge product solutions.

http://www.kopin.com/golden-i/

http://www.taser.com/products/law/Pages/TASERAXON.aspx

The key business areas that I operate in include…

Semiconductor Support Solutions

Automotive Electronics

Lifestyle Electronics

Mistral Solutions Private Limited, India 2005 – 2007

I joined Mistral to setup a product development team. Mistral is focused on providing Embedded Development services to customer’s around the globe. My focus has been to build reference designs that can be leveraged to accelerate customer product development

My roles and responsibilities include…

  • Analysis of the Companies services and Cull out product possibilities
  • Install a Product Development Culture and related Processes
  • New customer acquisition
  • Ensure that for each of the product areas there are core teams and satellite teams
  • Managing the Complete Product Life Cycle
  • Took product revenues to 9% of revenue from a start of 3% and a target of 10% in a year
  • Took product based design services to 30% of Revenue

My focus has been to rally teams, Technical, Marketing, and Sales around key products and target repeat business. Release management, Product Conceptualization, Paper Designs, Creation of customizable IP, working with partner companies where we were lacking. Building linkages with Production houses, establishing a business rapport with large semiconductor houses, have been key aspects of my work.

I drove a balance between product technology and execution. For the internal organization I focus on blazing a trail that people had to work to keep up, created an environment where nobody could hide, and worked on getting people to stop looking only inwardly for solutions but also look outside.

I have listed here some of the Leverage able IP and Actual Products that we have developed during my tenure at Mistral. I have not listed the long list of projects that were an outcome of these Designs.

OMAP3 EVM – First ARM Cortex A8 Development Platform Available

ARM Cortex A8, Linux, DSP BIOS Link

The OMAP 3 EVM that is sold by TI is designed and manufactured by Mistral. This is the first generally available ARM Cortex A8 Development Platform. We were early developers for this board, and this is sold as the TI’s OMAP 3 EVM.

Since we were very early developers, we had to deal with the porting of the Linux Kernel to this platform, and optimising the kernel for this platform. We have built up a lot of partners relationships around this platform including codec, OS, middleware, and application partners.

This board is a calling card. We are using this board to prototype product solutions for customers, which we then re-spin into form factor product designs.

OMAP 2430 Evaluation Module

ARM 11, Linux, DSP BIOS Link

We have built an OMAP 2430 based EVM platform that is used for software development around the OMAP 2 Platform. We have built the hardware, core BSP and a Linux software stack for the OMAP 2 which is being sold to customers all over the world.

DaVinci DM644x Windows CE Board Support Package

C, C++, Assembly, DaVinci, Platform Builder, DirectX, DirectShow, Windows CE 5.0, device drivers, DSP Link, Video Codecs, Audio Codecs

We have built for Texas Instruments a Windows CE BSP for their DaVinci DM644x processor. The BSP development can be split up into the following parts.

  1. Development of a base processor support layer along with device drivers for the various SoC peripherals.
  2. Porting of TI’s DSP BIOS Link layer to Windows CE
  3. Porting of TI’s Proprietary Codec Engine, which manages the Digital Video and Audio IP that TI has for the DSP
  4. Bolting on a DirectX and Direct Show layer so that all video and audio codecs are available in a DirectX coherent layer for application developers.

This project involved with networking with the senior BSP developers at Microsoft’s Redmond facility, where we had an opportunity to discuss our implementation and market directions with their senior teams.

Accelerator Windows CE and Linux

C, C++, Assembly, OMAP5912, WindowsCE, Linux, Device Drivers

The Accelerator is a generic BSP product line for the OMAP (1, 2, 3) series of TI processors. It is a basic BSP for the OMAP Development Kits that is available for people wanting to start using the OMAP. The objective of this program was to build up a BSP that people could use as a starting point for their product development.

The Linux BSP is based on the open source kernel that is available. Along with that we provide a packaging mechanism so that our customers can put together a complete execution environment and not need to pay high NRE for that.

The Windows CE BSP has matured from a Windows CE 4.2 first release into a 5.0 and now a 6.0 release and is moving towards a Windows Mobile BSP.

The Accelerator Series contains drivers for all the peripherals that are available on the OMAP Platforms.

High Speed Audio Encoder based on the TI DA710 DSP

DA710 DSP, Code Composer Studio, DSP BIOS, MP3, AAC, WMA, CD Ripping

This was a hardware reference design for the High End Audio Markets. The product we built up was a highly integrated design that involved interfacing to various CD drivers, Hard Disk drivers, USB Disks and other USB Peripherals, SPDIF Audio interface, SD card and UHPI.

The end product is a reference design that can be licensed by our customers for building high speed CD ripping solutions. Extension to this design also included the interfacing to services like CDDB for song recognition, and more recently to Windows Media Play for Sure, aka DRM10.

SUNADA high End Portable Data Terminal

OMAP5912, Portable Data Terminal, Small Form Factor, Hardware Design, Design License

Based on our experience of working on the OMAP5912, we built up a reference design in a very small form factor (the size of a mobile phone). Which included, five radios (WLAN, GPS, GSM/GPRS, FM, Bluetooth), hard disk, camera, 3 inch colour display, a keypad, and related battery interface circuitry.

The development of this design also included the porting of Linux and WindowsCE BSP’s and applications for this device.

Wireless LAN for the TI DM and OMAP series or processors

Marvell 8686, WLAN, DSP BIOS, Linux, Windows CE

We developed a wireless LAN bundle that included support for a host of TI processors. This is a partnership which we have worked out with Murata where we will provide support to customers who are looking to integrate WLAN into their custom designs.

Home Gateway – WinCE 5.0 BSP

DSP BIOS Bridge, OAMP 5912, Windows CE 5.0, Speech Coders

Our customer was an ODM, supplying designs for their customers, products that can be deployed in the market. We were involved in providing a Windows CE BSP for the OMAP5912 for this device. We provided a Windows CE BSP, along with support for TI’s DSP BIOS Bridge.

Home Gateway – VoIP Application

DSP Bios Bridge, OMAP 5912, WinCE 5.0, Speech Coders, AEC

We built for our customer (an ODM), a VoIP application so that the handset could be used for making and receiving calls over VoIP. This project involved a re-design of the audio (wave) infrastructure of the phone taking into account the requirements of a VoIP phone, including speech coders like G.711, G.726 and G.729AB. It also involved adding on speech quality features like Acoustic Echo Cancellation, Call Progress Tones and Packet Loss Concealment.

SUNADA – Rapid Development Kit

OMAP5912, Windows CE, Linux, WLAN, GPS, GSM, Bluetooth

To begin the development of the SUNADA PDT, we first started work on a large platform that had all the features that are required by the SUNADA. This was built as a plug in board for the SUNADA. The features of the board included…

  1. GSM/GPRS module
  2. CSR Bluetooth Module
  3. GPS Module
  4. Wireless LAN
  5. A Hard Disk
  6. NAND Storage
  7. SDIO

This allowed us to test the functionality of the board without really developing our own board. We now sell this board as a standards product that our customers can use to prototype feature functionality without waiting for specific hardware.

QVLM Display Card for the OSK

OMAP5912, Code Composer Studio, Hardware Design, LCD, SPI, Camera

One of the early designs that we built for the OMAP Starter Kit was a display card that can be plugged onto it. The idea was to provide an interface to a display, a keypad, and a camera port so that customers of TI can build user interfaces with the OMAP starter kit.

Test Harness Development

C, C++, Assembly, ARM, Python, OMAP5912, Code Composer Studio

This is an internal project that was built up to improve the testability of our hardware designs at Mistral. Though in its first incarnation it has been focused on the OMAP and DSP series of processors for TI, it can quite easily be extended to support other platforms.

This project involves the building of a scriptable test engine that can be configured to support additional devices easily. It also includes the recording of past test results and viewing of them.

CMQ Camera Module for the OMAP Starter Kit

OMAP5912, C, Camera, Device Drivers

We built for the OMAP Starter Kit a camera plug in accessory to interface a camera to the OSK. This was built both as a reference design that could be customized by other product developers who would want to interface a camera to their device, or a product that could be bought along with our QVLM display board for the OSK.

PC Based Radar Scan Converter

Scan Conversion Hardware, FPGA, PCI Drivers, Accelerated Displays, Linux, PowerPC, VxWorks

This is an internal product of Mistral and is used to demonstrate feature functionality that is possible using the PC for the highly time constrained RADAR environment. We built PCI based hardware that would pump radar data after front end processing to the PC. We then used an accelerated display engine to display this information on the screen. We were able to use the processing capability to add functionality like Noise Reduction, Gap Filling, and Target Tracking.

A spinoff product that was built was a mechanism to route all RADAR scan data to networked PC’s so that multiple PC’s could be used to view the RADAR with only one Scan Converter.

 

Encore Software Limited 1998 – 2005

I joined Encore with my primary job objective being to build an Embedded Systems Division. My roles and responsibilities include…

  • Product Definition for VoIP, Simputer and SATHI based Product Lines
  • Product Technical/Feature Decisions
  • Team Selection, Mentoring and Cohesion
  • Managing Complete Lifecycle of Products and Projects
  • Installation/Design of Quality systems and Processes
  • Installed Configuration Management/Line Support Processes

My concentration at Encore has been in developing a strong Systems Development Team. The focus of Product Development has been Repeatability and Release Management, be it the Simputer, SATHI, Contract development projects, or developing Technology in Voice over IP.

Product development work at Encore includes Product Concept, Feature Definition, Make-Buy Decisions, Schedule Planning, Test Design, Configuration Management, Bug Tracking, Release Management, and most importantly taking Hard Decisions.

Patent applications have been filed for some of the Technology that we built.

The SATHI

C, C++, Assembly, ARM, Blob, kaffe, Linux, gtk, Xfree86, kernel, device drivers

SATHI stands for Situational Awareness and Tactical Handheld Information. This is a product that was designed on the request of the Indian Army.

Developing the SATHI involved interfacing with the Military in the specification and design of the product. It also involved testing the product in the field. This product has been demonstrated to the then President Dr. A. P. J. Abdul Kalam.

The team worked on the product design from the concept till the battlefield applications required by the Army. This is the first project that the Army has taken up with industry directly with the project completing in less than two years.

The Encore Simputer

C, C++, Assembly, ARM, Blob, kaffe, Linux, gtk, Xfree86, kernel, device drivers, Qt, Jeode

I was the Product Manager for the Simputer a low cost SA1110 (later PXA) Linux based handheld computing device. This has been an ongoing development project where we worked on the specifications of the product, built the device, ported the Linux Operating System, GUI Environment and built device drivers for its man interfaces. This product now hosts three operating environments, A GNU Based Linux Implementation, An Embedix Based implementation and a Windows CE port.

My work involves the complete life cycle of the product starting from the initial concept to walking the product through production both in India and at our contract manufacturer in Singapore.

Simputer Next Generation

C, C++, Assembly, ARM, pxa, Linux, gtk, Xfree86, kernel, device drivers, Qt, Jeode

The Simputer was upgraded based on the PXA processor from Intel, with more features for its use in high load business and Industrial Applications. This has now become the Low Cost Simputer has come out of customer requests for a larger simputer with features for used as a Business/Industrial tool. I was involved in travelling to customers in Singapore and Japan to flesh out the Product Concept and then build it.

The Chhota

C, Assembly, Atmel AVR, Linux tools, tiny kernel, device drivers, Microcontroller

For the High Volume Low cost Markets, like Bus Ticketing, Billing, Security Systems we designed a microcontroller based device which included an integrated printer, a smartcard reader and an RTC. This device had a battery life of over 40 hours and software for new application could be written easily.

H.323 VoIP Terminal Stack

C, C++, ASN.1, pSOS, VxWorks, Nucleus, Linux, Python, x86, ARM, PowerPC

The H.323 Terminal Stack was the first foray of Encore Software into the world of Voice over IP. A highpoint of this stack is that it includes our own ASN.1 (Abstract Syntax Notation) Code (and Data Structure) Generation Technology. Features include support for a variety of speech coders and T.38 fax. This stack has been ported to various Operating Systems platforms and Hardware. We successfully tested the H.323 stack for interoperability at the IMTC’s Inter-op events held at Austin, Texas and Honolulu, Hawaii.

This stack has been deployed into multiple customer product platforms.

MGCP (Media Gateway Control Protocol) Gateway Stack

C, C++, Lex & Yacc, Linux, VxWorks, pSOS, Nucleus, ARM, PowerPC

In response to market demands we developed the MGCP VoIP stack, a VoIP protocol, which unlike H.323 (A peer signalling protocol) is a Master Slave Protocol much like the telephone systems in use today. MGCP has today found a niche in Packet Cable where it is used to deploy telephony services over cable. Our MGCP Stack has been designed to be OS independent and can easily be tailored to different operating systems and environments. Tailoring includes support for selecting between a threaded and a non-threaded approach making it easy to deploy in a low cost device.

SIP User Agent Stack

C, C++, Lex & Yacc, ARM, pSOS, Nucleus, Linux, PowerPC

SIP (Session Initiation Protocol) has become more or less the standard VoIP protocol today. Its inclusion in the 3G standard has resulted in an explosion of supported devices. The development of our SIP Stack was started in response to a customer development request. With the experience already gained on the H.323 and MGCP projects we were able to complete and deliver the SIP Stack in a record 4 months time. The SIP Stack has been tested for interoperability at the SIPIT Interoperability Test event held in Cardiff, UK. It has been deployed to customers in Japan, Taiwan, India and the United States.

Megaco (H.248.1) Gateway Stack

C, C++, Lex & Yacc, ASN.1 (Basic Encoding Rules), PowerPC, Linux, Nucleus

While the MGCP Stack has more or less become a protocol for use in Packet Cable, Megaco is gaining ground as a replacement for MGCP in conventional IP Environments. Megaco is to a large extent an alignment between IETF and the ITU to build a protocol for use in IP telephony environments. The Megaco protocol uses our Text Encoding technology built for MGCP and SIP and the Binary Encoding technology built for H.323 (ASN.1). The Megaco stack is a trim 300kb in size and has been deployed to customers in Japan and Taiwan.

RTP Stack

C, Linux, VxWorks, Nucleus, pSOS, Linux, ARM, PowerPC, Linejack, TI54x DSP’s

All the Voice over IP stacks depend on the RTP (Real Time Protocol) for transmission of media. Media can be Audio, Video or even FAX data. This RTP Stack includes support for all these media types and has been written generically for easy porting to different media devices. It depends on a Media Manager for media data. Porting it to a new device involves simply porting the Media Manager. The RTP implementation includes support for an Adaptive Jitter Buffer and is presently being ported multiple environments including non-OS DSP environment.

Hardware Simulation Environment – Stratus

C, C++, Linux, Solaris, Windows NT, Lex & Yacc, Python, System-c, PCI, Device Drivers, Processor Simulation

Embedded development boards are sometimes expensive and hard to come by. The objective of this project was to build a software development environment where a software developer can emulate his/her hardware development environment on a Windows/Unix machine. We built a set of libraries that simulated the software developer’s “view” of hardware, which is usually a register/memory read/write and the ability to process interrupts. Using this approach we then built software libraries that emulated processors, a PCI Bus, Serial-Parallel Converters, Memory etc. The software that we built would be linked with the embedded systems developers’ core code and they would be able to run their programs without needing the external hardware. One of the core functions of this software was that the simulation would generate an execution time estimate of what the operation would take on a true embedded platform.

BIOS for an AMD SC400 ELAN based Handheld Device

C, Assembly, X86, PCMCIA, Flash Drivers, Power Management

This project, which was executed for a North American client involved the porting of a BIOS to a customers AMD SC400 Elan based handheld platform. It included the basic BIOS Port, developing Flash Drivers, LCD Drivers and Keypad controller software.

JavaOS Set Top Box

C, C++, Assembly, Java, ChorusOS, Device Drivers, Solaris

Using the Television for Web Browsing and Email is now becoming commonplace. Hotels now provide a service by which you can use the TV and an IR Keyboard to browse the WEB and send Email from your hotel room. This project was started in 1999 for a Malaysian Media company, which wanted to build an x86 set top box running java. The objective of this project was to port JavaOS to an x86 Set Top Box reference design that was based on the MediaGX processor. We did the base ChorusOS port, and then wrote device drivers for Flash, Display/TV output, Serial Port and A Modem driver.

Multi channel VoIP/FoIP Gateway

C, Assembly, Nucleus, TI 54x DSP’s, Device Drivers

This project, which completed recently, involved the porting of our entire suite of VoIP protocols to an MPC850 based two-channel gateway device. The objective of this project was to port our VoIP and FoIP software to the Nucleus environment, develop drivers for a Handset Interface, Develop interface drivers to work with a TI 5402 DSP, and to provide a host of control applications like a Telnet Terminal, Web Based Control, SNMP and NAT functionality to the device. This is the first device in the world that has shipped with a configurable selection of either MGCP/SIP/H.323/MEGACO. The entire suite of protocols, drivers, and user applications all execute from 2 megabytes flash and 4 megabytes ram.

ASN.1 Code Generator

C, C++, Linux, Lex & Yacc

H.323 and Megaco define their packet formats using the Abstract Syntax Notation (Described in ITU document X.680). Each packet so defined is then encoded using rules like the Packed Encoding Rule (PER) for H.323, and the Basic Encoding Rule (BER) for Megaco. In the early stages of our H.323 development a significant amount of time was being spent to write functions that would encode and decode messages. While there are commercially available code generators, the code that they generate is not efficient, both in the use of memory and in terms of code size. The code generator that we developed takes in a definition in ASN and generates code that will encode and decode messages. The code generator also generates a C header file that an application can use to populate data into an ASN Message. The code generation approach that we built results in significant code size and memory usage savings.

H.323/MGCP Based Residential Gateway

C, Assembly, pSOS, Device Drivers

This project involved the porting of our MGCP and H.323 Stacks to a DOCSIS 1.1 compliant cable set top box. The initial deployment of the telephony software started with H.323 due to the non-availability of an MGCP Call Agent for deploying in the customers network. The network was then field upgraded to MGCP once the call agent was available.

Host based fax processing software

C, Linux, Windows, ASN.1

The DSP group at Encore software has implemented algorithms like the V.17fax and V.34fax on TI’s DSP Processors. We implemented the T.30 Fax negotiation algorithm on the host processor. The development also included the development of a Fax Viewer software which involved the decoding and display of the T.4 Encoded Fax Image. Some additional work that we have carried out in this area includes the development of ASN encoding for the T.38 fax protocol, along with the modifications to all our VoIP stacks to support Fax negotiation.

OnTime ISDN – Internet Usage/Saving Software

C++, Windows, ISDN

In a typical internet usage over the PSTN or ISDN network, the user logs on to the network and either browses for web pages or email. Typically there are a lot of times that the connection is active but there is no activity. What the software does is

  • If there is no activity on the network for a pre-determined length of time it then drops the connection immediately.
  • If there is any activity then it re-connects seamlessly giving the user the experience of an instant-on connection with a large savings in cost.

This software and approach have been patented.

Xpert Systems 1993 – 1998

I was one of the Founding members of Xpert Systems, a Technical solutions company. During the time that I was with Xpert Systems we worked on a wide range of products from Indian Language Solutions, to Large Scale Robotic Scanning Systems. My roles and responsibilities included…

  • Charting a direction for Xpert Systems
  • Technical design of our products and projects
  • Customer management and project execution

GARUDA – Large robotic ultra-sound based Composite Scanning System

Delphi, Assembly, C, C++, VxD, Device Drivers

The objective of this project was to develop software that will use non-destructive techniques like ultrasound scanning to look for manufacturing defects in composites. The software we developed controlled a five-axis robot. The scanning area of the robot was five meters by seven meters. At the tip of the robotic arm was mounted an ultrasonic probe which would scan for defects. Ultrasound attenuates very quickly in air so a water-jet was also present. The software would control the robot and build up a ”c-scan” of the thickness of the composite material. The software that we developed now supports scanning of three-dimensional components.

The Completion of this project put India as the 6th country in the world to have this technology.

Monitoring System for the Light Combat Aircraft (LCA) Engine Control Unit

C, C++, TurboVision, Serial Port, Device Drivers

During the testing of the LCA engine, there was a need to at runtime monitor (and log) the various parameters in the engine control software. The typical window of execution of the systems software control loop was 20 milliseconds. We provided libraries running on the target hardware that would interface to the PC. The library we provided would monitor the execution time available and would send out parameters whenever there was time available. The software and front end that we developed provided the support for displaying multiple categories of variable from multiple engine controllers.

Automated Test Environment for the LCA Digital Engine Control Unit

C, C++, Code Generators, DOS, Windows

The Digital Engine Control Unit is a “flying” component of the aircraft and must be rigorously tested with all the various parameters tested for proper operation and for improper operation. The software we developed was a test development environment where we provided an IDE that held the various test parameters and could be used to write test software. The output of this program would be test code that would be compiled along with provided libraries to build a complete test application. The test application we built would provide reporting of test parameters and variables along with the logging of their data. It also provided support for the automated execution of test scripts and logging of test coverage reports.

Multi-platform open-gl based graphing Software

C, C++, open-gl, UNIX

The objective of this project was to build graphing software that would take care of both screen presentation and printing of data used during the development of the Light Combat Aircraft. Since this software was to run on a whole host of UNIX hardware it had to be developed and tested for all those hardware platforms. For the graphing software we chose open-gl (MESA) as the graphing tool. Development of this project involved the porting/testing of MESA on platforms like the IBM RS 6000, the Silicon Graphics Indigo and Onyx machines, Sun’s Sparc 5 machines and the DEC Alpha Machines.

Almanac – Personal Information Manager

Delphi, Windows, Paradox database

This product was Xpert Systems application product. This product was built quite like Lotus Organizer and would take care of all the personal information needs of the individual. It provided features like an Address Book, a Memo pad, A Calendar, Format Conversion etc. This product was OEM’d to companies like Ncore Technology and Tandon Computers who would ship it with every computer/notebook that they shipped. At the time of release it attracted a lot of attention in the Indian market.

TransAssist – Medical Transcription Assistant Software

Delphi, C, Windows, Device Drivers

The Medical Transcription industry started picking up in India around 1996. Medical transcription typically involves a hospital in North America sending audio recordings that a doctor had made, to India to be transcribed and sent back as a typed document the next day. The software that we built provided external hardware foot switches and a windows hosted player that would play the recorded message for the MT. Quite often during the recording the MT would have to rewind and fast-forward the recording. He/She would be able to do so using the foot pedal that we provided.

Kairali – Indian Language Editing Software

C++, Object Windows, Windows, True Type Fonts, Device Drivers

This product was built in 1994 for a DTP Company which wanted to sell a software product that would allow its customers to edit text in any language, (Hindi, Telugu, Malayalam, Tamil and Kannada) using software that they are already used to like PageMaker and Microsoft Word. Most Indian languages require more than the 256 standard character font matrixes that was provided along with Windows 3.1. We provided a mechanism by which we could “cut” the characters so that they would fit into the 256-character matrix. We also ensured that when the user typed in the required language it would “stitch” the characters together correctly. Though the software was built in 1994 the approach used was so robust that it worked with all the windows operating systems that came along up to windows 2000.

CoreFone – Windows Telephony Software

Delphi, Windows, TAPI, Device Drivers, Windows Internals

This software was built for Ncore Technology Pvt. Ltd., that wanted an integrated windows based software that combined an Address Book, an Answering Machine, a data terminal and a Fax Software in one application. The CoreFone application was built on the Almanac framework. The development of this project also involved the development of TAPI drivers to provide a windows interface for the CoreFone Voice/Fax modem.

Windows Display Driver for a Frame Grabber Card

C, Assembly, Windows, VxD’s, Device Drivers

This project involved the development of a display driver for a frame grabber card. At the time of this development, 1995, a frame grabber card would “sit” in the system along with a conventional display card. Application software sitting on the PC would “take” the data from the frame grabber card and display it on the PC display. The driver we developed was for a new frame grabber card, which included the functionality of a VGA Display. We developed a 4bit/8bit/16bit/24bit display driver that windows would use for display output. Development also included support for directing frame grabber output to a part of the windows display (instead of the entire screen) providing “picture in picture” true motion display.

Windows Data Acquisition Drivers

C, Assembly, Windows, VxD’s, Device Drivers

We also developed Windows 95 drivers for a whole host of ADC/DAC/DIO cards. This involved the development of a Virtual device driver that would allow access to external devices on the system bus (Windows typically blocks inport/outport access to user applications). Some of the drivers that we developed required simple poll based access to the device; some others that we developed were complex dma devices.

Installation/Security software

C, C++, DOS, Windows, Turbo Vision

This was a software developer’s tool that provided key-disk and/or parallel port protection to an application. Along with the protection tool we also provided routines to compress software and provide an installation program, which would expand it to the customer’s hard disk at a selected location. The software we developed was sold to a lot of other developers who would use it to protect their applications from indiscriminate copying.

 

KnoxWare 1991 – 1993

I joined KnoxWare as a Systems Architect working primarily on developing an On-Line Disk Compression Software. My focus was on technical design and implementation of the projects that I was assigned.

On-line Disk Compression Software

C, Assembly, C++, Turbo Vision

The first project that I worked on at KnoxWare was the development of on-line disk compression software much like the stacker software that was available at that time. This was the time that Dos 4.01 was the predominant operating system and hard disk sizes were a princely 20megabytes. The software that I developed here would reserve a part of the disk space and use that space as a hard disk drive. All writes to this virtual drive would be compressed and data read back would be de-compressed and provided. Utilities that we built included support for de-fragmenting drivers for easy installation of our software. This software was able to double the size of the storage space available on the hard disk.

Antivirus Protection Mechanisms for Windows

C, C++, Assembly, Windows Internals, VxD’s, Device Drivers

Windows 3.1 was just beginning to enter the Indian market, and KnoxWare also being an anti-virus company was looking at ways that a virus could spread on windows. My work here involved the study of the windows operating system and to figure out what a potential virus could do so that we could plug those holes. Some of the software that I developed at that time provided a communications program, which would allow a windows application to communicate to a DOS device driver also running in the system. Approaches that we built included blocking raw drive access to a windows application, mechanism to crc-check an application before its execution and protection of key interrupts.

Windows Virtual Device Driver for Device Access

C, Windows Internals, VxD’s

KnoxWare had a hardware card based anti-virus solution. They needed their windows application software to be able to access data on their device, along with the ability to read and write to the card memory. The virtual device driver that I built provided the required access.

Add-on card based assembly level debugger

Assembly, x86

Debugging a firmware solution for the PC depended totally on the use of printf statements, and in a device that used only 16kb of memory a printf is a luxury. I ported an x86 assembly debugger to operate as an add-on card. We would then use that card to debug our other add-on cards. This reduced development time dramatically. The interface that I provided was a complete “debug” program interface to a hardware device.

Proland Software Pvt. Ltd. 1989 – 1991

I joined Proland fresh out of college. I was part of the core team working on developing the Protector Plus anti virus software. By the time I left I was in-charge of the development/planning of the product.

Protector Plus – Anti-virus Software

C, C++, Assembly

At Proland we built an entire anti-virus suite of products that included an in-memory scanner software, software to scan and cure viruses on the hard disk, applications to clear virus implementations from memory. This was product development from the scratch and work we did included providing installation programs, protection, and making sure that a customer did not need too much support as it would increase the delivered cost of the product. The product that we built won quite a few awards. At that time it was among the top three anti-virus products available in the country. Protector plus today is still selling well and has customers in over 130 countries.

Hardware based Anti-virus/Access Protection software

Assembly, C, x86

One of the revisions of the protector plus software was the development of a hardware add on card that would allow our software only solution to take control of the PC before the boot so that it would be able to accurately trap boot viruses. This was a major advantage to our product.

Generic Scanning System for self modifying viruses

C, Assembly, x86

In early 1990 self-modifying viruses began appearing. This was a challenge to the anti-virus industry as till then we depended on scanning for certain strings to determine if a virus had infected the application program. We built a scanning approach by which we were able to scan for a virus that used wildcards in the entire scan string so a scan would look for a pattern, ignoring the wildcards. Some additional technology we built included speeding up the scanning process by only scanning parts of the file and providing CRC’s by which an application that has been previously scanned need not be scanned because its CRC is intact.

Strength’s

Wide breadth of technology experience, Micro-controllers to multi-processor products

Strong Techno-Commercial Skills, Well networked to technology leaders

Able to rally teams around business and technical goals

Ability to switch between big picture and small detail based on situation

Platforms worked on

X86 PC, Sparc, Indigo, Onyx, PowerPC, ARM (7, 9, 11, Cortex), MIPS, DA710, TI DSP’s, OMAP, DaVinci and a host of development/production boards

Programming Languages

Assembly, C, C++, Python, Perl, VB, Java, Delphi (Pascal)

Operating Systems worked with

VxWorks, pSOS, Embedded Linux, Linux, Windows, MSDOS, WindowsCE, Nucleus, eCOS, Android

Educational Qualification

Bachelor of Arts, 1986-1989,
Dr. Ambedkar College

Post Graduate Diploma in Software Enterprise Management,
1998-2001, Indian Institute of Management Bangalore

Hobbies and Interests

Technology:

· Control System Design

· Emergent properties of systems

· Micro-kernel architecture

· How to “upgrade” software on a running system

Traveling, Reading, Public Speaking,

Papers Presented at Various Seminars

OMAP 3 EVM, Texas Instruments Developer Conference, Dallas

Quality of Service, VoIP, iLocus Conference

Voice over IPv6, Global IPv6 Summit

The Encore Simputer –Bangalore-IT.com, foss.IN, Wizards of OS, Germany

Linux a Development Platform – Bang!Linux, Linux Bangalore

Structuring a Company for Software Product Development, IIMB

RADAR Simulator Design, IRSI Conference

Leave a comment