Charles Hill

Programmer, Open-source Contributor

  • I enjoy solving social and business problems with creativity and technology.
  • I am constantly learning better ways to get things done.
  • I enjoy working with smart, creative people who like what they do and are open to sharing their knowledge and ideas.

Open source

I first began programming as an open source contributor to the Simple Machines Forum software, developing a few different plug-ins, which are still being used to this day by hundreds of websites. I have continued to contribute to the open source community in the form of code, technical support, writing documentation, and have been organizing a programming meet-up in Prague since early 2016.

Early professional career

I've had the good fortune to be able to work on a wide variety of different projects with many nice, talented people. My first full-time position as a programmer was at a web agency in Chicago where I worked on a few different projects, one of which in particular was quite fun and challenging. I was tasked with integrating numerous third-party services, migrating existing systems, and developing a robust search solution.

Startup experience

In the spring of 2012, I joined an education start-up with the goal of fixing the broken university-level textbook industry in the United States. There I was tasked with designing, developing, and maintaining a suite of products including an e-reader web application and e-commerce system.

Most recent experience

Since moving to Czech Republic (late 2013) I've been working as a freelance consultant. Some of my recent work:

  • Maintaining an open-source JavaScript diagramming library
  • Complex web applications using the above open-source digramming library
  • A single-sign-on and file sharing solution
  • Improving quality and stability of software with automated testing



  • Languages: JavaScript (browser + Node.js), PHP, Bash
  • Server-side frameworks: Express.js, Laravel, CodeIgniter
  • Client-side frameworks: Backbone.js, AngularJS, Vue.js
  • Relational databases (RDBS): MySQL, PostgreSQL, SQLite
  • Other databases: MongoDB, Redis
  • Object Oriented Programming
  • API Design, Development, and Consumption
  • REST, Versioning, Authentication
  • Integrations with third-party APIs and Web Services
  • Application Security
  • MVC Architecture
  • Automated Testing (Mocha, Selenium)
  • Version Control (Git)
  • Technical Documentation

Server Administration

  • Linux (Ubuntu, RedHat)
  • Bash Scripting
  • Nginx and Apache web servers

Development and Operations

  • Simplifying deployment processes
  • Automated backup solutions
  • Scaling web infrastructure
  • Securing infrastructure


  • HTML5: Canvas, WebSockets, Audio, Video
  • Understanding of HTTP
  • Understanding of common XSS and CSRF attack vectors
  • Web optimization techniques
  • Bitcoin payment system integrations
  • Apache Solr (search)
  • Hardware: Raspberry Pi


Freelance Consultant

December 2013 to Present

Since I moved to Czech Republic I've been working as a freelance consultant. In addition to consulting, I've been developing a few of my own projects and I organize a programming meetup group in Prague.


Software Developer / February 2015 to Present

At ClientIO, I have been working on several projects including:

  • JointJS - an interactive diagramming library
  • Rappid - a UI framework on-top of JointJS
  • Mindjet Cloud - a web-based single sign-on and file sharing system

Collegiate Learning

Lead Developer, Project Architect / June 2012 to December 2013

At Collegiate Learning my responsibilities included the design, development, and deployment of a suite of products in the education space. I also managed the infrastructure that supports those products. It was a rewarding experience being responsible for the full life cycle of a product; especially when real people use and depend upon the things I've created.

Oncall Interactive

Web Developer / September 2011 to May 2012

At Oncall, my roles included system integration, API development, designing and implementing a custom search solution, client-side application development, and traditional front-end development. It was a wonderfully challenging experience, and allowed me to grow professionally. I had the pleasure of working with some wonderful, talented people; many of whom became good friends.

Freelance Consultant

May 2009 to September 2011

Freelance web developer using PHP, HTML, CSS, JavaScript, and other web technologies.

Open Source Contributor

March 2008 to Present

I first started programming by developing plug-ins, used by hundreds of websites, for Simple Machines Forum and provided support to users via its community message boards. I have continued my open source development efforts to the present day.

Last updated on