Ben Friedland

resume@bugben.com
http://www.bugben.com

This resume isn't static. It is an application which I wrote. It is open source. Feel free to use it and expand on it.

This is the fully-styled version of my home page. If you'd like you can view it in other formats:

Profile Summary

  • Senior software/systems engineer with fifteen years of professional experience.
  • Unique mix of software engineering and systems administration.
  • Possess a wide range of technical knowledge in many areas, specializing in software architecture and development.
  • Extremely knowledgeable of the Linux operating system, along with various applications and tools commonly used in a Linux environment.
  • Twelve years of experience in the analysis, design and development of both commercial and custom software.
  • Red Hat Certified Engineer and Red Hat Certified Systems Administrator (Certification ID: 120-054-903)
  • Very strong analytical, oral, and written communication skills.
  • Contributor and supporter of various open source software projects.
  • True full-stack developer. From backend to front-end - mobile to desktop - system administration to software architecture.
  • Experience in shops of all sizes. Small startups running a one-man show - and huge enterprises contributing to code bases touched by hundreds.
  • Am human. Can read captchas with 98% accuracy.

Expertise

Web Application Development

Python, Django, Django Rest Framework, Flask, Front End Development, HTML5, JavaScript/ES6, Angular, jQuery, AJAX, Bootstrap 3, Web Sockets

Mobile Development

Responsive Web Design, REST communication (creation and consumption)

Operating Systems

Linux (Amazon Linux AMI , Red Hat Enterprise Linux, Ubuntu, Debian, Fedora, CentOS), other Unix variants, OSX, Microsoft Windows

Other Languages

Microsoft .NET, C#, SQL

Databases

MySQL, PostgreSQL, Microsoft SQL Server 2000-2008, Oracle: 8i - 9i - 10g

Testing

Python unittest, pytest, Test Driven Development (TDD), Selenium, CI (Jenkins, Bamboo, Travis CI), Page Models, Test Reporting

Other Skills

Bash (shell scripting), Zsh, VIM, Tmux/screen, ORM, GIT, Heroku, Amazon (EC2, S3, Boto, Elastic Beanstalk, Route 53, RDS, Lambda), Docker, Docker Compose, Vagrant, Apache, GIS, Reporting, Video/Audio Processing and Production, Graphic Design, Image Editing

Community Contributions

HSTS Super Cookie

Creates a HSTS Supercookie to fingerprint a browser

HTTP Strict Transport Security (HSTS) is a web security standard implemented by browsers via a Response header which instructs the browser to send subsequent requests to this particular URL over HTTPS, even if the original request was made using HTTP. When a browser receives a HSTS instruction, that instruction is retained no matter what. Even if you go incognito or private. This is a proof of concept self-hosted application which will lay a 'super cookie' using the HSTS web standard.

Project Page
https://github.com/ben174/hsts-cookie
Source Code
https://github.com/ben174/hsts-cookie
A&G Calendar

A podcast calendar for listeners to have a resource for finding episodes of my favorite radio show.

Listeners of the popular radio show "The Armstrong and Getty Show" were constantly having trouble finding episodes of the podcast available online. There was no clean and easy way to find episodes. I made this site as an attempt to simplify navigation and make episodes easily searchable.

Project Page
http://www.armstrongandgettybingo.com/
Source Code
https://github.com/ben174/angrates
Shower Texts

A service to send a daily Shower Thought to your phone.

A web application which allows users to sign up and receive a daily bit of inspiration from Reddit's ShowerThoughts subreddit. Pulls the top post of the day and sends it to all subscribers. Featured in Wired Magazine's Gear section: http://www.wired.com/2015/08/4-new-apps-use-shower-texts-bar-roulette/

Project Page
http://www.showertexts.com/
Source Code
https://github.com/ben174/showertexts
Git Draw

A Chrome Extension which allows you to draw pictures in your GitHub heat map.

This is a Chrome extension which will allow you to freely draw on your GitHub heat map. You can then export your drawing to a script containing a git commit log. Once you've run and pushed this script to a new repository, your commit log will match the drawing you made. Listed on GitHub's Trending Repositories on the day it was released.

Project Page
https://github.com/ben174/git-draw
Source Code
https://github.com/ben174/git-draw
My Resume

A Django project which hosts my resume.

My resume itself was a project of its own. Written in Python/Django - it makes it way easier to maintain my profile. And since all the data is stored in a database - it is easy to export my resume in any format.

I have released the source on GitHub for anyone to view and/or use.

Project Page
http://www.bugben.com
Source Code
https://github.com/ben174/bugben
Rick Roulette

A Chrome Extension so you can finally Rick Roll yourself.

This is a Chrome Extension which will randomly Rick Roll you. Whenever you visit a YouTube page, you'll have a 1 in N chance of having the video element replaced with a Rick Roll. The value of N is 6 by default but you can configure this to whatever number you choose.

Project Page
http://www.rickroulette.com
Source Code
https://github.com/ben174/rick-roulette
Home Control

An application for home automation

Parses your voice and executes commands based on input. Some commands it understands: 'Turn office lights on' 'Turn the house red.' 'Turn upstairs lights blue.' 'Set temperature to 68' 'Turn living room into a rainbow.' 'Set staircase brightness to 5.' (1-10 scale)

Project Page
http://www.github.com/ben174/homecontrol
Source Code
http://www.github.com/ben174/homecontrol
Riker Ipsum

Generates text - like lorem ipsum - but uses real English. Taken from random samplings of dialog spoken by Commander William Riker in Star Trek: The Next Generation

Generates random text using real English - taken from random samplings of the entire catalog of dialog spoken by Commander William Riker in every episode of Star Trek: The Next Generation.

Useful for provisioning sample data to test a DB, or creating filler text for a design.

Since the entire catalog of dialog from every episode is included, endless possibilites of gibberish can be expected.

Project Page
http://ben174.github.io/rikeripsum/
Source Code
https://github.com/ben174/rikeripsum
Profanity

A library to check for (and censor) profanity in text strings.

This library was designed to be an easy way to check text for inappropriate content. It includes a basic word list and can be used with custom word lists. This package has been submitted to PyPI and can be installed with a simple: pip install profanity

Project Page
http://ben174.github.io/profanity/
Source Code
http://www.github.com/ben174/profanity
PyDvorak

A Python curses application to help teach the Dvorak keymap.

A console application written in Python to help teach me to type in Dvorak - which is an alternative to the Qwerty keymap.

Project Page
https://github.com/ben174/pydvorak
Source Code
https://github.com/ben174/pydvorak
My Touch Map Sync

A utility to read map points from email attachments and push them to MyFord Touch / SYNC services.

The intent of this utility is to make it easy to send web points from a phone to MyFord Touch (Sync). Currently they have a app that is supposed to do this called Sync Destinations. But it's horrible. The map data it uses is bad and they should feel bad. This allows me to use my native Maps application and just share the point. I email it to an email address, and this script checks that mail address at a regular interval. When it sees a new message, it grabs the map point (VCF file), parses it, then sends it to the web service.

This utility:

  • Checks email on the account
  • Looks for emails containing a VCF file.
  • Parses the VCF file for geographical data.
  • Sends that data to the MyFord Touch web service.
  • Deletes ALL MAIL from the mailbox.

Project Page
https://github.com/ben174/mytush
Source Code
https://github.com/ben174/mytush

Experience

Shape Security

Mountain View, California
February, 2015 - Current
Tools / Automation Engineer

  • Created a dummy web application, in Flask, containing page fixtures of every conceivable web quirk that might exist on a client site. Test Authors would write tests against these fixtures using page models. Some features: - A "stage" which can be set via REST. Subsequent calls to that page would respond with the stage that was set on the previous REST call. - Complicated forms which submit in all sorts of different ways. - Completely customizable CSP headers, response codes, rendering modes, and more.
  • Contributed heavily to an internal test framework - written in Python - which abstracted complex and tedious test authoring tasks into easy-to-consume libraries for test authors to use.
  • Created entire internal reporting application to collect test results. This application was built in Python/Django and had a very complex five-tiered object model spanning over fifteen different models. Used Django REST Framework to make REST endpoints which test authors would post results to.
  • "Automate the impossible" - creating tests to break countermeasures which are intended to fight bot traffic. This involves beating the very countermeasures the product is intended to protect against. (Sort of, internal debugging backdoors are often provided).
  • For fun, created a "Lunch Bot" which would scrape weekly lunch menus and send daily notifications to the company with the daily lunch menu.
Clutter

Los Angeles, CA (Working remote from SF Bay Area)
December, 2013 - Current
Principal Architect

  • Build infrastructure from the ground up using Python/Django deployed to Heroku.
  • Recruited and lead contractors and interns to assist in rapidly building a brand and operations infrastructure while seeking funding.
KIXEYE

San Francisco, California
August, 2013 - March, 2014
Lead Tools Engineer

  • Team leader in a team of seven - in an extremely fast-paced tools environment for one of the big names in video games. Used Python + Flask to develop internal tools to manage user data within several games.
  • Interacted with REST endpoints for several video games, creating a common UI to manage individual aspects of each game.
TiVo

Santa Clara, California
June, 2011 - August, 2013
Senior Unix Engineer / Tools Developer

  • Heavy use of Django to create several internal tools, including an advanced scheduling tool used daily by the NOC team. This tool is capable of finding holes in the schedule, allowing users to request time off and allows managers to manage the schedule using a very slick UI.
  • In a very short time, learned the vast workings of one of the most complex Linux environments in existence. TiVo pioneered using Linux as an appliance, and the workplace offered the opportunity to work with some of the greatest minds in the field.
  • Mixed heavy development talents with day-to-day operations within the NOC and was able to automate many tasks, saving several man-hours per day.
MedicAlert Foundation

Turlock, California
November, 2008 - June, 2011
Senior Software Engineer

  • Honored employee - awarded recognition In April 2009. The only person in a 200+ employee company to be honored the entire year of 2009.
  • Assisted with migration from Sun Web Server to Apache. Wrote scripts to automatically migrate a huge list of redirects from Sun's XML redirect configuration to Apache's text based configuration.
  • Heavy use of JQuery and Ajax to create a personal health record editor for users of MedicAlert service. This replaced an old broken system and the company was extremely pleased to go from several dozens of customer complaints per day to virtually zero.
  • Developed a class library in .NET which acted as a transport for web service calls between a legacy VB6 app and newer web services.
American Medical Response

Modesto, California
November, 2006 - November, 2008
Senior Software Engineer

  • Developed an automatic update client run on the field by hundreds of ambulance which would query a web service to determine if a newer version of software was available. If a new package was available it would queue up the download using Microsoft's Background Intelligent Transfer Service (BITS) API , which would trickle download the file based on limited internet availability on the field. When the download was complete, the tool would decrypt the archive and extract, then automatically restart the necessary modules. Every bit of this was done without any UI interaction - completely invisible to the user.
  • Created a very sophisticated console based daemon app which would monitor Tracy Fire Department's live data stream and send information to AMR's Ambulance dispatcher units through a six-step process of downloading, extracting, converting, processing, uploading, and logging. This data was emergency-service-critical and the daemon needed to be rock solid. It never once went down.
MedicAlert Foundation

Turlock, California
January, 2006 - July, 2006
.NET Engineer (Consultant)

  • Introduced and implemented object/relational persistence tools. Created entire class library, then used NHibernate to logically map all objects to existing database structure. Then created very simple CRUDs to allow edits through a .NET Web Service.
Stanislaus County Superior Court

Modesto, California
July, 2004 - December, 2005
.NET Engineer (Consultant)

  • Migrated database from Oracle to SQL Server.
  • Developed entire cashiering system from the ground up using C# and SQL Server. This included an expansion of their database schema and migration of portions of an old, undocumented Cobol application.
  • Created a ASP.NET web-based court calendar application to assist with the scheduling of court cases. This calendar has become a key component in their day-to-day operations and was featured in an article in the Modesto Bee.
LowerMyBills.com

Santa Monica, California
November, 2003 - June, 2004
.NET Engineer

  • Developed a front-end Windows Forms user interface for data entry of lenders. Also created an auto-updating component that would query an internal web server on each launch, looking for updates. If updates were available, it would update the application and restart the application, all transparent to the user.
  • Performed load testing for migrating an existing application from JRUN to Tomcat with clustering and load balancing.
  • Wrote an extensive logging framework for tracking and debugging issues within the enterprise applications.
University of Southern California (USC)

Los Angeles, California
February, 2013 - August, 2013
Software Developer - Consultant

  • Consultant for various jobs. Created a data warehouse application in Django with advanced reshaping of data.
California CAD Solutions

Modesto, California
December, 2001 - October, 2003 / June, 1999 - January, 2000
Senior Programmer / Architect

  • Used advanced geometry to create a geocoding algorithm which was capable of guessing the geographic location of a street address.
  • Created a real-time hierarchical database tracer for tracing pipe networks upstream or downstream.
  • Developed a modular Web application framework backend in ColdFusion with a skinnable front-end.
  • Designed, architected, and programmed many GIS solutions on a variety of platforms including ColdFusion, ASP.NET (C#), and J2EE (Tomcat).
  • Interfaced with many different database platforms including DB2, Oracle 8/9i, SQL Server, Microsoft Access, DBF, SHP, SDF, MySQL, and many more.
  • Performed advanced file I/O on the SHP binary file format. This included parsing header information and creating a separate index file containing file offset addresses of key data.
  • Created T-SQL and PL/SQL stored procedures for nightly batch processing of geographical data.
Therapeutic Research, Inc.

Stockton, California
October, 2000 - July, 2001
Contract Position: Application Developer / Database Architect

  • Developed a secure authentication system for subscribers to an e-zine. (ASP 3.0)
  • Migrated a database of over 100,000 subscribers to a normalized database in SQL Server 2000.
Admail West

Sacramento, California
June, 2000 - October, 2000
Team Leader, Intranet Application Development

  • Managed a team of four developers in the creation of an intranet application for data entry. This included a rich front-end - heavy in JavaScript/DHTML, and a powerful back-end in ColdFusion.
  • Developed a database logging system which would track the speed and accuracy of individual data entry clerks.
KeraVision, Inc.

San Rafael, California
June, 2000
Contract Position: ColdFusion Developer

  • Performed maintenance on a high-traffic web site to decrease load times.
  • Optimized back-end ColdFusion code to decrease server impact during peak traffic.
marchFIRST, Inc.

San Francisco, California
January, 2000 - June, 2000
ColdFusion Developer

  • Created dynamic front-end pages for large sites such as Pottery Barn, Williams-Sonoma, and Toys Us.
  • Lead a team of six engineers for the entire front-end development of Williams-Sonoma Online Wedding Registry.
Big Valley Internet

Ceres, California
April, 1998 - June, 1999
Webmaster

  • Created an online telephone prefix lookup to find local numbers for a large ISP.
  • Used ColdFusion to create dynamic Web applications for several clients.