Finding A Job, or Finding THE Job

Nearly everyone overlooks this incredibly basic question and yet nearly everyone has to face this it when thinking about their career decision making and their future. This applies to middle school students, those preparing for university, university grads and even mid-career professionals making key decisions about life goals.  Is our goal in our career and career preparation to land a job, meaning any job more or less (at least within our field); or is our goal to get to push our careers higher and higher looking for “the” job, the one that pays great, satisfies us, challenges us and fulfills us?  Everyone has to answer this question and nearly everyone does, even if they fail to admit it to themselves or anyone else.

Our answer to this question plays a part in effectively every decision that we make around our careers, and by extension in our lives. It affects what careers we choose to pursue, how we pursue them, what education we get, when we get it, which job offers we accept, to which jobs we submit our resume, when we start hunting for the next promotion or change, lateral shift or external opportunity, when we relocate, when we buy a home, if we take a consulting position or standard employment, what certificates we get, what books we read, what communities we participate in, when or if we decide to get married, when or if we decide to have children and how we interact with our colleagues among many, many other things.  And yet, with all of these things not just being influenced by this decision, but often being almost solely governed by it, few people really sit down and take the time to evaluate their personal career goals to determine how the decisions that they make and planning that they do will determine what kind of jobs they are likely to be able to pursue.  One of the most critical and defining choices of our lives is often given little thought and is treated as being practically a casual, trivial background decision.

People rarely want to talk about questions like this because the harsh reality is that most people, in fact nearly all people, cannot realistically achieve “the” job.  Their dream job or a top career position is likely out of their reach – at least while trying to maintain any kind of work/life balance, have a family, rear children or whatever.  No one wants to admit that they are the “majority” and are really just looking for “a” job and even fewer want to look at them and point out that this is the case for them.  But it is something that we should do (for ourselves, not pointing at others.)  We have to determine what matters for us, where our own priorities lie.

To our ears, going after any old job sounds horrible while seeking the pinnacle of the field sounds like a perfect goal, a natural one.  This is, to some non-trivial degree, an extension of that problem that we have all been talking about for a generation – the need for the glorification of the trivial, rewarding everyone as if average life events are something special (like having graduation parties for people moving from second to third grade, or awards for attendance because “just showing up” is worth an award?)

Life is not that simple, though, for several reasons.  First is statistics.  Realistically amazing jobs only make up something like .1% of all available jobs in the world.  That means that 99.9% of all workers have to go after less than apex jobs.  Even if we broaden the scope to say that “great” jobs represent just 2% of available jobs and 98% of people have to go after more mundane jobs, we still have the same situation: the chances that you are in the .1 – 2% is quite low.  Almost certainly, statistically speaking, you are in the 98%.  The numbers are not as terribly bad as they may seem because awesome jobs are not necessarily apex jobs, that is just one possibility.  The perfect job for you might be based on location, flexibility, benefit to humanity, ability to do rewarding work or compensation.  There are many possible factors, the idea of “the” job is not that it is purely about title or salary, but those are reasonable aspects to consider.

The second part is the other prices that need to be paid.  Attempting to go after “the” job generally relies on a lot of things such as being a good self starter, thinking outside of the box (career-wise), relocating, working longer hours, studying more, challenging others, self promotion, putting in long hours away from the office to improve faster than others, starting your career sooner, being more aggressive, etc.  None of these factors are strictly required, but commonly these and many others will play an important role.  Going after the dream job or apex role means taking more risks, pushing harder and setting ourselves apart.  It requires, on average, far more work and has a much less defined path from start to finish making it scarier, ambiguous and more risky.  High school guidance counselors cannot tell you how to get from point A to point B when talking about “the” job; they lack the knowledge, exposure and resources to help you with that.  When going after “the” job you are almost certainly forging your own path.  Everyone is unique and everyone’s perfect job is unique and often no one knows what that perfect job is exactly until they arrive at it, often after many years of hard work and seeking it.

These two mindsets change everything that we do.  One: we design our careers around optimum performance while accepting high chance of failure.  And two: we design our careers around risk mitigation and we hedge our bets sacrificing the potential for big payoffs (salary, position, benefits, whatever) in exchange for a more well defined job and career path with better stability and less chance of finding ourselves floundering or worse, out of work completely and maybe even unemployable.

If you spend a lot of time talking to people about their career goals you will often see these two mindsets at work, under the surface, but essentially no one will verbalize them directly.  But if you listen you can hear them being mulled about from time to time.  People will talk about priorities such as being able to live in the same house, town or region and their willingness to give up career options in exchange for this.  This is an important life decision, and a common one, where most people will choose to control where they live over where and how they work.  Another place you hear in the undertone of conversation is when people are contemplating their next career move – do they focus on the potential for opportunity or do they focus on the risks caused by instability and the unknown?

A major area in which these kinds of thoughts are often expressed, in one way or another, is around education and certification.  In IT especially we see people often approach their educational choices from a position of risk mitigation, rather than seized opportunity.  Very few people look to their education as “the path to this one, specific dream position” but instead generally speak about their education’s “ability to get them more interviews and job offers at more companies.”  It’s about a volume of offers, which is all about risk mitigation, rather than about getting the one offer that really matters to them.  Each person only needs one job, or at least one job at a time, so increasing the volume of potential jobs is not, realistically, a chance for greater achievement but rather simply a means of decreasing the risk around job loss and unemployment.

This is especially true when people discuss the necessity of certain educational factors for certain types of low paying, more entry level jobs – even people focusing on getting “a” job may often be shocked how often people target rather significant education levels for the express purpose of getting very low paying, low mobility, low reward jobs, but ones that are perceived as being more stable (often those in the public sector.)  This is mirrored in many certification processes.  Certifications are an extension of education in this way and many people go after common certifications, often in many different areas of study, in order to hedge against job loss in the future or to prepare for a change of direction at their current job or similar.  Education and certification are not generally seen as tools for success, but attempts to hedge against failure.

You may recognize this behavior expressed when people talk about creating a resume or CV designed to “get past HR filters.”  This makes total sense as a huge percentage (whether this is 5% or 80% does not matter) of jobs in the market place are gate-kept by non-technical human resources staff who may eliminate people based on their own prejudices or misunderstandings before qualified technical resources ever get a chance to evaluate the candidates.  So by targeting factors that help us to successfully pass the HR filter we get many more opportunities for a technical hiring manager to review our candidacy.

Of course, nearly everyone recognizes that an HR filtering process like this is horrific and will eliminate incredibly competent people, possibly the best people, right off of the bat.  There is no question that this is not even remotely useful for hiring the best potential employees.  And yet most everyone still attempts to get past these HR departments in the hopes of being hired by firms that have no interest, even at the most basic level, of hiring great people, but rather are looking mostly to eliminate the worst people.  Why do we do this so reliably?  Because the goal here is not to get the best possible job, but rather to have as many opportunities as possible to get, more or less, “a” job.

If we were seeking the best possible jobs we would actually be challenged in the opposite direction.  Rather than hoping to get past the HR filters, we might be more interested in being intentionally caught and removed by them.  When looking for the “perfect” career opportunity we care more about eliminated the “noise” of the interviewing process than we are in increasing the “hits”.  It is a completely different thought process.  In the “any job” case, we want as many opportunities as we can get so that we have one to take.  But in the “the job” case, we want less rewarding jobs (however this is defined for the individual) to filter themselves out of the picture as we would otherwise have them potentially wasting our time or worse, have them appear like a great opportunity that we might accidentally accept when we would not have done so had we known more about them up front.

When going after “a” job we expect people to accept jobs quickly and give them up reluctantly.  Those in the opposite position generally do exactly the opposite, giving a lot of thought and time to choosing the next career move but having little concern as to remaining at their last “stepping stone” position.

Somewhat counter-intuitively we may find that those wiling to take job offers more quickly may actually find themselves with fewer useful career opportunities in the long run.  The appearance of stability is not always what it seems and the market pressures are not always highly visible.  There are a couple of factors at play here.  One is that the path to the most common jobs is one that is well trodden and the competition for those jobs can be fierce.  So even though perhaps 90% of all jobs would be seen as falling into this category, perhaps 95% of all people are attempting to get those jobs.  The approach taken to get “a” job generally results in a lack of market differentiation for the potential worker (and for the job as well) making it difficult to stand out in a field so full of competition.

On the other hand, those that have worked hard to pursue their goals and have taken unique paths may be presented with technically fewer options, but those that they are presented with are usually far better and have a drastically smaller pool of competition vying for those positions.  This can mean that actually getting “the” job might be more likely than it would otherwise seem even to the point of being potentially easier than getting “a” job, at least through traditional means and approaches.  By taking the path less traveled, for example, the candidate working extremely hard to reach a dream position may find ways to bypass otherwise stringent job requirements, for example, or may simply leverage favorable statistical situations.

Also working in the favor of those seeking “the” job is that they tend to advance in their careers and develop powerful repertoires much more quickly.  This alone can be a major factor in mitigating the risk of going this route.  Powerful resumes, broad experience and deep skill sets will often allow them to command higher salaries and get into jobs in a variety of categories across more fields.  This flexibility from a capability and experience perspective can heavily offset the inherent risks that this path can appear to present.

At the end of the day, we have to evaluate our own needs on a personal level and determine what makes sense for us or for our families.  And this is something that everyone, even middle school students, should begin to think about and prepare for.  It requires much self reflection and a strong evaluation of our goals and priorities to determine what makes sense for us.  Because factors like high school classes and high school age interning and projects, university decisions, and more happen so early in life and are so heavily dependent on this realization of intention we can all benefit greatly by promoting this self evaluation as early on as possible.

And this information, this self evaluation, should be seen as a critical factor in any and all job and career discussions.  Understanding what matters to us individually will make our own decisions and the advice from others so much more meaningful and useful.  We so often depend on assumptions, often wrong, about whether we are looking for the chance to climb the ladder to a dream job or if we looking for a lifetime of safety and security and few, if any, are willing to outright state what factors are driving their assumptions and how those assumptions drive decisions.

How about you?  Are you looking at every career decision as “how does this get me to the best, most amazing position possible” or are you thinking “how will this put me at risk in the future?”  What are your priorities.  Are you looking for a job; or are you looking for the job.

Logical Volume Managers

A commonly used but often overlooked or misunderstood storage tool is the Logical Volume Manager.  Logical Volume Managers, or LVMs, are a storage abstraction, encapsulation and virtualization technology used to provide a level of flexibility often otherwise unavailable.

Most commonly an LVM is used to replace traditional partitioning systems, and sometimes additional functionality is rolled into an LVM such as RAID functions.  Nearly all operating systems offer an integrated LVM product today and most have for a very long time.  LVMs have become a standard feature of both server and client side storage management.

LVMs do not necessarily offer uniform features but common features often included in an LVM are logical volumes (soft partitioning), thin provisioning, flexible physical location allocation, encryption, simple RAID functionality (commonly only mirror based RAID) and snapshots.  Essentially all LVMs offer logical volumes, snapshots and flexible allocation; these being considered fundamental LVM functions.

Popular LVMs include Logical Disk Management on Windows Server 2000 through Server 2008 R2, Storage Spaces on Windows 2012 and later, LVM on Linux, BtrFS on Linux, Core Storage on Mac OSX, Solaris Volume Manager on Solaris, ZFS on Solaris and FreeBSD, Vinum Volume Manager on FreeBSD, Veritas Volume Manager for most UNIX systems, LVM on AIX and many more.  LVMs have been increasingly popular and standard since the late 1980s.  ZFS and BtrFS are interesting as they are filesystems that implement an LVM inside of the filesystem as an integrated system.

An LVM consumes block devices (drive appearances) and creates logical volumes (often referred to as LVs) which are themselves drive appearances as well.  Because of this, an LVM can sit at any of many different places in the storage stack.  Most commonly we would expect an LVM to consume a RAID array, split one RAID array into one or more logical volumes with each logical volume having a filesystem applied to it.  But it is completely possible for an LVM to sit directly on physical storage without RAID, and it is very possible for RAID to be implemented via software on top of the logical volumes rather than beneath them.  LVMs are also very useful for combining many different storage systems into one such as combining many physical devices and/or RAID arrays into a single, abstracted entity that can then be split up into logical volumes (with single volumes potentially utilizing many different underlying storage devices.)  One standard use of an LVM is to combine many SAN LUNs (potentially from a single SAN system or potentially from several different ones) into a single volume group.

While LVMs provide power and flexibility for working with multiple storage devices and types of storage devices while presenting a standard interface to higher layers in the storage stack, probably the most common usages are to provide for flexibility where rigid partitions used to be and for snapshots.  Traditional partitions are rigid and cannot be resized.  Logical volumes can almost always be grown or shrunk as needed making them tremendously more flexible.

Snapshots have become a major focus of LVM usage in the last decade, although mostly this has happened because of snapshot awareness growing rather than a recent shift in availability.  Commodity virtualization systems have brought snapshots from an underlying, storage industry knowledge component into the IT mainstream.  Much of how virtualization technologies tend to tackle storage virtualization can be thought of as being related to LVMs, but generally this is similar functionality offered in a different manner or simply passing LVM functionality on from a lower layer.

Today you can expect to find LVMs in use nearly everywhere, even implemented transparently on storage arrays (such as SAN equipment) to provide more flexible provisioning.  They are not just standardly available, but standardly implemented and have done much to improve the reliability and capability of modern storage.

Drive Appearance

One of the more common, yet more tricky fundamental concepts in computing today is the concept of drive appearance or, in other words, something that appears to be a hard drive.  This may sound simple, and mostly it is, but it can be tricky.

First, what is a hard drive.  This should be simple.  We normally mean a traditional spinning disk Winchester device such have been made for decades in standard three and a half inch as well as two and a half inch form factors.  They contain platters that spin, a drive head that moves forward and backward and they connect using something like ATA or SCSI connectors.  Most of us can pick up a hard drive with our hands and be certain that we have a hard drive.  This is what we call the physical manifestation of the drive.

To the computer, though, it does not see the casing of the drive nor the connectors.  The computer has to look through its electronics and “see” the drive digitally.  This is very, very different from how humans view the physical drive.  To the computer, a hard drive appears as an ATA, SCSI or Fibre Channel device at the most basic physical level and are generally abstracted at a higher level as a block device.  This is what we would call a logical appearance, rather than a physical one.  For our purposes here, we will think of all of these drive interfaces as being block devices.  They do differ, but only slightly and not consequentially to the discussion.  What is important is that there is a standard interface or set of closely related interfaces that are seen by the computer as being a hard drive.

Another way to think of the logical drive appearance here is that anything that looks like a hard drive to the computer is something on which the computer format with a filesystem.  Filesystems are not drives themselves, but require a drive on which to be placed.

The concept of the interface is the most important one here.  To the computer, it is “anything that implements a hard drive interface” that is truly seen as being a hard drive.  This is both a simple as well as a powerful concept.

It is because of the use of a standard interface that we were able to take flash memory, attach it to a disk controller that would present it over a standard protocol (both SATA and SAS implementations of ATA and SCSI are common for this today) and create SSDs that look and act exactly like traditional Winchester drives to the computer yet have nothing physically in common with them.  They may or may not come in a familiar physical form factor, but they definitely lack platters and a drive head.  Looking at the workings of a traditional hard drive and a modern SSD we would not guess that they share a purpose.

This concept applies to many devices.  Obviously SD cards and USB memory sticks work in the same way.  But importantly, this is how partitions on top of hard drives work.  The partitioning system uses the concept of drive impression interface on one side to be able to be applied to a device, and on the other side it presents a drive impression interface to whatever wants to use it; normally a filesystem.  This idea of something that using the drive impression interface on both sides is very important.  By doing this, we get a uniform and universal building block system for making complex storage systems!

We see this concept of “drive in; drive out” in many cases.  Probably the best know is RAID.  A RAID system takes an array of hard drives, applies one of a number of algorithms to make the drives act as a team, and then present them as a single drive impression to the next system up the “stack.”  This encapsulation is what gives RAID its power: systems further up the stack looking at a RAID array see literally a hard drive.  They do not see the array of drives, they do not know what is below the RAID.  They just see the resulting drive(s) that the RAID system present.

Because a RAID system takes an arbitrary number of drives and presents them as a standard drive we have the theoretical ability to layer RAID as many times as we want.  Of course this would be extremely impractical to do to any great degree.  But it is through this concept that nested RAID arrays are possible.   For example, if we had many physical hard drives split into pairs and each pair in a RAID 1 array.  Each of those resulting arrays gets presented as a single drive.  Each of those resulting logical drives can be combined into another RAID array, such as RAID 0.  Doing this is how RAID 10 is built.  Going further we could take a number of RAID 10 arrays, present them all to another RAID system that puts them in RAID 0 again and get RAID 100 and so forth indefinitely.

Similarly the logical volume layer uses the same kind of encapsulation as RAID to work its magic.  Logical Volume Managers, such as LVM on Linux and Dynamic Disks on Windows, sit on top of logical disks and provide a layer where you can do powerful management such as flexibly expanding devices or enabling snapshots, and then present logical disks (aka drive impression interface) to the next layer of the stack.

Because of the uniform nature of drive impressions the stack can happen in any order.  A logical volume manager can sit on top of RAID, or RAID can sit on top of a logical volume manager and of course you can skip or the other or both!

The concept of drive impressions or logical hard drives is powerful in its simplicity and allows us great potential for customizing storage systems however we need to make them.

Of course there are other uses of the logical drive concept as well.  One of the most popular and least understood is that of a SAN.  A SAN is nothing more than a device that takes one or more physical disks and presents them as logical drives (this presentation of a logical drive from a SAN is called a LUN) over the network.  This is, quite literally, all that a SAN is.  Most SANs will incorporate a RAID layer and likely a logical volume manager layer before presenting the final LUNs, or disk impressions, to the network, but that is not required to be a SAN.

This means, of course, that multiple SAN LUNs can be combined in a single RAID or controlled via a logical volume layer.  And of course it means that a SAN LUN, a physical hard drive, a RAID array, a logical volume, a partition…. can all be formatted with a filesystem as they are all different means of achieving the same result.  They all behave identically.  They all share the drive appearance interface.

To give a real world example of how you would often see all of these parts come together we will examine one of the most common “storage stacks” that you will find in the enterprise space.  Of course there are many ways to build a storage stack so do not be surprised if yours is different.  At the bottom of the stack is nearly always physical hard drives, which could include solid state drives.  This are located physically within a SAN.  Before leaving the SAN the stack will likely include the actual storage layer of the drives, then a RAID layer combining those drives into a single entity.  Then a logical volume layer to allow for features like growth and snapshots.  Then there is the physical demarcation between the SAN and the server which is presented as the LUN.  The LUN then has a logical volume manager applies to it on the server / operating system side of the demarcation point.  Then on top of that LUN is a filesystem which is our final step as the filesystem does not continue to present a drive appearance interface but a file interface, instead.

Understanding drive appearance, or logical drives, and how these allows components to interface with each other to build complex storage subsystems is a critical building block to IT understanding and is widely applicable to a large number of IT activities.

Buyers and Sellers Agents in IT

When dealing with real estate purchases, we have discrete roles defined legally as to when a real estate agent represents the seller or when they represent the buyer.  Each party gets clear documentation as to how they are being represented.  In both cases, the agent is bound by honesty and ethical limitations, but beyond that their obligations are to their represented party.

Outside of the real estate world, most of us do not deal with buyer’s agents very often.  Seller’s agents are everywhere, we just call them salespeople.  We deal with them at many stores and they are especially evident when we go to buy something large, like a car.

In business, buyer’s agents are actually pretty common and actually come in some interesting and unspoken forms.  Rarely does anyone actually talk about buyer’s agents in business terms, mostly because we are not talking about buying objects but about buying solutions, services or designs.  Identifying buyer’s and seller’s agents alone can become confusing and, often, companies may not even recognize when a transaction of this nature is taking place.

We mostly see the engagement of sellers – they are the vendors with products and services that they want us to purchase.  We can pretty readily identify the seller’s agents that are involved.  These include primarily the staff of the vendor itself and the sales people (which includes pre-sales engineering and any “technical” resource that gets compensation by means of the sale rather than being explicitly engaged and remunerated to represent your own interests) of the resellers (resellers being a blanket term for any company that is compensated for selling products, services or ideas that they themselves do not produce; this commonly includes value added resellers and stores.)  The seller’s side is easy.  Are they making money by somehow getting me to buy something?  If so… seller’s agent.

Buyer’s agents are more difficult to recognize.  So much so that it is common for businesses to forget to engage them, overlook them or confuse seller’s agents for them.  Sadly, outside of real estate, the strict codes of conduct and legal oversight do not exist and ensuring that seller’s agent is not engaged mistakenly where a buyer’s agent should be is purely up to the organization engaging said parties.

Buyer’s agents come in many forms but the most common, yet hardest to recognize, is the IT department or staff, themselves.  This may seem like a strange thought, but the IT department acts as a technical representative of the business and, because they are not the business themselves directly, an emotional stop gap that can aid in reducing the effects of marketing and sales tactics while helping to ensure that technical needs are met.  The IT team is the most important buyer’s agent in the IT supply chain and the last line of defense for companies to ensure that they are engaging well and getting the services, products and advice that they need.

Commonly  IT departments will engage consulting services to aid in decision making. The paid consulting firm is the most identifiable buyer’s agent in the process and the one that is most often skipped (or a seller’s agent is mistaken for the consultant.)  A consultant is hired by, paid by and has an ethical responsibility to represent the buyer.  Consultants have an additional air gap that helps to separate them from the emotional responses common of the business itself.  The business and its internal IT staff are easily motivated by having “cool solutions” or expensive “toys” or can be easily caused to panic through good marketing, but consultants have many advantages.

Consultants have the advantage that they are often specialists in the area in question or at least spend their time dealing with many vendors, resellers, products, ideas and customer needs.  They can more easily take a broad view of needs and bring a different type of experience to the decision table.

Consultants are not the ones who, at the end of the day, get to “own” the products, services or solutions in question and are generally judged on their ability to aid the business effectively.  Because of this they have a distinct advantage in being more emotionally distant and therefore more objective in deciding on recommendations.  The coolest, newest solutions have little effect on them while cost effectiveness and business viability do.  More importantly, consultants and internal IT working together provide an important balancing of biases, experience and business understandings that combine the broad experience across many vendors and customers of the one, and the deep understanding of the individual business of the other.

One can actually think of the Buyer’s and Seller’s Agent system as a “stack”.  When a business needs to acquire new services, products or to get advice, the ideal and full stack would look something like this: Business > IT Department > ITSP/Consultants <> Value Added Reseller < Distributor < Vendor.  The <> denotes the reflection point between the buyer’s side and the seller’s side.  Of course, many transactions will not involve and should not involve the entire stack.  But this visualization can be effective in understanding how these pieces are “designed” to interface with each other.  The business should ideally get the final options from IT (IT can be outsourced, of course), IT should interface through an ITSP consultant in many cases, and so forth.  An important part of the processes is keeping actors on the left side of the stack (or the bottom) from having direct contact with those high up in the stack (or on the right) because this can short circuit the protections that the system provides allowing vendors or sales staff to influence the business without the buyer’s agents being able to vet the information.

Identifying, understanding and leveraging the buyer’s and seller’s agent system is important to getting good, solid advice and sales for any business and is widely applicable far outside of IT.