Skip to content

Instantly share code, notes, and snippets.

View Hornswoggles's full-sized avatar

Ray Thompson Hornswoggles

View GitHub Profile
Instructions
During the interview you will open your favorite editor and share your screen. Start by creating a git repository where the initial commit is blank. Commit your work as you go and include a message in each commit. You may search the internet for documentation and use small code snippets off the internet to perform discrete tasks but the implementation as a whole should be your own. You are not expected to complete the application in 30 minutes. This challenge is meant to spark conversation, so you should come prepared to answer questions about how you would approach each task.
Problem Statement
As a part of a contrived data pipeline we ingest contact information from a third party in CSV format as a file or datastream. We'd like to ingest this data into a basic SQL datastore. Construct the application as if we were going to expand upon its functionality in the future. Think of it as an application and not just a one off script.
Input
See gist (CSV of contacts)
Must
first_name last_name address city county state zip phone email
James Johnson 6649 N Blue Gum St New Orleans Orleans LA 70116 504-845-1427 jbutt@gmail.com
Josephine Darakjy 4 B Blue Ridge Blvd Brighton Livingston MI 48116 810-374-9840 josephine_darakjy@darakjy.org
Art Venere 8 W Cerritos Ave #54 Bridgeport Gloucester NJ 8014 856-264-4130 art@venere.org
Lenna Paprocki 639 Main St Anchorage Anchorage AK 99501 907-921-2010 lpaprocki@hotmail.com
Donette Foller 34 Center St Hamilton Butler OH 45011 513-549-4561 donette.foller@cox.net
Simona Morasca 3 Mcauley Dr Ashland Ashland OH 44805 419-800-6759 simona@morasca.com
Mitsue Tollner 7 Eads St Chicago Cook IL 60632 773-924-8565 mitsue_tollner@yahoo.com
Leota Dilliard 7 W Jackson Blvd San Jose Santa Clara CA 95111 408-813-1105 leota@hotmail.com
Sage Wieser 5 Boston Ave #88 Sioux Falls Minnehaha SD 57105 605-794-4895 sage_wieser@cox.net

Keybase proof

I hereby claim:

  • I am hornswoggles on github.
  • I am hornswoggles (https://keybase.io/hornswoggles) on keybase.
  • I have a public key ASCoDrZRXj02oFuRinmUa8w19IOISfuYauTE5OZil2z4Qgo

To claim this, I am signing this object:

@Hornswoggles
Hornswoggles / reloading_ssl_ctx_factory.py
Created December 10, 2018 21:05
Hot reload a cert on update
# pantheon/ssl_context_factory.py
import os
import time
from OpenSSL import SSL
from twisted.internet import ssl
class ReloadingSSLContextFactory(ssl.DefaultOpenSSLContextFactory, object):
"""
@Hornswoggles
Hornswoggles / mini.py
Created May 17, 2017 03:15
Mini web service with optional cert and jwt authentication and authorization
"""
This is a webservice that is implemented as a standalone twisted plugin.
All of the classes here could be separated out into distinct files but for
this example I find it easier to read if it's all together.
- Validates client certificate's
- Implements Twisted Cred to Authenticate Requests using JSON Web Tokens
TODO:
Create the Avatar Resource class that will perform authorization against our ACL