Software Engineer

What we do

At Smartology we are on a mission to become the trusted world leader in facilitating the discovery of relevant knowledge.

Our flagship product; SmartMatch, is the leading premium branded content amplification platform.  With SmartMatch, we believe that adverts can be a positive experience for advertisers, publishers and end-users.

We respect user privacy and so don’t track user behaviour.  Instead, we target ads using semantics, meaning the ads we show are contextually relevant to what the user is already engaging with.

How we do it

Our culture is the collective personality of every individual who works here, sharing our core values of being innovative, collaborative, supportive, passionate and results driven.

We work with Agile and love open source, deploy to the cloud and automate everything.  We believe in doing things right but aren’t afraid to make mistakes.  Every individual in the team is supported in becoming the best they can be and are trusted with a great deal of autonomy.

Pair programming, TDD, Continuous Integration and shippable code every sprint are the norms here.

The Role

This role is ideal for individuals who are results focused and believe in doing it right the first time, every time, but also able to be pragmatic at the right time.  You should demonstrate pride in your craft, use a TDD approach and constantly strive to learn and improve.  

Smartology will support candidates in their professional development whether that is as a pure technical specialist or want to develop an element of people management in your role.

Smartology utilises the Agile Scrum methodology for product development, using Pair Programming, TDD and automation; CI and increasingly CD, we deploy in the cloud and even automate our infrastructure deployments.

At Smartology, you will be a part of an early stage venture as we move into the next phase of our growth following Series A funding.  Candidates will get the opportunity to join R&D on new innovations and work on projects that encompass high volume, real time transactions, NLP, ML, AI, big data and cloud projects.

Main Duties and Responsibilities

  1. Working within an agile team delivering within 1 week sprints.  You will contribute with stories, story pointing, backlog prioritisation, daily stand ups, retrospectives and reviews
  2. Ensure your work meets our high standards for quality
  3. Taking ownership of assigned projects, ensuring that all resources involved are properly aligned and informed to deliver commercial goals, by taking a leadership role in the technical definition and execution.  This is at the core of how we deliver professional development of individuals
  4. Ensure sprint commitments are met without a reduction in quality and knowing when to be pragmatic
  5. Play an active role in developing self, others and our processes.  This may include recommending and influencing standards, methods and procedures and, where these exist, ensure they are rigorously followed
  6. Ensure solutions are robust and technically fit for purpose and are designed with consideration for support and management in a production environment
  7. Identify and remove key person dependencies
  8. Test driven development
  9. Continuous Delivery
  10. Research & development in the fields of Natural Language Processing, Machine Learning and Artificial Intelligence
  11. Deploying to cloud based infrastructure, replicated across multiple locations globally
  12. Ensuring our services continue to exceed their response time SLA’s and QPS targets

PERSON SPECIFICATION

Essential

  1. University degree educated in the field of Computer Science/Engineering
  2. Java 8 or above, with recent hands on engineering experience and confidence to solve diverse, domain specific problems in this language
  3. Proven experience using three or more of the following technologies:  Python, Groovy, Git, MySQL, Linux/Unix, Amazon AWS, JUnit, Mockito, JMeter, Gradle
  4. Good understanding of the HTTP protocol
  5. Work related Test Driven Development experience
  6. Commitment to achieving deadlines
  7. Demonstrable problem analysis and resolution skills

Interpersonal Skills

  1. Ability to build effective working relationships with both technical peers and staff across the business
  2. Excellent written and verbal business communication skills

Desirable

  1. Java certified
  2. Experience of working with more than three of the following: XML/XSL, JSON, Gradle, NGINX, Jetty, Jenkins and Javascript

Our tech stack

java aws amazon-ec2 amazon-dynamodb elastic-map-reduce amazon-sqs amazon-rds amazon-cloudformation amazon-cloudFront amazon-s3 amazon-route53 amazon-sns amazon-lambda mysql(aurora)   spock gradle puppet openrtb amazon-api-gateway amazon-kinesis google-bigquery google-datastudio natural-language-processing machine-learning

We operate in the programmatic ad sector, meaning we have to build for low latency and real time responses.  We currently achieve single digit millisecond response times for hundreds of queries per second and growing.

We build for scale, robustness and resilience.  Everything is designed and built to enable no downtime deployment of systems, ensuring we maintain an always-on service.

We employ deep learning for our Natural Language Processing system and ad delivery.

We deliver in short (one week) agile iterations, so automation – of everything – is fundamental to what we do.

Beyond Java and AWS, we use the right tool for the job.  The team is empowered to make choices and enjoy a great deal of autonomy.

Benefits
  1. Pension plan

  2. Great working environment

  3. Generous holiday entitlement

  4. Learning and development opportunities

REMOTE WORKING

Since before the pandemic started we have supported staff working remotely and all staff have worked remotely since March 2020. We plan to open a new office in 2022, but all staff will be offered the flexibility to share their time between home and office.

Contact

If you’re interested contact our CTO Marcus Keane 

marcuskeane@smartology.net