Sei sulla pagina 1di 5

Cokorda Raka Angga Jananuraga's Core Competencies

Atlixco 105-302
Col. Condesa, Del. Cuauhtémoc, México, D.F.
55-3663-2011 (mobile) & 55-5212-1582 (home)
raka.angga@gmail.com
http://jananuraga.blogspot.com
http://tinyurl.com/resumeraka

Analytical Thinker
I consider myself an analytical thinker and always try to get to the core of the problems. I
consider it is more effective and less costly (in the long run) if we fix the root of the problem,
instead of trying to deal only with its symptoms. I'm fully aware that my career choice
demands analytical thinking, therefore I consciously try to hone that particular skill / trait
every step of the way.
I have always been curious about how to design and implement software such that it is
structurally and logically sounds. I found it more satisfying if I also have firm grasp on the
context and the use of the software I'm developing. This led me to getting myself familiar
with concepts such as domain-driven design. I am convinced that neglecting the aspect of
“making the design communicable” leads to a software that has a poor abstraction and
disconnected from the reality it is supposed to model.
Working for Microsoft in Shanghai during 2007 convinces me even more of the importance of
analytical thinking. The task designing, implementing, executing test-cases, and analyzing
problems for the software developed by Microsoft demands that one investigates various
aspects of the software in detail, from the ways it is supposed to be used, the ways it can be
misused, its design, etc., all to identify ways to break it.
I found software testing work fascinating, and I believe the drill of the work made me see the
framework for analytical thinking. Designing test plan and test cases for software requires
structured thinking, in order to increase the probability that the tests cover as much area as
possible in the software, in less time.
This has been very useful in my later career, including the current one where there's a strong
emphasis on safety, thus risk analysis is formalized in the process.

Solution-oriented Creativity
I read it somewhere, years ago, that “good programmers are lazy programmers” (but not the
other way around). I take that “philosophy” to the heart. What I understand from the
expression is that good programmers tend to look for ways to get more jobs done faster, with
less or diminishing effort (that's the laziness). Consequently, good programmers have to be
creative; a solution-oriented, practical, creativity.

One of the occasions I put that principle into practice is when I was working in an
implementation of rating & billing project in Nextel Mexico, where I had to examine a large
set of data in the rating & billing system, in order to detect problem / potential problem.
Many of the issues had to do with inconsistency in the database. The challenge: the database
contains hundreds of tables. At first I did the checking manually. However, as soon as I have
identified the pattern, it occurred to me that significant part of the task can be done more
efficiently with a program. So I wrote the tool (later published in http://tinyurl.com/rakadb),
which is basically a tool that lets one to define a subset of inter-related tables from which the
data will have to be extracted (for further analysis).

As another example, during the project in Baktun where, in order to be able to build
simulators for doing some tests, we had to understand the communication mechanism
between elements of a proprietary web-conference system that belongs to the client
(InterCall). I decompiled the relevant parts of the system, identified the places in the code
where data is sent / received from the network, print out the data, and tabulate them in a
spreadsheet document where the action of application users is mapped with the data. Based
on that document, and additional analysis, we successfully built the simulators.

On top of that, I developed a tool that allows us to automatize some scenarios involving
communication between the simulator and some server-side components of the web-
conference system. The tool helped us reduce dependency to experienced programmers for
writing test-scenarios in a format that can be executed directly by computers. The tool is
later published in http://tinyurl.com/rakatest .

In my current work I had to make a high-resolution web-camera from Microsoft to work on a


platform (operating system) for which the camera was not specifically designed. Therefore
there was a problem to get the camera working for that platform. In theory, however, the
camera is supposed to work on that platform. It's just that Microsoft didn't make it
particularly easy to do so. After goggling for a couple of days, I managed to get the camera
working, using some techniques that I'm sharing here: http://tinyurl.com/rakawinembed

Finally, also in my current work, we have to devise a new design for the software of a
medical-device that was written several years ago by another team of programmers, without
any trace of documentation. We have to reverse engineer the software, to begin with. That, I
think, involves some creativity and analytical thinking that manifest especially in the way we
effectively debug the software and walk through the source code. Through proper and
efficient debugging, we can see how the state of the application changes based on certain
input or condition. We then make some educated guesses, and confirms in one way or
another before reaching a conclusion.

Focused on Business Objectives & Commitment to Deliverables


I am very goal oriented and always strive not to miss the commitments I made on the
deliverables. I learned that when the business objectives and my own (professional and
personal wise) are in tune, I found myself generating more energy for the accomplishment of
the work objectives. That, I think, has to do with time.
I'm comfortable with the working environment where I can have a certain level of flexibility
over the way I manage my time, all the way throughout the accomplishment of the
objectives. I learned through my experience that in the right work environment, conflicts (if
any) between work time and personal time can be minimized. Ideas flow through more easily.
That by itself is very gratifying to me.
I enjoy investing my time learning about and engaging the clients, and the market in general
(the trends, the consumer behaviors / preferences, the technological advances, etc.), because
I always consider them important sources of inspirations. The joy comes from making the
connections between their problems, their needs, and the resources we have or we can come
up with to solve those problems and needs. It helps me not to lose sight over the real
purpose of what I'm doing as a professional.
The results of those observations and engagement can be manifested in various forms from
any materials to assist pre-sales activities (e.g.: high-level technical presentations, demo kit,
etc.), to providing consultations for clients or potential clients.
Finally, I like working in a team as well as individually. I always believe it's not one way or the
other. Rather, it is a good mix between the two modes of working. At the end of the day, it is
about creating the right environment where each team member are be able to empower
himself or herself to steadily generate inspiring and constructive ideas / points, and to share
those inspirations efficiently and effectively using all means of communication we have.

Effective Communicator & Trainer


Throughout my career, I have always considered myself an information specialist. I gather
vast amount of information quickly, consolidate them, and transform it into something that
can serve as an effective tool in accomplishing objectives or tasks at hand.

I go extra miles to make sure what I present can be easily understood and engage my peers
or the target audiences. I understand the value of context, structure, and presentation in
communicating technical information. This has been proven in various publications /
presentations I have made.

1. In my current work I have written tutorials for some technologies used for software
development in the company. I am also responsible for defining the technological &
education roadmap for the software-development department of the company.

2. Introduction to Java Programming (2000): this was the first book published in
Indonesia on Java programming that was not a direct translation from foreign books in
English. I believe the book has been a door-opener for my career, which started in
Indonesia; it gave me national recognition in the IT circle, and it was gratifying to find out
my book has been used by my colleagues and younger programmers.

3. The courses I gave (as paid trainer) on Java programming during my university
years, following the publication of the book (2000 to 2003).

4. A booklet I published for free on the internet in 2006, consolidating the


knowledge I have gathered up to that point on Voice Over-IP technologies, PBX, SIP, and
specifically Asterisk programming, teaching readers how to develop telephony applications
using Asterisk. I was surprised to find out how people around the world have benefited
from the publication: helping a young programmer in Africa getting in touch with
telephony application development, helping a VoIP company in Portugal preparing their
candidates, helping a professor in Greece for his classes, and so on. The following
comment was received from my tutor on technical-writing course I took when I was
visiting Microsoft HQ in Redmond in 2007:

5. Video series I wrote in 2008, consolidating the knowledge and skill I acquired up
to that point in development of IP Multimedia Subsystem using VoIP protocol named
Session Initiation Protocol (SIP). This video series also have received great response from
audience around the world, as can be observed on the blog where I published it :
http://tinyurl.com/rakaims

Potrebbero piacerti anche