Software Engineer with focus on Data Applications
Berkeley, CA, USA
Job TitleSoftware Engineer with focus on Data Applications
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.
Compensation is competitive. This is a full-time role based in Berkeley, CA.
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 unemotional arguments for how to proceed based on evidence, and we want somebody who can be assertive enough to get the point across but dispassionate enough to plow through even if their favored course of action doesn't happen this time.
- We value a positive attitude and the abilities to adapt, learn, and collaborate.
Duties and responsibilities
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.
- 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.
- Able to 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). Must be able to learn quickly by reading appropriate documentation in order to write clean, idiomatic code.
Light DevOps Tasks
- Spinning up EC2 instances
- Logging into a server to perform updates
- Setting up databases both locally and in the cloud
- No telecommuting
- No Agencies Please
- Python (advanced)
- Linux (advanced)
- SQL (intermediate to advanced)
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
About the Company
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.