Engineering Archives | Page 2 of 2 | Civis Analytics

Category Engineering

RubyAudit: Tirelessly auditing Ruby and RubyGems so you don’t have to

RubyAudit: Tirelessly auditing Ruby and RubyGems so you don’t have to

by Jeff C.

Security is hard. You’re busy writing code, but you also want to keep your application secure, so you’re doing double-duty developing new features and keeping an eye on vulnerabilities. You follow Hacker News and Reddit, but you know any good security strategy revolves around defense in depth, and you’re looking to add additional, automated tiers to help keep an eye...

Read More 

On the (Technical) Google Hangout

On the (Technical) Google Hangout

by Jeff C.

A year ago, we blogged about Interview Tips, providing a high-level FAQ about interviewing at Civis Analytics. Today we’d like to talk about a specific stage in our interview process: the Hangout Interview. At Civis Analytics, our engineering interview process is divided into three stages: a preliminary phone interview, a technical assessment, and the on-site. This is not to say...

Read More 

If it loses its quack, does it still talk like a duck? Using Swagger to detect breaking API changes.

If it loses its quack, does it still talk like a duck? Using Swagger to detect breaking API changes.

by Jeff C.

A while back we decided that all new functionality in the Civis platform would be implemented as a combination of API endpoints and front-end code. At the same time, we decided that all endpoints will be available to our customers. That is, if you can use a piece of functionality via the Civis UI, you can leverage the underlying API...

Read More 

Guiding our Summer Interns to Become More Effective Engineers

Guiding our Summer Interns to Become More Effective Engineers

by Jenny F.

A great internship or first job blends responsibility, real-world experience, and great mentorship. As we strived to create that balance this summer, our engineering team formed a book club for interns and recent graduates to talk about their experiences, read a different perspective, and learn from each other. In this blog post, you’ll hear from three of our interns on...

Read More 

Elegant AWS Access Management with the IAM Role Injector

Elegant AWS Access Management with the IAM Role Injector

by John K.

To me, an important part of being an effective engineer is utilizing the best tool for the job. Most times you’ll need to orchestrate a bunch of them together. At Civis Analytics, we use Ansible for a myriad of dissimilar configuration management tasks: spin up AWS CloudFormation templates, install application dependencies, configure AWS CloudWatch alarms, etc. We’ve been using Ansible...

Read More 

Using Docker to Run Python

by Civis Analytics

Here at Civis we like to use the best tool for the job, so integrating different tools and stacks is essential. Docker is the tool-du-jour for portable code. It allows us to maintain a rich environment for statistical programming, and easily call that environment’s executables from our webapp. Props to Docker for a great online tutorial. It’s available here. It’s...

Read More 

Person Matching on AWS

by Matt B.

Data scientists have to handle data from many different sources. Many of these sources however aren’t very useful until they can be combined together (list of potential customers, volunteer signups at a campaign rally, public records, etc). When an organization is trying to understand people, it needs all the information it has about individuals linked together in a single record....

Read More