Senior Software Engineer
Hanzo is a world leader in web content preservation. Our client list includes some of the world’s biggest and best companies. We are expanding the existing team and looking to add a Senior Software Engineer who will be responsible for architecting, implementing and debugging our in house distributed systems. This exciting opportunity has a periodic research component as we explore new structured and unstructured data analysis techniques.
If you have strong Python experience, and have worked with distributed systems we would be interested in talking to you. Ideally you would also have experience of text analytics or other forms of data mining, experience with AWS, have worked with large unstructured datasets and have strong opinions on visualisation. You also would have experience with agile and continuous deployment, have developed enterprise software and have worked with industry standard configuration deployment and workflow tools.
- This senior software engineer role involves architecting, implementing and debugging our in house distributed systems. This covers our analytics, indexing and crawling systems.
- Hanzo is not your typical human focused webapp. Fewer people, lots of data, Higher latency. This role has two consumers of the software and data products your build: Our internal operations team who manage running crawls and will use the crawler software, clients of Hanzo who receive the analysis of our crawls. This role will also have a periodic research component as we explore new techniques.
- Write clean, documented, debuggable code across Hanzo’s backend systems to add new functionality and systems and improve the existing architecture.
- Test your own code’s functionality.
- Perform code review and testing of software produced by other team members so that your team delivers reliable and secure software.
- Follow Hanzo’s development process in order to effectively communicate your progress.
- Design and specify new systems and functionality across Hanzo’s backend systems to meet the needs of user stories produced from other business areas.
- Perform research and evaluation of analysis methods and system design so as to optimally produce new data products and software systems.
- Survey pre-existing third party software when implementing new functionality to avoid excess effort when developing new systems.
Key Performance Indicators
- Meeting your quarterly objectives and key results.
Challenge & Creativity/Decision Making:
- Understanding user stories and deciding how to fulfill them.
- Understanding the technical problem domain of a new system to pick existing design pattern if one applies.
- Understanding the field of text analysis and deciding on appropriate analysis methods for given data and user stories.
- When debugging distributed systems determining the optimal fix.
- Fluent written and spoken English.
- Strong python experience.
- Experience working with distributed systems – either developing or extensive use.
- Experience of Postgres or other SQL.
- Recent C#/.NET experience.
- Experience with text analytics or other form of data mining.
- Experience with AWS.
- Experience with large unstructured datasets.
- Experience developing visualisations.
- Experience with agile and continuous deployment.
- Experience developing enterprise software.
- Experience with industry standard configuration, deployment, workflow tools.
Additional Responsibilities and Core Competencies
- Autonomous – Hanzo is a remote first company – making this work requires a certain amount of self drive from employees. The ability to take accountability for tasks and be self-motivated to achieve results.
- Ability to describe and defend your work and ideas – describe what you’re doing and why you’re doing it in a context that is understandable by others within Hanzo.
- Work context aware – Don’t over engineer it, don’t brush off deep architectural issues.
- Responsive – the ability to work at a quick pace and handle reasonable interruptions.
- Seek & offer help – autonomy is not about wasting time when you could ask for help.
We are looking for people who have curious minds, who genuinely want to make the best possible solution and therefore who are able to communicate and defend their ideas well and to equally recognize when other people’s solutions may be more effective. At the same time you must have the ability to work at a quick pace and handle reasonable interruptions as well as having the ability to come up with solutions that are appropriate and not over engineered.
In return we will provide you with an exciting opportunity to make a meaningful contribution in a small team. We are a fast growing technology company and as the company grows there will be opportunity for career development as well.
We want a sustainable pace of development and therefore keep a good work/life balance. We are a remote first company based in the UK and as such we’re seeking people with a strong sense of autonomy. We use collaborative tools like slack to keep an active office environment. We would like to focus on candidates based in Europe. The ability to travel to regular co-location sessions in the UK will be important.