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). EDIT 2020: I think we have these now. Hoptroff London is a 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. Secondly HLL website says we assist in GDPR as a secondary benefit 2. 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 these solutions. 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. I like this project as it is complex, demanding and has a quantifiable definition of correct. The heavy volumes of data to display 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 are aggregate operations.
- Being able to interactively render a medium 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.
- A clear challenge is being able to perform statistics on fairly large datasets, without exceeding “maximum user wait time”, or available RAM. This is hard development and needs to be very test first process. Secondly that volume of data exceeds the datastore query capacities; so the read queries have to be done in “sips” of data (see fire hydrant analogy).
- Convert all the raw numbers (which it is essential to keep); into summaries, as they are more useful in the visualiser.
- To do necessary statistics, so that the viewer has a clear vision of the trends, and therefore the visualiser must do calculations to display this.
- 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 (more stats). This means that alerts that I am making are actionable.
- To require less user attention; the data in the client-side automatically updates.
- As each section of the UI requires alot of stats; each section is loaded as a different API call. Very carefully organised everything so each API didn't block the others; and the most conspicuous ones was done first.
- Least impressive: most user stories; I am increasing the levels of code maturity, for example automated build scripts to reduce repeated testing on deployment configuration.
The UX angle:
- 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 visualisers.
- I created Personas, which feeds my next point.
- I have created all the graphic design that this visualiser uses. As an experience centred workflow, I am focussing on Nouns used more than my colleagues e.g. users use a “Compliance Report”, and ensure that when managers call it “a PDF” doesn't get into the user interface. The user interface mentioning “Why” is more useful to Users intentions than “How”.
- This project is atypical for e-commerce, in that only trained & authorised Users will be using it.
- I smoothed the interactions, so context is clear; and system state is coherent.
- Regardless if the current interaction leaves the browser session; the user journey must be joined up.
- To make the volume of data easier to see, I integrated a client side graphing library. I accumulatively spent Months improving mathematical presentation and added some UX-optimisations.
- Set URLs to match the current terminology; despite that the product pivoted; and changed the words. In line with REST, I allowed most settings to be set via the URL, so links can easily be shared/ reloaded.
- For some users, alerts are the most frequent interaction point on the autonomous system. The wording on these has been carefully optimised so that it fits without wrapping or scrolling on a older iphone5 (a reference phone with longevity). Secondly I revised the first draft by another developer, so that the white-space made the other content much more clear, again important for small screens.
- I created the whole process to allow users to evaluate the first product (i.e. the non-core user stories). This is quite heavy in people management and release management.
- On the first product, implemented a smooth content infill; so a inline graph placeholder is on screen and swapped with real data.
- In later products, I am using SVG graphs, which are obviously good for RWD. I didn't do this in the early iterations of the first one, as a director was keen for a type of stacked graph, which I could only find in 1 OSS library (but it is also available in Highcharts and Google Charts).
As this is a small company roster, 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. After 3rd quarter 2018, HLL has expanded, and has more staff. My initial title was “full stack developer”, and my activities where quite quite broad. The brochure website is outsourced, and not done by me. By 2021, my activities list now refers to multiple products, in a narrow domain. I have performed the same types of work in each case. Further note, that if you read the whole of my site, on this resource I am using the term “User”, on other resources, I am not. This a different project, in a different situation.
Retropectively, this startup has a fairly high rate of churn amongst senior non-share owning people.