Résumé of Mukund Sivaraman
Computational skills
- Programming languages: C, Java, PHP, x86 assembly
language
Software: GNU compiler collection, standard C library,
Sun's J2SE SDK, NetBeans, NASM x86 assembler
- UNIX programming environment: POSIX OSes such as Linux,
BSDs, Solaris, Mac OS X; IPC, TCP/IP socket programming, multi-threaded
programming, regular expressions, GUI programming and computer graphics
Software: GNU Make, Ant, GDB debugger, Data Display Debugger, Binutils,
gprof profiler, Sysprof, Valgrind, KCacheGrind (Callgrind), strace; CVS,
Subversion, Git, Trac, Bugzilla and ViewCVS (use and administration);
GObject, GLib, Cairo, GTK+, gettext, GD graphics library, pslib,
PDFLib, GMP arithmetic library, OpenSSL, libcurl,
libavcodec/libavformat
- Documentation tools: DocBook, plain TeX and LaTeX,
Javadoc, Doxygen; Dia, Inkscape, GIMP
- Web programming: XHTML, CSS, CGI, forms, cookies,
sessions, JavaScript, AJAX
Software: Servlets, Velocity, DWR, Apache httpd and Tomcat (use and
administration), mod_jk, mod_php
- Data sources: XML, DOM, relational DB design and
normalization, SQL; XML-RPC
Software: libxml, Berkeley DB, MySQL, PostgreSQL (use and administration),
JDBC, MySQL Connector/J
- Data compression algorithms: LZ77, Huffman coding,
arithmetic coding, range coding, Markov process models, prediction by
partial matching, DEFLATE algorithm (used in gzip and PNG), Burrows-Wheeler
transform (used in bzip2), JPEG (YUV conversion, DCT, quantization, entropy
encoding using static and dynamic Huffman or arithmetic coding tables)
- Bioinformatics: FASTA, GenBank, PDB file formats;
restriction maps; basic programming experience with sequence alignment,
hidden Markov models
- Linux administration tools: Red Hat Enterprise Linux,
TCP/IP tools (net-tools, iputils, tcpdump, Wireshark), RPM (writing .spec
files, building RPMs), provisioning and large scale cluster deployment using
Anaconda, LVS clustering and Piranha, SMTP and IMAP (Sendmail, qmail,
dovecot, ClamAV, Spamassassin), NFS, CIFS (Samba), LDAP (OpenLDAP),
Jabber/XMPP (jabberd), DNS (djbdns, BIND), process accounting, Bash shell
scripting, etc.
Academic education
M. Sc. in Computer Science, Pondicherry University, Pondicherry,
India.
1998–2000
- Relevant courses: computer algorithms, automaton,
operating systems, principles of programming languages, computer networks,
database management systems, object-oriented systems, software engineering,
computer graphics, communication skills
- Projects completed: content indexer and search engine
in C++, TFTP revision 2 (RFC 1350) server in C, HTTP/1.0 (RFC 1945)
protocol subset server in JavaGraduated in “First Class” with 79% grade-point average
- Other items: Was selected as Mr. Fresher after entering
university; received first ‘S’ grade (greater than
‘A’ grade) in 6 years from the reader, for a network programming
project; #1 in inter-university music competition; was among 8 selected by
HCL-Cisco from almost 350 students on first day of recruitment
B. Sc. in Computer Science, Loyola Academy, Hyderabad, India.
1995–1998
- Relevant courses: data structures and algorithms,
artificial intelligence, numerical methods, system simulation, statistics,
discrete mathematics, operations research, operating systems, principles of
programming languages, compiler design, data communication, computer
networks, database management systems, software engineering, computer
organization, digital electronics, microprocessors and interfacing, computer
graphics, accounting and financial methods
- Projects completed: question bank system in Object
Pascal for the University Grants Commission (a pilot project), an
indexed-sequential access database library in C, Die Hard 2 virus scanner
and cleaner in x86 assembly language (widely used on campus at the time),
various VGA demos in x86 assembly language
- Graduated with “Distinction” with 76% cumulative
average
- Other items: was class representative; captained team
and won basketball tournament; #1 in college music competition
Work experience
Software engineer, Brocade Communications Systems, Inc., India.
June 2007–Present
- Worked as a Windows kernel driver programmer for SMB/CIFS network
filesystem inband virtualization
- Implemented inband virtualization of open file related information
such as rangelocks, oplocks, modified regions tracking during
migration of data so that files can be migrated among filers while
open handles are held and used by client applications without any
disruption of service
Software engineer, Lulu Inc., United Kingdom.
October 2006–April 2007
- Worked as a contractor for Lulu.com—a book self-publishing
service (web development), working on card payments and various bug
fixes
- Developed patches for extending functionality of Pure-FTPd in C
- Worked on an application called Gum similar to iTunes for
CC-licensed content in C and GObject (the OO library used in GTK+
applications)
- Created an internationalized website using J2EE which picks up
the user's country automatically and presents it in their
localised language; added support for accounts and sessions, Ajax
support, schema for the database
- Optimized the Value Invert GIMP plug-in cutting the execution
time to under 50%
- Implemented the Rearrange Colormap GIMP plug-in in C to shuffle
colours in an image's palette without modifying the look of an
image
- Implemented largest-rectangle auto-crop algorithm for affine
transformations in C for GIMP
- Improved handling of incomplete PNG files in C for GIMP
- Improved support for multi-page TIFF files in C for GIMP
- Added libcurl based HTTP URL loader in C to GIMP
- Fixed many GIMP bugs
Project manager & software engineer, Xinit Systems Limited,
United Kingdom.
July 2001–June 2006
- Designed and developed the Openfiler open source storage
management system which runs on Linux—this involved bringing various
network filesystem protocols and network directory protocols to work
together along with unified authentication and authorization, and solving
various issues which arose due to the wide-range requirements of an
enterprise from such a heterogeneous system; widely used worldwide
- Developed custom functionality and extensions to several programs
in C for integrating them with Openfiler including parted, Samba,
mod_ftpd, PHP, IET iSCSI target and LVM2
- Developed raster graphics color-space conversion library functions
in C for GIMP
- Added EXIF thumbnail read/write support for JPEG images in C for
GIMP
- Developed the MNG file-format plug-in in C for GIMP
- Fixed x86 MMX routines in GIMP
- Fixed other GIMP bugs
- Added ffmpeg libavcodec/libavformat input support in C for x264 (a
H.264/MPEG-4 AVC encoder)
- Implemented several statistical functions in C++ for
OpenOffice.org office suite's Calc spread-sheet application; received
a prize from Novell, Inc. and The GNOME Foundation for it
- Designed and specified the internal system order process, which
has become the central system around which the company functions;
designed and developed a software system to manage the process;
used every day internally
Software engineer, Models Direct, United Kingdom.
October 2000–April 2001
- Worked as a contractor and developed an internationalized website
Student intern in a team during M. Sc., Nihar Infoway Limited,
India.
January 2000–June 2000
- Implemented basic web-based email software
- Implemented an IRC (RFC 1459) system with patches to an existing
ircd server for authentication off a database
- Audited SourceForge.net's site source code for security
vulnerabilities
- Developed a fingerd daemon (RFC 1288) for
SourceForge.net to provide information about registered users and
their projects; this is now distributed as a part of the GForge
Collaborative Development Environment
- Developed Conic Planet—a web-based planetary viewer
Other information
- Work clearance: Indefinite leave to remain
(permanent residence permit) in the UK
- Sports: Basketball, Cricket, Chess, beginner in Go
- Music: Guitar player and a beginner on keyboards
- Membership: ACM, IEEE Computer Society
- I like meeting people, reading, breaking stuff and experimenting,
music and movies