Software engineer with focus on data applications
DrivenData brings the transformative power of data science to organizations tackling the world’s biggest challenges. We run online machine learning challenges with social impact, and we work directly with mission-driven organizations to drive change through machine intelligence and analytics.
We are looking for a talented software engineer who is interested in using their job to take on tough social challenges, while growing their data acumen and building real-world applications. As a core member of a small team your role will include managing code development, brainstorming approaches to engineering problems, working closely with data science and machine learning developers, and taking an open and constructive mindset to getting things done across multiple projects. You’ll work directly with data scientists that started their careers as software engineers, bringing an experienced understanding of software processes alongside opportunities to learn new quant skills, tools, and ways of approaching data applications.
- We are looking for a talented Python engineer who is interested in data (possibly looking to transition into data engineering or data science).
- Advanced proficiency in Python and comfort with Linux a necessity. Good opportunity to learn the quant skills necessary to work in the data space. No need to have a background in math or a CS degree, but the job will involve a lot of quantitative thinking so the applicant should not be afraid of math.
- Working on a small team means doing a little bit of a lot of things. We're looking for somebody who can ask the right questions to figure out what is important, iterate between brainstorming together and working independently, and exercise sound engineering judgment to make reasonable decisions under conditions of ambiguity.
- Doing client-facing work involves turning uncertainty into a reasonable path forward. As a team, we value arguments for how to proceed based on evidence, and we want somebody who will present their opinion and engage in a discussion around the best way forward.
- We value a positive attitude and the abilities to adapt, learn, and collaborate.
Here are some of the things you'd be doing on an ordinary day:
Internal software development
- Maintain our Python codebase for drivendata.org, fix bugs, add features, safely refactor and maintain test coverage.
- Develop new internal tooling and improve on existing apps.
Client-facing software development
- Build a variety of applications, generally small green-field proofs of concept.
- Quickly learn and adopt new technologies on demand based on client needs; a typical engagement may include at least one data technology we haven't all worked with before (e.g. Elasticsearch, Apache Storm, Cassandra).
- Generally applications involve frontend and backend development, so modern JS libraries and best practices are a plus. (We ❤ Vue.js and use it for projects).
- Often our data-driven applications use sqlalchemy, pandas, numpy and scikit-learn to manage data and build models so familiarity with these libraries is a plus.
Light DevOps Tasks
- Spin up EC2 instances.
- Log into a server remotely to check on job status or debug issues.
- Set up databases both locally and in the cloud.
- Python (advanced)
- Linux (advanced)
- SQL (intermediate to advanced)
- Must be able to learn quickly by reading appropriate documentation in order to write clean, idiomatic code.
Nice to have
- Experience using IaaS like Amazon AWS or PaaS like Heroku
- Experience using Docker
- Exposure to big data tools like Spark or Hadoop, or familiarity with the underlying ideas like MapReduce
We offer competitive salary and benefits including flexible work and unlimited vacation, health coverage, and choice in the computing equipment you use.