City Modeller/Data Scientist Job

We’re looking for an experienced City Modeller and Data Scientist to help us work on an upcoming project. More details are below.

Who we are

Mastodon C are agile big data specialists. We offer the open source technology platform and the skills to help our clients realise the potential of their data. We work in particular in applying data to areas where we think we can have a positive impact on the world, like sustainability, health, and built environment.

Responsibilities
You will act as our inhouse city modelling expert for a major new product, applying big data, open data, and analytics technologies to improve city planning. We’ll be working with one major city as a test client, and hope to be bringing the product to a wider market in 2016.

You will in particular be responsible for:

  • Interacting with users and clients to understand their challenges and goals
  • Adjusting generic models for city scale purposes
  • Advice on alternative models to use for various city challenges
  • Disseminate knowledge around urban planning and city modelling throughout the team
  • Thinking through data workflows that will be intuitive for both technical and non-technical users
  • Querying data sources and coming up with recommendations for data usage and data related challenges
  • Working closely with the development team to create integrated city model structures – you will be specialising in the mathematics of the various city models, but you will also get involved with developing features end-to-end
  • Thinking through data workflows that will be intuitive for both technical and non-technical users
  • Working with our team to create meaningful, interactive visualisations of modelling results and forecasts

You will work day-to-day with the software development team and UX and UI focused staff, who you will collaborate with to design and implement the product.

Who you are

Our ideal person for this role would:

Must Have:

  • Have a Masters or PhD in urban planning, ecological modeling or similar.
  • Have had exposure to a wide range of city related models, such as population, pollution, transport and housing, and knowing the pros and cons of various model approaches
  • Be keen to learn about new areas of city modelling
  • Be excited to share their knowledge with the team
  • Have good communication skills – able to listen to users and clients and understand their challenges and goals and being able to communicate complex structures and models to non-technical users
  • Be interested in and excited about applying data and analytics to important issues in the world

Nice to Have:

  • Have experience with Javascript, HTML, and CSS, and be comfortable learning other new languages
  • Have experience with web-based data visualisation
  • Have experience with ETL or big data technologies (spark, hadoop, other)
  • Experience in or interest in clojure

Salary and work environment

We are based in Fitzroy Street, near Euston, London. We’re also happy to discuss part-remote or part-time arrangements if those are important for you.

We’re a small and very consultative team, which means that every member has a big influence on how things run and has a lot of control over the way they work.

The salary for this role is up to £40,000 per year. Our preferred start date is 1st June.

If this looks like your kind of a job, please contact us at team@mastodonc.com with a CV (and, if possible, recent code or project examples) and we’ll talk.

Please note that you need to be eligible to work in the UK to apply for this position.

No agents please.

Want to build UI in clojurescript?

We’re looking for a User Interface designer and developer to help us work on an upcoming project. More details are below.

Who we are

Mastodon C are agile big data specialists. We offer the open source technology platform and the skills to help our clients realise the potential of their data. We work in particular in applying data to areas where we think we can have a positive impact on the world, like sustainability, health, and built environment.

Responsibilities

You will be the lead User Interface designer and developer for a major new product, applying big data, open data, and analytics technologies to improve city planning. We’ll be working with one major city as a test client, and hope to be bringing the product to a wider market from late 2016.

You will in particular be responsible for:

  • Interacting with users and clients to understand their challenges and goals
  • Making and keeping the interface beautiful and usable
  • Thinking through, designing, and implementing data workflows that will be intuitive for non-technical and less-technical users
  • Working within the development team to develop features end-to-end – you will be specialising in front end and UI technologies, but you will also get involved with building the rest of the technology in the product

You will work day-to-day with our UX consultant, who will be gathering and shaping user needs and overall design, and with the rest of the software development team, who you will collaborate with to design and implement the product.

Who you are

Our ideal person for this role would:

  • Have already held a professional designer or software developer role
  • Know or be interested in learning ClojureScript – for example, we hope you would find this article interesting
  • Have experience with Javascript, HTML, and CSS, and be comfortable learning other new languages
  • Be excited about enhancing your UI and UX skills
  • Be interested in and excited about applying data and analytics to important issues in the world
  • Be able to demonstrate experience in turning complex needs into simple and elegant interfaces

Salary and work environment

We are based in Fitzroy Street, near Euston, London. We’re also happy to discuss part-remote or part-time arrangements if those are important for you.

We’re a small and very consultative team, which means that every member has a big influence on how things run and has a lot of control over the way they work.

The salary for this role is up to £40,000 per year. Our preferred start date is 1st June.

If this looks like your kind of a job, please contact us at theteam@mastodonc.com with a CV (and, if possible, recent code or project examples) and we’ll talk.

Please note that you need to be eligible to work in the UK to apply for this position.
No agents please.

Handoffs considered expensive

It is a truth universally acknowledged, that a team of coders in possession of dependencies must be in trouble. Much of agile at scale is about reducing or eliminating the dependencies between teams, usually by making multiskilled teams (see devops et al). Since working at Mastodon C though I’ve noticed that I’ve not suffered this as much as I used to. I figured it might have just been to do with being in a startup and having escaped the madness of enterprise software and bureaucratic large companies and massive teams.

However, I’ve noticed this pain again in some of the projects we’ve done, where we have dependencies on other teams to deliver either front end or back end things for us. I know the people well on the other teams and I know that they are *very* skilled, so their ability to execute isn’t the problem. They do everything right. The communication levels are high and they build things that we couldn’t do ourselves.

People usually say that choice of language doesn’t really affect what you are doing that much, but I feel it is making a big difference for us. From deployments, to database access, to services, to the front end we are using clojure and clojurescript. Most of our features go from the database to the front end and are delivered by one developer or a pair of developers. This is an amazing freedom.

All of our team members can do the basics, with only a few times when we need expert help on deploying, design or data science. This gives them a chance to improve on weak spots in addition to gaining more expertise. Using effectively the same language at all layers gives us this strength. I can look at code in the front end and look at code running in spark and know that there will be map/reduce/keep working on data structures where I’m going to assoc and dissoc things on a hashmap and then working on the values held there.

This means that any developer can implement a whole idea. They may need help, but they can do the vertical slice themselves and this also helps them think about the user needs as they are taking the feature all the way to the end rather than just implementing something in the backend. It also helps them think about performance and monitoring as they aren’t just implementing a bit of UI.

I like working with experts. It helps us to do things better than we could have done on our own, but there is a cost to this. The cost is in waiting and communication with the expert and being blocked if they aren’t available. Sometimes this cost is worth it, but I’m glad that most of the time we don’t have to take on that cost and that we can usually choose when we want to.

Reflections on an internship

Our latest superstar intern, Max, has just left us to go back to his last year of university at Queen Mary University of London.

https://twitter.com/AnnaPawlicka/status/505408829627326464

He’s been working with us on server automation and on separating out our code base into better modules – heavy work, and with a steep learning curve, but important work for the company. Happily, he’s done a brilliant job. We asked him to write up some thoughts on how he found it, and what he did and didn’t like – and we thought you’d like to read them too.

From the start, I felt very included. Even as an intern I was never left out of anything and that was my first big impression of the team at MastodonC. I remember in my first week when everyone was moving to the meeting room for democake, I was saying that I have nothing to show. But Anna explained that didn’t matter, and I could just talk about what I had learned.

During my internship, I was given the opportunity to work on many different and interesting tasks. From initially learning the basics of Clojure and getting the chance to do some ClojureScript too, all the way to creating virtual machines to allow certain tasks to be run locally for testing. I learned a new way of thinking with Clojure which was different to all of my previous OO experience, and using virtual machines locally to run servers was completely new to me too. In the end I eventually managed to conquer setting up a virtual FTP server, which took me far too long!

A lot of my work over the summer involved writing tests for existing code. I had to check whether given inputs would match a schema. However, the team wanted to tests these in massive numbers, not just a couple of hard-coded tests. So I got to learn about generative testing using Clojure’s test.check library. Through this I got the chance to write my own small Clojure library. The team wanted to generate test data from existing schemas built from the Prismatic Schema library. After a lot of researching I couldn’t find anything that would do this well enough, so I had a go at creating my own. It is completely open source and can be found (and added to!) on GitHub. Doing this showed me how friendly and helpful the Clojure community is, when I had problems I could ask questions on specific Google Groups or the more general London Clojurians, as well as various IRC channels.

Now that it has finished, I definitely miss everyone at MastodonC and I would happily work there again if I get the chance to. Thank you so much for a fun, interesting and rewarding time!

Thank you Fran for being a great boss, who I could talk to about any questions I had. Thank you Bruce, for making me into a person who paredit is for. Thank you Neale for helping me with all of my Git mishaps and showing off ridiculous Emacs commands. Thank you Anna for coercing me into going to Clojure Dojos.

Thanks very much Max for spending time with us – it’s been a great experience, and we hope to get you back someday.