10Nov

Digital Analytics Manager at Nile Bits – Cairo, Egypt


Company Description

We’re looking for a talented and enthusiastic Digital Analytics Manager to join our data team and ensure we collect high quality, accurate and rich data to fuel our data pipeline, flowing downstream into our BI, deep-dive analyses and ML predictive models. This role will also include liaising with internal and external stakeholders to manage tracking implementations for multiple use cases, from Analytics to Performance Marketing.

This is a fantastic opportunity for a technically-minded individual with a love of tracking implementations to be an integral part of a thriving, profitable business, and to help build on a world-class data infrastructure that is transformational for our people and our customers.

Job Description

We’re looking for a hands-on, highly technical and analytically minded individual who can work cross-functionally with the product team, tech team, marketing team and data team to:

  • Identify what and how we should be collecting data (client-side, server-side) to support deep understanding of customer behavior
  • Devise the technical specifications for data collection, writing and QA-ing code where needed
  • Oversee the tracking implementation and QA-ing process end to end
  • Implement processes to ensure tracking stays robust and up to date
  • Maintain compliance and ethical values with regards to user behavioral tracking
  • Ensure our data collection keeps up with the business!

Key Responsibilities

  • Take ownership of all tag implementations in GTM and Server side GTM to feed data to tools and partners such as Snowplow, Google Analytics, Firebase, Criteo, Epsilon.
  • Working closely with Marketing teams to ensure efficient and well structured tracking code
  • Devising and owning new tracking specifications to be implemented
  • Managing all project correspondence with stakeholders
  • Experience of managing tracking implementation projects
  • Set the direction of our digital analytics strategy and enforce best practices
  • Audit the existing client-side/server-side data collection setup, identifying gaps in tracking and processes, identify inefficiencies and opportunities to improve the richness and quality of data collection at every step of the process
  • Responsible for the end to end delivery of tracking projects, this encapsulates data capture, testing/validating results and surfacing data in the data warehouse
  • Maintaining and creating documentation of tracking and processes
  • Maintaining our tracking architecture to ensure we follow best practices and reduce tech debt
  • Set up tracking monitoring processes to ensure we minimize downtime and preserve high quality data
  • Administration and maintenance of various tracking related tools including -but not limited to- Snowplow, GA4, GTM, OneTrust

 

The Deal Breakers

  • Expert technical knowledge of Google Tag Manager and its ecosystem
  • Proven experience setting up and managing complex, large-scale implementations across web and mobile
  • Experience implementing or working with clickstream data
  • Some experience with SQL
  • Comfortable with exploring large datasets, with an emphasis on event data to ensure our tracking is meeting downstream requirements
  • Good understanding of the flow of data from data collection to reporting and insights and the impacts tracking can have on business processes
  • Highly competent in translating and presenting complex technical information to a less informed audience

 

And you are…

  • A doer! Willing to step outside your comfort zone to broaden your skills and learn new technologies
  • Meticulous when it comes to devising processes, documentation and QA work
  • Proactive and highly organized, with strong time management and planning skills
  • Approachable personality, happy to help resolve ad-hoc unscheduled problems
  • Proactive, self-starter mindset; identifying elegant solutions to difficult problems and being able to suggest new and creative approaches
  • Great time management skills with the ability to identify priorities

Qualifications

Nice to have

  • Experience working with Snowplow or other event-level analytics platform is a big plus
  • Experience setting up Server Side Google Tag Manager to reduce page load times
  • Exposure to cloud based data warehousing and modelling
  • Experience setting up analytics integrations with AB testing platforms (we use Optimizely)
  • Knowledge or experience of server-side tracking implementation
  • An engineering mindset looking to leverage modern tools and technologies to drive efficiencies
  • Exposure to Python/R or similar procedural programming language

 

Our data stack

We collect data from dozens of data sources, ranging from transactional data, availability data, payments data, customer event-level data, voice-of-customer data, third party data and much much more. Our historical data runs into tens of billions of records and grows at a rate of tens of millions of records every day. Our data is extremely varied, some being very finely-grained, event-level data, other being already aggregated to various degrees. It also arrives on different schedules!

Our tracking infrastructure contains tools such as GTM, SS GTM, Snowplow, GA4.

Our data stack is Python for the data pipeline, Airflow for orchestration and Snowflake is our data warehousing technology of choice. On top of our warehouse we have Tableau to assist with standardized reporting and self service, there is also a Tableau embedding within Salesforce.

Our wider ecosystem of tools and partners includes Iterable, Docker, Branch, GA4, Salesforce, Tableau. Everything runs in AWS.

Our team culture

The data platform team is an enthusiastic group who are passionate about our profession. We are continuously maintaining our team culture via things like retrospective meetings, weekly socials, open door mentality and cross profession knowledge sharing. We adopt a fail fast mentality that promotes a safe environment for our team to upskill comfortably. Our team make up reflects the company ethos of inclusion and diversity, we are made up of a collection of different people/genders/backgrounds and celebrate our differences. Ultimately we are a team and we work as one together as one, no individual is solely responsible for any area of our pipeline, our successes and failures are shared.

Additional Information

WHY YOU’LL LOVE US

  • All employees benefits for free (our famous games room, daily breakfast, fruits, coffee and other hot drinks, soft drinks and juices, company days out and parties…)
  • Social insurance
  • Open-door management policy
  • Full Medical insurance
  • Accommodation and Transportation Allowance
  • Friendly environment that values innovation and efficiency
  • Exciting opportunities for career growth and talent development
  • Feedback encouragement
  • Recognition and reward programs
  • Competitive salaries and incentives
  • Friendly environment
  • Flexible and Comfortable schedule
  • Fun committees
  • Monetary rewards
  • Fun, smart and creative people
  • Career possibilities with growing team
  • Paid vacations
  • Social benefits

 

For more information about Nile Bits, please visit our website:

Home



Source link

10Nov

AdaBoost Classifier, Explained: A Visual Guide with Code Examples | by Samy Baladram | Nov, 2024


ENSEMBLE LEARNING

Putting the weight where weak learners need it most

Everyone makes mistakes — even the simplest decision trees in machine learning. Instead of ignoring them, AdaBoost (Adaptive Boosting) algorithm does something different: it learns (or adapts) from these mistakes to get better.

Unlike Random Forest, which makes many trees at once, AdaBoost starts with a single, simple tree and identifies the instances it misclassifies. It then builds new trees to fix those errors, learning from its mistakes and getting better with each step.

Here, we’ll illustrate exactly how AdaBoost makes its predictions, building strength by combining targeted weak learners just like a workout routine that turns focused exercises into full-body power.

All visuals: Author-created using Canva Pro. Optimized for mobile; may appear oversized on desktop.

AdaBoost is an ensemble machine learning model that creates a sequence of weighted decision trees, typically using shallow trees (often just single-level “stumps”). Each tree is trained on the entire dataset, but with adaptive sample weights that give more importance to previously misclassified examples.

For classification tasks, AdaBoost combines the trees through a weighted voting system, where better-performing trees get more influence in the final decision.

The model’s strength comes from its adaptive learning process — while each simple tree might be a “weak learner” that performs only slightly better than random guessing, the weighted combination of trees creates a “strong learner” that progressively focuses on and corrects mistakes.

AdaBoost is part of the boosting family of algorithms because it builds trees one at a time. Each new tree tries to fix the mistakes made by the previous trees. It then uses a weighted vote to combine their answers and make its final prediction.

Throughout this article, we’ll focus on the classic golf dataset as an example for classification.

Columns: ‘Outlook (one-hot-encoded into 3 columns)’, ’Temperature’ (in Fahrenheit), ‘Humidity’ (in %), ‘Windy’ (Yes/No) and ‘Play’ (Yes/No, target feature)
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
# Create and prepare dataset
dataset_dict = {
'Outlook': ['sunny', 'sunny', 'overcast', 'rainy', 'rainy', 'rainy', 'overcast',
'sunny', 'sunny', 'rainy', 'sunny', 'overcast', 'overcast', 'rainy',
'sunny', 'overcast', 'rainy', 'sunny', 'sunny', 'rainy', 'overcast',
'rainy', 'sunny', 'overcast', 'sunny', 'overcast', 'rainy', 'overcast'],
'Temperature': [85.0, 80.0, 83.0, 70.0, 68.0, 65.0, 64.0, 72.0, 69.0, 75.0, 75.0,
72.0, 81.0, 71.0, 81.0, 74.0, 76.0, 78.0, 82.0, 67.0, 85.0, 73.0,
88.0, 77.0, 79.0, 80.0, 66.0, 84.0],
'Humidity': [85.0, 90.0, 78.0, 96.0, 80.0, 70.0, 65.0, 95.0, 70.0, 80.0, 70.0,
90.0, 75.0, 80.0, 88.0, 92.0, 85.0, 75.0, 92.0, 90.0, 85.0, 88.0,
65.0, 70.0, 60.0, 95.0, 70.0, 78.0],
'Wind': [False, True, False, False, False, True, True, False, False, False, True,
True, False, True, True, False, False, True, False, True, True, False,
True, False, False, True, False, False],
'Play': ['No', 'No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'Yes',
'Yes', 'Yes', 'No', 'No', 'Yes', 'Yes', 'No', 'No', 'No', 'Yes', 'Yes',
'Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes']
}
# Prepare data
df = pd.DataFrame(dataset_dict)
df = pd.get_dummies(df, columns=['Outlook'], prefix='', prefix_sep='', dtype=int)
df['Wind'] = df['Wind'].astype(int)
df['Play'] = (df['Play'] == 'Yes').astype(int)

# Rearrange columns
column_order = ['sunny', 'overcast', 'rainy', 'Temperature', 'Humidity', 'Wind', 'Play']
df = df[column_order]

# Prepare features and target
X,y = df.drop('Play', axis=1), df['Play']
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.5, shuffle=False)Main Mechanism

Here’s how AdaBoost works:

  1. Initialize Weights: Assign equal weight to each training example.
  2. Iterative Learning: In each step, a simple decision tree is trained and its performance is checked. Misclassified examples get more weight, making them a priority for the next tree. Correctly classified examples stay the same, and all weights are adjusted to add up to 1.
  3. Build Weak Learners: Each new, simple tree targets the mistakes of the previous ones, creating a sequence of specialized weak learners.
  4. Final Prediction: Combine all trees through weighted voting, where each tree’s vote is based on its importance value, giving more influence to more accurate trees.
An AdaBoost Classifier makes predictions by using many simple decision trees (usually 50–100). Each tree, called a “stump,” focuses on one important feature, like temperature or humidity. The final prediction is made by combining all the trees’ votes, each weighted by how important that tree is (“alpha”).

Here, we’ll follow the SAMME (Stagewise Additive Modeling using a Multi-class Exponential loss function) algorithm, the standard approach in scikit-learn that handles both binary and multi-class classification.

1.1. Decide the weak learner to be used. A one-level decision tree (or “stump”) is the default choice.
1.2. Decide how many weak learner (in this case the number of trees) you want to build (the default is 50 trees).

We begin with depth-1 decision trees (stumps) as our weak learners. Each stump makes just one split, and we’ll train 50 of them sequentially, adjusting weights along the way.

1.3. Start by giving each training example equal weight:
· Each sample gets weight = 1/N (N is total number of samples)
· All weights together sum to 1

All data points start with equal weights (0.0714), with the total weight adding up to 1. This ensures every example is equally important when training begins.

For the First Tree

2.1. Build a decision stump while considering sample weights

Before making the first split, the algorithm examines all data points with their weights to find the best splitting point. These weights influence how important each example is in making the split decision.

a. Calculate initial weighted Gini impurity for the root node

The algorithm calculates the Gini impurity score at the root node, but now considers the weights of all data points.

b. For each feature:
· Sort data by feature values (exactly like in Decision Tree classifier)

For each feature, the algorithm sorts the data and identifies potential split points, exactly like the standard Decision Tree.

· For each possible split point:
·· Split samples into left and right groups
·· Calculate weighted Gini impurity for both groups
·· Calculate weighted Gini impurity reduction for this split

The algorithm calculates weighted Gini impurity for each potential split and compares it to the parent node. For feature “sunny” with split point 0.5, this impurity reduction (0.066) shows how much this split improves the data separation.

c. Pick the split that gives the largest Gini impurity reduction

After checking all possible splits across features, the column ‘overcast’ (with split point 0.5) gives the highest impurity reduction of 0.102. This means it’s the most effective way to separate the classes, making it the best choice for the first split.

d. Create a simple one-split tree using this decision

Using the best split point found, the algorithm divides the data into two groups, each keeping their original weights. This simple decision tree is purposely kept small and imperfect, making it just slightly better than random guessing.

2.2. Evaluate how good this tree is
a. Use the tree to predict the label of the training set.
b. Add up the weights of all misclassified samples to get error rate

The first weak learner makes predictions on the training data, and we check where it made mistakes (marked with X). The error rate of 0.357 shows this simple tree gets some predictions wrong, which is expected and will help guide the next steps of training.

c. Calculate tree importance (α) using:
α = learning_rate × log((1-error)/error)

Using the error rate, we calculate the tree’s influence score (α = 0.5878). Higher scores mean more accurate trees, and this tree earned moderate importance for its decent performance.

2.3. Update sample weights
a. Keep the original weights for correctly classified samples
b. Multiply the weights of misclassified samples by e^(α).
c. Divide each weight by the sum of all weights. This normalization ensures all weights still sum to 1 while maintaining their relative proportions.

Cases where the tree made mistakes (marked with X) get higher weights for the next round. After increasing these weights, all weights are normalized to sum to 1, ensuring misclassified examples get more attention in the next tree.

For the Second Tree

2.1. Build a new stump, but now using the updated weights
a. Calculate new weighted Gini impurity for root node:
· Will be different because misclassified samples now have bigger weights
· Correctly classified samples now have smaller weights

Using the updated weights (where misclassified examples now have higher importance), the algorithm calculates the weighted Gini impurity at the root node. This begins the process of building the second decision tree.

b. For each feature:
· Same process as before, but the weights have changed
c. Pick the split with best weighted Gini impurity reduction
· Often completely different from the first tree’s split
· Focuses on samples the first tree got wrong

With updated weights, different split points show different effectiveness. Notice that “overcast” is no longer the best split — the algorithm now finds temperature (84.0) gives the highest impurity reduction, showing how weight changes affect split selection.

d. Create the second stump

Using temperature ≤ 84.0 as the split point, the algorithm assigns YES/NO to each leaf based on which class has more total weight in that group, not just by counting examples. This weighted voting helps correct the previous tree’s mistakes.

2.2. Evaluate this new tree
a. Calculate error rate with current weights
b. Calculate its importance (α) using the same formula as before
2.3. Update weights again — Same process: increase weights for mistakes then normalize.

The second tree achieves a lower error rate (0.222) and higher importance score (α = 1.253) than the first tree. Like before, misclassified examples get higher weights for the next round.

For the Third Tree onwards

Repeat Step 2.1–2.3 for all remaining trees.

The algorithm builds 50 simple decision trees sequentially, each with its own importance score (α). Each tree learns from previous mistakes by focusing on different aspects of the data, creating a strong combined model. Notice how some trees (like Tree 2) get higher importance scores when they perform better.

Step 3: Final Ensemble
3.1. Keep all trees and their importance scores

The 50 simple decision trees work together as a team, each with its own importance score (α). When making predictions, trees with higher α values (like Tree 2 with 1.253) have more influence on the final decision than trees with lower scores.
from sklearn.tree import plot_tree
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt

# Train AdaBoost
np.random.seed(42) # For reproducibility
clf = AdaBoostClassifier(algorithm='SAMME', n_estimators=50, random_state=42)
clf.fit(X_train, y_train)

# Create visualizations for trees 1, 2, and 50
trees_to_show = [0, 1, 49]
feature_names = X_train.columns.tolist()
class_names = ['No', 'Yes']

# Set up the plot
fig, axes = plt.subplots(1, 3, figsize=(14,4), dpi=300)
fig.suptitle('Decision Stumps from AdaBoost', fontsize=16)

# Plot each tree
for idx, tree_idx in enumerate(trees_to_show):
plot_tree(clf.estimators_[tree_idx],
feature_names=feature_names,
class_names=class_names,
filled=True,
rounded=True,
ax=axes[idx],
fontsize=12) # Increased font size
axes[idx].set_title(f'Tree {tree_idx + 1}', fontsize=12)

plt.tight_layout(rect=[0, 0.03, 1, 0.95])

Each node shows its ‘value’ parameter as [weight_NO, weight_YES], which represents the weighted proportion of each class at that node. These weights come from the sample weights we calculated during training.

Testing Step

For predicting:
a. Get each tree’s prediction
b. Multiply each by its importance score (α)
c. Add them all up
d. The class with higher total weight will be the final prediction

When predicting for new data, each tree makes its prediction and multiplies it by its importance score (α). The final decision comes from adding up all weighted votes — here, the NO class gets a higher total score (23.315 vs 15.440), so the model predicts NO for this unseen example.

Evaluation Step

After building all the trees, we can evaluate the test set.

By iteratively training and weighting weak learners to focus on misclassified examples, AdaBoost creates a strong classifier that achieves high accuracy — typically better than single decision trees or simpler models!
# Get predictions
y_pred = clf.predict(X_test)

# Create DataFrame with actual and predicted values
results_df = pd.DataFrame({
'Actual': y_test,
'Predicted': y_pred
})
print(results_df) # Display results DataFrame

# Calculate and display accuracy
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"\nModel Accuracy: {accuracy:.4f}")

Here are the key parameters for AdaBoost, particularly in scikit-learn:

estimator: This is the base model that AdaBoost uses to build its final solution. The 3 most common weak learners are:
a. Decision Tree with depth 1 (Decision Stump): This is the default and most popular choice. Because it only has one split, it is considered a very weak learner that is just a bit better than random guessing, exactly what is needed for boosting process.
b. Logistic Regression: Logistic regression (especially with high-penalty) can also be used here even though it is not really a weak learner. It could be useful for data that has linear relationship.
c. Decision Trees with small depth (e.g., depth 2 or 3): These are slightly more complex than decision stumps. They’re still fairly simple, but can handle slightly more complex patterns than the decision stump.

AdaBoost’s base models can be simple decision stumps (depth=1), small trees (depth 2–3), or penalized linear models. Each type is kept simple to avoid overfitting while offering different ways to capture patterns.

n_estimators: The number of weak learners to combine, typically around 50–100. Using more than 100 rarely helps.

learning_rate: Controls how much each classifier affects the final result. Common starting values are 0.1, 0.5, or 1.0. Lower numbers (like 0.1) and a bit higher n_estimator usually work better.

Key differences from Random Forest

As both Random Forest and AdaBoost works with multiple trees, it is easy to confuse the parameters involved. The key difference is that Random Forest combines many trees independently (bagging) while AdaBoost builds trees one after another to fix mistakes (boosting). Here are some other details about their differences:

  1. No bootstrap parameter because AdaBoost uses all data but with changing weights
  2. No oob_score because AdaBoost doesn’t use bootstrap sampling
  3. learning_rate becomes crucial (not present in Random Forest)
  4. Tree depth is typically kept very shallow (usually just stumps) unlike Random Forest’s deeper trees
  5. The focus shifts from parallel independent trees to sequential dependent trees, making parameters like n_jobs less relevant

Pros:

  • Adaptive Learning: AdaBoost gets better by giving more weight to mistakes it made. Each new tree pays more attention to the hard cases it got wrong.
  • Resists Overfitting: Even though it keeps adding more trees one by one, AdaBoost usually doesn’t get too focused on training data. This is because it uses weighted voting, so no single tree can control the final answer too much.
  • Built-in Feature Selection: AdaBoost naturally finds which features matter most. Each simple tree picks the most useful feature for that round, which means it automatically selects important features as it trains.

Cons:

  • Sensitive to Noise: Because it gives more weight to mistakes, AdaBoost can have trouble with messy or wrong data. If some training examples have wrong labels, it might focus too much on these bad examples, making the whole model worse.
  • Must Be Sequential: Unlike Random Forest which can train many trees at once, AdaBoost must train one tree at a time because each new tree needs to know how the previous trees did. This makes it slower to train.
  • Learning Rate Sensitivity: While it has fewer settings to tune than Random Forest, the learning rate really affects how well it works. If it’s too high, it might learn the training data too exactly. If it’s too low, it needs many more trees to work well.

AdaBoost is a key boosting algorithm that many newer methods learned from. Its main idea — getting better by focusing on mistakes — has helped shape many modern machine learning tools. While other methods try to be perfect from the start, AdaBoost tries to show that sometimes the best way to solve a problem is to learn from your errors and keep improving.

AdaBoost also works best in binary classification problems and when your data is clean. While Random Forest might be better for more general tasks (like predicting numbers) or messy data, AdaBoost can give really good results when used in the right way. The fact that people still use it after so many years shows just how well the core idea works!

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier

# Create dataset
dataset_dict = {
'Outlook': ['sunny', 'sunny', 'overcast', 'rainy', 'rainy', 'rainy', 'overcast',
'sunny', 'sunny', 'rainy', 'sunny', 'overcast', 'overcast', 'rainy',
'sunny', 'overcast', 'rainy', 'sunny', 'sunny', 'rainy', 'overcast',
'rainy', 'sunny', 'overcast', 'sunny', 'overcast', 'rainy', 'overcast'],
'Temperature': [85.0, 80.0, 83.0, 70.0, 68.0, 65.0, 64.0, 72.0, 69.0, 75.0, 75.0,
72.0, 81.0, 71.0, 81.0, 74.0, 76.0, 78.0, 82.0, 67.0, 85.0, 73.0,
88.0, 77.0, 79.0, 80.0, 66.0, 84.0],
'Humidity': [85.0, 90.0, 78.0, 96.0, 80.0, 70.0, 65.0, 95.0, 70.0, 80.0, 70.0,
90.0, 75.0, 80.0, 88.0, 92.0, 85.0, 75.0, 92.0, 90.0, 85.0, 88.0,
65.0, 70.0, 60.0, 95.0, 70.0, 78.0],
'Wind': [False, True, False, False, False, True, True, False, False, False, True,
True, False, True, True, False, False, True, False, True, True, False,
True, False, False, True, False, False],
'Play': ['No', 'No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'Yes',
'Yes', 'Yes', 'No', 'No', 'Yes', 'Yes', 'No', 'No', 'No', 'Yes', 'Yes',
'Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes']
}
df = pd.DataFrame(dataset_dict)

# Prepare data
df = pd.get_dummies(df, columns=['Outlook'], prefix='', prefix_sep='', dtype=int)
df['Wind'] = df['Wind'].astype(int)
df['Play'] = (df['Play'] == 'Yes').astype(int)

# Split features and target
X, y = df.drop('Play', axis=1), df['Play']
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.5, shuffle=False)

# Train AdaBoost
ada = AdaBoostClassifier(
estimator=DecisionTreeClassifier(max_depth=1), # Create base estimator (decision stump)
n_estimators=50, # Typically fewer trees than Random Forest
learning_rate=1.0, # Default learning rate
algorithm='SAMME', # The only currently available algorithm (will be removed in future scikit-learn updates)
random_state=42
)
ada.fit(X_train, y_train)

# Predict and evaluate
y_pred = ada.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred)}")



Source link

10Nov

Data Engineering Lead at Metyis – Amsterdam, Noord-Holland, Netherlands


Metyis is growing! We are looking for a Data Engineering Lead with 5-8 years of experience to join our Data and Analytics Team, in Amsterdam.

Requirements

Who we are

Metyis is a global and forward-thinking firm operating across a wide range of industries, developing and delivering Big Data, Digital Commerce, Marketing & Design solutions and Advisory services. At Metyis, our long-term partnership model brings long-lasting impact and growth to our business partners and clients through extensive execution capabilities.

With our team, you can experience a collaborative environment with highly skilled multidisciplinary experts, where everyone has room to build bigger and bolder ideas. Being part of Metyis means you can speak your mind and be creative with your knowledge. Imagine the things you can achieve with a team that encourages you to be the best version of yourself.

We are Metyis. Partners for Impact.

What we offer

  • Interact with senior stakeholders at our clients on regular basis to drive their business towards impactful change.
  • Become the go-to person for end-to-end data handling, management, and analytics processes. 
  • Lead your team in creating the pipeline for Data management, data visualization, and analytics products, including automated services, and APIs.
  • Working with Data Scientists to take data throughout its lifecycle – acquisition, exploration, data cleaning, integration, analysis, interpretation, and visualization. 
  • Become part of a fast-growing international and diverse team.

What you will do

  • Lead, influence & implement the technical roadmap of our clients, in light of overall technology and architecture roadmaps.
  • Be responsible for the Architecture, making sure that technical and non-technical components work together in the product to deliver the customer needs.
  • Lead and Develop the digital development and operations using Python, Spark, RESTful API, and Microsoft Azure Cloud, ideally with some Data Insights experience.
  • Steer the technical excellence of the application and consistency with relevant digital frameworks, best practices, and standards.
  • Coach and enable other product team members to deliver best-in-class products.
  • Deliver data platforms, data insights and with the collaboration of the data science team – data products, such as recommendation systems, data lakes/hubs, data insights and dashboards.
  • Lead project activities and will be responsible for the evaluation of business needs and objectives in collaboration with the project team and other stakeholders.

What you’ll bring

  • 5-8 years of experience in a similar role with experience in developing and deploying ETL solutions on Azure, GCP or AWS.
  • Solid knowledge of data warehousing principles, concepts, and best practices (e.g. ODS, data marts, data lakes, data vault, 3NF).
  • Good understanding of common platforms and practices regarding digital development; Cloud-based setups, Advanced Analytics and computing environments, and GitHub (or similar) and CI/CD workflows.
  • Experience in setting up automated testing frameworks including unit tests, integration tests.
  • Understanding of modern cloud-based architecture (Lambda & Kappa architectures).
  • Advanced SQL, data transformation, and data profiling skills.
  • Experience in building production ETL/ELT pipelines at scale.
  • Data governance experience.
  • 3-5 years of hands-on experience with Azure: Data Factory, Databricks, Synapse (DWH), Azure Functions, App logic, and other data analytics services, including streaming.
  • Experience with Airflow, Kubernetes, Great expectations is a plus.
  • Programming languages: Python (PySpark), scripting languages like Bash.
  • Basic knowledge of PowerBI is a plus.
  • Customer-centric, passionate about delivering great digital products and services.
  • Demonstrating true engineering craftsmanship mindset.
  • Passionate about continuous improvement and working collaboratively.
  • Strong problem-solving skills coupled with the ability to convey designs and ideas to a wider audience.
  • People Management experience (at least 2 members team). 
  • Experience in service consulting and stakeholder management.
  • Comfortable with ambiguity, highly autonomous.
  • A Bachelor’s Degree in Computer Science, Mathematics, Economics, Engineering, Operations Research. Statistics, Business or other related technical disciplines (Master’s Degree is a plus).

In a changing world, diversity and inclusion are core values for team well-being and performance. At Metyis, we want to welcome and retain all talents, regardless of gender, age, origin or sexual orientation, and irrespective of whether or not they are living with a disability, as each of them has their own experience and identity.



Source link

10Nov

Senior Engineer – Data QA at NielsenIQ – Chennai, India


Job Description

Our Connect Technology teams are working on our new Connect platform, a unified, global, open data ecosystem powered by Microsoft Azure. Our clients around the world rely on Connect data and insights to innovate and grow. 

As a QA Engineer, you’ll be part of a team of smart, highly skilled technologists who are passionate about learning and supporting cutting-edge technologies such as Cloud/Bigdata Automation, Python, Pyspark, SQL, Hive, Databricks, Airflow, Performance testing other Data engineering tools.  These technologies are deployed using DevOps pipelines leveraging Azure, Kubernetes, Jenkins and Bitbucket/GIT Hub.  

 

WHAT YOU’LL DO: 

  • Develop, troubleshoot, debug and make application enhancements and create automation framework leveraging Python/Pyspark, SQL/NOSQL as the core development languages.  

  • Collaborate with Agile cross-functional teams – internal and external clients including Operations, Infrastructure, Tech Ops  

Qualifications

  • Strong fundamentals with experience in Cloud/Bigdata Automation Testing, Python, Pyspark, Machine Learning, SQL, Hive, Databricks, Airflow, UI and Service Testing, Performance Testing. 

  • Hands on experience in Test Automation, Creating Automation framework in Cloud, API microservice automation.  

  • Good to have experience with DevOps Technologies as GIT Hub, Kubernetes, Jenkins, Docker. 

Additional Information

Our Benefits

  • Flexible working environment
  • Volunteer time off
  • LinkedIn Learning
  • Employee-Assistance-Program (EAP)

About NIQ

NIQ is the world’s leading consumer intelligence company, delivering the most complete understanding of consumer buying behavior and revealing new pathways to growth. In 2023, NIQ combined with GfK, bringing together the two industry leaders with unparalleled global reach. With a holistic retail read and the most comprehensive consumer insights—delivered with advanced analytics through state-of-the-art platforms—NIQ delivers the Full View™. NIQ is an Advent International portfolio company with operations in 100+ markets, covering more than 90% of the world’s population.

For more information, visit NIQ.com

Want to keep up with our latest updates?

Follow us on: LinkedIn | Instagram | Twitter | Facebook

Our commitment to Diversity, Equity, and Inclusion

NIQ is committed to reflecting the diversity of the clients, communities, and markets we measure within our own workforce. We exist to count everyone and are on a mission to systematically embed inclusion and diversity into all aspects of our workforce, measurement, and products. We enthusiastically invite candidates who share that mission to join us. We are proud to be an Equal Opportunity/Affirmative Action-Employer, making decisions without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability status, age, marital status, protected veteran status or any other protected class. Our global non-discrimination policy covers these protected classes in every market in which we do business worldwide. Learn more about how we are driving diversity and inclusion in everything we do by visiting the NIQ News Center: https://nielseniq.com/global/en/news-center/diversity-inclusion





Source link

09Nov

Senior Consultant – Data Engineer at AstraZeneca – India – Chennai


Job Title -Senior consultant – Data Engineer

Career Level – D2

Introduction to role:
AstraZeneca is a global, innovation-driven biopharmaceutical business that focuses on the discovery, development, and commercialization of prescription medicines for some of the world’s most serious diseases. The Science & Enabling Units IT is AZ’s global IT capability function supporting key business areas operating out of sites across the US, UK, Sweden, India & Mexico. We are looking for a passionate Data Engineer who will leverage tools and technology best practices to improve delivery performance and data engineering capabilities in the D&A space.

Accountabilities:
– Provide data engineering (ETL, Data Products, Reports) support to R&D IT portfolio
– Deliver cost-effective solutions to support data engineering activities, for example ETL data workflows using Snowflake, Python/Lambda
– Test and quality assess new D&A solutions to ensure they are fit for release: code assurance, Unit and System Integration Testing, Data testing, release management control, and support of UAT processes
– Ensure that business data and information assets are made available as data services and artefacts for consumption by the wider AZ enterprise

Essential Skills/Experience:
– Experience of working with a range of data analytics architectures. These may include traditional warehousing, distributed computing, visualization analytics
– Good experience of ETL & cloud techniques, and tools (we currently use AWS-based Python, Terraform, Glue, Lambda, S3, SQS, APIs, Step Functions)
– Experience in ETL best practices for error handling, optimization, job layout, job design and naming conventions
– First class SQL writing skills
– Familiar with using version control (branching, merging etc), ideally Git. Knowledge of working with project branches, merging them, publishing, and deploying code to runtime environments
– Experience and familiarity with data models and artefacts
– Any DB experience like Snowflake, PostgreSQL, Athena / Glue
– Interpret data, process data, analyze results and provide ongoing support of productionized applications
– Strong analytical skills with the ability to resolve production issues
– Understanding of business area/process in scope
– Willing to work in a cross-cultural environment across multiple time zones. Ability to work effectively independently or as part of a team to achieve objectives.
– Eager to learn and develop new tech skills as required
– Good written and verbal skills, fluent English

Desirable Skills/Experience:
– Domain knowledge (processes & data): Pharma R&D
– Any regulatory experience such as GxP
– Amazon Web Services: Connecting, loading, and reading data from AWS database technologies like Athena, Glue, Aurora, AWS Redshift, PostgresSQL, S3
– MS Power BI knowledge or any other reporting tools
– Agile/Scrum process
– ITIL knowledge
– Experience in Python/lambda/Snowflake

When we put unexpected teams in the same room, we unleash bold thinking with the power to inspire life-changing medicines. In-person working gives us the platform we need to connect, work at pace and challenge perceptions. That’s why we work, on average, a minimum of three days per week from the office. But that doesn’t mean we’re not flexible. We balance the expectation of being in the office while respecting individual flexibility. Join us in our unique and ambitious world.

At AstraZeneca, our work has a direct impact on patients by transforming our ability to develop life-changing medicines. We empower the business to perform at its peak by combining cutting-edge science with leading digital technology platforms and data. Here you can innovate and take ownership while being supported all the way. Diverse minds work cross-functionally and inclusively together to drive exponential growth.

Ready to make a difference? Apply now!

 

Date Posted

07-Nov-2024

Closing Date

05-Dec-2024

AstraZeneca embraces diversity and equality of opportunity.  We are committed to building an inclusive and diverse team representing all backgrounds, with as wide a range of perspectives as possible, and harnessing industry-leading skills.  We believe that the more inclusive we are, the better our work will be.  We welcome and consider applications to join our team from all qualified candidates, regardless of their characteristics.  We comply with all applicable laws and regulations on non-discrimination in employment (and recruitment), as well as work authorization and employment eligibility verification requirements.



Source link

09Nov

Core AI For Any Rummy Variant. Step by Step guide to a Rummy AI | by Iheb Rachdi | Nov, 2024


Identifying and Collecting key Data

I explored several algorithms to optimize and reduce the search space for all possible combos. However, the fact that each card can appear twice increased the number of potential combos, making it challenging to track and validate each one. While competing on Codeforces, I encountered a problem that reminded me of the ‘island problem,’ which gave me new insight into approaching the hand evaluator system.

We can represent the hand as a 2D grid of size 4×13, where each column represents ranks from 1 to 13 and each row corresponds to the 4 suits. Each cell in this grid contains the count of cards in the hand in our case either 1, 2, or 0 . This allows us to divide the hand into ‘islands,’ which are defined as groups of connected land cells with counts of 1 or 2 based on the following connectivity rules:

1. Two cells are considered connected if they share a side (left, right, above, or below) in the grid.

2. All cells within the same column are also connected if they both contain at least 1s, even if they are not adjacent (above or below).

EXP of ‘ hand A’ : 11C 3H 4H 11D 3D 5H 9D 2H 6H 3C 4H 3D 4D 5H 12D 3C

Table representation of ‘hand A’

Our first task is to identify and label all distinct islands. Since each island is independent of the others, we can make our life easier by mapping each island to a class type let’s name it _cardGraph. This class will be responsible for that island in terms of extracting, modifying, or deleting operations.

For clarity, let’s isolate one island and work on it in the upcoming sections, so it’s easier for you to follow. If it helps, you can think of each island as a connected graph, as Shown in the figure below:

in Left: Island Represented in the Table; in Right: Same Island in a Connected Graph Perspective

Now If you take multiple island examples and try to extract the possible combos, you’ll notice that some cards have unique roles in branching out to a potential combinations. We’ll call these type of cards a control points or Cpts for short, as they play an essential role by reducing the search space significantly as you will see in the following steps.

Cpts: For a card to be considered a Cpts, it must be in a position where we have to make a choice on which meld (run or set) to append it to. If a card can naturally fit into multiple melds without forcing a choice (for example, a duplicate card with two options for melds each card will append to a meld), it won’t be considered a Cpts.

In the case of our island example the 3 of heart is identified as a cpts. Below are all the melds that the 3 of Hearts could attach to, one at a time.

Our next step is to mark each card that qualifies as a Cpts. To do this, we’ll create a 4×13 (in byte type) table lets call it _flagMap . Now for memory efficiency, you can make this a shared table each _cardGraph instance created from the hand can reference it and use it . In this table, each card in an island will be assigned a bitstream at the corresponding index in _flagMap, this byte will represents its potential placements in different runs or sets. If a card qualifies as a Cpts, it will be stored in a stack (we will need later), which we’ll call _cptsStack. Here’s a breakdown of the byte structure: the first bit indicates whether the card belongs to a run, the second bit indicates its placement in an additional run, the third bit represents whether it belongs to a set, and the fourth bit specifies if it belongs to multiple sets.

Here’s an example of a bitstream: 00000111 In here we have:

The first bit (1) means the card can belong to a run.

The second bit (1) means the card can belong to a second run.

The third bit (1) means the card belongs to a set.

The fourth bit (0) means the card doesn’t belong to a second set.

We might be in case where the configuration is 00000101 for one card (no copy), meaning the card belongs to a run or a set. Or another configuration could be 00000011, meaning the card belongs to two different runs.

To identify a cpts, simply count the ‘1’s in its bit representation. If this count exceeds the total number of that card in the hand, it’s considered a cpts. For instance, if a card appears twice (i.e., has two copies) and its bit representation is 00000101, it’s not a cpts. However, if the bit representation is 00000111 like the example , then it qualifies as a cpts.

In our island example, here’s how the _flagMap table would look :

_FlagMap Representation of the ‘hand A’ Example

Once we’ve populated the _flagMap and identified the cpts, the next task is to decompose the island into horizontal and vertical lines. But why? Breaking down the card graph into these lines simplifies the process of identifying runs and sets, as it allows us to focus on contiguous sequences of cards that can be processed more efficiently. As you might guess, the vertical lines will represent the sets, while the horizontal lines will represent the runs.

Island decomposed into Horizontal and Vertical Lines

We’ll store each horizontal line in a list of a tuple type, where the first item represents the starting index of the line and the last item represents the end index (inclusive). For the vertical lines, it’s sufficient to simply store the column index in a list.

Tip: We can accomplish this task along with the bit representation step in a single loop, achieving O(n) complexity.

Generate Combos

Now, let’s take a break and recap: we have identified the control points (CPTs) and stored them in the _cptsStack. We also decomposed the island into vertical and horizontal lines, and populated the _flagMap with card bit representation.

With our data in place, what remains is to use it to generate all possible valid combos of the island. But how do we do that? Here’s a simplified approach:

1. Assign Valid Placements for the Control Points (Cpts):
We take the bit representation of a cpts from _flagMap, which indicates all possible placements for that cpts. Then, we look at the number of copies of the cpts in the _cardGraph and adjust its bit representation to a current valid configuration. For example, if the cpts has a bit representation of 00001111 and 2 copies, we can generate all valid placements for it, which is C(4,2)=6C(4,2) = 6C(4,2)=6. Possible combinations would be 0011, 0101, 1100, 1010, 1001, and 0110.

2. Using DFS to Configure All Possible Combinations for Each Cpts:
We’ll use a depth-first search (DFS) to iterate over the valid placements for each cpts as shown in step 1. Each node in the DFS tree represents a possible placement for a given cpts, so each unique DFS path represents a valid combo configuration. For each “leaf” node (end of the DFS path), we proceed to the next step.

3. Generating Combos:
In this step, we iterate over the horizontal and vertical lines in the island to identify runs, sets, and a dump list. This is done in two passes for each line, as follows:

  • Pass 1: For a horizontal line, for example, we continuously append cards from [line start to line end] into a list to form a run. We stop adding if ( card_bit_representation | 00000001 == 0 ). If the length of the run is greater than or equal to 3, we add it to the run combo; otherwise, each card goes into the dump list, and we continue trying to form another run until we reach the line end.
  • Pass 2: Repeat the process, this time looking for cards that match a different bit pattern with or operation ( 00000010). This allows us to identify possible second runs.

The same approach applies to extracting sets, but we use bit operations with 00000100 and 00001000.

4. Register the Valid Combo and Move to the Next DFS Configuration:
After completing all runs, sets, and dumps for the current combo, we save the combo and then move on to the next DFS configuration to repeat the process. This way, we systematically explore all potential configurations for valid combos.

if you coded everything correctly and feed it our island example : ”2H3H4H5H4H5H6H3C3C3D3D4D”, it should be decomposed as shown bellow. Notice that I’ve added some calculation to each generated combo so that we can get a sense of how the AI will act.

Console Output Showing the Generated Combo For the Island Example

In the next article, I’ll dive into the rest of the system, focusing on the dynamic modification of the hand and the AI strategy. If you’ve followed along so far, it won’t be hard to see how we can optimize adding and removing cards, as well as incorporate the two rules we set aside at the beginning. Stay tuned, and see you next time! “hopefully 😉”.

Unless otherwise noted, all images are created by the author using Lucidchart ,Gimp and Python



Source link

09Nov

Technical Business Analyst at Synechron – New York, NY


We are

At Synechron, we believe in the power of digital to transform businesses for the better. Our global consulting firm combines creativity and innovative technology to deliver industry-leading digital solutions. Synechron’s progressive technologies and optimization strategies span end-to-end Artificial Intelligence, Consulting, Digital, Cloud & DevOps, Data, and Software Engineering, servicing an array of noteworthy financial services and technology firms. Through research and development initiatives in our FinLabs we develop solutions for modernization, from Artificial Intelligence and Blockchain to Data Science models, Digital Underwriting, mobile-first applications and more. Over the last 20+ years, our company has been honored with multiple employer awards, recognizing our commitment to our talented teams. With top clients to boast about, Synechron has a global workforce of 14,500+, and has 58 offices in 21 countries within key global markets.

Our challenge

We are looking for a motivated and detail-oriented Technical Business Analyst to join our team. The ideal candidate will bridge the gap between technical teams and business stakeholders, utilizing their data proficiency and analytical skills to derive insights and support data-driven decision-making. This role will involve working with various data sets, understanding data transformations, and ensuring that business requirements are effectively translated into technical specifications.

Additional Information* 

The base salary for this position will vary based on geography and other factors. In accordance with law, the base salary for this role if filled within New York City, NY is $125k – $145k/year & benefits (see below).

The Role

Responsibilities:

  • Collaborate with stakeholders to gather and document business requirements and technical specifications.

  • Analyze and interpret data using SQL to inform business decisions and strategies.

  • Create and maintain data mapping documents that detail data transformations and workflows across systems.

  • Work with unstructured data and leverage data streaming applications to enhance data usability.

  • Utilize cloud data orchestration and data streaming platforms to ensure efficient data handling and processing.

  • Develop and optimize data pipelines, ensuring data integrity and accuracy throughout the process.

  • Perform data analysis and profiling, utilizing Python libraries or other analytical tools to extract insights.

  • Communicate findings and recommendations to stakeholders, ensuring alignment with business goals.

Requirements:

You are:

  • Proficiency in SQL with a solid understanding of data extraction and analysis techniques.

  • Experience working with unstructured data and familiarity with data streaming applications.

  • Ability to create and understand data mapping documents, including data transformations.

  • Strong experience with cloud data orchestration and data streaming platforms.

  • In-depth knowledge of data pipelines and the ability to analyze unstructured data effectively.

  • Proven experience in data analysis and profiling, preferably utilizing Python libraries or alternatives.

It would be great if you also had:

  • Excellent communication and soft skills, with the ability to work collaboratively with technical and non-technical teams.

  • A strong sense of product vision and understanding of the CRM domain.

We can offer you:

  • A highly competitive compensation and benefits package

  • A multinational organization with 58 offices in 21 countries and the possibility to work abroad

  • Laptop and a mobile phone

  • 10 days of paid annual leave (plus sick leave and national holidays)

  • Maternity & Paternity leave plans

  • A comprehensive insurance plan including: medical, dental, vision, life insurance, and long-/short-term disability (plans vary by region)

  • Retirement savings plans

  • A higher education certification policy

  • Commuter benefits (varies by region)

  • Extensive training opportunities, focused on skills, substantive knowledge, and personal development.

  • On-demand Udemy for Business for all Synechron employees with free access to more than 5000 curated courses 

  • Coaching opportunities with experienced colleagues from our Financial Innovation Labs (FinLabs) and Center of Excellences (CoE) groups

  • Cutting edge projects at the world’s leading tier-one banks, financial institutions and insurance firms

  • A flat and approachable organization

  • A truly diverse, fun-loving and global work culture

S​YNECHRON’S DIVERSITY & INCLUSION STATEMENT
 

Diversity & Inclusion are fundamental to our culture, and Synechron is proud to be an equal opportunity workplace and is an affirmative action employer. Our Diversity, Equity, and Inclusion (DEI) initiative ‘Same Difference’ is committed to fostering an inclusive culture – promoting equality, diversity and an environment that is respectful to all. We strongly believe that a diverse workforce helps build stronger, successful businesses as a global company. We encourage applicants from across diverse backgrounds, race, ethnicities, religion, age, marital status, gender, sexual orientations, or disabilities to apply. We empower our global workforce by offering flexible workplace arrangements, mentoring, internal mobility, learning and development programs, and more.

All employment decisions at Synechron are based on business needs, job requirements and individual qualifications, without regard to the applicant’s gender, gender identity, sexual orientation, race, ethnicity, disabled or veteran status, or any other characteristic protected by law.

Candidate Application Notice



Source link

09Nov

Intern Digital Transformation in Marketing and Sales (f/m/x) at BMW Group – Munich, BY, DE, 80809


A GOOD INTERNSHIP IS NEVER HANDS OFF.

SHARE YOUR PASSION.

We believe in creating an environment where our interns really can learn by doing  and where they are given their own areas of responsibility right from the start of their time with us. That’s why our experts will treat you as part of the team from day one, encourage you to bring your own ideas to the table – and give you the opportunity to really show what you can do.

 

We, the BMW Group, offer you an interesting and varied internship in the area of digital Transformation in Marketing and Sales.

 

What awaits you?

  • Managing the portfolio of all our AI use cases in the sales and marketing area.
  • Tracking the progress of the development of individual use cases.
  • Assisting in the creation of pitch materials for AI and process mining projects.
  • Support conducting Trainings and Hack-A-Prompt events.
  • Support the teams in building their cases and improve promptings.

 

What should you bring along? 

  • Studies in the field of Business Informatics, Computer Science, or a comparable discipline.
  • Experience in creating prompts for AI systems.
  • Initial experience with AI and digital transformation.
  • Good skills in creating reports and presentations.
  • Initiative, teamwork, and willingness to learn.
  • Experiences in teaching and executing trainings.
  • Good English skills, both spoken and written.

 

What do we offer?

  • Comprehensive mentoring & onboarding.
  • Personal & professional development.
  • Flexible working hours.
  • Digital offers & mobile working.
  • Attractive remuneration.
  • Apartment offers for students (subject to availability & only Munich).
  • And many other benefits – see bmw.jobs/benefits

 

You are enthused by new technologies and an innovative environment? Apply now!

 

At the BMW Group, we see diversity and inclusion in all its dimensions as a strength for our teams. Equal opportunities are a particular concern for us, and the equal treatment of applicants and employees is a fundamental principle of our corporate policy. That is why our recruiting decisions are also based on personality, experience and skills.

Find out more about diversity at the BMW Group at bmwgroup.jobs/diversity
 

Earliest starting date: from 01/01/2025

Duration: 6 months

Working hours: Full-time

Contact:
BMW Group HR Team
+49 89 382-17001

 



Source link

09Nov

Data Analyst at Visit.org – Mexico City, Mexico City, Mexico


Visit.org is looking for a passionate and ambitious Data Analyst to join our remote team. The Data Analyst will automate data reporting, and develop statistical models to demonstrate the effectiveness of our social media and influencer activities. The right candidate will have an entrepreneurial spirit, extreme passion for our mission, and the energy and discipline to come in and be a builder in a start-up tech environment. 

Please note: This is a remote, Mexico-based 40 hr/week contract position that requires working hours from 9:00 AM – 5:00 PM EST 

What Motivates Us

There is room for everyone! We empower each other to innovate and create processes that use technology to generate meaningful, lasting change. We enjoy the challenge of finding solutions to problems that are not a way around it but through it.  We’re driven by the opportunity to help enterprises and their employees around the world to contribute to their communities. 

 

When You Join the Team

  • You’ll join a movement from the ground floor and a team of purpose-driven people with a strong sense of responsibility, ownership, and pride that we’re building this thing together. 

  • You’ll combine passion, purpose, and a paycheck—Visit.org team members get out of bed every day knowing their work is meaningful and has a tangible impact on individuals and communities around the world.

About Visit.org:

Visit.org helps companies discover & book thousands of carefully curated social impact team experiences, led by and benefitting local nonprofits. With its proprietary library of team-based experiences across 90+ countries, Visit.org provides HR, DEI, CSR, and Meetings & Events leaders highly scalable, culturally appropriate content for purpose-driven employee and client engagement. Some of our customers include Colgate, Paramount, Visa, Ancestry, Tommy Bahama, and more.

Responsibilities: 

  • Lead reporting, analytics, and insights to provide data-driven recommendations across all departments

  • Develop internal business intelligence reporting across the organization utilizing customer, sales, accounting, and various other data sources

  • Create reports, dashboards, analyze, etc. to provide business insights that drive decision-making

  • Ability to research and identify market trends

  • Works with business leads to identify gaps or issues in reporting; implements fixes or new reports accordingly

  • Develops technical documentation to support reporting initiatives and training across the organization

  • Analyze and manipulate Salesforce data to inform departmental objectives and KPIs

  • Maintain internal data integrity and cleanliness, which will enable more accurate and insightful reporting

  • Transform data into usable data sets and create purposeful reports, turning data into actionable insights

  • Create reports using multiple sources and systems and by manipulating data/information into clear and concise reports, graphs, charts, and tables

Qualifications:

  • 5+ years of experience in data analytics, reporting, and/or statistical analysis

  • Two or more years of experience developing and/or using business intelligence reports 

  • Two or more years of experience with Salesforce

  • Proficiency in English

  • Understanding of relational databases

  • Proven ability to work cross-functionally with teams in research, marketing, and sales, as well as manage client interactions

  • Strong Excel, Salesforce, and SQL experience and skillset

  • Ability to communicate effectively both verbally and in writing, as well as able to communicate quantitative information in a clear and informative manner

  • Experience in data management and reporting

  • Experience working in a fast-paced startup environment 

  • Passion for our mission and the desire to make an impact in the world through technology

Please note: This is a remote, Mexico-based 40 hr/week contract position that requires working hours from 9:00 AM – 5:00 PM EST 

How we care

  • Competitive pay

  • Mission-aligned company event participation

  • Inclusive, collaborative, and exciting start-up culture

  • Accelerated career & personal growth

  • Culture Club and more!



Source link

08Nov

Intermediate Modeler at Transamerica – Baltimore, Maryland


Job Family

Treasury, Capital Management and Asset Liability Management

About Us 

 

At Transamerica, hard work, innovative thinking, and personal accountability are qualities we honor and reward. We understand the potential of leveraging the talents of a diverse workforce. We embrace an environment where employees enjoy a balance between their careers, families, communities, and personal interests.  

 

Ultimately, we appreciate the uniqueness of a company where talented professionals work collaboratively in a positive environment — one focused on helping people look forward and plan for the best life possible while providing tools and solutions that make it easier to get there. 

     

Who We Are 

  

We believe everyone deserves to live their best life. More than a century ago, we were among the first financial services companies in America to serve everyday people from all walks of life.  

Today, we’re part of an international holding company, with millions of customers and thousands of employees worldwide. Our insurance, retirement, and investment solutions help people make the most of what’s important to them. 

We’re empowered by a vast agent network covering North America, with diversity to match. Together with our nonprofit research institute and foundation, we tune in, step up, and are a force for good — for our customers and the communities where we live, work, and play. United in our purpose, we help people create the financial freedom to live life on their terms. 

What We Do 

 

Transamerica is organized into three distinct businesses. These include 1) World Financial Group, including Transamerica Financial Advisors, 2) Protection Solutions and Savings & Investments, comprised of life insurance, annuities, employee benefits, retirement plans, and Transamerica Investment Solutions, and 3) Financial Assets, which includes legacy blocks of long term care, universal life, and variable and fixed annuities. These are supported by Transamerica Corporate, which includes Finance, People and Places, General Counsel, Risk, Internal Audit, Strategy and Development, and Corporate Affairs, which covers Communications, Brand, and Government and Policy Affairs. 

 

Transamerica employs nearly 7,000 people. It’s part of Aegon, an integrated, diversified, international financial services group serving approximately 23.9 million customers worldwide.* For more information, visit transamerica.com.  

Job Description Summary

We are seeking a highly skilled and motivated Modeler to join our team. The successful candidate will focus on the development and maintenance of our trader dashboard, an in-house hedging and trading platform. This role requires close collaboration with the IT and derivative front office teams to ensure system integrity and continuous performance improvements. The ideal candidate will have a strong background in software development, financial modeling, and risk management processes, with proficiency in major programming languages and modern frontend development frameworks.

Job Description

Responsibilities:

  • Develop and enhance the trader dashboard, our in-house hedging and trading platform.

  • Collaborate closely with investment IT and derivative front office teams to maintain system integrity and improve performance.

  • Produce, maintain, and extend existing model implementations built in C#/Python.

  • Implement risk reports and automate processes for risk management and operations.

  • Create applications and user interfaces using Python and Excel VBA for the front desk.

  • Maintain and update existing derivative hedging and pricing models through coding, testing, and documentation.

  • Model and quantify risks on various market factor sensitivities and P&L attributions of the derivatives portfolio.

Qualifications:

  • Bachelor’s degree in a technical/quantitative discipline such as statistics, math, actuarial science, computer science, economics, engineering, or a related business field such as finance

  • Three years of modeling experience (or one with Master’s degree) and knowledge of at least one product such as insurance liability, asset valuation, derivatives modeling, liquidity management, machine learning, or artificial intelligence

  • Good understanding of investment and finance concepts, and the ability to creatively apply them in solving analytical problems

Preferred Qualifications:

  • Proficient programming skills in major programming languages (C++, C#, Python)

  • Strong knowledge of enterprise software and architecture

  • Solid software development background or understanding of software development principles

  • Experience in software development and financial modeling within a trading environment

  • Expertise with modern frontend development frameworks (Angular, React, Vue.js, ASP.NET)

  • Expertise in microservices and REST-based API development

  • Familiarity with database design techniques and philosophies

Working Conditions:

Compensation:

**Please note that the compensation information that follows is a good faith estimate for this position only and is provided pursuant to applicable pay transparency and compensation posting laws. It is estimated based on what a successful candidate might be paid in certain Company locations.** 

The Salary for this position generally ranges between $84,000 – $95,000 annually. This range is an estimate, based on potential qualifications and operational needs. Salary may vary above and below the stated amounts, as permitted by applicable law. 

Bonus Eligibility:

This position is also typically eligible for an Annual Bonus based on the Company Bonus Plan/Individual Performance and is at Company Discretion.

This job description is not a contract of employment nor for any specific job responsibilities. The Company may change, add to, remove, or revoke the terms of this job description at its discretion. Managers may assign other duties and responsibilities as needed. In the event an employee or applicant requests or requires an accommodation to perform job functions, the applicable HR Business Partner should be contacted to evaluate the accommodation request.

Worried about not having every single qualification listed? It’s okay. If it’s a role you’re interested in, we encourage you to apply. Employees who enjoy their jobs are one of our favorite things. 

What We Offer  

 

For eligible employees, we offer a comprehensive benefits package designed to support both the personal and financial well-being of our employees. 

 

Compensation Benefits 

 

Benefits Package 

 

Health and Work/Life Balance Benefits 

  • Paid Time Off starting at 160 hours annually for employees in their first year of service.

  • Ten (10) paid holidays per year (typically mirroring the New York Stock Exchange (NYSE) holidays).

  • Be Well Company holistic wellness program, which includes Wellness Coaching and Reward Dollars 

  • Parental Leave – fifteen (15) days of paid parental leave per calendar year to eligible employees with at least one year of service at the time of birth, placement of an adopted child, or placement of a foster care child.

  • Adoption Assistance

  • Employee Assistance Program

  • College Coach Program

  • Back-Up Care Program

  • PTO for Volunteer Hours

  • Employee Matching Gifts Program

  • Employee Resource Groups

  • Inclusion and Diversity Programs

  • Employee Recognition Program

  • Referral Bonus Programs

 

Inclusion & Diversity  

  

We believe our commitment to diversity and inclusion creates a work environment filled with exceptional individuals. We’re thrilled to have been recognized for our efforts through the Human Rights Campaign Corporate Equality Index, Dave Thomas Adoption Friendly Advocate, and several Seramount lists, including the Inclusion Index, 100 Best Companies for Working Parents, Best Companies for Dads, and Top 75 Companies for Executive Women. 

  

To foster a culture of inclusivity throughout our workforce, workplace, and marketplace, Transamerica offers a wide range of diversity and inclusion programs. This includes our company-sponsored, employee-driven Employee Resource Groups (ERGs), which are formed around a shared interest or a common characteristic of diversity. ERGs are open to all employees. They provide a supportive environment to help us better appreciate our similarities and differences and understand how they benefit us all. 

   

Giving Back  

  

We believe our responsibilities extend beyond our corporate walls. That’s why we created the Aegon Transamerica Foundation in 1994. Through a mix of financial grants and the volunteer efforts of our employees, the foundation supports nonprofit organizations focused on the things that matter most to our people in the communities where we live and work.     

  

Transamerica’s Parent Company  

 

Aegon acquired the Transamerica business in 1999. Since its start in 1844, Aegon has  grown into an international company serving more than 23.9 million people across the globe.* It offers investment, protection, and retirement solutions, always with a clear purpose: Helping people live their best lives. As a leading global investor and employer, the company seeks to have a positive impact by addressing critical environmental and societal issues, with a focus on climate change and inclusion and diversity.   

* As of December 31, 2023

 



Source link

Protected by Security by CleanTalk