Ryan Rampersad

History

October

  • Updated the team-managed user interface appliance for storage api
    • Participating in the the CVE cleanup campaign
    • Updated dependencies to latest versions available
    • Updated docker base images to Node 20 as it reaches LTS
    • Sent PRs to teams that consume the appliance to update their deployments accordingly
  • Updated Unleash ecosystem
    • Participating in the the CVE cleanup campaign
    • Updated docker base images to Node 20 as it reaches LTS
    • Updated GitOps based self service project provisioning codebase dependencies
    • Updated ChatOps based Microsoft Teams integration for project updates codebase dependencies, and fixed implementation
  • Updated internal blog frontend
    • Participating in the the CVE cleanup campaign
    • Updated Next 12 to Next 13; requiring various codebase tweaks
    • Updated various dependencies
    • Updated docker base images to Node 20 as it reaches LTS
  • Helped coordinate CVE strategy for CVE-2023-38545 and CVE-2023-44487; published in mid-October
    • Produced wiki pages with initial urgency guidelines
    • Added mitigation notes as necessary
  • Informed CVE cleanup campaign approach through the exercise
  • Attempted simultaneous cut-over for cross-app cross-domain okta configuration
    • Explored issues with legacy library and new emergent behavior regarding mobile device user agents with iframes

September

  • Coordinated a micro-project to enable Figma SSO
    • Reviewed the Figma SSO documentation
    • Created SAML client with AzureAD to interface with Figma SSO
    • Created basic onboarding documentation that accommodates technical and non-technical user personas
    • Outlined communication plan with internal user base
  • Assisted team with a critical incident where emails previously sent in a time window were re-sent to internal and external addresses
    • Attempted to review queue graphs
    • Coordinated stopping service traffic by turning off ingress policies temporarily
    • Coordinated stopping service queue processing by scaling subscriber pods to zero temporarily
    • Saved screenshots, logs, samples for future analysis and postmoretem
  • During postmortem, provided details and mitigation suggestions for future incidents
  • Released an initial 1.0.0 version of the Cloudflare cache purging tool based in Go
  • In anticipation of engineering support team members rolling off, programmatically opened issues in over 200+ repositories alerting teams
    • Issues provides details on circumstances and further instructions for self service resolution
  • Contributed new user interface with basic HTML, CSS (no JS) to an internal landing page, increasing usability and reinforcing branding
  • Deployed to production, for portal for portals gateway
    • Tested various reverse proxy configurations in collaboration with partner teams validating in-sync cutover
    • Reduced coupling between legacy systems
    • Used modern implementation of frontend libraries, packages (Next 13, React 18)

August

  • Analyzing existing Okta workflows, typically implemented with a non-OIDC pattern, created a prototype for Authorization Code Flow with PKCE in our tenant and configuration
    • Provided three approaches to log in
    • Seamless redirect to Sign in Page
    • Click-to-act custom layout
    • Sign in Widget
  • Leveraging potential refresh token rotation, adding longer lived client side "sessions" to increase usability
  • Documentation failure conditions for this approach
  • Looking at opportunities to reduce dependence on third party cookies
  • Helped a new team establish their frontend and backend
    • Backend stack: Node, Express
    • Frontend stack: Vite, TypeScript, React
  • Team was able to deploy frontend and backend within two days
  • Dependency upgrades for various services
    • Upgrading base images for docker node images
    • Upgrading node dependencies to reduce CVE surface area
  • Redeployed services to keep deployment cycle time low
  • Planned promotion to production from stage, for portal for portals gateway
    • Sketched out timeline
    • Sent teams chat based and issue based notifications for pre-deployment confirmations
    • Acquired credentials for testing purposes
  • Finalized deployment image
    • Added production specific environment variables
    • Upgraded dependencies for August prior to launch

July

  • Produced initial draft of materials for platform roadshow
    • Providing examples of what the platform is typically or historically thought-of-as, and what we should think about it today
    • Providing examples of capabilities the platform offers relative to other neighbor platforms
  • Created a proof of concept for migrating a tightly coupled frontend user interface out of a proprietary hosting solution and onto to general purpose infrastructure
    • Used nginx as an image base
    • Created general routing rules to match the existing format intended for drop-in-replacement
    • Generated the SPA-bundle using the in-house solution
    • Used string transform commands (sed) to globally replace hardcoded strings that should have been environment variables
    • Due to limitations with a user information service network connectivity, implemented a /api_gateway reverse proxy through nginx to the underlying deployment
    • Demonstrated proof of concept to team and was warmly received
  • Helped migrate old platform documentation repository into a new clean repository while maintaining history
    • Added new deploy preview feature so that casual contributors can easily see their contributions in-situ before merge
    • Re-enabled issues for the documentation repository so requests for additional documentation and clarifications can be made and tracked
    • Re-aligned on naming conventions for dns
    • Re-aligned on internal and public team naming conventions
    • Added emoji where necessary
  • Received prevailing organizational goals and adopted their broad themes across general working activities
    • Contributed to the Security findings goal and Stability goals
  • Graciously accepted tickets to React Summit 2023 in New York
  • Began planning conference trip and vacation for November

June

  • Began initial testing for bulk migrations of repositories out of a centralized GH Organization into product oriented GH Organizations
    • Created mock organizations
    • Created mock repositories in various configurations (with, without, tags, branches, issues, secrets, special settings, etc)
    • Using a previously built automated migration script, tested and documented results
    • Wrote top level guide and presented easy to read FAQ to participating teams
  • Continued refinement of the Cloudflare cache purging tool based in Go using feedback from a fulltime Go software engineer
  • Published an early preview of the open source re-implementation (of the ui that was previously in Elm)
    • Presented work at a joint hackathon
    • Showcased our port; being 1-to-1.3̅3̅3̅ rather than 1-to-1
    • Wrote a proposal aiming to build a broader consensus
  • Introduced my new internal /todo scheme, where my work-at-work is more transparent and more accessible using a simple Github Projects board to manage and share; with columns for…
    • 📜 Backlog: where all ideas and tasks begin and most likely stay
    • 🧑‍⚖️ Advising: consulting, evangelism, architecture, advice
    • 🤔 Consideration: thinking about, possibly prototyping
    • 📧 Delivery: writing code, intended for delivery
    • 🎉 Fun: activities that are fun
    • ✅ Done: "file's done"

May

  • Promoted rebuild of portal for portals gateway into stage environment to begin long term soak test
    • Triaged breaking changes in consumed packages
    • Triaged incoming bug reports based on internal usage (dogfooding)
    • Integrated analytics package
    • Integrated datadog rum package
  • Rebuilt, for the third time, a Cloudflare cache purging tool in Go
    • Previous iterations were in Rust; which while perfectly powerful as a solution, was quite overkill and our ecosystem is not generally proficient in rust
    • Previous iterations were in TypeScript: which while certainly capable as a solution, was not aligned to most of our ecosystem's traditional infra-oriented tooling stack
  • Began working on an open source alternative implementation of a frontend user interface that was previously implemented in Elm
    • Recognized that Elm has a small community and small ecosystem
    • Exploring a stack comprised of TypeScript, React & Vite and other ecosystem tooling that is more accessible for casual contribution from typical webapp software engineers
    • Re-implemented majority of read-only workflows
    • Many polishing opportunities remain
  • Helped technical writer compose content for tutorials on Static Websites with Vite and WebApps with Next
  • Attended Open Source North 2023 in beautiful Saint Paul, Minnesota at the lovely Saint Thomas University campus
    • Saw many current and old friends in person at the event
    • Watched a bunch of great talks and presentations from various presenters, highlights on disaster recovery, platform engineering approaches, and more

April

  • Began working full-time at Cargill
    • Assumed formal title of Lead Software Engineer and socialized title of Enabler-in-Chief

April

  • Helped document a friction logging process for an Email API service platform offering
    • Used a markdown based worksheet
    • Narrated the actions and thoughts while going through the documentation and performing the steps
    • Added clear markers on segments that were low and high friction
  • Continued facilitating a potential connection with a client team for technical writing
  • Continued direct report 1:1s
  • Resigned from Daugherty

March

  • Finalizing rebuild of portal for portals gateway
    • Promoted builds int environment
    • Began soft testing new builds in stage during low traffic periods
  • Helped stub out a new application with Rapid Application Development (RAD) techniques
    • Bootstrapped codebase with vite with react-ts
    • Based on existing mockups, stubbed out placeholder screens with basic one level routing with React Router
    • Based on existing mockups, stubbed out basic navigation ui with themed mui components
    • Stubbed out extremely basic datasets using faker with a seed for stability, to tell a story with the screens
    • Setup deployment so stakeholders could interact with the app easily
  • Continued facilitating a potential connection with a client team for technical writing
  • Continued direct report 1:1s
  • Traveled to South Carolina to work remote-remotely
  • Working at home

February

  • Continued rebuilding portal for portals gateway
    • Tested portal-to-portal workflow
    • Gathered per-environmental configuration values from various sources
    • Setup deployment pipelines for the six environments, eng, dev, qa, int, stage and prod to provide an environment for engineering team, plus the standard environments for customers
    • Customized next.config.js, augmenting environment variables for build info (commit, time, number, env)
    • Began setting the standard analytics package integration for customer facing websites and apps
    • Promoted builds from eng environment to dev, and then qa environments
  • Began facilitating a potential connection with a client team for technical writing
  • Continued direct report 1:1s
  • Working at home

January

  • Began rebuilding portal for portals gateway with Next, Material
    • Re-implemented core pages
    • Re-implemented various content widgets
    • Re-implemented Okta token exchange pattern
    • Implemented a safe Okta bridge with Next
    • Setup various portions for other team members as scaffolding
  • Celebrated sister team's milestone achievement; migration off of legacy hosting solution
    • Providing advice and scaffolding to the team as they migration off of legacy implementation solution
  • As an emergency hotfix, rebuilt an email integration in a maintenance mode service
    • Existing service used decommissioned smtp provider
    • Rewrote application's email abstraction to use new provider
    • Integrated with AzureAD for Client Credentials authentication
  • Continued direct report 1:1s
  • Working at home

December

  • Continued working with Unleash integrations
    • Creating a weekly cron that generates a usage report including users, active/inaction ratios and more to keep the service seat usage at optimal levels
    • Opened various issues early to field priority and external concerns
    • Planning on creating automated user pruning cron tooling
  • Created a poc for testing Okta token exchange
    • For internal organizational reasons, there is an existing issuer and a new issuer
    • The POC was a minimal reproduction of multiple codebases (authentication packages, application deployments)
    • The POC demonstrated token acquisition with the existing issuer, and how the exchange works with the same issuer origin, but fails with a new issuer origin
    • The POC was documented with a consumable README so that it could run other machines and reproduce the findings as well
  • Continued direct report 1:1s
  • Working at home

November

  • Continued polishing Unleash integrations
    • Opened unleash access to broader audience, began onboarding consumers
  • For the Envoy reverse proxy system
    • Created an upstream path restriction option, such that any requests going to an upstream pod would be forced to send requests to a specific
  • Helped initialize a new portal experience
    • Using nextjs as a baseline, in particular for its SEO aspects
    • Implemented the internal ux library for look and feel
    • Upgraded various environment variable / secrets handled portions of the code to match best practice security standards
    • Attempted setting up compatible authentication workflows with existing systems integrating with Okta
  • For the for public storage api service and user interface…
    • Experimentally implemented new S3 workflows for optimization multipart uploading, increasing throughput 10x
    • Experimentally allowed video content with conditions
    • Began exploring alternative options due to platform limitations
  • Continued direct report 1:1s
  • Working at home
  • Went on vacation during November

October

  • Began working on the Unleash integration; our goal was providing limited administative access to Unleash and instead have folks increase transparency and self reliance by implementing a GitOps™️ flow
    • Created a ci/cd workflow pipeline
    • Pipeline consumes yml and reconciles against the live Unleash server for its state
    • Reconcilitation happens on every pr-merge event into the repository main branch
    • Implemented the encrypted payload scheme previously conceptualized where the containerized source code remains secure until runtime decrypted by a pod level secret
    • Implemented the Unleash Proxy with basic support
  • Continued direct report 1:1s
  • Working at home
  • Visited the local office a few times during October

September

  • Explored options for gathering options of internal organization npm packages
    • Considered a postinstall tracking script and service api
    • Considered a bot that ran searches on internal github apis to search for usages of well known packages
  • Considered nuance limitations in these schemes
  • Considered others approaches for measuring utility and uptake
  • Created a proof of concept app that shows how rapid application development could produce an artifact that helps aide in RFC discussion
    • Created a poc for multi-faceted portal logins
    • Used internal ux packages for look and feel
    • Deployed rapidly using internal cloud tooling
    • Kept poc small and faked portions to show concept rather than polish
  • Prepared for integration with Unleash
    • Provisioned cloud infrastructure for upcoming adoption
    • Created Github organization
    • Created a poc for keeping containerized unleash source code private while stored in the widely accessible internal ECR
  • Continued direct report 1:1s
  • Working at home
  • Visited the local office a few times during September
  • Went on vacation during September

August

  • Continued working on a user interface appliance for storage api
    • Updated portions of the codebase, simplified patterns
    • Polished ui look'n'feel, ux
    • Published various alpha, beta released images for community testing
    • Wrote setup documentation
  • Finished the customized middleware service for public static storage api
    • Generally available, platform operated, public static storage option
  • Mixed, a little bit of everything…
    • Upgraded Envoy reverse proxy from 1.22.2 to 1.22.5; used staging canary for a week for testing
    • Created a basic link portal site with vite and tailwind
    • File various issues for internal mui (Material UI) deriviative package
    • Produced reproductions of dependencies, images with "critical" CVEs
    • Opened RFCs for various platform concerns
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Working at home
  • Visited the local office a few times during August

July

  • Productionalized the customized middleware service for uploading static file assets
    • Added intermediate file scanning service integration
    • Added additional e2e tests with eicar file verification
    • Statically scanned codebase
    • Passed architecture reviews
  • Attempted Envoy production reverse proxy build script upgrades
    • Throughly tracked changes made internally with swc that breaks jest testing with esm/cjs compatible files
    • Locked swc version until mock and spy alternatives are available
    • Considering refactor without mock and spy
  • Began working on a user interface appliance for storage api
    • Single deployment, using Next for UI and secure api calls
    • Using customized mui (Material UI) theme and components
    • Using dropzone for drag-n-drop file uploader functionality
  • Finished the customized middleware service for uploading static file assets
    • Generally available, platform operated, public static storage option
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Working at home
  • Visited the local office a few times during August

June

  • Added arbitrary upstream support to Envoy reverse proxy configuration
    • Instead of relying only on internal service name dns resolution
    • Allow dynamic configuration of dns (host, sni, port) upstream
  • Continued work on the customized middleware service for uploading static file assets
    • Added Java / Spring Boot flavored usage examples
    • Configured Cloudflare settings for CDN / Cache capabilities
  • Mixed, a little bit of everything…
    • Trialed vite on the internal platform; modern tooling offers performance benefits, reduced dependency surface area
    • Tested default caching behaviors with Cloudflare, and how cache control header configuration works dynamically
    • Enhanced email templating service with additional error reporting features
    • Created nginx example repos
    • Retired old pandemic era self service / check in tool
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Working at home
  • Visited the local office a few times during June

May

  • Monitored Envoy proxy while in production with DataDog dashboards and logging
    • Approved applications transitioning from legacy deployment patterns to new Envoy proxy pattern
  • Built a customized middleware service for uploading static file assets (png, jpg, etc)
    • Using a private, restricted s3 bucket
    • API handles uploads, responds with externally accessible Public URL
    • Web streams file to consumers (Cloudflare) and emits well defined caching headers
    • Uses Cloudflare in front of service pods to reduce cluster traffic and usage to a minimum
    • Self service provisoning of internal client credentials
    • Implemented with minio for local development (s3 compatible)
    • Implemented fully functioning e2e tests, working across local, pipeline and live modes
    • Testing and reviewing with customer teams in limited private beta
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Attended Open Source North 2022 in beautiful Saint Paul, Minnesota at the lovely Saint Thomas University campus
    • Saw old friends in person
    • Watched a bunch of great talks and presentations from various presenters
  • Continued working at home
  • Visited the local office a few times during May

April

  • Graduated Envoy proxy from only development and staging environments, to including production as well
    • Onboarded selected internal product teams to begin testing their applications in the lower environments
    • Deployed production instances of Envoy
    • Began routing legacy traffic through Envoy proxy default routes transparently
  • Cloudflare configuration
    • Used Cloudflare to optimize traffic and use the content delivery network for better user experience through edge performance
    • Discovered a bug with the catch-all routing and conflicts with priority settings
    • Upon implementing a fix for that bug, some routes on staging and production were temporarily disabled
    • Restored staging and production in less than an hour from initial downtime reports
  • Helped design a file uploading api framework enabling internal customers to host public static assets
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home
  • Visited the local office a few times during April
    • Caught a cold

March

  • Graduated Envoy proxy from pilot to operating in development, staging environments
    • Created config generator using node, swc, typescript, nunjucks and other packages
    • Enforced configuration by validating all inputs strictly using ajv
    • Added useful tests to reach 80% coverage, focusing on input validation
    • Optimized envoy docker image builds by decoupling the configuration from the image creation process
    • Setup envoy configuration file injection at pod startup time to reduce build and deployment times
    • Created configuration options for top level proxy redirects, filed an issue with the envoyproxy github issue tracker
    • Created a DataDog dashboard for monitoring important metrics assembled via prometheus metrics, logs and other sources
  • After almost a year of product and software development, the startup product ended based on customer acquisition costs being high and market value not being high enough
  • Shutdown of Azure based product infrastructure
    • Azure DevOps
    • Azure Cloud
    • Sentry
    • Mailgun
    • Airtable
    • Slack
  • Created multiple backups of product information in case future teams want to learn from the technology choices
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

February

  • Packaged the customized customized Okta and AzureAd integration for a Strapi installation
    • Determined using patch-package was a long term maintenance nightmare
    • Trialed a git subtree folder tracking various upstream repositories
    • Further refined the package with additional logs, feedback from potential users
  • Pilot Envoy Proxy instead of NGINX reverse proxy routing subpaths comprised disparate kubernetes pod deployments
    • Side-by-side comparison of NGINX and Envoy
    • Deep dive into Envoy, clusters, listeners and filters
    • Created Datadog dashboards for ample prometheus metrics Envoy provides
    • Configured JSON access logs and JSON applicatio logs for Datadog ingestion
    • Adapted config generation for Envoy
    • Added additional config file options for userbase
    • Provided options for situations where Host and SNI was required
    • Created embedded Lua script to mimic NGINX redirect rewriting
    • Wrote various FAQ documentations to address common concerns
  • Rewrote landing page to drive product engagement and customer acquisition
    • Moved slow loading map and search tools to secondary page, reducing load times
    • Added server side rendered content to landing page to provide potential customers value sooner
  • Made various minor optimizations throughout the site
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

January

  • Packaged the customized customized Okta and AzureAd integration for a Strapi installation
    • Using patch-package, extended the baseline strapi-admin package with middleware and ui hooks to handle Customized Okta and AzureAD
    • Added copious logs to help future debuggers
    • Added abundant comments to extensions to help future debuggers
  • Continued exploring an NGINX reverse proxy
    • Used various rewrite and redirect rewrite rules to enable special handling of legacy deployments
    • Generated NGINX config files with various schema packages for YAML, JSON Schema and Jinja2
    • Presented NGINX reverse proxy as proof of concept
  • Performed a test integration with a Next app and NextAuth package
    • Rewrote portions of the app to accommodate session based auth vs in memory
    • Rewrote portions of the sign in / sign out workflows
    • Implemented customized token fetching enabling Client Side and Server Side rendered compoennts data fetching to the API layer
    • Submitted a pull request adding callback customization to the NextAuth package it was not merged yet
  • Added API authentication with the usual Nest primitives
    • Added public route annotations
    • Added identity endpoints for getting current user info based on token
    • Added jwks token validation
  • Continued extended team meetings to check in personally and professionally
  • Continued direct report 1:1s
  • Continued working at home

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

December

  • Researched ornstein uhlenbeck processes and how it models certain process
  • 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

November

  • Validated technical options for possible production facility implementations
  • Supported deployed survey and check-in application, adding small feature enhnacements, and performing maintaince activities
  • Continued extended team meetings to check in personally and professionally
  • Continued software engineering interviews remotely
    • Attended various in-person new-hire meet and greet events, socially distanced
  • Continued direct report 1:1s
  • Continued working at home

October

  • Participated in product feature development brainstorming and coordinated next step efforts
  • Supported deployed survey and check-in application with minimal maintenance
  • Continued extended team meetings to check in personally and professionally
  • Continued software engineering interviews remotely
    • Attended various in-person new-hire meet and greet events, socially distanced
  • Continued direct report 1:1s
  • Continued working at home

September

  • Followed up deployments with various feature enhacements
    • Added location-specific metrics and auditing views
      • Helping location management answer specific questions about general usage and individual usage
      • Using d3 charting to provide day-by-day visuals of total attendance, usage, per location
      • Using react-query infinite scrolling to load data progressively for quick auditing pruposes access with more permissive access patterns
    • Added global and regional operational metrics views
      • Built extensive postgres queries providing timeseries-style data in the standard 30-day data retention period
      • Added additional support to slice timeseries-style data by viewing user's own local timezone
      • Showing overview all-time totals of various domain specific entities
      • Showing showing d3 timeseries-style graphs to answer relative change over time of various data dimensions
      • Showing raw numbers in tabular format to answer specific numeric queries
    • Added "de-personalization" capabilities
      • Emulating cron jobs with @nestjs/schedule
      • Data that has fallen out of the standard 30-day data retention period has portions of Personally Identifiable Information (Name, UID, Metadata) blanked or set to NULL, meeting courtesy and regulartory standards
  • Created an event log presentation of system data
    • To help understand temporally related though different event's correlations
    • Using multiple UNIONs to merge complex SELECT queries results together
    • Providing results in an Excel analysis friendly sparse-column format
    • Added an API that mitigates sparse-column format by using postgres json adhoc column results
  • Continued extended team meetings to check in personally and professionally
  • Continued software engineering interviews remotely
    • Attended various in-person new-hire meet and greet events, socially distanced
  • Continued direct report 1:1s
  • Had a nice vacation in the woods
  • Continued working at home

August

  • Deployed second major version of product, expanding from a pilot / poc to a configurable, secured and productionized system
    • Integrated the react-query package
      • Enabling a better user experience
      • Providing better error state handling
      • Providing better loading state handling
      • Unifying various patterns for loading indicators and error displays
      • Effortless integration among axios data fetching, and even localStorage based sync-calls
    • Integrated the react-hook-form package
      • Providing a unified form-validation approach to provide immediate feedback to administration and management user archtypes
    • Made extensive use of TailwindCSS and classnames for high quality on-brand dynamic user interfaces
    • Handling complex state management custom hooks using useReducer, immer and React context
    • Integrated with a lightweight Markdown based CMS, parsing and sanitizing inputs with marked and dom-purify
    • Enabled realtime streaming updates with scoped to virtual tenants using socket.io
    • Enhanced provided assets by converting to optimized raster images or SVG where possible
    • Configured secured APIs with OAuth2 Authorization Code flow integrating with Corporate Azure AD
      • Created customized Nest decorators to simplify authorization code and improve readability
      • Created regionalized permissions to account for tenants-by-region requirements
    • Provided realtime socket service integrated with Nest by extending packages and using redis as a bridge across multiple instances of the backend service
    • Leveraged platform-specific autoscalers to handle variable traffic overtime
    • Provides support for i18n and l10n
  • Began hosting weekly check in meetings across various teams to assess…
    • how folks are doing remotely?
    • how the projects are doing?
    • and what can we help with?
  • Continued software engineering interviews remotely
  • Continued working at home

July

  • Began next phase of product development, based on observations, feedback and learnings from the initial offering…
    • Creating CMS-like administrative portal for self service survey configurations
    • Modifying static workflow to be more configurable and dynamic, based on region and settings
    • Switching from Server-Sent-Events to Socket.io to facilitate realtime updates in certain views due to constraints with networking conditions in various facilities and cloud infrastructure
    • Integrating AzureAD integration for portions of authenticated and authorized workflows
    • Adding minor enhancements and fixed various bugs as reported
  • Initial product offering in use or in review by more than two dozen facilities
  • Explored complex tenant hierarchy solutions to accurately model business relationships of external companies
  • Consulted on various proposals involving mobile app development and business systems integration
  • Continued software engineering interviews remotely
  • Continued working at home

June

  • Created two functional prototypes to design optimial user workflow
    • Tested various "check in" workflows
    • Primary workflow where user checks in by having their personal QR code scanned
    • Secondary workflow where user checks in by using their camera to scan a destination's specific QR code
  • Implemented second workflow as initial product offering
    • Finalized Nest API
  • Deployed service and application to dev, stage and prod
  • Continued in-person user testing, eliciting additional user feedback and hidden requirements
  • Began researching next phase of development
  • Coordinating major milestone pilot at a customer location
    • Cataloging bugs as customer provides feedback
    • Creating tasks and prioritizing tasks based on customer experience
    • Working with external teams to stay aligned
  • Continued software engineering interviews remotely
  • Continued working at home

May

  • Created mockups to help elicit user workflows and discover edge cases in expectations
  • Simplified existing API
    • Reduced service from multiple microservices with unique repositories and deployments
    • Simplified static data editing and systems for deploying static data
  • Upgraded various applications from MySQL to Auroa
  • Shutdown infrastructure that will be retired
  • Continued software engineering interviews remotely
  • Continued working at home

April

  • Added customizable options to algorithm and algorithm testing interface
  • Integrated algorithm with Nest API
  • Integated mobile apps and dashboard with APIs
  • Added comphrensive Swagger-docs to faciliate API adoption
  • Continued software engineering interviews remotely
  • Distributed annual review information to team members
  • Continued working at home
  • Updated home office workspace

March

  • Refactored frontend to unify look-and-feel, and to organize components, routing, features
  • Leveraged TailwindCSS for DX and UX
  • Refactored backend to cleanup various endpoints, entities, services, and such
  • Researching Strapi as a simple and lean CMS tool for internal projects
  • Researching various CSS-in-JS patterns such as Styled Components, Theme UI and Glaze for internal projects
  • Continued software engineering interviews remotely
  • Began working at home fulltime
  • I was promoted! From Software Engineer 3, to Application Architect!

February

  • Created ready-to-use baseline projects featuring JOOQ, with gradle-based JOOQ generation
  • Advised architecture for enterprise data adjustment product
  • Reviewed existing .NET Core 2.1 prototype for feature extension
  • Extended algorithm to draw timeseries from active datasets
  • Added discrete algorithm endpoints, created combined endpoint for better developer experience
  • Participated in annual review-process round-table discussions
  • Periodic team member check-ins
  • Continued software engineering interviews

January

  • Implemented working Azure AD example project with modern Spring Boot, Spring Security backends and React frontend
  • Assisted implementations in active Spring Boot and Node projects
  • Added various APIs for a games-based reinforced training application
  • Wrote automated tests, inflating database into a specific state for API driven logic testing
  • Building a algorithm that collates periodic exponential time-series data into a prediction model
  • Performs numerical analysis on datasets dynamically splitting subregions
  • Performs exponential regressions to determine subregion coefficients
    • built with python, scipy, numpy and matplotlib
  • Periodic team member check-ins
  • Coached junior team members on year-end review documentation
  • Continued software engineering interviews

December

  • Scoping implementation of AzureAD OAuth integration project
  • Revised mass interviewing exam
  • Implemented proper serverless framework backend

November

  • Guided work on a data importing for blockchain traceability system
  • Added new views on top of analytics data to provide timeslices of performance and usage
  • Created gantt chart view of various workstreams
  • Initially designed with D3, migrated with pure React and SVG rendering
  • Pulled workstream data from various Github and Zenhub APIs with uniform API
  • Added OAuth integrate with existing systems
  • Extracted common design elements from ryanrampersad.com and created a reusable package of styles and components
  • Continued software engineering interviews
  • Celebrated Daugherty's new office space!

October

  • Researched converting previously built standalone docker-embedded Rust service into WASM-based service
  • Helped build multi-step blocking and nonblocking validation data importing support
    • Helped create new user interfaces to communicate errors before data is committed to systems
    • Helped add robust XLSX parsing to enhance user experience and system functionality
  • Addressed ZMQ-socket corruption/blocking in network layer by keeping connections regularly active
  • Upgraded multiple microservices with year-over-year dependency upgrades
  • Refactored documentation to enhance future development
  • Researched and discussed at length the values and benefits of blockchain systems and distributed application systems
  • Explored the existing ecosystem around these concepts
  • Created diagrams to explain existing workflows and upcoming approaches
  • Continued software engineering interviews
  • Attended my eighth public HackerX event

September

  • Implementing prototypical passwordless authentication service with OAuth support
    • built with React and NestJS with TypeScript
  • Support remote internship program with initial onboarding and broad software engineering guidance
  • Presented Security from A Software Engineering Perspective at the University of Minnesota Twin Cities for ST 8109 Cybersecurity Foundations, Technology, Risk & Communication class
  • Continued software engineering interviews

August

  • Overseeing implementation of a basic reporting dashboard;
    • built with React and NestJS with TypeScript
  • Strategic planning sessions with business and internal members on upcoming tasks
  • Balancing team composition, skills and interest
  • Continued mentoring interns and junior engineers in technical proficiency and consulting perspectives
  • Continued software engineering interviews
  • Building additional software engineering interview materials

July

  • Overseeing implementation of mobile web app stack;
    • with frontend focused on delivering easy to use data entry capabilities with React
    • backend for data collection and storage with NestJS and TypeScript
  • Refactoring and enhancing previously designed and implemented supply chain traceability code
  • Began role as Team Manager for junior engineering section
  • Continued mentoring interns and junior engineers in technical proficiency and consulting perspectives
  • Continued interviewing software engineering candidates
  • Created a browser-based Podcast Clip Creator
    • Given MP3 file with existing ID3 metadata, combine audio, album art, titles and other metadata and create a short shareable .webm video

June

  • Created a proof of concept Gatsby Documentation portal leveraging MDX
  • Continued to research and research and experiment with various design systems
  • Continued supporting interns and junior engineers with mentorship in technical and consulting excellence
  • Attended my seventh public HackerX event speaking to more than fifteen great candidates
  • Rebuilt this site using Styled Components
  • Updated all used dependencies to their latest versions
    • Converted class-based components to hooks-based components

May

  • Studying and experimenting with technologies and approaches towards building a design system
  • Exploring various existing tools and implementations
  • Continued to mentor junior engineer in React, and extending knowledge to APIs with Node, Express and databases
  • Helped with recruiting and interviewing efforts
  • Helped onboard and bootstrap a remote intern research program

April

  • Built a Java based Spring Boot 2 API layer to faciliate CSV uploads with flexible context-aware validation services and fairly robust error handling and reporting
  • Constructured a flexible data model to account for evolving business requirements taking into account a narrow time frame
    • Used postgres jsonb columns and traditional relational capabilities
  • Implemented basic API Key based authentication/authorization
  • Designed a basic user interface with React to handle uploads and basic error reporting
  • Integrated basic usage analytics tracking into the API Layer
  • Collaborated with a team on data modeling and query optimization, and integration with a React app
  • Began working on a small mockup to show case supply chain traceability to various business units
  • Mentored a junior frontend developer, learning JavaScript and React
  • Coordinated possible future engineering efforts within the business
  • Produced various estimates for possible future engineering work
  • Provided timely updates for remote participants

March

  • Finished building a prototype for supply chain transparency
  • Built a new "exam" for a mass recruiting effort
    • supporting graceful and scalable submissions; practicing our own technologies
    • adding context to each coding prompt
    • improving the exam workflow by allowing candidates to run the test suite locally
    • and finally added support for Java in addition to JavaScript
  • Trialed the draft interview coding assignment in the interview process; refining based on feedback
  • Conducted software engineering interviews

February

  • Remotely attended a design workshop to guide client business through product development processes
  • Demonstrated methods to create value-adds for supply chain products
  • Explored additional novel ways to use React Router to handle webapp structure and hierarchy better
  • Continued to experiment with React Hooks
  • Finished and presented "JavaScript - The Fun Parts" to an eager team of ten junior software engineers
  • Began working on refined coding quizzes for mass interviews
  • Attended my sixth public HackerX event speaking to more than dozen great candidates
  • Introduced a draft interview coding assignment to the interview process
  • Finished working on an initial version of a interview coding assignment that is not a puzzle and is not a trick
  • Attended MinneHack at the University of Minnesota Twin Cities as a technical mentor and judge
  • I was promoted! From Consultant, to Senior Consultant!

January

  • Began working on a new traceability project
  • provided mockups based on a previous proof of concept
  • built interactive mockups with React Hooks
  • Helped project team assess upcoming third-iteration of project
    • informed key stakeholders of existing technical details and of upcoming technical challenges
    • explained various architecture aspects of current state and possible future versions
  • Helped re-charter existing traceability efforts
    • provided technical knowledge about the platform
    • on-boarding new team members
  • Conducted software engineering interviews
  • Continued to refine interviewing processes
    • created a markdown utility to help the team write guided responses in a centralized format
    • created pilot materials for a pre-interview assignment to assess
  • Began working on various sets of slides and exercises to teach new junior team members, "JavaScript - The Fun Parts"

December

  • Participated in a multi-business workshop to answer and field questions distrubted ledger technology and other technical questions
  • Created a CRA based React app as a proof of concept demo, using the Popmotion Pose animation library
  • Presented a proof of concept demo to a small business unit to showcase the team's capabilities and vision
  • Refactored an existing small application to use the recently released React Hooks API and pattern to make Context API management easier and cleaner
  • Continued ongoing support for a launched traceability service
  • Converted a Node script for data integrity validation into a web-ui accessible version
  • Converted a Node script for data data imports into a web-ui accessible version
  • Re-deployed an old prototype, migrated the backend from Spring Boot 1.5.x to Spring Boot 2.1.x
  • Conducted software engineering interviews
  • Continued to refine the interview process

November

  • Learned and experimented with Alexa skills to build a prototype example of presenting business status updates through voice based interfaces
  • Added docker-compose for a bootstrapping solution in a project to ease handoff transition
  • Began documenting implementation-specific details to ease handoff transition
  • Conducted software engineering interviews
  • After the mid-year review, I was promoted! From Software Engineer 2, to Software Engineer 3!

October

  • Productionized a semi-microservice application, featuring…
    • hosted containers in a kubernetes cluster
    • mounted volumes for data persistence for our backend appliance
    • read-only shared databases minimize time spent on a data composition API
  • Added revocation support to novel pubkey based authentication/authorization for a backend appliance
  • Rolled out TypeScript support to internal services
  • Extended data integrity scripts to ensure imported data is correct before ingestion steps
  • Optimized docker images by using node-alpine as a base, for security and size
  • Conducted software engineering interviews
  • Developed additional software engineering interview materials for team usage
    • Added documentation around existing processes, and formalized certain aspects of notable interview information based on team feedback

September

  • Created a prototype of novel implementation of user account authentication and authorization using public key encryption for verification on our backend appliance
  • Refactored various services and scripts to accommodate the use of authentication
  • Made a simple csv import script to bulk import existing data loads into new application flexibly and safely
  • Expanded usage of TypeScript in service layer where possible to provide more system soundness and enhanced developer experience
  • Externalized a portion of functionality into a standalone TypeScript based CLI tool
  • Visited multiple on-site production facilities as technical envoy to understand their technical needs
  • Conducted software engineering interviews
  • Attended the University of Minnesota College of Science & Engineering Career Fall Fair

August

  • Created a docker-compose development setup, orchestrating the proper startup of a backend appliance, database, and various microservices written in React, Node/NestJS and Rust
  • Created a TypeScript backend API with NestJS that listens to an incoming data stream for events and populates a database based on event payloads
  • Wrote an Node script using fakerjs to simulate sending and handling realistic large payloads through the systems
  • Helped design and implement a mockup web portal for tracking supply chain products
  • Combined various data sources and created an ETL-like process to consume the data into a simple API
  • Attended my fifth public HackerX event speaking to more than dozen great candidates
  • Conducted software engineering interviews

July

  • Traveled to Missouri to participate in a three day meeting with a product producer
  • Experienced first-hand product production, touring…
    • sourcing facilities, from basic materials to initial refinement
    • assembly sites
    • product production in a plant
  • Acted as a technical envoy on behalf of technology group for the product producer
  • Created a TypeScript backend API with NestJS to safely create a bridge among client applications and a robust backend appliance service
  • Created a simple react app to fetch data from the API, for display and basic editing purposes
    • Delegated intern developer with creating routes and mocked pages
  • Created and refined a Rust service layer focused on high performance and soundness

June

  • Presented the Expo React Native app to a group of business leaders, showcasing the agile and collaborative approach to modern product development
  • Began work on new project, focusing on supply chain tracking with a robust blockchain framework
    • created architecture diagrams to provide a high level overview of systems integrated
    • wrote specifications for domain objects and actions in the systems
  • Reviewed modern Rust best practice development and system design

June

  • Operated a trial run of deprecating an API service while maintaining client app backwards compatibility
  • Helped create a customized Docker image to help test a hybrid node and python service
  • Concluded development on the Expo React Native and helped knowledge transfer to a take over team

May

  • Added an analytics package to the Expo React Native app
  • Using Location services, added a simple routing and mapping system in the Expo React Native app
  • Created a diagnostic screen that helps troubleshoot client apps and user devices in the field
  • Helped on-board interns with our development stack, processes, and application
  • Created a start-to-finish supply chain mockup, cementing the vision and demonstrating the business value
  • Designed and implemented a simple shim API to simulate asset and transaction tracking
  • Added automatic rebuilds with nodemon and integrated babel for advanced ES features

April

  • Launched the Expo React Native live asset tracking & management app into the App Store and Google Play
  • Added detailed Sentry error reporting to the Expo React Native app and node/express API
  • Experimented with adding TypeScript to an exisiting Expo React Native JavaScript codebase

March

  • Enhanced existing data graphs to automatically grow and scroll to fit additional data entries
  • Helped integrate new data sync layer by testing against edge cases
  • Reorganized app flow to meet new requirements and defend against missing data
  • Bootstrapped development on a create-react-app, adding
    • React Router v4, Redux, Thunks, and more
    • Integrated a new Auth0 client sign in flow, with automatic token refreshing
  • Attended a fourth public HackerX recruiting event on behalf of Daugherty
  • Conducted technical interviews for new software engineering candidates
  • Continued experimenting with the Adonis framework
    • creating routes targeting controllers
    • creating models with complex relationships
    • using yup validation for validation

February

  • Integrated Auth0 into an Expo React Native application
    • Implemented the OAuth2 standard Authorization Code PCKE flow for user sign in
    • Added guards to guide authorized users to their proper screens and inform unauthorized users of incorrect permissions
  • Presented our internationalization/localization pipeline at a multi-team showcase
  • Experimented with the early 1.0 release of Nativescript-Vue
  • Began testing the Adonis framework for JavaScript backends as an alternative to Rails and Laravel

January

  • Integrated an internationalization module into an Expo React Native application
  • Created a scripted procedure that converts a CSV file of internationalization translations to json files dynamically

December

  • Continued working on a full React Native application, featuring…
    • Additional Expo integration for release channels
    • Smooth drawer based navigation with animation
    • Customized header navbars with store integration
    • Initial template of application user roles
  • Conducted additional software engineer interviews
  • Investigated and tested various Node based backend frameworks, including Express and NestJS
  • Experimented with Gatsby to build a flexible work log documentationt tool that could sort various entry aspects by tag and content.

November

  • Began a new project, focused on live asset tracking through stages of growth…
    • built a CI/CD pipeline with Bitbucket pipelines and…
    • dynamic frontend builds based on destination environment, and deployment to S3
    • deployments to Elastic Beanstalk of a node and express backend
    • helped bootstrap new Vue CLI app; adapted the build scripts to handle multiple environments easily
    • helped bootstrap an Expo-based React Native app
    • helped setup ES Lint and Prettier configurations
  • Concluded three month project…
    • using Drone for CI/CD, deploying Serverless AWS Lambdas and frontend assets to S3 and Cloudfront
    • primarily built the Vue frontend with Auth0 integration
  • Migrated previous projects from a sandbox environment to a modern environment, using Kubernetes, Drone and Docker for cloud deployment
  • Migrated previous projects from a sandbox environment to a modern environment, using Kubernetes, Drone and Docker for cloud deployment

October

  • Built a CI/CD pipeline to deploy a full stack application with Drone and:
    • integrated with Kubernetes, building a Spring Boot application into a customized Docker image, passing Xray security validation, to deploy the API layer
    • integrated with AWS, S3 and Cloudfront to deploy a Vue based user interface
    • integrated with Terraform to build codified domain name infrastructure
    • integrated with a biz app server as an standalone application dependency
  • Added Auth0 OAuth OIDC conformant authentication and authorization integration to an existing Vue based user interface, using the interceptor pattern for handling authentication and authorization API layer errors uniformly

September

  • Built a CI/CD pipeline with Drone, to run integration tests and deploy a Vue user interface to S3 buckets dynamically based on check-in branch and testing results.
  • Presented a successful prototype project at a knowledge sharing event with high level executives to explain the technology and value of the product.
  • Attended a third public HackerX recruiting event on behalf of Daugherty, and spoke to more than 15 software engineers during the event.

August

  • Joined a new team as primary user interface developer, working primarily working Vue and Boostrap 4 (stable) and consulting on the backend API service layers.
  • Built a prototype react native app with a general purpose theme to prove techincal viability in a potential product.
  • Continued to provide techincal interviews for frontend software engineering positions.
  • Attended 2017 MidwestJS as a part of Daugherty's sponsorship of the conference.

July

  • Built an intermediate API to fetch data from GitHub API v3 and decorate incoming data with custom data fields for use in a dashboard app.
  • Enhanced a ReSTful API by using the DTO pattern to decouple domain entities and exposed interfaces to clients and reducing complexity of circular data references.
  • Refined an existing Vue based application…
    • added more aesthetically pleasing designs for searching, filtering and increased usability by reducing visual noise.
    • added Google Analytics tracking for pageviews and application specific events to track usage and monitor goals of the application
  • Conducted technical interviews for frontend software engineers.

June

  • Built a Vue CLI template to help bootstrap Vue based prototypes with out of box branding, theming, basic layout components, utilities and more.
  • Assisted the presentation of the charting demo to a consortium of interested business unit leaders to demonstrate business potential and viability as a product.
  • Built and demonstrated an alternative version of a solution using the capabilities of a reference blockchain implementation for marketing purposes that could increase brand coherence, trust and value.

May

  • Worked on a Vue based user interface to display scatter and radar charts with data sourced from uploaded CSV files and transformed in the Java API layer dynamically based on incoming type of data that helped prove business need and viability.
  • Participated in Daugherty's private HackerX event, speaking to more than eighteen potential candidates over the course of the night.

April

  • Worked on a supply chain resource tracking tool, using the capabilities of a reference blockchain implementation, to demonstrate the value of a decentralized system such that multiple entities can have a stake in the system, and can be ensured that the manipulation of the data after entry is non-trivial.
  • Attended my third business unit meeting, and gave a brief demo of some our team's project work.

March

  • Presented at the Daugherty Office, a presentation on Vue that explained the basics of Vue with a workshop, and explored some of the more complex topics in the Vue ecosystem, like routing, state management and the tooling.
  • Attended a local HackerX recruiting event with the Daugherty team, spoke during our introduction on stage, and briefly talked to more than sixteen attendees.
  • Participated in a discovery project for multiple large business units to determine if the consolidation of business logic and user experience among thier respective existing systems could be provided by a single portal user interface.

February

  • Completed a Progressive Web App for the prototype project, built with built with Vue, Vue Router, Vuex, Webpack, Bulma and more, featuring…
    • desktop and mobile responsive design
    • offline assets through AppCache
    • offline data with periodic refreshing
    • connection aware conditional flows
  • Conducted additional technical interviews for new software engineering candidates.

January

  • Debuted a short Vue talk about Vue CLI and using Vue Components at JavaScriptMN, the regional monthly JavaScript meetup event.
  • Presented a copycat presentation for various Dev Center and client site developers at the first Dev Center + Client Site developers collaboration day.
  • Explored the internals of Spring and conditional beans by creating an implementation of "interior authorization", to intercept incoming JWTs in request headers of internal services in a microservice architecture app, and inflate Spring Security information using the intercepted JWT.

December

  • As a side project between engagements, developed with the team a practical asset to our physical Dev Center space: a simple database-less websockets Spring Boot backend and Vue frontend web app that shows on the wall-mounted Dev Center screens whether or not important managers are in the office, busy or available.

November

  • Participated in team development on an internal project focused on extracting data from git repositories and showing the activity of the development team in an easy to read at-a-glance format, using a polyglot microservice backend architecture, and an AngularJS frontend.
  • Began the on-boarding process to help development on a project management organization application that would transform the existing workflow with a modern and robust interface, primarily based on a Spring Boot microservice backend architecture, and an Angular frontend.

October

  • Developed an extension to a previous project that would significantly enhance audit logging in the web application leveraging AspectJ to perform unobtrusive uniform capture of per user data — user keys, usernames, permission templates, inherited roles, etc., Filebeat and Logstash for moving log data and processing transformations and Elastic Search for dynamically handling user action queries on the audit dataset.
  • Attended my second business unit meeting, and I was given an award.

September

  • Worked on a 5 week engagement adding new functionality within the constraints of an existing legacy web based application built with Google Web Toolkit, IBM DB2 and Spring 3.
  • Attended the University of Minnesota CSE Job Fair to recruit soon-to-graduate students.

August

  • Nearing the end of a 15 sprint engagement spanning over the last few months, finished building various major features with the help of a great team, primarily with customized Spring Security implementations…
    • including sponsored users with inherited permissions.
    • dynamically switching between sets of application defined permissions.
    • dynamically generated forms for customizable authorization.
    • two types of registration flow enabling automated and manual registration.
  • After the mid-year review, I was promoted! From Software Engineer 1 and Associate Consultant, to Software Engineer 2 and Consultant!

July

  • Built various command line utilities for the team using npm, gulp, browserify, sass and more, to compile the growing dependencies needed to build a Knockout.js based client side application, and made reusable Knockout.js components.
  • Based on the outdated preconfigured virtual machine a previous team member created, I created an up-to-date Xubuntu 16.04 virtual machine image preloaded with our development stack: IntelliJ Community, MySQL, Java and more.
  • Over the last few weeks, I acted as the leader of the Accelerator 2.0 program — the training program Daugherty uses to on-board new hires, hosting an example project for a great group of three recent college graduates that was essentially a Twitter clone, using the a common stack, Java, Spring, MySQL and Knockout.

June

  • I worked on a backend service layer for the foundation of an Account Management RESTful API.
  • In conjunction with the backend layer, I created components of the client side consuming application written in Knockout.js.

May

  • Daugherty had their bi-annual business unit meeting with Daugherty founder, Ron Daugherty, speaking.
  • I have left my Kitchen quarters, and now work in a team of now 12 on a greenfield project established in January.

March

  • Daugherty's recruiter team found me at the UMN CSE Career Fair, allegedly — though I have no recollection of that event.
  • I went through three interviews, one on UMN campus with a Daugherty recruiter, and two in person at the office, first with a regular software engineer, a manager and another recruiter, and the second with a senior application architect.
  • I am consultant № 101 at this branch.
  • I work in the Kitchen.
  • Here are some photos from my first week at Daugherty.

412 weeks