Skip to content

Instantly share code, notes, and snippets.

View jeansymolanza's full-sized avatar

Jeansy Molanza jeansymolanza

View GitHub Profile
The Global1 8.3.0 Upgrade: Transforming a 2-Year Timeline into 8 Months
In 2022, I led the Global1 8.3.0 upgrade, a mission-critical project for our Securities Lending platform processing millions of trades daily across 10,000+ counterparties. This platform serves as the backbone for Barclays' Prime Brokerage business, and historically, such upgrades took 18-24 months with a notorious reputation for causing production outages and significant business disruption. Senior management challenged us to compress this timeline dramatically while maintaining zero tolerance for business disruption.
The Challenge
The project's complexity stemmed from multiple dimensions. First, we had to reconcile Barclays' extensive custom code—developed over years to support client-specific prime brokerage requirements—with the vendor's new implementation. Second, we needed to coordinate across six distinct teams spanning three continents: our Build-The-Bank (BTB) team in London, our Run-The-Bank (RTB) support team in Glasgow, our QA
#!/bin/bash
# Define the API endpoint and headers
API_HOST="http://localhost:11434"
HEADERS=(
"-H" "Content-Type: application/json"
"-H" "x-some-header: some-value"
)
# Define the JSON payload
context 'when se_linux mount exists' do
before do
# Mock File.directory? with any_args as you have
allow(File).to receive(:directory?).with(any_args).and_return(true)
# Mock shell_out for the ls -Z command exactly as you have
allow_any_instance_of(Chef::Resource).to receive(:shell_out)
.with('ls -Z /mnt/tmpfs | grep tmp_t')
.and_return(double('shell_out', exitstatus: 1))
We’re excited to announce the release of a new version of Global1 ePrime! Here’s what’s new and improved:
Release Details
Version: 0.26.7
New Features: QUICK codes and internal comments are now available on the Bulk Booking PageApp.
What Has Changed?
Bulk Booking PageApp:
[ -d "/backup/PREARC" ] && find "/backup/PREARC" -mindepth 1 -exec rm -rfv {} +
SELECT
businessDate,
COUNT(CASE WHEN activityType = 'M' THEN 1 END) AS activityTypeMCount,
COUNT(CASE WHEN activityType = 'FR' THEN 1 END) AS activityTypeFRCount
FROM (
SELECT businessDate, activityType
FROM g1ActivityMessageId WITH (NOLOCK)
WHERE inputUser LIKE 'KL_%'
AND inputUser != 'KL_BATCH'
AND inputDate IN ('2024-10-28', '2024-10-29')
keytool -importkeystore -srckeystore your_keystore.jks -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias your_alias -deststorepass your_password -srcstorepass your_password
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out private_key.pem
openssl pkcs12 -in keystore.p12 -clcerts -nokeys -out certificate.pem
cat private_key.pem certificate.pem > combined.pem
# Get the size of the source directory in GB
SRC_SIZE=$(du -sk "$SRC" | awk '{print $1}')
SRC_SIZE_GB=$(echo "scale=2; $SRC_SIZE / 1024 / 1024" | bc)
# Get the available space in the destination in GB
DEST_AVAILABLE=$(df -k "$DEST" | tail -1 | awk '{print $4}')
DEST_AVAILABLE_GB=$(echo "scale=2; $DEST_AVAILABLE / 1024 / 1024" | bc)
# Calculate the required space (source size + 25%) in GB
REQUIRED_SPACE_GB=$(echo "scale=2; $SRC_SIZE_GB + ($SRC_SIZE_GB * 0.25)" | bc)
LATEST_VERSION=$(find "$(readlink -f "$BASE_DIR")" -maxdepth 1 \( -type d -o -type l \) -exec stat --format '%Y %n' {} \; | sort -nr | head -n 1 | awk '{print $2}')
To determine the amount of NUSERS, follow these steps:
1. Average Connections per Device:
- If not using device licensing: 1
- If using device licensing: typically 2 or 3 (maximum 10).
2. Average Number of Phantoms:
- If using phantoms: provide a specific number.
- If not: suggested value is 20.