Business role

This web app is used by US administrative units like counties, states, towns, etc. to manage their mitigation actions (with respect to natural disasters) and track mitigation project success.

What it was about

The client was a government subcontractor owning and offering its proprietary document processing solution to municipalities.

The project’s goals were upgrading the 4-year old app code, fixing bugs and improving the legacy UI.

Challenges

The code base was 2 years old, running Rails v4 with current v7. Heroku had assigned a maintenance within 2 weeks that introduce breaking changes. There was no technical person on the client end.

Moreover, the client had false memories about how the app behaved in fine details and blamed it on us that after the infra upgrade the app aquired many errors (which indeed were pre-existent). We had to roll-out anoter staging version with the old code to prove our case.

My responsibilities

I worked as a single engineer on this project; after some pause (2 years), before which a team had created that service.

  • Adding responsiveness to legacy pages
  • Authoring background jobs for Sidekiq
  • Configuring automatic deployment pipeline via Heroku
  • Correcting web typography
  • Developing a home-grown CMS / admin area
  • Front-end develpment (HTML / CSS /JS)
  • Participation in creating project roadmaps
  • Refactoring legacy code
  • Setting tasks for team developers
  • Upgrading gems in legacy Rails projects
  • Writing feature tests with Capybara
  • Writing internal documentation and tech manuals
  • Writing unit tests with RSpec

Interesting things I did on this project

  • Moving the project to a new task management system
  • Preparing solution engineering proposals for incoming projects
  • Rewriting clumsy legacy HTML into correct, consise, semantic HTML that looks beautiful even with no CSS
  • Rewriting controllers to reduce the number of SQL queries & lower DB utilization
  • “Shottun surgery”-style rewrites of the codebase
  • Upgrading Rails from previous versions
  • Web page performance optimization

What I discovered while working there

  • The product owner can have false memories about how the app used to behave before we started our work, and you need to be able to provide a hands-on demonstration of the prior code in work
  • Even in your own organization, people who previously woked on a project, may quit with leaving zero documentation, and you’ll have to guess the reasoning for their architectural decisions

Team

Besides me, the team had only a project manager

Feedback I received