Want Sandeep to work for you?
{Computer Skills}
{Interests}
{Qualifications}
{Work Experience}
{Projects}
{Seeking &
Offering}
{Modus Operandi}
{Web Presence}
[HR FAQ]
[Teaching @ PUCSD]
[Free Software]
[Tech Ideas]
[Views on
Business]
{Contact Me}
[Resume]
[Home]
Are you looking for a person with blend of research and engineering mind, a
thinker, a designer and not just a coder? Relevant sections of this profile
will help you in your search.
Professional yet informal and healthy work environment encouraging problem
solving and quality products, challenging and satisfactory work, opportunities
to work in different areas and sufficient time for personal life.
So far I have worked in system software domain primarily embedded, but I would
love to explore other areas as well. I am also looking forward to join hands
with startups and small organizations.
I am interested in use of technology for common man's benefit in day to day
life and would love to contribute in non-computers related developments as
well, putting to use the knowhow in Mechanical, civil, food processing and
agricultural engineering from graduation days.
Help with design and improvisation of operating systems, applications and
testing frameworks, port and optimise applications and OSes on new
architectures, help recruit people for organization and make it a place where
people long to work.
My experiences with evolving hardware, tools, OSes and organizations can be
useful for startups and small organizations aiming to become one of the good
organizations in their fields and/or intending to move towards open-source in
their business.
I am neither fanatic about systems work nor allergic to windows or any other
OS, or applications programming - each of these is just another program.
I have been working for IT companies either on project basis or as a consultant,
often contributing to multiple projects at the same time and also handling team
lead responsibilities at the organization. I am also open to work over Internet,
whether the company/client is in India or abroad.
- Currently
- Associated with Pune University
Computer Science Department (PUCSD) as visiting faculty.
Taught following courses so far during this association -
- Computer Graphics (A.Y. 2005-2006). I handled the topics
of drawing curves and surfaces, illumination and shading, texture mapping,
animation and morphing.
- DataBase Management Systems (A.Y. 2005-2006). I handled
file organisations, data protection (concurrency, recovery, security and
integrity), query optimisation and performance improvement aspects of
databases.
- June 2005 to August 2005
- April 2005 to May 2005
- June 2001 to Jan 2005
- Associated with Codito Technologies
Pvt. Ltd. (earlier Morelinux.com) as developer consultant.
- Taught following topics/courses at
Dept. of Computer Science,
University of Pune, as visiting faculty (mentioned years
indicate start of academic year) :
- Physical Layer and part of Data Link Layer (Computer Networks, 2004)
- Concrete Mathematics (Concrete Maths and Graph Theory, 2003)
- Low Level Programming (2002)
- July 1995 to June 2001
Associated with Dept. of Computer
Science, University of Pune as lecturer (initially fellow).
During this period -
- Taught following courses (mentioned years indicate start of academic
year) :
- Computer Graphics (2000)
- Computer Networks (1995 - Physical Layer, 1999-2000)
- Concrete Mathematics (1995)
- Data and File Structures (1996-98)
- Distributed Operating Systems (1999)
- Introduction to Programming (1996-98)
- Low Level Programming (1995)
- Operating Systems (1998-1999) - used NACHOS for practicals.
- Handled system administration responsibilities.
- Managed "Natural Language Teaching Teacher's Training Program"
workshop (July 1995).
- May 1995 to June 1995
eCos, Codito's DSP OS,
uCLinux, Linux, DG Aviion, MS-DOS, NACHOS
Hardware Exposure
Cradle's multicore SOC (CRA/UMS),
UNM's network processor, Intel 80x86,
ARM, Motorola 88000, ARC (A5,A700)
Languages Known
C, Assembly Languages (80x86, CRA, UNM), TCL, Shell, C++, AWK, Perl, Gofer,
Prolog, BASIC, Scheme, ForTran
Packages/Tools Familiarity
PTXdist,
Busybox, Crosstool, GDB, CVS,
Bugzilla, Cygwin,
Lxr, Make, Sed, Linux configuration, Latex, Unify-Accell, Lex, Yacc,
Goahead webserver, Opensource VoIP
libraries and applications (OpenH323, PWLIb,
OhPhone, GnomeMeeting)
----------------------------------------------------------------------------
Degree Marks/CPI Year Institution Board/University
----------------------------------------------------------------------------
M.Tech.(Comp.Sc.) 3.83/6.0 1995 Comp. Sci. Department Pune University
B.Tech.(Ag.Engg.) 7.53/10.0 1992 I.I.T. Kharagpur I.I.T. Kharagpur
XII 84.0% 1988 B.V.M. Nainital CBSE
X 76.2% 1986 B.V.M. Nainital CBSE
----------------------------------------------------------------------------
Additional Qualifications
Cleared Maharashtra State Eligibility Test for Lecturership held in January 1998.
Other Achievements
- Sr. div. NCC 'C' certificate
- Editor of institute's Hindi magazine at I.I.T. Kharagpur (1991-92)
- Indian govt.'s boarding scholarship (1983 - 1988)
Low level (assembly, firmware) programming, Data structures & algorithms,
Embedded & real time systems, Networking, Software development tools, Computer
graphics, Machine learning
I have been little active (in terms of submitting patches and ideas) on
eCos,
PTXdist,
OpenH323 and
imtch323implementors mailing lists,
goahead.public.webserver newsgroup,
and Hydan.
In 2002, Goahead newsgroup participation got me an invitation from John Vogel
(CTO, GoAhead Software) to join his Technical Advisory Board, which I
could not accept for some organizational reasons then.
Projects at UNM Systems
- Augmented the "UNM NIC Linux driver's virtual memory requirement reduction"
solution with support for multiple adapters and transparent handling of big
block accesses.
- Later I was assigned the task of trying out long running tests on network
performance improvement product and "find & fix" bugs that I came
across.
Project at LinSysSoft
Implemented a solution for reducing the virtual memory requirement of UNM NIC
Linux driver.
Projects at Codito
- Member of ARC team (June 2004 - Dec 2004)
- Tweaked uCLinux distribution (1.3.4) to integrate use of genromfs and
invocation of uClibc configuration in build process. Also tested uCLinux
port for A5 processor with busybox (pre-1.0).
- Patched PTXDist (0.6.1) and crosstool (0.28-rc36) to build cross-
toolchain (gcc 2.95.3 with uClibc 0.9.26) for ARC 700 and use that to
generate Linux image containing an initial file-system image with selected
applications. Also provided a facility in PTXDist for selected packets
(packages) that allowed user to simply 'make world' to build and
integrate them after any change in their configurations.
- Contributed towards embedded (Linux) BSP/distribution product
specification for possible distribution from Codito.
- Firewire stack for a digital camera (Feb 2004 - June 2004)
After initial studies eCos was chosen over uCLinux because of hardware resource
constraints, and TNF (Firewire stack from Apple) was ported to eCos. My
role was to provide DCam config rom and communication with sensor over I2C, and
assist in debugging the Firewire stack.
- Member of "Codito's OS on UMS" team (Aug 2001 - Dec 2004)
- Gave inputs for Codito's multiprocessor eCos, that went on to become
Codito's multiquad multiprocessor DSP OS by 2001 end (further referred as
CodOS), to utilise the CMP architecture from Cradle. After this I was not
active on this team during Jan-Sep 2002. Later looked at RTOS compliance
issues that could/need-to be addressed by CodOS, apart from suggesting/
incorporating few space/time code improvements for performance
enhancement.
- Contributed in design of a framework for interoperability between CodOS
and eCos. The framework could easily be adapted to interoperate with OSes
other than eCos. Later on implemented and optimized it for both OSes
running simultaneously on UMS chip.
- Improved the build process and implemented a configuration mechanism
based on Linux (2.4.x) configuration tool. Mainly Menuconfig script
was modified to provide the needed features.
- Implemented couple of Profiling, Instrumentation, and compilation and
tests Regression frameworks aimed at batch mode operation with almost no
user intervention, using Tcl, AWK and Bash scripting. Most of these had
support for auto-resuming, controlling the framework execution via
configuration files, user-friendly error checking and logging, and
auto-inferring certain execution parameters wherever possible.
Regression frameworks involving tests execution, also supported - timed
execution of tests to allow regression to progress in event of a faulty
test, and check for erroneous execution of test and dump required
processor registers and stacks in readable form.
- Designed and implemented C macros for OS/tests code for profiling and
instrumentation frameworks and contributed in design of instrumentation data
structures.
- Designed and implemented methodology, data structures and C macros to
update the tests to allow tests regression frameworks to determine the
execution status of test, in the absence of message printing support in
the OS.
- Member of "eCos" team (March 2002 - Jan 2005)
- I was responsible for stabilizing the initial eCos v1.3.1 SMP port for
UMS - mainly hal and kernel packages, and later maintaining it in sync with
public eCos repository and newer versions of UMS chips, simulator and
development tools, optimising the UMS HAL and updating it for inter-operation
with Codito's DSP OS - both running simultaneously on UMS chip.
In the process I also found/fixed kernel code and couple of tests in public
eCos repository that suffered from race conditions under SMP configuration.
- Added support for using eCos ROMFS for storing static web pages in
Goahead webserver.
- Designed and implemented regression suite for eCos tests using Bash script
and Tcl, with features like resume support and timed execution of tests that
allowed regression to progress even when some of the tests misbehaved.
During March - September 2002, I also lead three Codito engineer team
for an assignment with it's client.
- Audio codec as virtual device on Linux (July 2001 - March 2002)
Experimental work that explored the possibilities of performance gains for VoIP
applications on Linux. Some audio codecs were implemented as virtual devices in
Linux (2.4.10) and corresponding modifications were made in openh323 libraries
to work with these. Test setup included Win2K and Linux hosts. My
responsibilities included implementing virtual devices and assisting in openh323
libraries modification apart from leading the team.
Project at Antech microsystems
- Developed a UNIX command line utility to read/write data files from/to paper
tape and deployed it at client site Rolta (I) Ltd., Bombay.
Projects offered during teaching
- Real Time Extensions to Linux (M.Tech degree project)
- Incorporating load balancing in Beowulf OS (Distributed OS)
- Computer Networks projects
- Design and implementation of a Name Server for server programs.
- Implementation of a simple banking system using RPC
- Implementation of load balanced dynamic cluster of servers to provide
faster service to clients
- Chat/Talk across DOS, Linux, Windows using TCP/IP and IPX protocols.
- Accessing/sharing resources (at least files) between machines running
different OS (MS-DOS,Linux,Windows)
- Normally telnet/rlogin from A->B->C->D...->M and working on M sitting
at A gives poor response time and increased traffic, when all of the
machines are on same local network. Project was focused on identifying
such chains and short-circuiting A->M in transparent manner.
- To implement a set of services having different priorities and
interdependencies (kind of prerequisites). If you authenticate yourself
for a particular service, you need not do it again (until you sign out
completely) to access a related service of lower priority but still need
to verify your identity for higher priority or other set services.
- Low Level Programming projects on MSDOS
- .BAT to .EXE/.COM converter
- Accessing directories/files on hard disk of other PC using serial/parallel
port
- Accessing printer attached on one PC from other PC
- Boot sector and executable files virus, and the vaccine to tackle it.
- Command editor with history and other facilities like BASH
- Devnagari keyboard
- Disk copier
- Disk defragmenter
- Disk editor
- Enhance floppy storage without data compression
- Formatting floppies in background (unix, dos, other formats)
- Implementation of coroutines
- Mouse device driver
- Program loader/unloader
- Screen capture using mouse and rubber-banding
- Screen saver
- Self extracting files
- Software locks for copy protection (modifying executables)
- Sound device driver
- Task scheduler
Projects Done as student
- Implementation Of A Framework For Global Data Flow Analysis (M.Tech
Degree Project)
- Surface modeling using Bezier and B-Spline surface generation
techniques
- Design and implementation of a mini Hospital Management System
in ACCELL
- Implementation of LL(1) grammar checker
- Implementation of Grid file structures
- Implementation of a mini shell on DOS with facilities like UNIX
shell
- Implementation of a mini text editor in 8086 Assembly
- Implementation of Quine Mckluscky method of boolean expressions
minimization
Please Mark your mail subjects with "[Work Related]".
- blacksun [AT] rediffmail [DOT] com
- shimple0 [AT] yahoo [DOT] com
Created on January 06, 2005
(Last update : June 09, 2006)