Emma's story
Software Developer at ThoughtWorks on £32,000
Before Makers I trained as a historian of gender, education and technology. Coding is like craft-making, figuring out puzzles, even experimenting in the kitchen, activities I enjoy doing but would never have thought could be related to software engineering. It requires teamwork, imaginative thinking, and curiosity. It’s language-learning, problem-solving and communication all in one - I love it and because of that I got into coding.
Code sample
require 'set'
class Cell
attr_reader :slices, :value
def initialize(value)
@value = value.to_i
@slices = []
end
def add_slice(slice)
@slices << slice
end
def solved?
@value && @value != 0
end
def to_s
return '_' unless solved?
@value.to_s
end
def solve!
return if solved?
assume(candidates.first) if candidates.length == 1
end
def assume(value)
@value = value
end
def candidates
(1..9).to_set.subtract(neighbours)
end
def neighbours
@slices.flatten.map(&:value).inject(Set.new) {|set, digit| set << digit}.delete(0)
end
end
I chose to present this code because I am proud of the small, clean methods each with obvious names and clear responsibility.
Want to hire developers like Emma?
Request a call