Software Engineer - Visualisation
This is a great opportunity to work with one of the UK's most exciting tech companies!
(COMPANY NAME) is the world's only space and time intelligence platform built for the hyper-connected world! Smart infrastructure is driving the transformation of cities, logistics, networks, buildings, transportation systems and communications networks. This, in turn, is generating extreme amounts of new data requiring real-time management and analytics at hyper-scale.
Our mission is to be the engine that powers smart nations. (COMPANY NAME)'s location intelligence engine provides the ability to discover new insights from legacy data gathered over years of operation or extreme data from the hyper-connected world of sensors and portable assets.
We have strong financial backing, coupled with real commercial traction. Our aim is to be a 100+ person company within the next 12 months!
Our headquarters, recently renovated in Cambridge, along with our bases in London and Singapore, are all created with a relaxed and unique style. We have a friendly, collaborative atmosphere and a diverse team of super-bright people from around the world.
The front end team at (COMPANY NAME) builds a data exploration application that enables customers to interactively analyse datasets with trillions of geolocated events. We're combining the mathematics of statistical sampling with the performance and elegance of event-driven asynchronous code leveraging async/await, to provide the familiar analytics features of BI and GIS tools, but operating interactively on huge datasets. Strong graphics and visualisation skills are part of the mix for this role too - we maintain our own fork of MapBox GL JS, the WebGL map rendering engine, where we build our own shaders and visualisations to intuitively reveal data patterns in novel ways.
For our data querying tools (both interactive and programmatic) to be useful, customers need to easily onboard and manage their own data (enormous amounts of it). The front end team provides the solution, an integrated dashboard that empowers non-technical customers to go from source data to customised data insights by clicking a few buttons. To iterate quickly on this complex, bespoke UI, we take advantage of React and GraphQL. React has revolutionised UI coding with its model of componentised declarative state transforms. In fact we've found functional programming concepts highly effective throughout our code, so if you like using reducers, immutable state, and higher-order functions (or you'd like to learn) we'll be on the same page. As for persisting the complex UI model data, and coordinating our many back end microservices, GraphQL (using Apollo) seemed like the perfect modern API technology for the job, and adopting it has worked out well. Its resolvers fit beautifully into our functional asynchronous design philosophy.
If any part of this gets you excited or starts ideas flowing, we want to talk! Come join our close-knit team pushing the boundaries of what's possible…
* CSS and HTML for UI work,
* configuration files,
* scripts (Bash, Python, others),
* graphics (bitmap and vector) resources,
* Although you don't have to be an expert in every area, we expect you to handle code with a very wide range of functionality including complex UI, network communication, real-time graphics, data processing, and build scripts.
* You need to be able to work confidently with other assets related to your work:
It's considered a central part of your role to handle challenging tasks where the solution is not clear, or where you personally are missing knowledge, understanding, or specialist skills. You will be expected to proactively do the work to gain the necessary skills, and find the non-obvious solutions.
You will be expected to architect and design the code you write, actively seeking and incorporating requirements from stakeholders.
Constant, effective communication is an essential skill in this role. This covers a whole range of communication skills, from simply talking to other people, all the way to presenting in front of large groups.
A vital part of your role will be to work constructively within the engineering team by sharing your knowledge and helping other engineers whenever needed, particularly less experienced engineers.
You will be expected to take full responsibility for effectively managing your time. Typically you will have multiple tasks that you could work on at any time, with overlapping deadlines and dependencies. You must be able to allocate your time wisely, focus when necessary, and re-evaluate priorities frequently in order to deliver on your commitments.
You will be expected to take an active role in the planning and management process, including:
* proposing and advocating new ideas,
* providing realistic estimates,
* evaluating the wider consequences of any work, and raising any concerns,
* helping to prioritise potential work with a full awareness of wider business goals.
* Extensive software development experience, with a proven track record of delivering complex code.
* Some experience in, and a genuine enthusiasm for, front end development (UI, graphics, visualisation) is vital.
* For this senior role, we would expect to see evidence of an ability to take the technical lead in feature development.
* Inevitably, most employees in this role have the equivalent of a bachelor's degree in computer science, electronic/software engineering, mathematics, or another science. However, we absolutely would consider anybody with the necessary work experience and interests, regardless of how they've learnt.
* We are, in fact, specifically interested in employing programmers with unconventional backgrounds who can bring a unique perspective and approach to the work we do.
* Functional programing
* Web workers
<button class="btn btnLarge btnAction