Download PDF

Summary

Craig Wickesser is a software engineer and consultant with experience on a variety of projects ranging from web applications to distributed systems.

Craig has built web applications using technologies such as Ruby on Rails, PHP, Go, AngularJS, VueJS, relational and document-oriented databases. He has built distributed systems using Docker, Mesos, Apache Nifi, RabbitMQ, Crate.io with custom software written in Go and Python to connect all of the pieces.


He also has experience configuring and managing Linux servers using Puppet and Salt. Craig has a strong interest in leveraging and contributing to open source software. 

Work experience

Software Consultant

Craig Wickesser
2017Present
  • Developing a web application for GRC (Governance, Risk Management and Compliance) using PHP, MySQL and AngularJS.
  • Developing, deploying, maintaining and monitoring a highly available, fault tolerant system used for data processing, continuous model training and machine learning projects. The system was built using Docker, Mesos, Go, Python and more. Apache Nifi is used to ingest data, which gets routed to an HTTP service that inspects the message and forwards a request onto a queue in RabbitMQ. Data analytics are written in Python and are deployed as applications that can be scaled based on demand using Marathon. Telegraf, logspout, elasticsearch and kibana are used for monitoring and logging.
  • Developed a word cloud analytic using TF-IDF in Go with a dynamic  stopword list.
  • Developing a web based application to assist in monitoring local government, built with VueJS, Go, Elasticsearch, Amazon SQS, RDS and SES.

Principal Software Engineer

BRAINTRUST HOLDINGS
20142017
  • Working with Docker, Mesos, Kafka, Redis, Crate. io, Go, Python and Java to build a highly available, fault tolerant processing system.
  • A small team delivered features and fixes on a frequent basis (daily to weekly) to incorporate user and customer requirements, while monitoring and maintaining the system in production.

Senior Software Engineer

EFFECTIVE SOFTWARE SOLUTIONS
20122014
  • Developed web applications with JRuby on Rails, as well as stand-alone programs with Ruby, Java and Scala to support a SOA based project in an agile environment.
  • RESTful webservices and messaging(using ActiveMQ and Apollo) were used to keep components decoupled and resilient while MongoDB was used for persistence.
  • Map/Reduce was used for analyzing user metrics as well as grouping data from MongoDB.
  • Leveraged CoffeeScript, HTML5 and CSS on the client-side along with Backbone. js, Bootstrap and custom libraries to promote reusability.
  • Added secure web sockets to enable" real time" updates to multiple users viewing the same page within one web application.

Software Engineer

RAYTHEON HENGGELER CONSULTING
20102012
  • Developed an application to provide summarization analytics based upon network traffic metadata.
  • This involved writing Hadoop Map/Reduce jobs to summarize large data sets and output CSV reports.
  • A generic user interface for listing and viewing the reports was developed which enabled new types of reports to be added(without restarting the application server).
  • The back-end of the application was written in Java and used Hadoop.
  • The front-end was written with JRuby and JavaScript which used Ruby on Rails, MongoDB and jQuery.
  • Worked on an application that provided site management services for systems and infrastructure using Java, ExtJS, DWR, Spring 3 and MySQL.
  • Developed a" driver" that allowed remote Configuration and monitoring of a modem which provided an efficient and easy-to-use interface.
  • Maintained an existing application by adding new features and providing Bug fixes

Software Engineer, Proteus

PROTEUS TECHNOLOGIES
20082010
  • Maintained a web application that was used to collect analytic data for potentially malicious files.
  • The application integrated with several external tools that ranged from web services to simple command line tools.
  • Worked closely with customers to get user stories and used TRAC for project management functions.
  • An application framework was built so that end users could create scripts to extend application functionality and perform custom investigation into processed files.
  • Developed the front-end of a network analysis tool that allowed network traffic to be correlated from a variety of data-sources.
  • The user interface was developed to allow users to build and monitor queries using Flex and LiveCycle DS.
  • Real-time trending data was pushed to the client, up to 5k events/ second, using a pub/sub model based

Open Source

  • Bootstrap-treeview
    • Updated component to support custom node data and finding nodes by custom node data.
  • Metronome-client
    • Created a client library for Metronome, the Apache Mesos framework, written in Go.
  • Mongoid-indifferent-access
    • A Mongoid Hash extension enabling "indifferent access" so you can access keys using Strings or Symbols.
  • Probable-waffle
    • A utility for downloading files written in Go.

Education

B.S. in Computer Science

Towson University
19992003

certifications

Cloudera Certified Developer for Apache Hadoop

2011

certified spring professional

2009

Sun certified java programmer

2004