What Mentoring on Exercism.IO Involves

I mentor the Elixir and Groovy tracks on exercism.io.

Exercism.io is a Code Practice and Mentorship site.

Students sign up to various language tracks, attempt to solve problems and post a solution (which may or not be complete) possibly with a comment (mentors do like comments).

Mentors are asked to commit to marking 10 solutions a week, which should take about an hour. However it does not matter if you can only do one per week – every little helps.

Mentoring is a great way of deepening your knowledge of a language. You will need to be able to explain ways of improving code or hints on solving a problem to someone who may:

  • Not know the language
  • Have limited English skills

This is a great way to practice code reviews.

There is no need to have finished a track, although it may help if you have finished one or two exercises.

Sign up now

Interesting Article on Elixir Releases

Releases are the most complete deployment option for an Elixir project.

The article: http://blog.plataformatec.com.br/2019/05/updating-hex-pm-to-use-elixir-releases/?utm_campaign=blog-post-promotion&utm_medium=email&utm_source=subscribers-list

There are several ways to deploy an Elixir application:

  • Source code run with elixir script.exs
  • Run with mix
  • Deployed using an escript
  • A full release




Brexit Options


Here are the facts:

The EU will not reopen negotiations.

Our current extension will run out at Halloween.

There are three options for parliament:

  1. Accept May’s deal
  2. Revoke Article 50
  3. Crash out with No Deal

The first has been repeatedly rejected by parliament.







On The Unsuitability of The Candidates


Boris JohnsonMr Johnson is facing a private prosecution
over claims he deliberately lied during
the Referendum campaign.

 Mr Johnson is reported to
have replied: “Fuck business.”
Michael GoveI think the people in this country have
had enough of experts.
Stabbed Boris Johnson in the front during the previous
leadership campaign.
Jeremy HuntMessed up security contracts at the Olympics.
Hated by the NHS.
Can’t remember which country his wife is from.
Withdrew from ballot versus May
Ester McVeyMisled parliament over the new Universal Credit 
Dominic RaabSurprised that Britain is an island


Handling a Headless CMS






Groovy Closures


Here is a simple closure:

def time(String message, Closure body) {
  def start = Instant.now()
  def result = body.call()
  def finish = Instant.now()
  Duration duration = Duration.between(start, finish)
  log.info("$message took $duration")

This would allow you to go from:

def value = complexDatabaseQuery(1, 2, 3)


def msg = "Complex query 1, 2, 3"


This could be made more sophisticated using:

def start = Instant.now()
def result = body.call()
def finish = Instant.now()
Duration duration = Duration.between(start, finish)
if (duration.getSeconds() > max_duration_in_seconds) {


Replacing a MongoDB with a Lambda

The project that I currently work on uses a number of microservices. Several of these microservices use MongoDB. The platform provider that we are using to host these databases (compose.io) has announced that they are going to stop supporting Mongo in about two months time.


Several of the services use the following architecture:




Here is a diagram of the replacement:





This is a great starting point for serverless functions.