|
Authored by: indyandy on Sunday, May 20 2012 @ 04:35 PM EDT |
<b>From:</b> hr-help@google.com<br>
<b>To:</b>
fadden@google.com<br>
<b>Cc:</b><br>
<b>Bc
c:</b> <br>
<b>Sent:</b> 12/11/2006 3:55
PM<br>
<br>
<b>Subject:</b> Googlee Perf
Confirmation<br>
<br>
Hi Andy
McFadden<br>
<br>
Thank you for submitting your self
assessment! We have recorded the following assessment for your 2006
Annual.<br>
<br>
Accomplishments: Please summarize your
overall performance and most significant accomplishments this
year.<br>
<br>
For the first half of the year (taken from
the mid-year review):<br>
<br>
-Taught myself
Java.<br>
<br>
-Added debugger support to JamVM (an
open-source Java virtual machine). Developed an implementation of the Java Debug
Wire Protocol (JDWP) in C. Added appropriate hooks into JamVM, which had zero
debugger support.<br>
Wrote tools to find debugger/VM interaction
problems. Partway through this I (unofficially) took ownership of JamVM, and
took responsibility for tracking down bugs that were impacting the
group.<br>
<br>
-Designed, implemented, and documented the
"asset manager", which is used for accessing read-only assets
(fonts, images, sound files, localized text) on the Android device. Wrote the
corresponding asset packaging tool
("aapt").<br>
<br>
For the second half of
the year:<br>
<br>
-Wrote the Dalvik VM from scratch. This
is a Java VM that executes Dalvik bytecodes. I wrote everything except the
garbage-collecting memory allocator (classes, objects, strings, arrays, bytecode
interpreter, threads, exceptions, JNI, JDWP, VM-dependent natives, etc.). We
will have feature parity and similar performance to JamVM by the end of
December.<br>
<br>
- Java performance work. Added
method-trace profiling to the VMs, and wrote a tool to convert it to
human-readable form. Added some memory allocation statistics. Worked with the
"Turtle Team" to improve data
gathering.<br>
<br>
- Since January 1st, I have completed 30
on-site interviews, 8 phone screens, 4 candidate lunch escorts, and the half-day
interview training class.<br>
<br>
Strengths: What do you
consider to be your top 3-5 work-related
strengths?<br>
<br>
- I own things that need owners. For the
first half of the year I owned the build system, and actively supported
it.<br>
While I usually defer to danfuzz's Java expertise, I am the de
facto owner of and "go to guy" for all of our VM technology. I
have evaluated Java technology for inclusion, and worked --of necessity, from
afar --with teammates doing due dilligence on Java technology
acquisitions.<br>
<br>
- I don't cling to things that want
to leave the nest. The build system is now owned by joeo, the asset manager by
hackbod, and pieces of the Dalvik VM are owned by dbort. I worked with the
developers during the transition.<br>
<br>
- I write good
code. It does what it's supposed to, and is well commented. (The Dalvik VM
sources have extensive descriptions of "why" as well as
"what".) I fix bugs as they come up, even if they're not
related to the feature I'm currently working on.<br>
<br>
-
I adapt to changing situations. Toward the end of 2005 and the start of 2006 we
hired multiple people with application infrastructure and system design
experience. I shifted my focus to Java VMs because we had far less coverage in
that area. I went from writing "hello, world" in Java to
booting the Android system on a VM written from scratch in less than a
year.<br>
<br>
Areas for Development: What are the major 3-5
areas that you think you can improve upon, and how do you plan to develop these
areas?<br>
<br>
- Need better familiarity with Java, in the
grand sense. For example, I still know little about various acronymed
technologies (CDC/CLDC, MIDP), and lack the ability to rattle off JSR
numbers.<br>
<br>
- Need to learn about VM optimization.
This is in both the architectural sense, e.g. what tricks can be used to speed
things up, and in the coding sense: I'm not sufficiently well-versed in assembly
language on a modern CPU to do anything but
damage.<br>
<br>
- I could take a more active role with some
of our new-hires, e.g. be a mentor.<br>
<br>
OPTIONAL-
Slotting: You may be slotted during this review to a position best matching your
performance. What position do you think you should be slotted to? Staff Software
Engineer<br>
<br>
Please provide any additional explanation
to help managers and slotting committees to best evaluate what position is most
suitable for you at this time.<br>
<br>
I am capable of
performing, and in the past have performed, at the level of a Staff Software
Engineer (level 6).<br>
<br>
My current job responsibilities
are closer to that of a Senior Software Engineer (level 5), because that's the
role that needs to be
filled.<br>
<br>
Thanks!!<br>
<br>
-Your
Friendly Perf Team<br>
[ Reply to This | Parent | # ]
|
|
|
|
|