Ryan Rampersad

2021 - History


December

  • Expanded customized customized Okta and AzureAd integration for a Strapi installation
  • Started exploring an NGINX reverse proxy routing subpaths comprised disparate kubernetes pod deployments
  • Created a basic proof of concept for a internal messaging feature
    • Handled conversations with multiple participants with a central topic
    • Handled conversations with drop in participants
    • Integrated read receipts
    • Stubbed out basic ui to demo these features
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Took a weeklong winter break
  • Continued working at home

November

  • Worked on POC with customer specific implementations for Okta authentication for a Strapi installation
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Made minor improvements to interview tooling after nearly two years
  • Continued working at home

October

  • Began documentation for converting existing monolith CMS solutions to a modular bespoke component CMS solution
  • Deployed an internal prototype to help crystalize solution viability
  • Ran performance tests against dev deployments using ab with auto-scaling configuration tuned to scale on average pod response time and cpu load
  • Requested exceptions for miscategorized CVE entries
  • Added an emergency patch to a traceability project to handle a unique physical processing situation
  • Upgraded package dependencies and pipeline configurations
  • Continued operating and maintaining early public product site
  • Implemented a split infrastructure with Azure and Terraform
    • Added new dev and prod terraform configurations
    • An App Service for hosting the Nest API to handle data
    • An App Service for hosting the Next app to incrementally (though dynamically) render pages, and to host the authenticated SPA-like back-of-house portions
    • Postgres database to store relational data
    • An Azure Storage Account, for storing user generated or upload content
    • An Azure Storage Account, for first party static content
    • Had to diagnose dozens of Azure permission idiosyncrasies
  • Deployed existing product website onto prod and brought dev online to for active development on v3
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Made minor improvements to interview tooling after nearly two years
  • Continued working at home

September

  • Began exploring content management systems…
    • Read ghost documentation and created a local instance
    • Read keystone documentation and tested with a deployed prototype
    • Read sanity documentation and tested with a local instance
    • Contributed to overall CMS pros-and-cons options documentation
    • Helped research other CMS options
  • Revived an seldomly used prototype that has meaningful business value, with various dependen and pipeline upgrades
  • For a long term internal product…
    • Upgraded various packag dependencies
    • Removes legacy and deprecated Nest modules
    • Added standalone axios package with yarn resolutions
    • Updated pipeline configurations
    • Requested exceptions for miscategorized CVE entries
  • Continued operating and maintaining early public product site
    • Adds additional copy for prospective customers
    • Fixed iOS specific manifest and homescreen mode bugs
    • Fixed bug where React state and DOM state were intermixed accidentally
    • Helped redesign mobile header appearance and functionality
    • Fixed a bug where system events would accidentally send two copies of the same outgoing email
  • Setup additional endpoints for potential Twilio integrations for onboarding customers into the system
  • Began researching Azure Pipelines and Terraform to provision new dev and prod environments
    • Sketched high level infrastructure needs for product v3
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Said goodbye to one of my personal direct reports as they begin the next phase of their career
  • Continued working at home

August

  • Fine-tuned production deployment
  • Re-implemented an open source php based Device Authorization Flow package in TypeScript
  • Created a prototype Device Authorization Flow using Okta and basic node scripts for a demo
  • Converted CI/CD pipelines to use the open source Vela pipeline tooling
  • Resolved dependency audit issue with axios
  • Created a scheme for handling scenario based API e2e tests using Jest test sequencing and Nest provider factory mocking
  • For a long term internal product, started various maintenance tasks…
    • Updated and added various translations for new needs
    • Upgraded packages to latest stable versions
    • Upgraded pipeline configuration
  • Continued operating and maintaining early public product site
    • Replaced v1 site with v2 site
    • Added open graph media to pages
    • Added Sentry to monitor customer experience relative to page errors, and escape hatch for local builds
    • Added additional font customizations
    • Reduced spurious component warnings
    • Created branded Next compatible Button and ButtonLink
    • Added time relative AB testing button/pages
    • Added debug page
  • Gave advice to junior product developer on how to make strategic use of their time and expertise
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

July

  • Scrapped basic email generation with d3, svg and png generation; instead exploring other external alternatives
  • Created a suitable interactive d3 graph to illustrate cycles visually in a data stream
  • Created various kong policies for unauthenticated and authenticated gateway access
  • Deployed API, web-mobile and web-desktop product components from pilot to production while maintaining pilot customer data and with minimal downtime
  • Continued operating and maintaining marketing site
    • Added Google analytics to track pageviews and special interaction events
    • Added lead generation forms to capture customer intent
    • Adds a "favorite" widget to pages to gauge customer interest
    • Enhanced Slack webhook integration help differentiate between customer form submissions
  • In collaboration with the product UX Designer, began working on the v2 design
    • Implemented new header, footer and body components
    • Implemented basic color customizations in TailwindCSS configuration
    • Moved original "page as html" implementation to Next-based getStaticProps statically generating pages based on data driven by a typed JSON file
    • Tweaked designs for better mobile usage
    • Maintained existing v1 deployment in parallel without either design leaking into the other
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

June

  • Began research on on-demand and cron based graph and chart summary emails
  • Created a POC for image gneration based on d3 in a node process
    • Added a path for svg generation
    • Added a path for png generation based on rendering svg to canvas then to png
  • Bootstraped basic marketing website using…
    • NextJS for statically built pages, aiming for good SEO and load speed
    • React Query for fetching dynamic portions of the pages after hydration
    • MapboxGL and Mapbox SDK to display an interactive location picker map with filtering and geographic searching
    • Downshift for address autocomplete
    • Headless UI for dialog/modal support
    • Tailwind for quick and flexible design
  • Added Airtable aas a database and database editor for the business team
    • Added Slack webhook callbacks to notify business team when database was updated
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

May

  • Integrated Okta into an existing application and service layer
    • Preserved existing built-in username/password authentication and authorization
    • Added new workflows for customer login using okta-auth-js and okta-react
    • Added new workflows for employee login using Okta as a federated identity provider for AzureAD
    • Upgraded backend to validate incoming tokens against legacy and okta token validators
    • Decoupled product accounts from oAuth/OIDC accounts
    • Helped write an acceptance testing plan for onboarding and support teams
  • Continued software engineering interviews remotely
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

April

  • Upgraded API logging capabilities
    • Converted log format from newline based output to context enriched json using Nest, winston and
    • Added enhanced logging support using async_hooks api, providing cross cutting information to loggers distant from the request/response layers
    • Added additional facets and measures in Datadog
    • Created Datadog dashboards that show api activities by region, user, user type, and traffic type and response times
  • Continued research iterations on a new crowd sourcing concept
    • Updating designs in Figma for rapid iterations and concept crystalization
    • Preparing to share concept with external potential customer bases
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home
  • Upgraded this site to Gatsby 3.2

March

  • Onboarded two new team members; new Lead Engineer and Technical Lead
  • Briefed team members on existing product status
  • Continued research iterations on a new crowd sourcing concept
    • Updating designs in Figma for iterations and concept crystalization
    • Preparing to share concept with external potential customer bases
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

February

  • Began research on a new crowd sourcing concept
    • Helping to update designs in Figma for rapid iterations
    • Gathering visual assets
    • Gathering internal expert feedback
  • Produced designs in Figma to conceptualize new data entry workflows based on customer workflow and sentiments
    • Created mobile interface mockup with readability and glancability in mind
    • Created dashboard interface mockup with overview capabilities in mind
  • Ported a TypeScript codebase into Rust to dramatically enhance performance while preserving the functional results
    • Created various abstractions that eventually produced JSON blobs that allow for presentational and analtyical slicing and dicing with simplier tooling like JavaScript and Python
    • Tested variants with simple parallalization techniques through the rayon crate
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

January

  • Began experimenting with ornstein uhlenbeck processes by adopting an academic variant
  • Adapted academic variant written in JavaScript into TypeScript to better understand structures involved
  • Optimized variant by
    • Using a stable seed value across runs so that the output became deterministic with the same input
    • Monitored speed on increasingly larger datasets
    • Created specific test cases that help demonstrate viability in specific scenarios
  • Documented findings and presented to Research & Development team to wide approval
  • Began integrating Progressive Web App (PWA) features into existing "mobile webapp"
    • Adding offline support with service worker level fetch interceptor
    • Adding online replay support by persisting any mutating method (POST / PUT / DELETE) into IndexDB and trigger those same XHR events "replay" when online against
    • Adding Chrome based Background Sync and iOS fallback
    • Changed some workflow functionality to handle online validation and offline validationless patterns
    • Added special guards for iOS so missing functionality is explained and disabled where errors may occur
  • Tweaked webapp "auto update" functionality; client checks static version.json occasionally and will update if needed
  • Continued operational support of survey and check-in application
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

Browse by Year