Software Engineer Resume
Software Engineer
Java, C++ | JVM | Object-Oriented Programming
Objective
A software engineering manager for an object-oriented technology team.
Qualifications
- Object-oriented programmer and software designer with 13+ years of work experience as part of various leading-edge technology teams.
- Masters Degree (Computer Science) holder with a unique blend of research and professional experience.
- Extensive exposure to Software Engineering methodologies and customer interaction.
- Working knowledge of engineering processes adopted by various software companies.
- Experience with programming at the JVM, API and applications tier.
Technical Skills
Languages: Java, C++, C, Smalltalk, Shell Scripts, XML, Twiki, HTML.
Tools/IDEs: CVS, SVN, Clearcase, DDTS, Bugzilla, Ant, gmake, Netbeans, Codewright, Hawk, ADS
OS/Environments: Solaris, Linux, UNIX System V, Microsoft Windows, OS9000.
Platforms/Specifications: Java SE, J2ME, pJava, CLDC, MIDP, ARMulator.
Professional Experience
Confidential- Feb 2006 to Date
Description: Design Insight & Foresight is an in-house suite of tools to graphically visualize VLSI chip design data retrieved from a back-end Oracle/Sun proprietary database. The suite enables users to selectively render, query, correlate and manipulate VLSI design elements. It also lets users generate statistical reports (interactive and batch-based) to analyze and visualize trends in the design data.
Environment: Java, Swing, JFreechart, C++, OpenGL, Oracle, HTML, XML, Shell-Scripts, Clearcase, SVN, Bugzilla, JUnit, Solaris
Responsibilities:
- Member of the design and development team for Layout Browser, Report Browser, Overlay Browser, Batch Reports etc. for visualizing design data.
- Part-time support for "MultiVT" and "Icopt" - other optimization tools developed in-house.
- Release coordinator: Responsibilities included build integration, validation, compatibility verification, code propagation for release, feature documentation, tool utility scripts development and regression testing.
- Server administrator: Responsibilities included server-side code updates, service process maintenance, monitoring the tool usage, server-side benchmarking etc.
- Performance Analyst: Responsibilities included profiling and benchmarking the application performance, identifying bottlenecks, architectural analysis and maintaining performance statistics.
Confidential- Jan 2002 to Jan 2006
Description: MERI was Motorola's reference implementation for a Java Runtime Environment (JRE) for hand-held devices based on Sun' proprietary KVM. A J2ME specification based platform, MERI was developed on the CLDC and MIDP platform requirements outlined by the Java Development Community.
Environment: Java, C++, C, Shell Scripts, ARMulator, TCK, Linux, MS Windows, Clearcase, DDTS.
Responsibilities:
- Involved in building the JRE comprising the JVM, the APIs and the Java application tier for the hand-held device family. Responsibilities included evaluating and fulfilling the requirements for J2ME, CLDC and MIDP platforms.
- Developed the user-interface for displaying the Java applications supported by the JRE.
- Performance Analysis: Ported MERI to ARM's instruction set simulator, the ARMulator. This platform was used to simulate and benchmark the performance of different processor families and applications.
- Worked with and enhanced "TCK", the compliance verification platform to ensure that the various JRE subsystems conformed to the CLDC and MIDP specifications.
- Stress-Test: Defined and verified the behavior of supported applications in different scenarios of usage of the device.
Confidential- Sept 1998 to Jan 2002
Description: Motorola's implementation of an advanced set-top box platform that provided convergent voice, video and data services over a DSL interface. A pJava enabled entertainment device, Streamaster targeted network service providers to offer digital television broadcast, high-speed Java enabled web access, 2D and 3D games, video and music on demand, Java applications etc.
Environment: Java, C, MS Windows, OS9000, CVS, Shell Scripts, DDTS.
Responsibilities:
- Technical Lead for the Streamaster Applications team. Responsibilities included interacting with 3rd party customers, overseeing and developing the team roadmap, monitoring team schedules, mentoring team members etc.
- Involved in building the Java Runtime Environment (JRE) comprising the JVM, the APIs, and the Java application tier for the platform.
- Developed the JavaTV API for providing access to the service and broadcast information, content selection and filtering, and making the broadcast programs more user-interactive. Also developed 2 applications - an Electronic Program Guide (EPG) and a mini-EPG on the JavaTV API.
- Developed the Java Media Framework (JMF) API for incorporating time-based audio and video into Java applications. Also developed a Java media player for MPEG video playback.
- Developed user-interfaces for displaying content available as part of Streamaster's video-on-demand, music-on-demand and games libraries.
- Represented Motorola at the DASE and DVB consortia.
Confidential
Masters Thesis Project - July 1997 to Aug 1998
Description: "Extensible Virtual Machine (EVM)" was the basic framework for a virtual machine to emulate the JVM. Implemented in Linux/C++ environment, it supported its own instruction set and enabled platform-independent and language-independent application support.
Environment: C++, Linux, Java, Shell-scripts
Confidential- June 1997 to May 31 1998
Description: An in-house intranet utility for managing health-care information for customers.
Responsibilities: Created and maintained front-end forms for information gathering for Corporate Compass, performance benchmarking etc.
Confidential
Software & Technologies - June 1995 to July 1996
Description: An interface between Viewlogic's software simulation environment and Zycad's hardware accelerator platform environment. "Viewlogic Interface to Zycad (VIZ)" translated Viewlogic's commands and memory formats to Zycad's proprietary format.
Environment: C, Solaris, Shell-scripts, gdb, CMS, DDTS, purify, purecov, lex, yacc.
Responsibilities: Involved in the design, development and maintenance of VIZ as a tool.
Education
M.S. (Computer Science)
B. Tech (Computer Engineering)