Saturday, February 2, 2013

An Open Letter To Recruiters


Thank you for your interest in me, but let's get a few things straight.

You came to me.

I already have a job at an interesting company with a vision in which I believe. You are trying to lure me away to some other company. I have no reason to care about your company, nor to spend my precious time accommodating you or them. It is your job, and by extension, the task of anyone with whom you have me interviewing to court me, to convince me that the job, the company, and the people are compelling, that they offer an experience not to be missed. You will have to sell it, and you will have to do so honestly, as anything less than honesty simply won't ring true anyway. Don't take my consent to interview as an indication that I'm sold, but rather as an indication that I'm willing to hear you out, as long as you don't piss me off, offend me, bore me, or otherwise give me reason to stop listening; this goes especially for the interviewers.

To your clients, employers, or whatever relationship you bear to the people for whom you are recruiting:

I'm a generalist. I do not claim to be an expert at anything. I'm not interested in being a specialist. I'm not interested in titles, status symbols, or vanity-feeding crap like being referred to as a rock star.

I will not brush up on anything before interviewing with you. What is relevant to my life and/or job, I learn (or recollect) and memorize quite naturally and effortlessly; the rest I can look up, if I need it. You haven't paid me anything, nor have we established any relationship of mutual respect and reciprocity, so don't expect me to put in effort on your behalf for things that are of little person interest to me. You're still supposed to be trying to convince me that I want to work for you, remember? You can ask me questions about technologies and so forth, but you should be prepared for and satisfied with 'I don't know' or 'I don't remember'. If I feel negativity from you about these answers, I will walk out, and will give your organization no further consideration. If you decide to hire me, and I decide to accept, only then will I begin learning or brushing up on specific topics for your purposes.

I will not whiteboard solutions with you. This is not a natural form of coding. If you want to find out how I solve problems, give me code challenges to work on during my own time (and count yourself lucky that I'll spend my own time bothering with them). If that's not good enough for you, don't waste my time and yours bringing me in for an interview (or, for that matter, in any preliminary activities like phone screening).

I am not interested in working anywhere for under-market compensation. I can live with less, but if I do, I'm dragging down other people's earning potential. Offering appropriate compensation is a sign of respect. Don't ask me what I make now, or what I made at previous jobs. It's none of your business, and has no bearing on what you should be offering for the job. You tell me what you're offering, and I'll tell you whether or not I'm interested.

If you don't like any of this, go your own way and stop wasting my time.

Sunday, October 9, 2011

Why I Am An Anarchist

This post is meant to address any confusion people may have about my political and economic viewpoints, lest they inaccurately classify me as socialist, communist, or other such beast due to my support for movements like Occupy Wall Street (even though said movement has nothing to do with socialism or communism, but only with ensuring a fair, representative government that doesn't marginalize 99% of its citizens).

I'm going to touch on the major political and economic schemas and address the problems I see in each.

Oligarchy and Plutocracy

I'm not separating these two out, as they seem to go hand-in-hand (most oligarchies seem to end up as plutocracies, assuming they didn't start that way).

The problems with oligarchy and plutocracy should be self-evident to anyone not in such a ruling class, and are essentially identical (most oligarchies seem to be plutocracies in actuality).  The glaring problem, obviously, is that most get no voice at all, and a few get almost unlimited voice; it adds insult to injury when the only qualifying factor for those with a voice is the amount of resources they or their family have managed to horde.  It should be obvious to anyone who knows me at all that I don't support "governance" of this type.

Capitalism


The problem with capitalism is that it promotes the very opposite of charity, of caring about one's fellow man.  It's truly ironic and disturbing how many people who identify themselves as Christians also strongly promote capitalism, as Jesus' teachings were completely at odds with its basic principles (he was really more of a communist).  Capitalism isn't a form of government, but rather an economic policy.  Perhaps it would work acceptably without abstractions like markets (e.g. stock markets, where nothing tangible is exchanged, not places to purchase actual goods/services, whether physical or virtual) and money; however, these abstractions ultimately allow amoral sociopaths to do things like completely wreck the economy (thanks so much for that, Wall Street et al).  I don't even like money (it too easily becomes an end rather than a means to an end, and disconnects one from the actual means of one's living), so I'm not a fan of capitalism in general.

Communism

The problem with communism is that it places excessive trust in one's peers, a trust that isn't viable beyond a certain population level.  It works in kibbutzes, but cannot be extended to a national level.  It works as an economic philosophy at a small scale, but not as a political framework; it degenerates into oppressive oligarchies or autarchies as we've seen historically in eastern Europe and to this day in China and N. Korea.  Within a small community, communism can work (this has been deomonstrated in the aforementioned kibbutzes), but I can't condone trying to apply it to a larger population as it only works when everyone participates fully.

Socialism

The problem with socialism is excessive faith and trust in the State.  Sometimes it works reasonably well (e.g. Scandanavia), though it tends to do so in small, culturally-homogenous nations.  Other times it degenerates into oppressive manifestations; remember, the Nazis were self-labeled socialists.  The embedded notion of resource sharing appeals to me, but the excessive State and the implications of marginalization for those who disagree with it ruin it for me.

Democracy

Democracy, when practiced in good faith (note: the US does not practice it in good faith), gives a voice to all.  The problem is that it still ends up with one (possibly only marginally) larger group of people forcing decisions on one or more smaller groups of people (who collectively may represent a majority themselves).  In the US there is also the problem of lack of informed voters (often misinformed voters, misguided by various propagandas from every side, and lulled into laziness by sensory overload), which often ends in what amounts to messy, lowest-common-denominator, group-think/mob-rule solutions with which almost nobody is actually happy.  While perhaps better than the other alternatives above, it still leaves a lot to be desired, and still, even in the best of situations, leaves many at the mercy of the most common opinion without regard to whether that opinion is just.

Parting Thoughts

Regardless of the face it takes, the State, that grand but flawed theory that acceptable consent can be found amongst very large groups of people, always ends up doing disservice to significant portions of those whom it claims to represent and serve.

I am an anarchist.  This does not mean I favor violence and chaos, but rather decentralized, non-hierarchical, community-based decision processes founded on informed consent and respect for individual sovereignty and community autonomy.  Like communism, it requires all members to work together in good faith in order for progress to happen (and some interesting ideas have been fielded about community-driven, rather than State-driven, mechanisms to ensure such participation).

We are one world, one people, and always were; it's just become more obvious now that it's harder to ignore each other.  If we do not soon learn to work together (in whatever form or framework) without marginalizing each other, we will surely tear ourselves and our world apart.

Monday, May 17, 2010

High availability

Every business owner seems to wants high availability for their website, even if it isn't ultimately important for their business, but no business owner wants to spend more money for it than they have to. However, it doesn't come for free, or even cheap. "There's no such thing as a free lunch", as my high school physics teacher used to say, (likely quoting/paraphrasing from The Moon is a Harsh Mistress).

Where I've seen it work, it was founded on redundancy. Single points of failure are poison. At the least, the redundancy must include:

  • Data redundancy: proper backups, replication, etc exist, as well as a clear, well-tested procedure for recovery; if done right, it would take an extraordinary catastrophe to set the business back more than one day worth of important data; if really done right (e.g. geo-redundant backups), even extraordinary catastrophe might be guarded against to some degree.
  • Machine/services redundancy: at a minimum, HA hosts must be placed in fail-over pairs. There are additional advantages to this. For instance, fail-over paired machines are also typically used for load-balancing. Also, if one of the pair goes down, you have live data that can be directly copied to it for recovery, avoiding having to dig out backups or risk losing any important data
  • Support redundancy: A team of Ops support people (e.g. systems administrators) with over-lapping skills and cross-training, and who participate in an on-call rotation. In my experience, 4 is the minimum team size to avoid fast burnout.
Lastly, remember that sometimes shit just happens. The world is full of uncertainty, and we can only do our best to mitigate it.

Tuesday, April 27, 2010

Oh, Base64 MIME, why did you do it wrong?

Base64 MIME encoding, used in email, some URLs, and probably other contexts I'm forgetting, uses a mapping that is unintuitive and inconsistent with hexadecimal.

Hexadecimal places the digits (0-9) at the front of the symbol range used, causing their numeric value to be exactly what one would expect; user-friendly and intuitive. For reasons unclear, the Base64 MIME spec places them near the end, giving them unintuitive values of 52 through 61. This makes it fundamentally not an extension of the approach used in hexadecimal, upon which it is easy to build by simply adding letters. For instance, if we add G the normal hexadecimal range of 0-F we can represent base 17, and by the same principle we can represent any base for which we have at sufficient characters available to represent it. And so, base 64 could have been 0-9A-Za-z+/= rather than A-Za-z0-9+/= as it is.

In case you're wondering why I care about this, some time ago I wrote (in Perl) a numeric base conversion application, and I was able to construct the appropriate base mapping automatically by building up using the same approach embodied by hexadecimal. Base64 MIME, however, effectively scrambles this mapping for apparently no good reason.

I like the encoding approach of Base64 MIME (4 6-bit bytes <==> 3 8-bit bytes), but the choice of mapping was arrived at with little consideration for its precursors or normal human expectations (yes, I realize it was written largely for the benefit of machines).

See Base64 for an explanation of the actual spec.

Tuesday, March 16, 2010

A Stream of Identities

"Semiotic individuation continues all through life, and the experience that many elderly persons have of being, in some strange sense, another person now than they were in their younger days is not wholly unfounded. We must reject the popular idea of identity as being connected to a particular biological entity or body, and learn to see identity rather as a temporary nodal point along a process that each of us is ceaselessly engaged in -- a process of identity formation and change that does not end until death. It is, in other words, not in the heritable endowment of genetic singularity that identity is to be found, but rather in the lifelong attempt to adjust our personal development to our own unique needs and experiences -- often in spite of the genetically caused defects we might have to overcome."
-- Jesper Hoffmeyer from Biosemiotics: An Examination into the Life of Signs and the Signs of Life (2009, Scranton University Press)

I'm not the man I used to be, and I never will be again. This is not to disparage any earlier form of me (though I do like to think this one is the smartest one); each one did more-or-less the best he could with what he knew and had (and each one, including the current one, had his flaws and short-comings). My thoughts, beliefs, and general outlook on life has over the years gone through some radical changes. I'm not the same person I was a mere 5 years ago, let alone the person I was in high school, or grade school.

Evolution, strictly speaking, applies to biological communities, species or genomes (or cell line descendancies). But the principle behind it, namely adaptation, applies more broadly, and its application to our own behaviors, beliefs, and learning is imperative for a holistically healthy life (as mental/psychological, emotional, and physical health are inextricably interwoven and interdependent). The inescapable fate of those who fail to meaningfully adapt is obsolescence.

The "me" you witness today is not, in whole or part, an essential construct, some Platonic whole that piggy-backs through time attached to this particular body, witnessing the events of my life without being affected by them. My soul, if any such thing exists, must evolve as surely as the rest of me does. It is not some fixed point in (or perhaps outside of) time and space, but rather an eddy in the stream of events that make up my life, prone to moving, changing, being temporarily or permanently disrupted, and eventually disappearing altogether or ceasing to be recognizable. It is no more the "true" me than is my body.

Even those familiar entities and places upon which we hang myriad meanings and conceptual contingencies can change in this manner. A few nights ago, I was thinking about my grandmother's house, and the fond memories I had of spending summers there. Her house was sold after her death. I have since learned that at some relatively recent point in the past it was occupied by people who let it fall into disrepair. It may well be that it is now in better hands, but it hit me that night that the place I knew simply doesn't exist anymore. The house, the physical address, is doubtless still there, but the home it signifies is just as doubtless foreign to me now. Most likely it was different even before that episode, shortly after it was sold. While the outside probably still contains some power to evoke nostalgia in me, it is doubtful that the inside ever would again to any substantial degree. The ghosts of meaning significant to me have been exorcised, detached from the house and now tethered only to my memories.

Sometimes adaptation is difficult, even painful. Sometimes it means letting go of people or places that have been dear to us, or accepting them in a new form that may be foreign, difficult to understand, or even objectionable to us. It is no less necessary for its difficulty, and we must afford to others the same latitude to adapt as life demands of us.