Employed by a company that is technically groundbreaking; and holds patents for new process (at time of press, patent pending; but this is new as far as anyone knows). Hoptroff London is a single-product startup and new sub-company that was founded to supply timekeeping solutions to banks and trading organisations, which as of mid 2017 must be compliant to MIFID2 legislation. This law 1 is to limit organisations ability to frontrun trades. This is not a normal e-commerce employer, they will only be selling to large banks and trading organisations.
I was hired as “the developer” for the user interface for this solution. Most of the companies tech staff are C++ engineers doing the internal mechanisms for really precise distributed timing. I think most of the value that I supplied was building a user centric perspective to the product. In this company 'frontend' starts at the datastore, which my code doesn't populate (so including PHP & some server setup). I am not claiming the user interface is the patented section. I like this project as it is complex, demanding and has a quantifiable definition of correct. The heavy volumes of data mean it will be a challenge to render on mobile (not a core userstory).
This entire project is very clearly NDA-d, the tech challenges that I am solving/ have solved are:
- The MIFID2 terms state that data must be held for seven years, and as these companies trade all the time, every second must be covered. This requires a volume of data for every relevant machine, sampled on each metric, each second. I designed most of the DB Schema. The DB is written to continuously, and reads mostly as aggregate operations.
- There are plenty of metrics being recorded for suitably upgraded business applications; so trading organisations can view the performance of different sections of their business process.
- There are two dominant story epics; report anything abnormal that is happening now (so remedial action can be performed); secondly report for legal or audit purposes, any particular event that happened in the past. Some of the C++ code is managing clock adjustments, but that is not a feature of the frontend.
- I have created all the graphic design that this site uses.
- To make the volume of data easier to see, I integrated a JS/HTML5 graphing library. As there are alot of graphs, and many UX-optimisations that are not present in the library, I have spent months adding features to the graph rendering.
- To do necessary statistics, so that the viewer has a clear vision of the trends, and therefore the frontend must do calculations to display this. Secondly must run the statistics quickly.
- This project is atypical for e-commerce, in that only specialised & authorised users will be using it. I am displaying a lot of numerical data in various fashions; and can use academic norms for data representation.
- Being able to render a large volume of data (e.g. a 10^6 recordset); as most platforms allow over a month to be on screen. For the analysts or auditors to be able to see this data in a clear numerically-valid fashion.
- Another standard feature of platforms like this, is the creation of alerts. Hoptroff London also has configurable alert generator to report when the current state exceeds various boundaries. Obviously I took care that the data which resembles white noise a) raises enough alerts, b) doesn't raise too many. This means that alerts should be actionable.
- A clear challenge is being able to perform statistics on fairly large datasets, without exceeding “maximum user wait time”, or available RAM. I performed careful management of RAM, in particular; as many RAM uses are not visible in PHP source code, and in less data heavy situations would be unnoticeable.
- More recently I have been creating the process to allow users to evaluate the product. This is quite heavy in people and release management.
- Also, after most user stories; I am increasing the levels of code maturity, i.e. automated build scripts to reduce repeated testing on deployment configuration.
- I am managing work/user stories via JIRA.
As this is a small company unit, I am doing a wide range of professional behaviour as is common in small companies. This is not a demotion from my previous job title, unless you look at the title alone.