See also the onboarding schedule for new hires.

Tech Stack

Software Tools

In general, Banno tries to not prescribe specific tools or software except when necessary. For example, you can use whatever IDE or code editor you feel comfortable with.

You may need to elevate to admin privileges to install software, or request an exception for an unknown app to run, but these are straightforward processes that #org-ground-control can help with.

You should install and familiarize yourself with our tools:

  • Node.js and npm, of course.

    You must also configure npm to use our internal registry for @banno packages.

    Because of the way that OSX and other tools like Homebrew and XCode modify the system, we recommend using a Node version manager like nvm or n to install Node+npm. For example:

    nvm install stable
    nvm alias default stable
    nvm use default
    
  • Most repos use pnpm for package management.

  • git and GitHub are used for version control.

  • Make sure your IDE recognizes EditorConfig files – a plugin may need to be installed.

  • A Docker-compatible container manager is used to containerize our services.

    • Rancher Desktop is the recommended app.
      • See the wiki guide for installation instructions.
      • To get Rancher working with Binci, change the environment variable whhere Binci mounts /tmp by setting export BINCI_TMP=/tmp/rancher-desktop in .zshrc.
        • Rancher mounts /tmp at /tmp/rancher-desktop instead of /tmp. If you get an error while trying to start Binci and have already set your env, make sure that /tmp/rancher-desktop exists and is writeable by running mkdir /tmp/rancher-desktop.
      • Warning: We have seen significant performance disparity with Rancher Desktop.
    • You can also use Docker Desktop.
      • It must be licensed. Create a ticket using this form. Make sure to select “Docker Access” for Type of Request.
      • Contact Jonathan Ball (JonBall@jackhenry.com) if you are having problems obtaining your license.
      • Follow the configuration instructions here.
      • Make sure enough resources are allocated to it (at least 8GB memory).
    • You must authenticate your machine to manually push images to our internal registry.
  • Binci for running services and containers during development.

  • postgres-connect Helper for command line SQL. E.g. postgres-connect connect --role nodejs --name postgres-nodejs --env production -d node-consumer-login-proxy

  • ArgoCD for continuous delivery. Submit a ticket for ArgoCD access.

  • Launch Darkly Feature Flags. Use the canvas pinned in #org-launch-darkly to request access, then consult with your manager after approval.

Other tools that are useful:

  • Homebrew is a package manager for OSX.
  • Postman for sending and testing API requests. For integration with your Chrome cookies, you should also install the Postman Interceptor extension.
  • Charles is an OSX app for watching and examining HTTP(S) traffic.
  • kubectl Kubernetes command line tool
    • Setup and Testing Here are instructions to set up kubectl and how to start testing internal k8 endpoints.
  • Vault See also “Using vault CLI Tool” at the bottom.
  • Mermaid is used for diagrams and design.
    • We prefer to create diagrams in Mermaid but in the scenario that Mermaid doesn’t cover your use case, you can use Figma.

Observability

  • DataDog Enterprise logging. Individual log entries exposed through query interface. You must log in through Okta.
  • Grafana Graphing, trends, alerting.
  • Honeycomb Querying of logging spans and drill down. Service Level Objectives and alerting.
  • Kubernetes Orchestration dashboards.

Meetings

  • The Prism and Terminus teams have check-ins every Monday and Thursday at 11:00 AM Central, where each member gives an update on their currently assigned issues and what they will be working on during that week. Updates are also left as comments on Jira issues.
  • The Prism and Terminus teams have a monthly retrospective.
  • The Prism and Terminus teams have informal knowledge dumps every couple of weeks.
  • Each member of the team has a weekly one-on-one with the manager.
  • JH Digital has a quarterly meetup for customers (“Digital Banking Meetup” on the JH Events page) where it can be useful to see the roadmaps and overall strategy.

Contractor Specific Help

There are a few other things to consider if you are a contractor and not a Jack Henry employee. Check out this document here.

GitHub

PR and Branch expectations

  • PRs should follow the GitHub issue template auto-populated in the repo. They should mention what they are for and why the changes are being proposed.

Jira

  • We manage our issues by using Jira Kanban boards. One can view our project board here.

Slack

We use Slack for day-to-day communication and triage. Please read the Coummincation Guide to learn the proper etiquette in Slack channels. Check out the following Slack channels:

Other semi-related channels:

Certificates

You will need to make sure your system trusts the Banno CA certificate(s). Open Keychain Access on your machine and search for banno in either the login or System keychain. Look for certificates starting with Banno CA.

Keychain

* If you do not have any Banno certificates in your keychain, download this certificate, and double-click it to install.

Once you have the Banno certificate in your keychain, double-click each one in Keychain Access and select Always Trust from the first dropdown.

Trust Cert

Incident.io

Anyone who will be on firefighting rotation should set up an incident.io account and add themselves to the schedule. See the Account Setup docs.

API Docs