avatar

Hello,
my name is James and I am a devops samurai

About Me

I am a senior Linux system administrator and web developer with 15 years of experience in planning, coordination, implementation, and maintenance of applications and infrastructure required to support day-to-day operations and long-term goals in varied business environments.

Contact

415.735.4335
Facebook
Github
jl@jameslinden.com
Twitter
Skype
jameslinden
Ham Radio

Interesting Statistics

1988
Year of first code
250+
Server instances built & deployed
40+
Terabytes of data processed
1
Times published (contributing author Spidering Hacks)
4
Custom Linux distributions built
100+
Websites built
50+
Custom applications built

Select Projects

  • 2016

    Report documentation portal application

    The portal is a web-based application to facilitate reporting of equipment inspections and product deliveries for the petroleum industry. This application permits the technicians to log inspections and deliveries via their mobile devices, giving in-office personnel immediate access to the data. Customers are also able to login to view generated PDFs of the reports.

    Additional functionality has been added to track the location and status of thousands of leased cylinders and the product in them.

    Javascript jQuery CSS HTML Bootstrap PHP MongoDB PDF GIS Fat Free Framework

  • 2016

    Entegre UI Toolkit (JS)

    The Entegre UI Toolkit for javascript is a comprehensive UI toolkit composed of 24 core Bootstrap components and a growing library of over a dozen addon widgets and advanced controls for building interfaces in Javascript for complex applications.

    This project includes an extensive documentation site to accompany the source code.

    Javascript jQuery CSS HTML Bootstrap Ruby Middleman

  • 2015

    High availability DNS solution

    Created a high availability DNS cluster with a primary node and four secondary nodes. Each secondary node is an independant virtual machine in a different data center, making them geographically spread. Zones are automatically managed by the secondary nodes using PowerDNS's super masters feature, making cluster management simple and automated. The system makes uses of DNS specific monitoring checks so that if any node is unresponsive for more than 30 seconds, requests are automatically routed to the next available node.

    DNS Linux PowerDNS TCP/IP

  • since 2014

    Realtime interface for mapping

    MapBook is a custom web application centered around a realtime collaboration environment to enable users to create complex geographic maps. The frontend is a PHP powered website relying on several Javascript libraries to interact witih a Ruby powered realtime backend via a RabbitMQ broker.

    The first prototype used node.js for the realtime backend, while the alpha was refactored to use MQTT (with Mosquitto), but it was found to be unstable with the particular requirements of the application, so the beta version was built on top of RabbitMQ.

    PHP Ruby SQL Javascript jQuery RabbitMQ Realtime TaffyDB Leaflet SockJS

  • since 2013

    Automated Wordpress deployment and hosting environment

    Fully automated solution to deploy fully functional, pre-populated Wordpress websites based on a single form. System optionally registers domain name, creates DNS zone, email configuration, FTP account as needed depending on form options. Deployment process includes creating database, deploying prebuilt Wordpress website, ensuring Wordpress core/themes/plugins are all up to date, and doing various confirmation processes. Solution includes a custom administration panel for managing the deployed websites.

    Bash PHP SQL OpenSRS API Automation Hosting

  • 2014 to 2015

    Custom telemetry dashboard

    A custom web application to merge data from six different SCADA sources, along with location-specific weather data to provide the user with an overview of their propietary monitoring telemetry. Data is synchronized via raw data files and imported into a collated database, and viewed using a custom PHP application. The frontend implements Bootstrap for mobile-friendly screens, and Google Charts API for smooth graphs.

    PHP SQL Bootstrap Google Charts API Weather Underground API SCADA

  • 2012 to 2013

    Business management application

    Designed and implemented a business application which combined the features of four applications into a single solution. These included portions of customer relationship management (CRM), project management, document management, and time tracking features. Use of web-based technologies gives the client flexibility for future features and scalability for business growth, along with remote-access capability for out-of-office staff requirements. The application saves the client a significant number staff hours per week in administrative overhead, and gives them better oversight and tracking on day-to-day operations.

    PHP SQL Javascript

  • 2012

    Prototype Twitter voting machine

    The ad-hoc voting machine used Twitter's Firehose API to subscribe to specific streams. All tweets were parsed for specific syntax that would grant topics or users specific points. For example: a tweet of #linux + would mean the tweet author was upvoting the linux topic, while a tweet of @kodekrash #linux + would mean the author was upvoting kodekrash on the linux topic (assuming the author was not kodekrash -- ego voting not permitted!). The tokenizer understood about 20 different voting syntaxes, with support for multiple topics, links, users, contextual topics, and various combinations.

    The purpose of this prototype was three-fold:
      1. Create a semi-intelligent tokenizer that could scale under heavy load
      2. Experiment with realtime asynchronous data processing
      3. Experiment with gamification metrics in a simplified system

    PHP Twitter API OAuth MariaDB SQL Metrics Realtime

  • 2011

    Custom UI widgets

    WorkJS is a set of custom user interface widgets implemented as jQuery plugins. All the widgets used consistent DOM management, and implemented a single ajax data layer. Widgets included: accordion, autocomplete, button bar, data grid, data view, dialog, navigation bar, notifications, panels, spinner, card stack, tabs, timeline, and tree view.

    Javascript jQuery CSS HTML

  • 2011

    Cloudstack automated billing

    Designed, built, and integrated automated recurring billing solution for Cloudstack hosting environment. The application is responsible for creating new accounts, Cloudstack configuration for each account, and monthly usage-based billing of each account. This was accomplished using Cloudstack's API and the Authorize.net payment services API.

    Linux Cloudstack Paypal API Authorize.net API PHP SQL

  • 2011

    Cloud hosting infrastructure

    Implemented a cloud hosting environment using Cloudstack within a datacenter. This included configuration and deployment of redundant iSCSI nodes, with hot-swappable NFS servers providing the storage backend for the initial rollout of a four hypervisor cluster. Was also responsible for the creation of several base virtual machine images for various tasks including web server, email server, and DNS server.

    Linux Bash PHP CloudStack Javascript

  • 2009 to 2012

    Social knowledge application

    Design, prototype, and implement cloud-deployed platform for managing large data sets of geospatial+temporal data. Platform includes application development framework to assist application builders with creating applications to produce and consume the data sets. Data can be mapped using a multi-user collaborative map editor, from which KML documents are generated for display using Google Earth. The system makes heavy use of internal APIs, integrates a number of external APIs, and relies on a pub/sub model for much of the collaborative feature set.

    Linux MongoDB PHP MariaDB Javascript SQL Wikipedia API Google Maps API KML API

  • 2008 to 2009

    Infrastructure management application

    Design for a pluggable/scalable infrastructure management application to replace existing Java solution. The application is designed as a scalable API implementation, in which any server node can selectively expose resources via optional API endpoints (ie: web services, email services, user accounts, printers, etc). Using a basic pub/sub model, the controller application is notified of available services, giving administrators direct access to distributed resources across many machines in different locations.

    Linux PHP Infrastructure Realtime API

  • 2007 to 2008

    Custom Linux distribution

    Prime GNU/Linux is a custom Linux distribution compiled from source code. Several derivative versions were built to power thin client stations on several production lines in a factory environment.

    Linux Cross Compile Bash Make GCC PXE

  • 2006

    Network operations displays

    Designed and implemented six large-screen displays for network operations control center. All data was collated from several Nagios deployments and displayed in a number of ways - 3D charts/graphs, plotted on rotating 3D maps, and summary listings. Backend development included custom plugins and monitoring agents for pro-active information collection, integration with Google Maps, and a number of charting solutions.

    Linux Cluster PHP Javascript Nagios Realtime CSS Google Maps API

  • 2005 to 2006

    Computer lab infrastructure

    Development and deployment of 40 node thin-client system for an interactive computer lab. This solution incorporated several boot images for various uses which were deployed on-demand to several hardware combinations.

    Development of a custom web application with used gamification techniques to provide children with step by step "missions" which taught them to build robotics projects based on the LEGO Mindstorms system.

    Development of a custom Point of Sale system to manage pre-purchased lab time, including on-demand creation and printing of membership cards with barcodes with were used to log in and out of the system. Also included standard Point of Sale support for products.

    Linux Thin Client Cross Compile Bash PXE PHP POS

  • 2003

    OpenMOSIX cluster

    Built a 12 node OpenMOSIX cluster as a proof of concept. Once completed, used to compile custom Linux kernels.

    Linux Cluster Cross Compile Bash OpenMOSIX DistCC

  • 2002 to 2003

    Snewp

    Designed and implemented a multi-process data crawler solution for collating 20,000+ remote XML documents from thousands of locations on a rotating four hour schedule. Data was collected into a replicated MySQL database for indexing and searching. Ran at snewp.com for about a year.

    Mentioned in numerous blogs and a couple of printed books.

    Linux Multiprocessing PHP SQL XML

  • 1999 to 2000

    Interactive chat bot

    Developed and ran a multi-protocol chat bot system which interacted with users using both textual and vocal commands. The bot executed various groups of commands (checking weather, searching movie listings, RSS headlines, etc) over several protocols and technologies. The Alice/AIML intelligence engine was integrated to assist in interacting with users using common speech.

    Visual Basic PHP TCP/IP Intelligent agents Realtime

OS Distro

Linux
Redhat/Fedora/CentOS
Prime GNU/Linux
m0n0wall
FreeNAS
ProxmoxVE
Debian/Ubuntu/Mint

 

Services

BIND
PowerDNS
KVM
MariaDB/MySQL
Apache httpd
Postfix
Dovecot
RabbitMQ
Nginx
IPTables
MongoDB
Nagios
Mosquitto
Zabbix
Spam Assassin
PostgreSQL
dSpam
Sendmail
Asterisk
eJabberd
Zenoss

 

Languages

HTML
PHP
Javascript
CSS
Bash
SQL
XML
Ruby
Python
C/C++

 

Frameworks & Libraries

jQuery
Bootstrap
TaffyDB
SockJS
Leaflet
Laravel
Code Igniter
Ruby on Rails

 

APIs

Google Maps
Google Charts
Paypal
Authorize.net
PubNub.com
Amazon
OpenSRS
Firebase

 

Software

Wordpress
Eclipse
PhpStorm
RPM
Git
Subversion
Webmin
Drupal
VMWare
cPanel
Redmine
Plesk
Middleman
ISPConfig