YouGov · Jun 30th 2020
Crunch.io part of the YouGov PLC are looking for a number of talented Python Developers to join their fully remote teams.
Crunch.io is a market-defining company in the analytics SaaS marketplace. We’ve built a revolutionary platform that transforms our customers’ ability to drive insight from market research and survey data. We offer a complete survey data analysis platform that allows market researchers, analysts, and marketers to collaborate in a secure, cloud-based environment, using a simple, intuitive drag-and-drop interface to prepare, analyze, visualize and deliver survey data and analysis.
Quite simply, Crunch provides the quickest and easiest way for anyone, from CMO to PhD, with zero training, to analyze survey data. Users create tables, charts, graphs and maps. They filter, and slice-and-dice survey data directly in their browser.
We currently run our in-house production Python code against Redis, MongoDB, and ElasticSearch services. We proxy API requests through NGINX, load balance with ELBs, and deploy our React web application to AWS CloudFront CDN. Our current CI/CD process is built around GitHub, Jenkins, BlueOcean including unit, integration, and end to end tests and automated system deployments. We deploy to Auto Scaling Groups using Ansible and Cloud-Init.
What will I be doing?
Develop performance enhancements and new features in Crunch’s proprietary Python in-memory database.
Work closely with product managers, sales, and customer success team to understand the system’s functional and non-functional requirements.
Establish realistic estimates for timelines and ensure that project remains on target to meet deadlines.
Contribute to code quality through unit testing, integration testing, code review, and system design using Python.
Assist in diagnosing and fixing system failures quickly when they occur in your area of expertise. This is limited to when the on-call rotation needs a subject matter expert to help troubleshoot an issue.
Design and implement RESTful API endpoints using the Python programming language.
Experience / Qualifications:
Strong understanding of the software development lifecycle.
A record of successful delivery of SaaS and cloud-based applications.
Extensive programming experience using Python as a programming language
A commitment to producing robust, testable code.
Experience with data locality problems and caching issues
Expertise writing Cython or C extensions
Deep understanding of how a database system works internally (indexing, extents, memory management, concurrency, durability, journal)
Results-driven, self-motivated and enthusiastic.
Experience working in a Linux environment
Experience with client/server architectures
A keen interest in learning new things.
Expertise with the numpy library
Experience implementing custom messaging protocols (sequence numbers, ttl, etc)
Database experience using MongoDB and ElasticSearch
Bachelor’s Degree in Programming, Computer Science, or Engineering-related field.
Pytest testing experience
Design and deployment of Continuous Integration tools (e.g., Jenkins, Bamboo, Travis, etc)