I've worked with 30 companies since I started my IT career in 1989 and have enjoyed solving business problems for them using code. Ruby is my favourite language but I have used a lot of different ones over the years which make for a useful comparison. Over my career I've often had to explain things to other developers as well as managers, so I think can use those communications skills to be an effective mentor.
Foxsoft, a software agency, brought me in to help with their client, RightSpend. They were having difficulty making progress with new ...
Foxsoft, a software agency, brought me in to help with their client, RightSpend. They were having difficulty making progress with new features whilst also fighting bugs and keeping the system up to date. They needed the new features in order to retain and expand their list of high-profile clients which included Google, Estee Lauder and General Motors.
The first and ongoing issue I tackled was the security and stability of the system. PEN tests had revealed a number of weaknesses. I resolved one of them by introducing Pundit to improve access control. I resolved many of the others by upgrading Ruby (2.7 -> 3.0 -> 3.1), Rails (6.0 -> 7.0), Mongoid (7 ->8) and MongoDB (4->5) along with various dependent gems, some of which required custom builds. Prior to making these sweeping changes I established a reliable set of Unit and Functional Tests that ran automatically using GitHub's Actions. The overall result for RightSpend was a higher accreditation for their system enabling them to gain more customers as well as more reliable rollouts and fewer bugs.
The most important new feature they needed my help to deliver was 'Multimarket Build Plan'. The system needed changing to reflect modern marketing reality in which campaigns are created using people in several different countries with different skills, salaries and overheads. The main problem was the complexity of changing the existing software to handle this, which was due to the unstructured way in which the code had been implemented and the lack of documentation.
See CV for more information
This startup began its codebase in March 2020 and by the time I was brought in, - May 2021 - it had acquired a lot of customers in uni...
This startup began its codebase in March 2020 and by the time I was brought in, - May 2021 - it had acquired a lot of customers in universities, but needed to retain them and grow its business.
The first issue I tackled was the stability of the Rails app. This needed a lot of debugging and automated test writing but by August 2021 this had been achieved in time to retain existing customers and gain new ones.
Secondly I helped implement Single Sign-On for the Azure and Google platforms. This resulted in the signing up of organisations which required Single Sign-On as part of their security policy.
Thirdly the UI needed to be made more accessible. ViewComponent architecture was chosen for its separation of concerns and ease of reuse. The work was conducted by a third-party which I helped supervise and augment with automated tests. This enabled the product to be re-launched successfully in web and native forms and made it far easier for those with disabilities to use it.
Other technical areas I worked on were: Stripe (for subscriptions); TurboStreams (for real-time updates of transcription processing); Pendo (for customer usage analysis) and Dry-Rails (for API support).
Finally I lead the design and development of Seats-based licensing which was a major change to Carescribe's existing site-based model. It required significant data design and credit calculation changes as well as updates to historical transactions. This work enabled accurate accounting of each user's transcription costs and also the ability for customers to scale their licensing easily as the demand for transcriptions and note-taking grows.
Despite the struggles of the retail sector in 2020, StorIQ found themselves with a lot of new features to add to their product in a sh...
Despite the struggles of the retail sector in 2020, StorIQ found themselves with a lot of new features to add to their product in a short time due to the acquisition of several new and large-scale customers. StorIQ software provides efficient communication between retail stores and their larger organisation, helping them manage their day to day operations as well as navigate the logistic and legislative challenges surrounding the pandemic.
I was engaged as a Ruby Developer to add some of these features to their Rails based application with particular regard to tight deadlines set by a large US retailer. Some front end improvements such as 'teaser texts' and 'critical tasks' were simple but required careful cache management. Major back end work involved: building an interface to a Learning Management System API (used by Clarks for staff training); integrating staffing workload data with a graphical calendar; and building an API for use by a payroll system. These features were tested using both Rspec and Cucumber.
As a result of delivering these improvement, StorIQ were better able to support their customers during nationwide store openings and closures, help them improve compliance and achieve the deadlines set by their major new US customer who will shortly be signing a contract that expands the turnover of StorIQ significantly.