Here are some of the things I worked on during my time in the Office of Instructional and Research Technology at Rutgers University:
I created and led our “New Projects Team” – a small group of developers and designers exploring asynchronous communication tools (such as HipChat and Asana) and agile methods to streamline prototyping and development.
We worked on web apps for internal use of University departments and academic units. We used:
- Server: Python Django apps for back-end REST services, running under Apache.
- Databases: MySQL or MongoDB.
- Front-End: AngularJS
- Tools: Git for version control. Grunt for linting, building and testing. Fabric for deploying.
Sakai is an open source Collaboration and Learning Environment written using a variety of Java technologies running in Tomcat servers. Rutgers gets more than 45,000 unique users of Sakai each week.
I was the lead developer working on Sakai at Rutgers, responsible for:
- Build process: I wrote scripts to automate Maven builds, package them into tarballs, deploy to front end machines, and restart servers. This was done automatically through cron jobs, early in the morning at first. Now we have more front ends and can do live rolling deploys.
- Version control: I set up and administered our Subversion repositories, determined best practices, wrote documentation and trained new staff on our processes.
- Integration: I did early integration work with University LDAP authentication and course data.
- Bug fixes: I fixed local bugs when possible, or reported bugs back to the Sakai community. We also tested beta versions, and ran bug tracking locally with various systems such as Trac, Mingle, and Redmine.
- Local enhancements: I wrote new features for existing tools, as well as developed new tools for use within Sakai.
- Merging vendor updates: Once a year I was lead developer on merging major community updates with our local changes, and running database migrations.
- Maintenance and scaling: I assisted in analyzing and optimizing our Java VMs, garbage collection settings, and database performance.
- Support: I wrote support tools for our Help Desk staff, and provided 3rd tier support.
- Documentation: I wrote and maintained our local developer documentation, and generated statistical reports about Sakai usage.