The Rise of the CryptoCurrency

May 21st, 2015 / Tales from a Trading Desk

Bitcoin is about to make another credibility step forwards with the recent announcement that the New York Stock Exchange will provide a NYSE Bitcoin Index (NYXBT) offering sight into the U.S. dollar value of one bitcoin.  It will be interesting to see if NYXBT causes an uptick in interest around blockchain/bitcoin from software engineer in the finance vertical who have historical not had an interest in the peer-to-peer platform.

The main are of interest from my perspective is the algo trading opportunities.  There are a number of entry points to algo trading:

Improving User Stories

May 11th, 2015 / Tales from a Trading Desk

I recently picked up “Fifty Quick Ideas to Improve your User Stories”.  Before I provide some thoughts on the book, its worth stating the obvious: a large number of organisation have their own variant of agile.  These variants of agile can be many degrees away from the original intent of agile.  Its therefore not surprising that, when reading “Fifty Quick Ideas to Improve your User Stories”, you may find some of the ideas unworkable within your project area.

LinkedIn Data Leakage

May 11th, 2015 / Tales from a Trading Desk

“LinkedIn serves up resumes of 27,000 US intelligence personnel” article offers insight into how social networks can be used to get access to confidential data – architecture, technology stacks, and more can often be found by piecing together various social data without needing to walk though an office door and ask a single question.  As referenced in the article, its worrying to find that the US intelligence community is clearly incapable of keeping “secret codewords and surveillance programs” out of resumes.

Given that financial services is big on keeping business secret, it would be interesting to leverage Transparency Toolkit’s to see what is available :)

Application Performance Metrics

May 11th, 2015 / Tales from a Trading Desk

InfoQ has an interesting article on “Top 5 Java Performance Metrics to Capture in Enterprise Applications”.  Performance has, and continues to be in many scenarios, the last to the software engineering party.  Once a team has got over the library sweet shop mentality, hopefully validate their proposed architecture, and ideally gone down an executable specification road, the team often has either completely forgotten about performance, or decided to build a performance framework that has not correlation to the executable specification road used from a feature perspective.  You can see the gaping hole :)

Once a Software Engineer, Always a Software Engineer – Code is the Key

May 5th, 2015 / Tales from a Trading Desk

Lee Hsien Loong (Singapore’s prime minister since 2004) share the last code he wrote – a C++ Sudoku solver.  :)

Managing Humans

May 2nd, 2015 / Tales from a Trading Desk

I recently read Managing Humans.  Although classified as semi-fiction, with the names of people all fake, I can only imagine that correlation is high to real events, with anyone who has worked with Rands over the years being able to identify who/what/when from the book :)    I suspect many of us have considered writing such a book :)

Here are just a few classic extracts from the book that can liven up your day of “management” madness

  • Page 5, the all hands meeting run by the CEO that really doesn’t make a connection with the staff

Pushing Market Depth (Level 2) to HTML Clients

May 1st, 2015 / Tales from a Trading Desk

Lightstreamer recently published an article on pushing Level 2 market data to a HTML client.  An interesting article with offers the read source code and appropriate commentary on how the demo works.  What I think is missing, and maybe Lightstreamer can update the article in the future, is in my view the following:


  • Performance numbers for both websockets and non-websockets
  • Links from the article to other articles Lightstreamer might have on Data Adapter and filtering.  Filtering is particularly key when the client (HTML) become overwhelmed with data, and can’t keep up with paints (renders)

M#, Carbon C++, Speculation Continues

April 28th, 2015 / Tales from a Trading Desk

Anyone who’s read Joe Duffy’s 2014 blog postings knows that there is something brewing in the Microsoft compiler and language department.  What language the new language will be based on (C#, or maybe C++) isn’t clear, or the name of said language.  Channel 9 forum’s offers some thoughts based on LinkedIn profiles etc.  Will anything be said about the new language at Build 2015 conference?  Or will we have to continue waiting for some while longer for Joe to post another titbit of information?

Minimum Viable Product (MVP)

April 21st, 2015 / Tales from a Trading Desk

Jon Pittman’s “The Tyranny of the Minimum Viable Product” posting offers an interesting read on a subject that is often difficult when a stakeholder is asked to define the features of an MVP for a new product.

The intent behind the MVP idea is to minimize wasted effort and risk — to focus the product on only the key elements that will capture the imagination of early customers, let them understand the vision and direction, and see the product as an early demonstration of that vision.

LLVM-Based Compiler For .NET

April 14th, 2015 / Tales from a Trading Desk

The NEW Microsoft is somewhat embracing Open Source.  2015 started with the CoreCLR being open sourced – the CoreCLR is the execution engine for .NET apps and performs compilation to machine code, garbage collection, and other core functionality to .NET.

Today,we hear that Russell Hadley on the LLVM mailing list that Microsoft has a new effort to

Produce MSIL code generators based on LLVM and targeting the open source dotnet CoreCLR

This new JIT will allow any C# program written for the .NET Core class libraries to run on any platform that CoreCLR can be ported to and that LLVM will target.

WatchKit Packaging and WKInterfaceController

April 10th, 2015 / Tales from a Trading Desk

Having spent the last few (late) night with Xcode playing with WatchKit apps, there are a few interesting takeaways for any new WatchKit developers:

  • Packaging of WatchKit apps is nicely explained by this diagram – target structure.   The storyboards are separate from the actual WatchKit code (WKInterfaceController etc).  More interestingly, and least well publicised is the fact that Apple Watch also uses wifi if possible, together with the default Bluetooth LE to communicate with its paired iPhone.

Apple Watch – Banking and Trading

April 9th, 2015 / Tales from a Trading Desk

Before taking a look at what is currently available for Apple Watch in the banking and trading space, its probably worth having a read of the WatchKit, and the three types of apps available on the Apple Watch:

  • WatchKit App – architecture overview can be seen here.
  • Glances
  • Actionable Notifications.

Julian has a fairly simple tutorial, “WatchKit Introduction: Building a Simple Guess Game”, if you want to kick the tires on an Apple Watch.


Distributed Teams – Agile Practices

April 8th, 2015 / Tales from a Trading Desk

Jutta Eckstein has an interesting talk on InfoQ that discusses “Applying Agile Development Practices in Distributed Teams”.  Distributed teams working on the same project/code base are always challenging.  Code ownership is clearly called out in the talk for obvious reasons.

The Golden Rule slide offers some sensible rules for handover between location/time zones – build are green.  I would also add that ideally a CD process is being used, and the build has deployed successfully before handover to another region.

Virtual Teams

March 15th, 2015 / Tales from a Trading Desk

Slashdot provided a few interesting links on Virtual Teams recently:

  • Why Remote Teams Are the Future (and How to Make Them Work)
  • Virtual Success: The Dark Side of Virtual Teams
  • 21 Months In: How to Manage a Remote Team

A few keys points are worth noting:

hiring people you can trust, and conversely, trusting the people you hire

Leaders that understand how to recognize and prepare for challenges and then raise solutions before they become costly stumbling blocks are setting themselves up for success. However, most leaders are taken aback by the diverse challenges that virtual teams can bring and spend the majority of their time attempting to assess what is going on and put out the fires.

Reading from Sockets

March 15th, 2015 / Hidden Variables

This post is part of a series on the byte sources underlying the readable streams in the Streams Standard. See the introductory post for more background and links to the rest of the series.

At the simplest level, sockets can be treated much the same as files. You can get a file descriptor for the socket, and while there are a number APIs involved in setting it up to actually connect to a remote server, once you’ve done that you can read from it using the same read(2) interface as we discussed for files.

Currency Language Support

March 10th, 2015 / Tales from a Trading Desk

As Anatole states in his “Go for the Money! JSR 354 Adds First Class Money and Currency Support to Java” post, support for monetary values is painful.  In the financial community, there should be a cheer to see that once JSR 354 is finalised in Q1 2015, development of complex currency applications e.g FX Single Dealer Platforms, should get a little easier.

Regards to anyone on Java 7, there is hope, but ideally you want to be looking to move to Java 8 in my view:

Random React.js Reading

March 8th, 2015 / Tales from a Trading Desk

General collection of React.js reading material.

Google Calendar Labs – World Clock

March 8th, 2015 / Tales from a Trading Desk

Yet again ran into issues using the World Clock experimental feature in Google Calendar.  Basically the world clock feature appears to be unaware of daylight saving changes in regions. The latest being the start of Daylight Saving time in the USA.  Net out, scheduling a conference call for 1:30pm NYC caused me to miss the call :(

Bank = Software Company

March 5th, 2015 / Tales from a Trading Desk

BBVA has made a bold statement about becoming a software company, predominately due to the change in mobile usage.  If I recall, Deutsche Bank had grand ideas of creating an internal software company at some point in the past – not clear how well that went.

I wondered what technology BBVA are using for their platform:

build a new customer-centric technological platform, which operates in real time and is also modular and scalable. This platform allows BBVA to develop a new generation of services to compete with new startups and major digital companies.

Reading from Files

March 4th, 2015 / Hidden Variables

This post is part of a series on the byte sources underlying the readable streams in the Streams Standard. See the introductory post for more background and links to the rest of the series.

Once you have opened a file descriptor, you’ll use the read(2) function to read bytes from it. In C the signature is

ssize_t read(int fd, void *buf, size_t count);

Translated into JavaScript this might look something like

const bytesRead = file.readInto(buffer, offset, count);

which will attempt to read count bytes into the ArrayBuffer buffer, starting at position offset into the ArrayBuffer. The returned number of bytes, bytesRead, might be less than the desired count, usually because you’ve reached the end of the file.