I stumbled onto a report I wrote nine years ago when I worked in an academic IT office. I was a web applications developer for a graduate school in the humanities. We mostly used Rails to build in-house administrative applications.
So here’s an overview of what I had been doing for a year, professionally speaking. The period was 2012–2013.
Applications and websites
- Shipped new student tracking app for Cinema & Media Studies (Summer 2012).
- Shipped + maintained new Art History student tracking app (Summer 2012).
- Shipped divisional Course Proposals app. Trained all department staff on its use; helped liaise with Registrar staff. Have done ongoing app maintenance and built new features since then. (Autumn 2012).
- Upgraded and largely finished new student tracking app for Near Eastern Languages (Winter 2013).
- Deployed Solr search for our Rails-based administrative apps, and evaluated different search options on Rails.
- Evaluated and deployed new Rails-based auditing features (now using
audited-activerecord
andauditable
). - Shipped, built and maintained new Scrolling Paintings archive site. Customized javascript image viewer (Fall-Winter 2012).
- Built major conference site for “Humanities Day” (Summer 2012)
- Built new Faculty Annual Reports system; currently in review phase. Application is designed to be easily extensible in the future, if we need new Division-wide reports (Fall-Winter 2012).
- Began consulting with central Humanities staff on upcoming database upgrades (Dean of Students database, Endowments, and in longer term, Tracker).
Infrastructure and ongoing maintenance
- Built new administrative infrastructure to handle non-standard directory references: Rails-based
PeopleDB
. - Maintained existing LDAP-based Directory application.
- Standardized our internal library code: built new
DirectoryLib
module, improved Shibboleth module, and am working on standardizing our use of these modules across all apps. - Improved internal documentation for our apps (both on our wiki and in-app Readme files).
- Researched + selected new Nagios reports for Rails apps. Monitored Rails app usage on daily basis since then.
- Researched performance debugging tools, and improved application performance in critical areas. (For example: the Annual Reports edit page, the Near Eastern Languages Students index page, the Courses instance save process).
- Updated and monitored our rails server stack components (improved our Shibboleth config; updated our Passenger configuration for better application responsiveness; have just researched
rbenv
vsrvm
for server Ruby deployment). - UI research: investigated best practices for admin app UI development. Have made extensive use of JQueryUI and Twitter Bootstrap libraries; am gradually trying to standardize and upgrade user experience across our applications.
- AJAX research: have been investigating the best method for using AJAX in our apps. (For example: Do we want to use libraries like Backbone, as in Keys? That can be brittle and require intensive maintenance upgrades as the platform evolves. But JQueryUI, a simpler option, turns out to be quite limited as a platform for writing client-side interfaces).
- Went to Windy City Rails conference for professional development. Workshops on test driven development, factories, and optimal rspec config. Subsequently have been trying to have better rspec test coverage, esp. for back-end applications like the People app.
- Studied and deployed solutions for PDF generation, XLS and XLSX import/export, and CSV import.
- Improved interoperability between our systems: e.g., wrote sample courses database JSON exporter.
- Text encoding research: Investigated UTF options for our mysql databases (utf8mb4), which we plan to implement once we have finished deploying Ubuntu 12.04 on all our administrative servers. Currently working on a Tamil language learning project that raises some significant character set issues.
Internal collaborations
- Liaised with outside developers and with Humanities staff and faculty.
- Gave staff trainings and presentations.
- Kept in contact with primary internal clients for our applications.
- Occasionally helped and supervised student web staff with projects and questions.
- Occasionally worked on Drupal web stack maintenance and testing, and consulted on new Humanities site upgrade.
Comment from 2022:
It’s interesting reading, compared to where I am now. I’m no longer a one-person application development shop. I work in a big, complicated engineering team. I don’t do all the operational stuff that I used to do; I don’t do the project management or front end interfaces either. I’m more specialized. I work on one major application, instead of lots of medium-sized projects.
You lose something along the way, though. I miss having the freedom to experiment, to install new software without months of reviews. I miss learning my way around a big and exciting new field.
The inevitable price of experience.