Sunday, December 8, 2013

The "feature interaction" problem - potential Chrome and Android (and iPhone) issue

In traditional telephony, the Feature Interaction Problem (FIP) is a major concern when code for switches is developed, particularly as more features are added to particular subscriber lines. For example, Bob might have call forwarding from his home phone line to his office during work hours, but has Do Not Disturb enabled on his office phone line when a call arrives on his home line. This results in indeterminate treatment for the incoming call. In order to avoid these kinds of situations, wherever possible, phone companies used to implement careful priority rules for how particular features might work.

A more complete explanation is here: http://www2.research.att.com/~pamela/faq.html

While this problem might be mitigated somewhat in the context of a single phone line, it gets much more involved and difficult when multiple users or phone lines are involved (e.g. in the scenario from the previous paragraph). For instance, if Alice has both Call Waiting and Voice Mail features enabled on her line, a simple priority setting may be applied giving Alice up to 4 rings to pick up the waiting call, after which it is forwarded on to Voice Mail. Features in telephony switches are typically linked to triggers in the Call Model, so these can be set to work in a pre-defined priority order if there is risk of interaction.

There are several papers on this topic particularly from people who worked on the 5ESS and other switches from AT&T Bell Laboratories, long the premier Research laboratory in the world.

So why is the FIP an issue today? Let's see. In the context of Android applications or Chrome browser extensions, there are several unrelated applications a user is permitted to install and activate. Several of these might request and obtain user permission for various features including call treatment etc., unless the user is very careful, it is quite possible that indeterminate, or unexpected behavior might occur that might at best, reduce the user's delight with the use of the system, or at worst, make the system unbearably painful to use. Admittedly, this is less of a risk in the initial phases when the number of applications that utilize the more involved features supported by the user's device are available, but as these proliferate, the risks tend to rise.

Note one other thing here - in the older scenarios from traditional telephony, the location of the problem as well as the capacity to apply a fix here, were both centralized at the switch so the phone company could do these for you. This is no longer the case on the advanced smart phones of today. The issue is now localized to the smart end-point, and becomes something the end-user has to fix for themselves. And end-users tend to be far less savvy about these things than phone company Research staff tend to be. Besides, different end users have different applications installed, which might result in different feature interaction issues being manifest.

One way of minimizing these kinds of issues might be to design the APIs that developers can use such that these kinds of interactions are minimized by limiting access to particular application triggers (e.g. when apps are sleeping and waiting on a particular event to happen), or by forcing the end-user to define a priority order among these various applications on the phone. This would require a Feature Interaction Manager or FIM application to ship with the phone or as part of the smart phone operating system so that undesirable user scenarios do not occur, or their occurrence can be strictly limited to a small number of cases.

So is this all just an academic exercise at this point? Not in the least. There are several instances where adding too many extensions and enabling them all simultaneously in Chrome causes the browser to only display blank pages. No matter what URL you type, or what you do, you only see blank pages. This is debugged and fixed by turning off and then back on, extensions one at a time. This fixes the issue and makes the browser usable again. Lots of people report this issue (examples below).

Sometimes this is a result of rootkits or viruses: e.g. http://www.wintips.org/fix-google-chrome-blank-page-problem/, but other times it is resolved by turning off and on extensions as described above.
http://forums.androidcentral.com/google-nexus-7-tablet-2012/263547-blank-page-chrome.html

Since there is no easy way to fix this problem in the most general way (short of perhaps a FIM), perhaps more careful API design, developer education, and user population education that this problem exists, and how it might be addressed when it occurs, is a good way to proceed.

Saturday, December 7, 2013

Google Drive - problem and solution (advanced use case)

Many users have a very common complaint with using Google Drive, which goes along these lines:

I signed up for Google Drive and when I want to sync a folder that already contains files, the program complains that the directory is not empty. But I already have two hundred gigabytes of data in my C:\ABC directory and programs that use that data with that directory hard-coded in. Now if I move all my files over into the Google Drive folder as the Google program wants, I have to re-write all my directory paths in my code again. And if I don't move my programs to the Google Drive folder, Google's drive program won't sync with the cloud. Why can't Google fix this?

See for instance: http://productforums.google.com/forum/#!topic/drive/-TmjPhFSNAY

Thing is, Google doesn't need to fix this. Of course, it would be nice if Google's Drive sync program were able to sync a non-empty folder into the cloud, especially for new accounts. But you as a user are not helpless. A fairly simple remedy exists. This works for both Unix variants and Windows, but this post will cover how to solve this issue in the Windows environment. USE AT YOUR OWN RISK. This worked well for me.

The key to solving this problem is an idea called a hard-link. The way this works, if you create a hard-link from one directory A to another newly created directory B, then this creates a virtual copy of the directory A in B. In other words, C:\A and the newly created C:\B point to the same contents (namely the files and folders under C:\A), and any updates made to C:\B\abc will be reflected in C:\A and vice-versa. Hard links are also sometimes called "junctions" in Windows parlance.

Now, how to solve the problem in italics from above? Until Google fixes their Drive program to be able to sync any non-empty folder(s) into the cloud, what you can do is:

  1. backup the data you want saved into the Google Drive (C:\ABC) to an external hard drive device
  2. install Google Drive, set a location for the Google Drive folder or stick with the default proposed location
  3. move (do not copy) C:\ABC to Google Drive folder from (2) above
  4. the Google Drive program is happy with this, and starts sync'ing the files and folders to the cloud
  5. wait for the move in step 3 to complete. verify that it was completely successful. then delete (remove directory) C:\ABC.
  6. create a hard link between the Google Drive folder from (2) above, and C:\ABC. this step will only work if the C:\ABC drive was completely removed in step 5. 
  7. Google Drive will now sync all your files, and your programs that were hard coded with the C:\ABC path will continue to work.
So now we need to discuss how one might create a hard-link to a directory in Step 6 above. This is easily done as follows: 
  1. Open a command prompt as administrator (right click on your command prompt icon in the Start Menu, then pick "run as administrator"). 
  2. type in "mklink/?" in the command window and hit enter. this will show you the various options or switches you can use with this command.
  3. to create a hard link to a directory, you need to use the following syntax: "mklink <link> <target>". if there are spaces in either of your directory names, you need to use quotes around it (as usual). So for instance, here you are creating a hard-link between your target directory of "C:\Google Drive" (or whatever drive name you picked for the Google Drive, and C:\ABC (which now doesn't exist on disk anymore). So you type: mklink C:\ABC "C:\Google Drive" and hit <enter>. This creates a "junction" or hard-link.
... and you are done.


So how do you delete a hard-link? Deleting a directory hard-link is the same as deleting a directory in Windows. Simply type "rmdir C:\ABC" at a command prompt, and hit enter. Remember, you specify the link directory, not the Google Drive directory, in the command above. This way, your data still exists, just the link is removed.

Interesting links for comparison of various cloud drive services:
http://macography.net/2013/05/speed-test-dropbox-google-drive-box-skydrive-amazon-cloud-drive/
http://www.theverge.com/2012/4/24/2954960/google-drive-dropbox-skydrive-sugarsync-cloud-storage-competition

Tuesday, December 3, 2013

The Many Headed Hydra - Sci-Fi short story

This is from my novella, a work in progress...

"A soul is a reflection of Infinity's light in a finite form." -- Ancient Dharmin text

The creature with no name, one we will call Gestalt, moved across the galaxy. He was as old as time, with accumulated experience (wisdom?) and a desire to live peacefully on his own. After many aeons on a planet, he saw life develop on other rocks in the system, and decided it was time to move - space was too vast to have to live in crowded confines.

Gestalt loved hospitable zones - ooh to bask in the light of a star or two or three. And avoided black-holes like the proverbial plague, though the plague itself could do nothing to him. A narrow escape millenia ago where he lost nearly a sixth of his mass to one, left him wiser to the ways of the universe.

He hated moving "house". As first tenant in many ways, he could not comprehend why he ended up shifting when new life sprouted in his neighborhood. For a while things were usually tolerable and other life-forms left him alone. But every once in a while they would intrude on his space... and shy as he was, he would usually just take off through space for another living zone. "My space within space", he thought. And might have laughed too, but we do not know if he was capable of levity.

What is time really on a cosmic scale with no clock to measure it by? Sure, intra-atomic vibrations kept time, but "time" at that scale meant nothing to Gestalt who was as old as the idea of infinity. After traveling for "a while", he (it?) arrived at a rock on a system he deemed comfortable. Slowly rotating, with two stars for warmth, and only two other planets somewhat nearby, Gestalt felt sated and content. This was a nice corner in universe with no corners - this would be his home forever now. And so he lived... eking out sustenance from the warmth of the suns.

Gestalt was starting to feel lonely. As far as he knew, he was the only one of his kind. He knew nothing of his origins or of his purpose. But if he was life, and there was other life, maybe he could talk to it? That thought would now have warmed his heart - if he had one.

Millenia passed, and once again, he perceived life sprouting on the other two planets. This time, rather than just leave, Gestalt decided to adapt. What had he to lose? Other than the black-holes, he had not seen any entity that could hurt him in any way. A simple experiment couldn't hurt now, could it? And besides, life usually took a while to move off any one rock to get to a point where it could reach him. So time was in his favor.

Indivisible though he was, he simulated a liquid with his structure, and evolved it into a fixed number of separate anthropomorphic life-forms the likes of which he had seen on many planets before. Each of these was imbued with its own "personality", but they were all part of him really. They retained unique identities but a voluntary collective consciousness. They could share experiences with each other (and in so doing, with him), or not - as they chose. But connecting to the collective assured them sustenance even in this evolved form. Gestalt was particularly proud of his engineering free choice into the mix.

Since there was only so much of him to go around - in terms of physical material - there were a fixed number of forms on the rock. They would associate with each other at will, but if a form tired, decayed or felt hurt, he would absorb it into himself, enriching the collective consciousness with its private experiences, and "regrow" it through the stages of development he had witnessed everywhere there was life. Every freshly issued creature was born with a "veil of nescience" -- the knowledge of the collective was only gradually revealed to it -- though birth came with new vigor and energy to once again embrace and enjoy its existence to the fullest.

Gestalt let his "children" evolve - they, who used to communicate almost exclusively telepathically at first, created a language, then clothing, crude implements, then fire, more sophisticated tools, a social fabric, better and more comfortable dwellings, means of moving around the planet, ... yes, some aspects of this felt like devolution - using talk as a crude replacement for telepathy, for instance - but he convinced himself this let him more aptly mimic other life-forms he had seen before. To embrace his new reality fully, he gave it a name - Dharma... his children called themselves the Dharmins.

If one Dharmin "ate" (absorbed light and warmth for sustenance), satisfaction spread through the collective proportionately. If one rested, the collective felt refreshed. Gestalt felt he did well by them - gave them the means to eliminate want, while giving them (himself in their form) the ability to enjoy individual experiences with a modicum of privacy and detachment... and so life went on, until Dharmins became from the one, many.

They still had a collective consciousness, and telepathy, but gradually became more individual, more specialized - because they could adapt differently. Young ones were raised by the community. The Elders cared for them, guiding them in lifting the veil that for a while obscured their complete glory, while the others worked to improve society. With Gestalt's wisdom and the knowledge of the ages, they knew every nook and cranny on their rock and lived in harmony with their environment. A peaceful, genteel people ignorant of
want or war, their life was a continual renaissance.

A young Dharmin to another: "Does Gestalt really exist?"
The second answers: "Gestalt only knows."

The Dharmins mined the rock for a mineral called Kesavanium found plentiful on that planet, and built a shrine to The One Who Might Not Exist. They would call it Gestalt's Temple. Gestalt knew he had done well when he saw this monument to him, his "children" had constructed. A large three dimensional holographic inscription on a wall in the main hall of this crystal monument read: "G E S T A L T I S N O W H E R E". Make of it what you will.

A venerable, ageless form called The Sage - a true seer if there ever was one - presided over this monument, greeting fellow Dharmins that visited. He was always fully immersed in the Gestalt's being and spoke in riddles if he spoke at all. Many legends were written and ballads sung about him - legends that transcended the history on that rock.

Friday, November 8, 2013

A comparative analysis of Recommender Systems - Amazon and Netflix

Recommendation systems tend to add significant value to a web-store, particularly since a. they can increase traffic towards less demanded items in the store, and b. they can enable you to leverage your existing customer base to "market" to users considering purchases of new goods related to ones other customers with similar tastes have bought in the recent past.

There are however several non-technical aspects one needs to be aware of as one designs recommender or recommendation systems, among them the following:

  1. recommendations provided must use a very "light touch" and indeed be relevant, or users will bail (recall that users have very low switching costs in the Internet/web context)
  2. it is usually a good idea to tell users on what basis a recommendation is made, to reduce annoyance or increase delight at the use of your systems - e.g. are we recommending a product to you because others like you (similarity defined in any reasonable way - similar profile etc) liked that product? because others who bought the same products you did, bought this other product? because others with the same browsing history as you bought the product in question?... and other similar considerations
  3. ease of rating and generating reviews
  4. ease of user-base interaction amongst themselves (the more vibrant your user community, the less hand-holding you might need to do, if you have good automated systems to moderate user forums etc)
Also, a key difference here is whether you are selling your own products, or acting as a store-front to others' products - in the latter case, you can of course be much more open and neutral in terms of the user-generated content that is hosted. And quite frankly, I don't think I have seen a good example of the former kind of systems in practice.

That said, on to the topic at hand... Both Amazon Prime Instant Video (APIV) and Netflix Video (NV) have recommender systems built in, but they differ in some important ways:
  1. APIV says "people who watched what you just watched" also watched these titles A, B, C... While NV says "people who liked the title you just watched, also liked these titles E, F, G." 
  2. APIV as perhaps the largest and most widely used store-front today (sorry EBay) knows a lot about what you've bought, and can leverage that to make recommendations. Of course, APIV doesn't know whether you liked what you bought or watched already in all cases. NV only knows what movies you have seen and which ones you liked (based on what you've rated or said you liked) and can use that as a basis for making recommendations.
  3. Both leverage information about user behavior. Neither uses information about the product. For instance, new movies, before anyone has watched them, will have zero stars in both NV and APIV. 
Between the two, you could argue that NV offers the more targeted recommendations primarily because these are tuned to your taste, based on what you've told NV already that you liked. APIV's recs, on the other hand, are much more generic, and are more focused on getting people to watch videos using their free subscription, and arguably less focused on whether this is what people might want to see.

NV has the better store-front for renting/streaming video - the popups on mouse hover over movie icons is something users expect, and it is disappointing to see Amazon doesn't implement yet. But then Amazon has hands-down the better infrastructure at the back-end - don't forget, even Netflix is hosted off Amazon servers. But it is user experience we are talking about here, and NV wins.

It is not hard to envision a world where a recommender system is stripped off a store-front and is run by a third party. This puts various streaming store-fronts on a level playing field where the main focus here is efficient user choice, and potentially, cost. We have less time to waste these days given our busy schedules, and have to choose from a larger variety of products more quickly. A system that helps us make the correct choice more efficiently will drive storefront success. A system decoupled from a store-front owner gives a sense of neutrality and unbiased-ness which is critical to its user acceptance.

Billing becomes more complicated in the latter scenarios however. Currently the user pays the service provider for the service. In the latter case, the user may pay the service provider who kicks back some amount to the middle-man for referring users to their site, or the user has to pay a fee to the middle-man for access to better sites. The former model has similar issues with neutrality and conflict of interest as one saw with Ratings Agencies during the recent Financial Crisis and debacle. The latter... well, it complicates matters significantly. And no one wants to pay more for something they're accustomed to getting for free now. Look at the challenges New York Times and now Washington Post are having at monetizing their digital content.

It is a pity that neither NV nor APIV utilize recommender systems that leverage thematic elements in movies. For instance, one can compute statistically improbable phrases or SIPs within either movie synopses or in movie content (e.g. subtitles) and try to determine other movies with similar content that watchers might like. TF-IDF based systems that do this might not be too difficult to build.

So we didn't mention Hulu in the above. Well, that business model is slightly difficult to comprehend. The most common gripe I hear from even fans and subscribers of the website is that even after paying for premium membership, the user is still subjected to ads. True, the "premium" aspect provides for easier access to full seasons of shows, but people feel cheated that after paying for an "Internet" experience, they are still treated like "ordinary" TV watchers. After all, if you allow time-shifting and place-shifting, you should permit the more discerning users to watch videos the way they want as well, especially if you're charging them.

Saturday, September 14, 2013

A day in the life of an FX and Rates Strategist

Strategists in the financial services sector are of different types depending on the asset class they cover and whether they operate on the buy- or sell- sides of the business. This role is different from the one business strategists perform in various firms in that it is focused on capital markets.

Typically a strategist does not trade, but comes up with (strategizes) trade ideas that the traders can put on and portfolio managers can consider. Usually strategists look at various types of indicators as they perform their duties - indicators like macroecnomic news and numbers releases (e.g. India's RBI likely to intervene in FX markets by selling $10 B to help bolster the rupee), quantitative signals (e.g. the volatility of MYRUSD returns is much higher than that of the USDIDR), and technical indicators (e.g. the ichimoku cloud indicates that the move in USDJPY is well supported with a likely move yet higher in the coming days).

As with all else, strategists also vary widely in quality. Here, we focus on the role of FX & Rates strategists on the buy-side. A typical day might be something like this:

0700: Get to work, read up news stories on what happened overnight, and potential changes
          to views currently held. Also, familiarize yourself with the current trade book
          including trades executed in the overnight hours

0800: Look across markets to determine where any important economic numbers are going to
          be announced. Prepare notes for the morning call.

0830: Go to morning call, discuss current positions, corrections to previously expressed
          views, pending news and numbers releases, changes in technicals for various markets,
          favorite trades if any etc

0900: Study Bloomberg screens and sales side analysts' research to identify and analyze
          potential trade ideas.

1100: Write-up investment theses carefully focusing on which trade ideas make sense for
          which funds (since different funds are run to different mandates), and in what
          market contexts. Focus on what the entry and exit levels are appropriate.

1400: if you manage a paper portfolio, put your trades in there. track P&L carefully

1500: take calls from portfolio managers, pitch ideas to them, meet with sell-side analysts
          learn more about your markets, pending central bank actions, macro-economic
          developments etc

1800: send out end of day commentary, list important news stories and events to watch for
          the next day, and over the rest of the week, with updates.


Monday, July 22, 2013

A day in the life of ... A Credit Analyst

Credit analysts track various sovereign, quasi-sovereign or corporate credits (i.e. companies). They model the names they track along various accounting metrics to determine how the companies are currently performing, and how they might perform under different market conditions. They advise portfolio managers on what credits to buy and which ones to sell and when. Good credit analysts are able to anticipate market moves before they happen and steer portfolios to tidy gains while avoiding losses. Credit analysts tend to be very busy during equity earnings season (yes, even though they work in the corporate bonds space), and with new or potential new issues.

This is what a typical Credit Analyst's day might look like:

0700: get to work, track major market news stories and overnight 
      developments

0800: participate in the morning meeting with all other analysts 
      and portfolio managers present recent happenings in your 
      sectors, names you cover, market news items of interest. 
      discuss any relevant holdings in portfolios, summarize key 
      ideas for either increasing or decreasing exposure in 
      particular companies

0900: if on the sell side confer with other analysts that cover 
till  the same name or attend scheduled meetings or conference 
1100  calls with management from companies you cover. ask 
      pertinent questions to firm up your investment theses

      if on the buy side, talk to sell side analysts that cover 
      the same name or credit, ask for trade ideas either in 
      terms of relative value or others, and form firm 
      recommendations

1100: read research on companies, track market events to 
till  evaluate trade ideas factoring in portfolio holdings. keep 
1500  aware of new issuances from either companies you hold or 
      in sectors you cover. pay special attention to M&A     
      activity as well.

1500: pitch your trade and holdings ideas to portfolio managers. 
till  clarify views on your credits etc. it usually helps to put 
1600  out a note on names you cover daily before leaving work 
      with major news items and impending news stories. for new 
      issues, might want to advise portfolio manager on 
      allocations to put in for.

1600: build models for the companies you cover, test them with 
till  various scenarios if working on regional credits, might 
1800  also want to model various fat-tail events to determine 
      how credits might behave

1800: work on daily commentary, send it out, head home
till
1830

A day in the life of ... A Corporate Development Specialist

A corporate development specialist is a new kind of role in many firms, typically those at the leading edge of technology. Such firms have clear (maybe _clearer_ would be a better way of stating this) needs to stay innovative, grow at a furious pace to keep shareholders happy, etc.

Effectively an employee in this role performs many functions including:

  1. internal consulting on business processes, organizational structures etc
  2. product portfolio rationalization
  3. competitive intelligence, analysis, and competitive landscaping
  4. M&A work including target company identification, due diligence, merger discussions and post-merger integration
  5. supporting individual projects or groups of projects with business analysis etc


As with good Business Analysts that are excellent generalists in service oriented businesses, good corporate development specialists tend to have strong general and particular specialized skill-sets (e.g. they may come from a strong management consulting background) that makes them particularly valuable to the company.

Since these professionals tend to have very widely varying sets of responsibilities as well as projects they may be involved in at any given time, it is rather difficult to indicate what a "typical" day might look like for people in this role. Hence we do not provide any additional details for this particular position.

People in this role tend to have strong general skills in finance, accounting, and consulting, with at least some level of technical ability to be able to grasp technical details quickly. The best people in these kinds of roles also have an innate ability to be able to operate comfortably at both the macro and the micro levels in the organization, and can be counted on to build and grow project teams, lead them, recruit leaders to take their place, effectively transition leadership and move on to other projects where the company needs them more.

People are usually very carefully selected for these roles, and typically a few years of experience is a pre-requisite for anyone to be successful. In some firms these people are called Program Managers, though strictly speaking that is a somewhat different role.

Sunday, July 21, 2013

A day in the life of ... A Trader

"Climbing isn't about conquering the rock. It is about conquering yourself." -- Jim Collins
The same can be said of Trading.

All most people know of trader's jobs is what they see in the news media and movies. Obscene amounts of money in compensation, scams, scandals, a lavish lifestyle, and then ruin in one form or another. From this a trader's life appears rather glamorous. Sadly, in reality, nothing could be farther from the truth.

The job of a trader is a very demanding one. It involves tracking the market closely for the asset class you trade, looking at various instruments within the context of the market, and taking positions either long (buy) or short (sell) in them. Once in a trade, the trader tracks the P&L of the position, cuts the losers, and rides the winners, and makes a tidy sum (for his firm) at the end of the day... or so the theory goes. All this of course, is much easier said than actually done, as any trader will tell you. This also explains why there are so many traders, and so few consistently successful ones.

Traders are of different types: Sell-side traders trade for investment banks. They make markets, executing orders for their buy-side clients, meet with their clients every once in a while, and sometimes take active positions to make the tidy P&L we spoke so fondly of in the previous paragraph.

Buy-side traders tend to execute trades sometimes at portfolio manager direction, or at other times, trade their own book.

Trades may last anywhere from a few milliseconds all the way to days and weeks depending on the reasoning and methodology behind how they are executed. The ideas behind trades may be fundamental (derived from sound economic principles), technical (based on charts), quantitative (based on numerical methods and data), or systematic (based on a model).

A typical traders day might look something like this:

0630: show up at work, digest all major news stories, study your 
till  book, prepare for the day. mark all open positions, look 
0730  at which ones are approaching take profit or stop-loss 
      levels, prepare to trade these 

0730: morning meeting with other traders in the sector to 
till  discuss ideas (whether this meeting exists is strictly 
0800  firm dependent)

0830: look at trade ideas, look for opportunities, look at the 
till  model, the market, events, study your book, enter and exit 
1800* positions. if buy side trader, can leave overnight orders 
      with sell-side traders before leaving for the day.
  
      if sell-side trader, might have one or more client 
      meetings during the day, in which case someone else from 
      the desk will cover for him.

      traders might run sophisticated models during this period 
      as well. some firms have fully automated trading systems 
      that are built and operated by teams of ex-engineers
      and code-gurus.

1830: if buy-side trader, leave boss a note on all overnight 
      orders. all traders note their day's P&L.
      go home, but be aware of market events

* different markets close at different times. also, part of the day might be spent chasing the clearing of earlier trades with the help of middle- and back- office personnel.

A day in the life of ... A Pre-Sales Consultant

The pre-sales consultant position is known by different names in different firms. In some, the corporate development roles tackle this aspect of the business as well, while in others they might split this role based on each functional component into a separate position. In a few firms, given this is a role with a lot of responsibility, they may just have the lead architect perform this role, or create the role of a "lead consulting architect" that performs both the lead architect role and the pre-sales consultant or corporate development function (though this latter role also involves doing a quite a bit of internal consulting and some amount of M&A work - both sourcing potential acquisition targets and once these have been identified and targeted, helping do due diligence on the deal, bringing the deal to fruition, and finally also helping with post-merger integration and company product portfolio rationalization).

In my experience, a pre-sales consultant does the following things: 
a. visits customers and prospective customers along with product managers and presents products, product ideas, company innovations and leading edge thinking to them, b. responds to RFPs, RFQs and RFIs in consultation with architects and systems engineers, c. performs bid defenses, d. conducts sales training for various products, e. staffs booths in trade shows and conferences, f. presents company positions in conferences etc

A typical pre-sales consultant's day might look something like this:

0700: get to work, look through email

0730: work on the assigned sections of the currently "hot" RFP 
till  to get it done on time. identify questions or sections 
1100  that require input from other Subject Matter Experts 
      (SMEs), reach out to them to get these answered

1100: meet with product managers and architects and learn of 
till  potential new product pitches to be made to clients, 
1300  review presentation ideas and the deck, potentially also 
      creating some slides yourself

1300: prepare for a bid-defense on another RFP tomorrow at a 
till  client site, conferring with other SMEs as needed. refine 
1500  story, rehearse to make the pitch perfect

1500: attend the daily review of RFP section updates with the 
till  rest of the team, take away a log of key changes to be 
1700  implemented

1700: look forward. mine RFP responses to extract common 
till  sections or "boiler plate" material that can be used in 
1830  other RFPs. work with product managers and lead architects 
      on competitive landscaping

1930: typically RFP deadlines are very tight, and people work 
till  over-time trying to get all this done on time.
...

A day in the life of ... A Systems Engineer

Systems Engineers (SEs) are to technology, technical problems and product design as Business 
Analysts are to the business aspects of an organization. SE roles vary across companies and
sometimes even within the same company and they are of many different types e.g. SEs in my
previous firm used to be of three types: 

Tier-1 SEs: these focus on writing documents that spec out a product release into several 
component features. Sometimes they also help product managers and lead architects plan the
release roadmap for a product.

Tier-3 SEs: these SEs work on documenting the design level details of particular features.
This work requires a lot more detailed, in-depth knowledge of underlying protocols, product
components, architecture etc. These SEs work more closely with architects and developers
as their work product more fully fleshes out the design details of an architecture and 
provides a document that developers can use as a basis to scope out and actually build into
the product release.

Tier-2 SEs: these are less frequently found in organizations, because sometimes these roles
are also fulfilled by tier-3 SEs. When they do exist in organizations, they function in 
roles that document the network level specifications or requirements that tie designs of 
several tier-3 SE specified features so that overall system design and architecture is 
consistent and stable, particularly for large systems that need to scale to several million
subscribers, have very high availability (e.g. 99.999%) requirements, are mission-critical, 
or have very high performance or thruput requirements.

In what follows, we look at the typical day in the life of a tier-3 SE: 

0730: get to work, read through email. keep track of release 
      plan, any impending deadlines, change to project schedules 
      etc

0800: prepare for morning meeting, go through notes, track 
      current progress on features being worked, make lists of 
      work done, work to do, blocking issues etc

0830: attend morning meeting with manager, architecture team and 
till  developers. discuss issues that impact feature or 
1030  surrounding features. identify experts you can tap to 
      complete feature definition. try to help other SEs, 
      developers and architects with open issues

1030: work on feature, read up protocol specifications, network 
till  details, architecture documents etc
1400

1400: attend tier-1 or tier-3 document reviews. these may be 
till  reviews of your own documents act as scribe capturing 
1600  meeting minutes and all defects raised. track owners and 
      level of criticality to product and release.

1600: meet with various SMEs to clear any gating issues to keep 
till  your design document on till  track. validate design ideas 
1800  with developers to ensure they are in scope, and designed
      keeping in mind both feasibility and project timelines.

1830: log off and go home

2100: work with teams in other centers (if working in a global 
till  organization) to help them meet their deadlines and ensure 
2300  timely product delivery.

A day in the life of ... A Business Analyst

Business Analysts or BAs as they are typically called, come in various flavors, and their duties vary accordingly. Some BAs code quite a bit, while others interface mostly with internal clients on applications (e.g. acting as internal consultants on critical projects), gather requirements in support of new systems, processes or tools, while yet others mine organizational structures to find ways to make the business more efficient. The best BAs tend to be excellent generalists at the very top of their game.

Depending on their roles and how they conduct themselves relative to business stakeholders, BAs may be either loved or hated in the organization. Of course a lot also depends on the organization's culture and management's attitude towards internal consultants. In a good company, people in these roles have the ear of senior management and tend to have access to the fast-track in terms of promotions, career growth etc. And of course, if the company has
a stellar reputation and is one of the leaders in its field, then these BAs tend to have excellent exit options in other firms of repute, landing there in director level positions. Usually though, these positions go to managers of BA teams, not individual contributors.

More often than not though, company culture doesn't give BAs the importance they deserve, so many of these people either leave or move towards more specialized functions where they get more attention and better compensation. 


A typical BA's day might go something like this: 

0730: show up at work and catch up on email. hopefully no crises
      surfaced from the other side of the world while the US was 
      sleeping

0800: prepare for the morning meeting, gathering notes on 
      progress made since yesterday with clear notes on tasks 
      accomplished, those pending, blocking issues etc

0830: attend a meeting hosted by project management with boss 
      and rest of team present give readout, take feedback

0900  launch application (if that's what you're working on)
till  write application documentation
1500: identify weak spots or issues, determine contacts or 
      Subject Matter Experts (SMEs) to fill these in, set up 
      appointments

1500  meet with various contacts within the company to gather 
till  more information add more details to your specification
1800: check email to track any new urgent issues
      conduct training sessions as needed with users or your team

1830: log off and go home.

2130  get on the phone with staff in other time-zones and monitor
till  progress or provide support as needed (usually, if in the 
2330: US, this is staff in "low cost centers")