BLACK OPS SOLUTIONS · IT Graduate IT Interview PackAU · 2026

Data Engineer / Analyst · graduate level · Australia

Graduate Data Engineer / Analyst

Turns raw operational data into numbers the business will actually act on.

Job description · fictional employer

Graduate Data Engineer / Analyst

Yarrow Energy Retail

Location
Brisbane - hybrid, 2 days in office
Employment type
Full-time, permanent - 12-month graduate program
Salary
AUD $80,000 base + 12% superannuation
Reports to
Data Platform Lead
Intake
February 2027 - applications close 10 October 2026

About us

Yarrow Energy Retail sells electricity and gas to about 210,000 households and small businesses across Queensland and New South Wales. Every one of them generates meter reads, billing events, payments and service calls. Our data team turns that into pricing decisions, hardship identification, regulatory reporting and the forecasts the trading desk relies on.

The team you would join

The data group is twelve people: five data engineers, four analysts, two analytics engineers and a lead. You would split the first year across engineering and analytics rather than choosing on day one, because the best people in this field can do both and most graduates do not yet know which they prefer.

What you will do

  • Build and maintain data pipelines in Python and SQL, orchestrated in Airflow
  • Write dbt models with tests and documentation - an untested model does not get merged
  • Investigate data quality issues end to end, from a stakeholder saying the number looks wrong to a fix in the source
  • Build and maintain Power BI reports that people actually open, and retire the ones they do not
  • Work directly with billing, hardship and trading teams to understand what a number is for before you produce it
  • Support regulatory reporting cycles, where accuracy and traceability are non-negotiable
  • Contribute to the data dictionary and lineage documentation
  • Present findings to non-technical stakeholders, including saying when the data cannot answer the question

What we are looking for

  • A completed or in-progress bachelor degree in data science, computer science, IT, mathematics, statistics, engineering, economics or a related discipline
  • SQL you can defend in an interview - joins, group by, having, window functions or a demonstrated willingness to learn them fast
  • Python for data work: pandas or equivalent, reading awkward files, basic scripting
  • The habit of questioning a result that looks too good
  • Clear communication in writing. Half of analytics is explaining a number to someone who did not ask for the caveats
  • Attention to detail - in energy retail, a wrong number becomes a wrong bill
  • Full Australian working rights

Nice to have

  • Exposure to a cloud data warehouse - Snowflake, BigQuery, Redshift or Databricks
  • dbt, Airflow or any orchestration tool
  • Power BI, Tableau or Looker
  • Statistics beyond an introductory unit - regression, hypothesis testing, time series
  • Any exposure to the energy sector, or to a regulated industry
  • Version control for analysis work, not just for software

Our stack

SnowflakedbtApache AirflowPython (pandas, Polars)SQLPower BIAWS S3FivetranGreat ExpectationsGit

What the program gives you

  • Rotation across data engineering and analytics in the first year, then you choose
  • A named business stakeholder from month two, so you learn the domain and not just the tables
  • dbt and Snowflake certification paid for, with study time
  • $2,000 learning budget
  • A team that writes tests for data and treats analysis code like code

How the process runs

  1. 1

    Application

    CV plus a link to any analysis you have done, in any format.

  2. 2

    SQL screen

    45 minutes, live but collaborative. Realistic messy tables, and we help if you get stuck.

  3. 3

    Case exercise

    Take-home, around three hours. A dataset with deliberate problems in it, and a business question.

  4. 4

    Case discussion

    60 minutes - present your findings to two people, one of whom is not technical.

  5. 5

    Team interview

    45 minutes - stakeholder management, judgement, how you handle being asked for a number you do not trust.

  6. 6

    Offer

    Within a week of the final stage.

The best graduate analysts we have hired were not the ones with the most tooling on their CV. They were the ones who asked why a number was being requested before producing it. Reasonable adjustments are available at any stage.

Interview questions · 21 questions with model answers

Graduate Data Engineer / Analyst

Answers are hidden by default so you can attempt each one first.

Motivation and behavioural

Analytics fails on communication far more often than on technique.

  1. Tell me about a time your analysis produced a result you did not expect. What did you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Checked the work before announcing the finding
    • Names what they verified - the join, the filter, the date range, the denominator, duplicates
    • Distinguishes a genuine insight from a data artefact
    • Escalated or shared it appropriately once confident

    Red flagReported the surprising number straight away because it made a good story.

  2. A stakeholder asks you for a number. How do you respond?

    Show what a strong answer coversHide answer

    A strong answer

    • Asks what decision the number will inform before running anything
    • Clarifies definitions - which customers, which period, active means what exactly
    • Confirms understanding back to them in writing
    • Knows the requested number is often not the useful one

    Red flagGoes straight to the query.

  3. Describe explaining something technical to someone non-technical. How did it go?

    Show what a strong answer coversHide answer

    A strong answer

    • Chose a concrete example over an abstract explanation
    • Checked understanding rather than assuming
    • Adjusted when the first attempt did not land
    • Can admit an attempt that failed

    Red flagDescribes the audience as the problem.

  4. You are asked to produce a number you do not think is meaningful. What do you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Produces it if required, with the caveat attached and visible
    • Offers the better alternative alongside rather than instead
    • Escalates only if the number will cause real harm
    • Understands they are an adviser, not a gatekeeper

    Red flagEither refuses outright, or hands it over silently knowing it is misleading.

  5. Why energy retail rather than a bank or a consultancy?

    Show what a strong answer coversHide answer

    A strong answer

    • Has some grasp of the domain - meter data, tariffs, hardship, regulation
    • Interested in a domain deep enough to learn over years
    • Honest about wanting breadth early in a career
    • Has read something about the industry

    Red flagInterested in data generically, with no view on where.

SQL and data fundamentals

Run these live against messy sample tables. Helping them is fine - you are watching how they reason.

  1. What is the difference between WHERE and HAVING?

    Show what a strong answer coversHide answer

    A strong answer

    • WHERE filters rows before grouping, HAVING filters groups after aggregation
    • Gives an example: filtering by a customer state versus filtering to customers with more than five invoices
    • Knows an aggregate cannot be used in WHERE

    Red flagUses them interchangeably and cannot be led to the difference.

  2. Your join returned more rows than the left table had. Why?

    Show what a strong answer coversHide answer

    A strong answer

    • Duplicates on the join key in the right-hand table
    • Knows to check the grain of both tables before joining
    • Would run a count of distinct keys to confirm
    • Recognises this is the single most common cause of wrong numbers in reporting

    Red flagAdds DISTINCT to make the row count look right without diagnosing it.

  3. Write me a query that returns each customer's most recent invoice.

    Show what a strong answer coversHide answer

    A strong answer

    • Reaches for a window function - ROW_NUMBER partitioned by customer, ordered by date
    • Or a correlated subquery or a max-date join, and knows the tie-breaking problem
    • Asks what to do when two invoices share a timestamp
    • Thinks about customers with no invoices at all

    Red flagUses GROUP BY with a max date and then selects other columns without understanding why it is wrong.

  4. What is a window function and when have you needed one?

    Show what a strong answer coversHide answer

    A strong answer

    • Calculates across a set of rows while keeping each row
    • Names real uses: running totals, rank within group, month-on-month change, deduplication
    • Understands PARTITION BY versus GROUP BY
    • Has actually used one

    Red flagHas heard the term but has never written one and does not ask.

  5. Rows are missing from a report after a change. How do you find out why?

    Show what a strong answer coversHide answer

    A strong answer

    • Counts at each stage of the pipeline to find where the drop happens
    • Suspects an inner join, a date filter, a timezone boundary, or a null in the join key
    • Compares against the source rather than another derived table
    • Knows nulls do not behave as expected in comparisons

    Red flagRebuilds the query from scratch hoping it comes out right.

  6. What does it mean for a table to be at daily grain, and why does grain matter?

    Show what a strong answer coversHide answer

    A strong answer

    • Grain is what one row represents - one customer per day, one meter read, one invoice line
    • Knows mixing grains is how double counting happens
    • Would state the grain explicitly when designing a model
    • Connects it to sums that are inexplicably too large

    Red flagHas never thought about it and shows no curiosity when it is explained.

Pipelines, modelling and quality

Engineering-leaning questions. A graduate should reason sensibly even without tool experience.

  1. What would you test on a data pipeline, and when would you run those tests?

    Show what a strong answer coversHide answer

    A strong answer

    • Row counts and freshness, uniqueness of keys, nulls where they should not be, accepted values, referential integrity
    • Runs them after load and fails or quarantines rather than publishing silently
    • Distinguishes a hard failure from a warning
    • Knows someone has to be told, and who

    Red flagAssumes the pipeline running successfully means the data is correct.

  2. A nightly job failed at 2am. What has to happen before people open dashboards at 8am?

    Show what a strong answer coversHide answer

    A strong answer

    • Someone is alerted, with enough context to act
    • Decides between rerunning, backfilling and publishing stale data with a notice
    • Considers whether partial data is worse than no data
    • Communicates to consumers rather than hoping nobody notices

    Red flagWould rerun the job and say nothing.

  3. What is the difference between a full refresh and an incremental load, and when does incremental bite you?

    Show what a strong answer coversHide answer

    A strong answer

    • Full rebuilds everything; incremental adds or updates only what changed
    • Knows incremental is faster and cheaper but can silently miss late-arriving or back-dated records
    • Mentions needing a reliable change indicator, and periodic full reconciliation
    • Deleted source rows are the classic trap

    Red flagOnly knows one and does not ask about the other.

  4. How would you model customers, meters, meter reads and invoices for reporting?

    Show what a strong answer coversHide answer

    A strong answer

    • Separates dimensions from facts, or reasons to that structure without the vocabulary
    • Handles a customer moving house - a meter can have several customers over time
    • Recognises meter reads as high volume and invoices as low volume with corrections
    • Asks about restatements and history: do we need to know what we believed last month

    Red flagProduces one flat table and does not revise it when you introduce a moving customer.

  5. Finance says revenue is $2.1m, your dashboard says $2.3m. How do you resolve it?

    Show what a strong answer coversHide answer

    A strong answer

    • Assumes a definition difference before assuming an error
    • Checks period boundaries, GST, credits and adjustments, cancelled invoices, accrual versus cash
    • Reconciles at a smaller grain to isolate where the gap appears
    • Writes the agreed definition down so it does not recur

    Red flagAssumes finance is wrong.

  6. How do you decide whether logic belongs in the pipeline, the model or the dashboard?

    Show what a strong answer coversHide answer

    A strong answer

    • Shared business logic belongs upstream so every consumer agrees
    • Presentation-only logic can stay in the dashboard
    • Knows logic buried in a report is invisible and unversioned
    • Weighs reusability against speed of delivery honestly

    Red flagPuts everything in the dashboard because it is quicker.

Case exercise and communication

Anchored on the take-home. The second interviewer is deliberately non-technical.

  1. Present your case findings in five minutes, to me as the head of customer operations.

    Show what a strong answer coversHide answer

    A strong answer

    • Leads with the answer, not the method
    • States the recommendation and what would change if acted on
    • Caveats are present but proportionate and near the end
    • No jargon, and no apologising for the data

    Red flagWalks through their process chronologically and never reaches a conclusion.

  2. What was wrong with the dataset we gave you?

    Show what a strong answer coversHide answer

    A strong answer

    • Found at least two of the planted problems - duplicates, impossible dates, a units change partway through, missing months
    • Says what they did about each: excluded, corrected, flagged
    • Quantifies the impact on the answer
    • Notes anything they suspected but could not confirm

    Red flagReports no problems at all.

  3. If I gave you two more weeks on this, what would you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Names the biggest source of uncertainty in their own answer
    • Wants additional data they can specify
    • Would validate a finding against a second source or with a stakeholder
    • Prioritises rather than listing

    Red flagWould make the charts nicer.

  4. Your analysis suggests we should change a pricing rule. How confident are you, and what would you want before we acted?

    Show what a strong answer coversHide answer

    A strong answer

    • Distinguishes correlation from a causal claim
    • Knows the sample, the period and what else changed during it
    • Suggests a limited trial or a holdout before a full rollout
    • Is comfortable saying the data supports investigating, not deciding

    Red flagPresents a correlation as a reason to change pricing for 210,000 customers.

Questions to ask them

Bring three. Interviewers remember the candidate who asked something they had to think about.

  • Who owns the definition of a metric here - the data team or the business?
  • How much of the team's time goes to fixing broken pipelines versus new work?
  • How many of your dashboards were opened last month? I am curious how you decide what to retire.
  • What is the hardest data quality problem you have that you have not solved?
  • In the rotation, how does the decision get made about where I end up after twelve months?

Example CV · fictional candidate

Ella Marchetti

Written to the job description on the previous tab. Notes on the right explain each choice.

Ella Marchetti

Graduate Data Engineer / Analyst

Brisbane QLD · 0400 000 000 · e.marchetti@example.com · github.com/ellamarchetti · linkedin.com/in/ella-marchetti

Professional summary

Information technology and business graduate with a data specialisation, six months of commercial analytics experience, and a habit of checking the denominator before sharing the number. Strong SQL, working dbt and Airflow exposure, and enough business background to ask what a metric is going to be used for.

Technical skills
SQL
Advanced - window functions, CTEs, query tuning, Snowflake and PostgreSQL
Python
pandas, NumPy, matplotlib, requests, openpyxl
Data engineering
dbt (models, tests, docs), Apache Airflow (basic), Fivetran, Git
Warehousing
Snowflake, PostgreSQL, dimensional modelling (Kimball basics)
Visualisation
Power BI (DAX basics), Tableau, Excel to an advanced level
Statistics
Regression, hypothesis testing, time series decomposition (university level)
Education
Bachelor of Information Technology / Bachelor of Business Management (dual degree), Data Analytics major
Feb 2023 - Nov 2026

The University of Queensland

  • GPA 6.0 / 7
  • Relevant courses: Database Systems (7), Data Analytics (7), Statistical Modelling (6), Information Systems (6), Managerial Accounting (6)
  • Capstone: demand forecasting for a not-for-profit food relief service. Model reduced weekly over-ordering by an estimated 12% in a four-week trial
Experience
Data Analytics Intern
Nov 2025 - Feb 2026 (12 weeks)

Fernhill Insurance Group, Brisbane

  • Rebuilt the weekly claims report in Power BI, cutting preparation from 6 hours of manual Excel work to a 10-minute refresh
  • Wrote 22 dbt models with tests for a claims mart, including the first uniqueness and freshness tests the team had
  • Traced a persistent discrepancy between two claims reports to a duplicated broker record, which had been overstating one region's claim count by 8% for around a year
  • Presented findings twice to a non-technical operations forum of 15 people
Business Analytics Assistant (casual, 12 hrs/week)
Mar 2025 - present

UQ Student Services

  • Automated a monthly participation report from a manual spreadsheet process into a scheduled Python job with a documented data dictionary
  • Built the SQL views three staff members now use directly instead of requesting extracts
Assistant Manager (casual, then part-time)
Feb 2022 - Jan 2025

Riverbend Cafe, Brisbane

  • Managed rosters and stock ordering for a team of nine while studying full-time
  • Introduced a simple sales-by-hour tracking sheet that cut weekly food waste by around 15%
Projects
Queensland electricity demand explorer
Python, dbt, DuckDB, Streamlit, public AEMO data
  • Ingested five years of public half-hourly demand and price data, modelled it in dbt with tests, and published an interactive explorer
  • Documented three data quality issues in the raw feed, including a daylight-saving duplication that silently added 48 rows twice a year
  • github.com/ellamarchetti/qld-demand
Food relief demand forecasting (capstone)
Python, scikit-learn, statsmodels
  • Compared a seasonal naive baseline against regression and gradient boosting; the simplest model that beat baseline was chosen deliberately over the most accurate one
  • Delivered a one-page instruction sheet so volunteers could run it without me
Leadership and activities
  • Treasurer, UQ Data Science Society, 2025 - 2026. Managed a $9,000 annual budget and reported to a committee of eight
  • Volunteer data support, Brisbane community food relief service, 2024 - present
Certifications
  • dbt Fundamentals, 2025
  • Microsoft Power BI Data Analyst Associate (PL-300), April 2026
Referees

Available on request.