My 'bias to action' leads me to prefer and succeed with fast-paced
projects. I have a fairly high risk/repair tolerance; I expect the best efforts from talented
people but stay cheerful when we have to adapt
My communications style is very open - I keep my boss and colleagues unsurprised. For reporting,
although I 'grew up' in a rather formal
company, I have come to admire the crisp
One Page approach
My fundamental style is to respect the company, believe I succeed when the company succeeds ...
so, no power games and no hurt feelings
... as a group leader
Try to be a person
that great engineers will want to work around; embody the values and vision the team needs,
and keep the vision crisply focused by frequently realigning to the business goals and context.
the team to be self-directing in design and implementation, by delegating
real influence on the product and authority over implementation. Ensure we measure and internally report
on progress, failure, and quality. Stay cross-trained and
team-integrated by mixing up the mini-teams and the work areas, getting everyone to
reach a bit outside the comfort zone.
Review, discuss, arbitrate, and "break ties" - but seldom override.
Applaud momentum and delivery.
... as an engineer
My in-team style is to be the technical generalist - I hope to be the "second smartest
guy" in the room on a lot of technical topics! I enjoy thrashing out requirements
and solutions at the whiteboard.
As a designer/architect I lean towards
Domain Driven Design, with
heavily modularized and asynchronous implementations.
When it comes to the coding I generally prefer to work alone then do reviews and integrations.
I have a tendency towards
object-oriented paradigms, usually in the Java ecosystem, but I use other languages and models when
they are a better fit to the problem or the context.
Recruit and inspire a tech team (done it for big companies, and multiple startups)
Guide a team to deal with multiple forces (user needs/wants,
cost of development and ownership, company culture goals, etc)
Coach/mentor and do structured teaching
Maintain situational awareness of leading software trends,
technologies, and tools
Organize/improve development process
Manage technical development (either as direct manager or
using inter-team influence)
Drive a product architecture (define, evangelize, track,
Write specs for business/technical applications and services
(research, negotiate and capture requirements)
Program at journeyman-level
Set up and execute software/systems quality evaluations
(usually for middleware, with TCO/LCC emphasis)
This jargony wall of text
is mainly to make search engines happy.
Main Exposure: distributed
applications design (partitioning behaviour and data, queueing,
reliability monitor, etc); OO and component-based design,
requirements engineering, software development metrics, software
structural review, code review
skills in bash, git, svn, HTML, Java technologies, Groovy/Grails, XML family,
RDF, UML and some similar notations, C, generalized security, DB concepts
(relational and OO), functional/structured design, mainstream user
interaction design and evolution, effort estimation, and
lightweight software development processes (e.g., SCRUM).
(rusty) skills in other computer languages (assembly,
C++, awk, perl, ...); non-procedural paradigms (FP, Prolog, SQL);
OS-specific programming (Window/Linux/, device drivers); signal
processing; information warfare; embedded programming/debugging
Now Studying: mobile
application and UI/UX design (Android), HTML5/CSS3 and more