Mikhail Alexandrovitch DMITRIEV
Sun Microsystems Laboratories, UMTV29-112, 2600 Casey Avenue, Mountain View, CA 94043
Phone: 1-650-***-****
E-mail: *******.********@***.***.***
EDUCATION:
Ph.D. in Computer Science, University of Glasgow, UK, 2001
Diploma in Computer Science, University of Cambridge, UK, 1997
M.Sc. in Applied Mechanics, Moscow State Technical University, Russia, 1996
EXPERIENCE:
Research and development in compilers, persistent object systems, virtual machines (VMs),
application profiling, and software tools since 1990. Started working on these as a part
of my M.Sc. and Ph.D. studies, presently work as an engineer in industry.SKILLS:
Design and implementation of evolution facilities and runtime systems in persistent
object systems and VMs.
Design and implementation of software tools for dependency checking, off-line and runtime
evolution, and profiling.
Documenting and presenting designs, benchmarking.
SOFTWARE:
Java: development of various software tools at Sun Microsystems and the University of
Glasgow.
C/C++: development of VM runtime systems (University of Glasgow and Sun Microsystems),
compilers (University of Cambridge), and software tools (GAZPROM Corp, Moscow).
80x86 Assembler: development of compilers (Moscow Technical University and University of
Cambridge) and VM runtime systems (Sun Microsystems).
SPARC Assembler: development of VM runtime systems (Sun Microsystems).
Pascal: development of compilers, runtime systems, and software tools (Moscow Technical
University).
TOOLS:
JDK, CVS, Teamware, Sun Workshop, Forte for Java, and JBuilder at Sun Microsystems and
University of Glasgow.
Visual C++ and OptimizeIt at Sun Microsystems.
GNU C++ at University of Cambridge.
Borland C++ and Borland Debugger at the University of Cambridge and GAZPROM.
Borland Pascal and Borland Debugger at Moscow Technical University.
HARDWARE:
Sun SPARC 4, 10, 20, 1000, 4000, ULTRA 1, Sun 3/60.
PCs XT, AT, Pentium.
OSs:
Solaris, SunOS, Windows, DOS.WORK EXPERIENCE
COMPANY:
Sun Microsystems Laboratories, Inc.
Title:
Member of Technical Staff4, Software
From: 01/2002
To: present
Job description:
Research, study, design and implementation of new techniques for dynamic bytecode
instrumentation, profiling and monitoring for the Java platform. Design and implementation
of the Make and Dependency Checking tool for the Java Programming Language (Javamake),
evaluation of user feedback. Reading technical reports and papers, design and
implementation of complex algorithms, data gathering and analysis, presentation of results
in seminars and papers/reports, consulting engineers in production divisions.
Completed the initial version of the dynamic bytecode instrumentation functionality in
the HotSpot Java Virtual Machine (JVM), and started working on the JFluid project
(advanced profiling techniques and tools taking advantage of dynamic bytecode
instrumentation).
Successfully completed numerous intermediate releases of Javamake, fixing bugs and adding
new features upon user requests. By this time, there have been over 2000 downloads, and
over 300 e-mails from users have been received.
Filed 4 patent applications.
Published 2 workshop and 1 conference papers.
Together with two academic researchers, organized and served on the Program committee of
the First Workshop on Unanticipated Software Evolution (USE), held at the 16th European
Conference on Object-Oriented Programming (ECOOP 2002), that attracted over 50
participants from many countries.
Reviewed research papers submitted for ECOOP 2002 conference.
Member of the Program committee of the Second USE Workshop.
Title:
Member of Technical Staff 3, Software
From: 06/2001
To: 01/2002
Job description:
Research, study, design and implementation of new techniques for program evolution and
debugging for the Java programming language. Reading technical reports and papers, design
and implementation of complex algorithms, data gathering and analysis, presentation of
results in seminars and papers/reports.
Started working on the initial version of the functionality to support dynamic bytecode
instrumentation at run time in the HotSpot Java Virtual Machine (JVM), to be used for
profiling and other kinds of application introspection activities.
Designed and developed the experimental GUI tool to support runtime application
evolution, and posted it on the Web.
Initiated the Javamake (Make and Dependency checking technology for the Java programming
language) project, implemented the first version of the Javamake tool and posted it on the
Web.
Published 1 workshop paper.
Title:
Student intern 2, Software
From: 08/2000
To: 06/2001
Job description:
Research, study, design and implementation of new techniques for runtime program
evolution and debugging for the Java programming language. Collaborating with the Sun
Microsystems HotSpot Java Virtual Machine (JVM) production group. Writing technical
docummentation.
Have implemented reflective runtime class redefinition (evolution) functionality in the
HotSpot JVM (subsequently included in the JDK Version 1.4), that is used during debugger-
controlled program execution.
Developed the experimental prototype that supported runtime updates to server-type
applications running in production mode.
Title:
Student intern 1, Software
From: 08/1999
To: 11/1999
Job description:
Research, design and implementation of new techniques for class and data evolution in
persistent object systems.
Ported the (previously developed as a part of my PhD research) class and data evolution
technology and tool for the Persistent Java Platform, to the new major release based on
the Java 2 SDK 1.3.
Published 1 workshop paper.
COMPANY:
GAZPROM Corp., Moscow, Russia - R&D Division
Title:
Programmer
From: 01/1996
To: 08/1996
Job description:
Design and implementation of software for data acquisition, processing and
representation, used in natural gas transportation control systems and portable
measurement devices.
Have implemented the user interface class library, and signal data processing/
visualization embedded software for a specialized portable computer (vibroanalyzer) in
C++/80x86 assembler.
COMPANY:
Department of Applied Mechanics, Moscow State Technical University, Russia
Title:
Part-timeResearch Associate
From: 02/1992
To: 12/1995
Job description:
Scientific research in dynamics of mechanical systems described by nonlinear systems of
ordinary differential equations (ODEs) with retarded argument and other specific
properties. Application of the research results to certain technological problems in
industry. Application programming.
Have developed the scientific/educational software package ("Delta" project) for studying
the above specific systems of ODEs. That included the design of a novel native ODE
description language, development and integration of a 80x86/87-code compiler for this
language, a solver supporting numerous numerical methods, graphic tools etc., in a user-
friendly environment.
Published 1 conference paper.
COMPANY
:
Research and Design Institute of Power Machinery (NIKIET), Moscow, Russia
Title:
Part-time English-Russian translator
From: 02/1992
To: 06/1994Job description:
Translations of technical documentation from/to English.
Have translated a large amount of documents from the Code ASME (American Society of
Mechanical Engineers) describing rules of design, testing and maintenance of nuclear power
machinery.
COMPANY:
IT Department, Moscow State Technical University, Russia
Title:
Part-time Programmer
From: 10/1989
To: 01/1991
Job description:
Development of office automation software.
PUBLICATIONS
The First Experience of Class Evolution Support in PJama. Published in the Advances in
Persistent Object Systems - Proceedings of the Eighth International Workshop on Persistent
Object Systems (POS-8) and The Third International Workshop on Persistence and Java (PJAVA-
3), R.Morrison, M.J.Jordan and M.P.Atkinson (Eds.), Morgan Kaufmann, August 30 - September
4, 1998, Tiburon, California.
With M. Atkinson. Evolutionary Data Conversion in the PJama Persistent Language. In
Proceedings of the 1st ECOOP Workshop in Object-Oriented Databases, Lisbon, Portugal,
June 1999.
With C. Hamilton and M.P. Atkinson. Providing Evolution Support for PEVM within Sphere..
Technical Report TR-1999-50, Department of Computing Science, University of Glasgow,
Glasgow G12 8QQ, UK, December 1999.
With C. Hamilton. Towards Scalable and Reliable Object Evolution for the PJama Persistent
Platform. Published in the Proceedings of the ECOOP 2000 Symposium on Objects and
Databases, in Association with the 14th European Conference on Object-Oriented
Programming,, Springer Verlag, LNCS 1944, Cannes, France, June 2000.
Class and Data Evolution Support in the PJama Persistent Platform. Technical Report TR-
2000-57, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, UK,
November 2000.
With M.P. Atkinson, C. Hamilton and T.Printezis. Scalable and Recoverable Implementation
of Object Evolution for the PJama Platform. Published in the Proceedings of the Ninth
International Workshop on Persistent Object Systems: Design, Implementation and Use (POS-
9), Springer Verlag, LNCS 2012, Lilihammer, Norway, September 2000.
Safe Class and Data Evolution in Large and Long-Lived Java Applications. PhD Thesis,
Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, and
Technical Report
TR-
2001-98, Sun Microsystems Laboratories, 2600 Casey Avenue, Mountain
View, CA 94043, USA, 2001.
Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications.
In Proceedings of the Workshop on Engineering Complex Object-Oriented Systems for
Evolution, held in Association with OOPSLA 2001 International Conference, Tampa Bay,
Florida, USA, October 14-18, 2001.
Application of the HotSwap Technology to Advanced Profiling. In Proceedings of the
Workshop on Unanticipated Software Evolution, held at ECOOP 2002 International Conference,
Malaga, Spain, June 10-14, 2002.
Language-Specific Make Technology for the Java Programming Language. In Proceedings of
the ACM OOPSLA 2002 International Conference, Seattle, USA, November 4-8, 20