-
Notifications
You must be signed in to change notification settings - Fork 7
VRO Engineer Onboarding
Lisa Chung edited this page Jul 3, 2024
·
31 revisions
Editors: Any new additions to onboarding that require the reverse process for offboarding should be added to VRO Engineer Offboarding.
This document is specifically designed for Engineers onboarding to the VRO (Virtual Regional Office) software project with the intent of streamlining and reducing the startup time for ramping up on VRO.
For offboarding process, see VRO Engineer Offboarding.
VRO Software uses the following:
- Java - A significant percentage of the project is built with the JVM's Spring Framework
- Python - VRO's partner team projects, also called domain services, are mostly written in python
- Ruby - There is curently one domain service written in Ruby
- RabbitMQ - VRO applies AMQP, distributed system architecture, using RabbitMQ as the primary communication bus between micro-services
- Gradle - heavily used; also see the buildSrc folder
- Docker - heavily used locally and for deployments
- Note that for most use cases, this contract does not supply a Docker Desktop license, meaning that you will need a different container runtime to use Docker locally. Colima is one option that is emerging as a good alternative.
- Postgres - AWS RDS Postgres, as defined in helm
- Redis - pending removal
- Kubernetes (for DevOps) - LHDI provides the infrastructure
- Helm - Kubernetes package management
- Current state (as of June 2024): VRO supports two partner teams: Contention Classification (CC) and Employee Experience (EE).
VRO is currently composed of these main projects:
- cc-app: - Contention Classifier:
- Maps VA.gov disability form contentions to actual classifications defined in the Benefits Reference Data API for use in downstream VA systems
- Written in python
- POCs: Contention Classification team
- ep-merge-app - End Product Merge:
- Identifies claims that can be merged and automates that function so that a claims processor does not manually need to intervene
- Written in python
- POCs: Employee Experience team
- max-cfi-app - Max Claim For Increase:
- Exposes an API providing the max disability rating for a given disability condition
- Written in python
- POCs: Employee Experience team
-
svc-bie-kafka - Benefits Integration Events:
- Receives and forwards status change notifications for contention events on the disability compensation form (526)
- Written in Java/Spring
- POCs: Virtual Regional Office team
-
svc-bip-api - Benefits Integration Platform:
- Provides an API for getting information on a claim, setting status on a specific claim, and routing claims
- Written in Java/Spring
- POCs: Virtual Regional Office team
-
svc-bgs-api - Benefits Gateway Services (now BEP - Benefits Enterprise Platform):
- Allows partner teams to create notes on veteran files
- Written in Ruby
- POCs: Virtual Regional Office team
Below are actions you should take or links with resources to review. As you are going through onboarding, feel free to add other pages to this list if you think they'd be useful.
- Get added to recurring team meetings such as Weekly VBA Stakeholder Sync, Daily VRO Team Sprint Standups, Biweekly VRO Sprint Planning / Review / Retrospective, etc.
- Join relevant slack channels -- you don't have to join ALL these channels; start with the #benefits-vro-* and #benefits-cft-* and you can expand from there as you get more involved in the work. Feel free to ask the team in #benefits-vro if you're wondering about whether to join a particular channel.
- Most relevant channels for you: #benefits-vro (our team channel for coordination across the VRO team), #benefits-vro-engineering (engineering-specific collaboration for the VRO team), #benefits-cft (cross-team collaboration channel for the 3 teams in the Claims Fast-Tracking Crew)
- Setup your local environment and give the services a test run
- Take notes on any issues you encounter and update the Local Setup page with corrections
- Review information outlined on other wiki pages in the sidebar
- Become familiarized with the VA's benefit portfolio organigram and VRO's working agreements murals
- Get added to the #benefits-onboarding Slack channel
- Complete the onboarding procedures outlined in a Slack Canvas provided in your welcome message
- Provide your role, email, and team to be paired with onboarding buddies
- Go through Benefits Portfolio onboarding materials and onboarding buddy meetings (see #benefits-onboarding channel in Slack; you'll be tagged there with your onboarding buddy assignments and materials to review)
- Set up team 1:1s (See their slack profiles for a calendar URL where you can find available times):
- VA Product Owner, Zach Goldfine
- OCTO engineering leads, Steve Albers and Cory Sohrakoff
- VA / VRO onboarding buddy meetings (likely initiated by them)
- Other VRO engineers for code walkthroughs
- Get added to the VA GitHub organization (ask someone who is already in the org)
- Get added to the OCTO-VRO GitHub team to have access to VRO's GitHub repos
- Get added to the OCTO Benefits Portfolio roster
- If you need access to VRO's LHDI deployment environments, get added to the VA-ABD-RRD GitHub team
- If you need access to potentially "dangerous" actions (such as deploying to prod or deleting packages), get added to VRO-RESTRICTED.
- Depending on your current status of your GitHub permissions, either ask an engineer to give you or give yourself proper permissions to bypass PR requirements and allow force pushes to the main branch of abd-vro. This permission is used to keep our
main
anddevelop
branches in sync and maintain a single git history.
- Read VRO's wiki, in particular the following (some content may need updating):
- Priorities and Roadmap
- Routing-API-requests, Code structure, and Development process (from Slack thread)
- Team Processes, specifically regarding the deployment process and the security security measures currently in place
- Gradle projects
- LHDI's Boilerplate Instructions and if needed Setup on Windows. Amida wrote up some setup instructions for Windows in Software Design Document (linked from Roadmap#references)
- External APIs to interact with other systems
- Watch "The Way We Work" presentation
- Watch this demo from the Lighthouse Delivery Infrastructure (LHDI) team on the SecRel pipeline and SD Elements
- Add your name and skills to POCs
- Remember to periodically add what you're working on (or responsible for) to the Engineering POCs spreadsheet (pinned at the top of the #benefits-rrd-engineering Slack channel)
- For background, context, and motivation, read VA Automated Benefits Delivery Team - Team Onboarding as a lower priority (whenever you have downtime between meetings or waiting on blockers to be resolved). Important topics from that document include:
- Teams and vision: various responsibilities of various teams (requires sharepoint)
- Slack usage
- Once you have access to VA's Citrix Access Gateway (CAG; a way to access general applications on the VA network), request copy-and-paste permissions from CAG to your dev machine by following the instructions in this article (requires VA-network access).
- When you have your VA.gov email, connect it to your GitHub account by adding it as an email in your settings. You must also make sure the name on your profile matches your name. This will allow you to perform SSO to various apps through GitHub on the VA's network, e.g. Aqua.
- (Optional) If interested in the initial incarnation of VRO (before Amida touched it), watch old recording '2022-06 VRO code walk-through.mp4' in Shared Meeting Notes
- When you have your PIV card, set up an Okta account following these instructions
- When you're ready to join the on-call rotation, request a Pagerduty account in #vfs-platform-support. Request to be added to the
VRO Benefits
team.
(Unlikely) If you'll be working in va.gov's codebase (a.k.a. RRD), you should review:
- Technical onboarding
- RRD technical overview
- VA DevOps Release Process (may be out of date)
- Currently, Yang and Yoom are familiar with va.gov's RRD codebase, which should be sufficient.