Senior Software Engineer



Why join us

We’re a small team with a clear growth trajectory, so you’ll be getting in on the ground floor of an exciting and dynamic startup. You’ll be working alongside smart and driven computational urban modellers, software engineers, data scientists and domain experts who are passionate about applying technology to solve the biggest problems facing cities.

We’re looking for an experienced software engineer who can help scale our applications for use by hundreds of public and private sector organisations and help magnify the capabilities of our team of urban system scientists.

What you’ll get up to

  • Implement algorithms for distributed computing for urban data analytics, urban simulation models and urban forecasting models.

  • Implement space-time analysis and forecasting algorithms for large spatial datasets.

  • Implement the modules as web-based processing services to our collaborative decision support platform, adding new functionality and features where appropriate.

  • Contribute to the system architecture and feed your insights to the product team to continuously improve the platform.

  • Build capabilities to efficiently integrate new data sources into the platform.

  • Build data ingestion and integration pipelines to optimize the delivery of a networked urban simulation model with thousands of concurrent events, unique data sources, and operational scalability challenges

  • Unit testing, tracking, system monitoring, security, auditing and other ways of ensuring the quality of the platform and the processes around it.

  • Provide support and coaching for the team’s data scientists implementing modelling functionality.

Why you’ll win

You have an understanding of Computer Science theory and implementation and previous experience in cloud application development. You have strong programming experience in operational/production systems and have coordinated closely with team members to build products from scratch. You are excited by working in a fast growing, dynamic team, keen on sharing best practice and on continuous learning. You have proven organizational skills and are an effective communicator.

You are great at:

  • Developing software using the following technologies: Java, Python, C++

  • Understanding HTML5, JavaScript, CSS, MV* frameworks (e.g. backbone.js, AngularJS, ReactJS)

  • Applying Agile Development Methods with a strong development background and experience of continuous integration/continuous delivery technologies

  • Implementing bespoke software development on Cloud platforms (GCP or AWS)

  • Developing web applications using RESTful APIs

  • Defining data models for complex software projects

  • Communicating complex technical concepts with different audiences including non-technical team members and senior stakeholders

  • Designing and implementing enterprise scale architectures for cloud applications in hybrid environments

You are familiar with:

  • Building streaming and batch applications with technologies including: Apache Hadoop, Apache Spark and Google Cloud Dataflow. or Hadoop/Spark

  • Unit testing including the creation of test data sets

  • Relational and non-relational databases and when to use them

Big pluses:

  • Experience working with spatial data structures and algorithms.

  • Understanding statistics and data science to work closely with urban modellers.

  • Working with data formats including JSON, XML, CSV, Shapefiles, GML, GeoTiffs, Avro, etc; either scripting or using ETL technologies.

  • Experience with Docker, Kubernetes, ESRI ArcGIS, PostgreSQL + PostGIS, GRASS GIS, MapServer, Geoserver, Google Maps, Mapbox, OpenLayers

Start by editing this text…