Think Big (previously Big Data Partnership) is a leading specialised consultancy helping large organisations adopt Big Data technologies. Think Big assists at all stages of adoption, from initial strategic consultation to proof of concept implementations, and into business-as-usual operations. Along the way, we offer training and support to effect the necessary organisational change to enhance the Customer’s use of cutting edge enterprise-ready technologies.

The Senior Software Engineer will have technical expertise, the desire to deliver work of the highest quality consistently, and a pragmatic approach to complex problems. The ideal candidate will be customer facing, agile, have experience in requirements gathering and technical story writing and some experience as a team lead would be advantageous. You will have the skills required to make technical decisions which positively impact the whole team’s velocity and the quality of the final product. Senior Software Engineers are proactive problem solvers, able to make informed decisions under pressure and revel in working at the cutting edge of software implementation.

Main Responsibilities

  • Advising customers on determining requirements
  • Writing use cases and validating acceptance criteria
  • Documenting work on projects with conviction
  • Highlight risks, assumptions and technical debt in a professional manner
  • Creating clean self-documenting code
  • Leading a technical team and owning technical decision making responsibilities in line with Think Big best practice and agreed wider programme of work
  • Knowing their way around Unix based operating systems, e.g. Linux, OS X

Having experience with software development tools:

  • Version/source control, e.g. git or svn
  • Build services, e.g Jenkins or Bamboo
  • Issue tracking, e.g. Jira

Having experience with agile methodology:

  • TDD
  • BDD
  • Continuous delivery
  • Ideally scrum master experience

Specific Responsibilities

  • Attend training, e.g. to learn about the latest technology
  • Share knowledge, e.g. to give internal talks or write blog posts
  • Contribute strategically, e.g. to build internal tools
  • Attend customer side engagements
  • Travel when necessary
  • Size and estimate workloads in an informed and reliable fashion
  • Anticipate problems and devise suitable solutions

With the stakeholders:

  • Translate functional requirements into code
  • Highlight risks and assumptions
  • Communicate in a clear, polite and concise fashion

Ensure code is:

  • Tested thoroughly as a driver of implementation
  • Robust and able to handle an exception
  • Efficient; covering common patterns and data structures
  • Readable and coherent

Required Skills, Knowledge and Abilities

Must have:

  • At least 5 years of demonstrable experience writing Java and/or Scala in a professional environment
  • Demonstrable experience of contributing to the release life cycle of production ready solutions
  • Ability to write software using TDD and BDD test approach
  • A passion for good engineering principles and the ability to write good, clean code
  • Demonstrable experience with core principles such as dependency management, design patterns, sorting algorithms, complexity estimation & persistence layers
  • Demonstrable experience with simple design patterns and OOP
  • Demonstrable experience with Concurrency and Parallelism
  • Demonstrable experience with Asynchronous and Synchronous design implementations
  • A clear understanding of multi-threaded design patterns
  • Demonstrate understanding of implications of JVM garbage collector algorithms
  • Experience writing user stories & acceptance criteria
  • Demonstrable experience with build automation and relevant tools like maven

Should have:

  • Worked with at least one distributed system
  • Experience working with business stakeholders
  • Experience with one or more scripting language like Python

Desirable Skills:

  • Demonstrable experience with one or more Big Data technologies, e.g. Spark, Hive, Pig, Storm, HDFS, Map Reduce, Zookeeper, Kafka…
  • Demonstrable experience with one or more NoSQL technologies, e.g. Cassandra, HBase
  • Demonstrable experience with one or more Search technologies, e.g. Elasticsearch, Lucene, Solr
  • Demonstrable experience with one or more Hadoop distributions, e.g. Hortonworks, MapR, Cloudera
  • Demonstrable experience with automated deployment and relevant tools like Puppet, Ansible, Chef, Salt

Education and Experience

  • A computer science degree or equivalent professional experience
  • Experience facing business stakeholders or consultancy experience

Work Environment

We offer a great package: competitive salary; annual bonus scheme; 26 days holiday including your birthday off; as well as life insurance; matched pension contribution; a season ticket loan; tax efficient childcare vouchers; cycle to work schemes; and the option to purchase additional holidays.

Think Big is based in Old Street, London, just off the aptly named ‘Silicon Roundabout’. We are often required to spend time with our Customers on-site. This allows us to collaborate, align and integrate with our Customers and their teams. Working with Customers outside of London can necessitate overnight stays and you will be required to participate in travel-based work as a Think Big team member.

We offer a flexible working environment, a working from home policy and the invitation to attend a weekly ‘tools down’ where the whole team gets together for tea, coffee and biscuits.

Not your average place to work: inspiring and passionate people; and a dynamic, relaxed and collaborative culture. A chance for you to join a rapidly expanding organisation with ambitious growth targets where you can make your mark and shape the future.

Tagged as: asynchronous, BDD, concurrency, Java, Linux, Scala, TDD