BLACK OPS SOLUTIONS · IT Graduate IT Interview PackAU · 2026

Software Developer · graduate level · Australia

Graduate Software Developer

Ships features end to end on a customer-facing web platform.

Job description · fictional employer

Graduate Software Developer

Meridian Freight & Logistics

Location
Brisbane CBD - hybrid, 3 days in office
Employment type
Full-time, permanent - 12-month structured graduate program
Salary
AUD $82,000 base + 12% superannuation
Reports to
Engineering Team Lead, Customer Platforms
Intake
February 2027 - applications close 30 September 2026

About us

Meridian Freight & Logistics moves about 40,000 pallets a week between depots in every mainland state. For twenty years our software was bought off the shelf and bent into shape. Since 2023 we have been building it ourselves, and the six squads in our Brisbane engineering group now own everything a customer touches.

The team you would join

You would join Customer Platforms: six engineers, a product manager, a designer and a QA analyst. The squad owns the booking portal and the public tracking API used by roughly 12,000 business customers, from one-truck operators to national retailers.

What you will do

  • Ship your first change to production in your first three weeks, paired with a senior engineer
  • Build and maintain features across a React front end and a C# / .NET REST API
  • Write unit and integration tests as part of every change, not as a follow-up ticket
  • Take part in code review - both receiving it and giving it
  • Help triage and fix production defects on a rostered support roster (business hours only in your first year)
  • Keep runbooks and API documentation current as you change the things they describe
  • Contribute to sprint planning, refinement and retrospectives as a full member of the squad
  • Spend one six-week rotation with the Platform or Data squad in the second half of the program

What we are looking for

  • A completed or in-progress bachelor degree in software engineering, computer science, IT or a related discipline, graduating between November 2025 and December 2026
  • Working knowledge of at least one statically typed or object-oriented language - C#, Java, TypeScript or Go
  • Enough SQL to write a join and explain what it returns
  • Familiarity with Git and branch-based workflows
  • Something we can read - a university project, hackathon entry, open-source contribution or personal project, with the code available to look at
  • Clear written and verbal communication. You will be asked to explain a technical decision to someone who is not an engineer
  • Full Australian working rights for the duration of the program

Nice to have

  • Exposure to React, Angular or Vue
  • Any cloud exposure - Azure preferred, AWS or GCP equally welcome
  • Experience with a CI pipeline, even a personal one
  • A part-time job, internship or vacation program in any industry
  • Involvement in a club, tutoring, volunteering or a team sport - we care that you can work alongside people

Our stack

C# / .NET 8ASP.NET CoreReact + TypeScriptPostgreSQLAzure App ServiceAzure Service BusGitHub ActionsTerraformDatadogxUnit / Playwright

What the program gives you

  • A named buddy for your first month and a mentor for the full twelve months
  • $2,000 annual learning budget and one Friday a fortnight for self-directed learning
  • Paid Azure certification with study leave
  • Promotion to Software Developer (Level 2) after twelve months, subject to review
  • Flexible start and finish times, and a genuine 38-hour week

How the process runs

  1. 1

    Application

    CV plus three short written questions. No cover letter.

  2. 2

    Coding exercise

    Take-home, 60 minutes, language of your choice. We tell you what we are assessing before you start.

  3. 3

    Talent screen

    30-minute video call - motivation, logistics, working rights.

  4. 4

    Technical interview

    60 minutes - walkthrough of your exercise plus fundamentals. No whiteboard algorithms.

  5. 5

    Team interview

    45 minutes with two squad members - collaboration, code review, how you handle being wrong.

  6. 6

    Offer

    Verbal within 48 hours of the final interview.

We hire graduates who are curious and honest about what they do not know yet. If you meet most of the essential criteria and none of the desirable ones, apply anyway. Reasonable adjustments are available at any stage of the process - tell your talent partner what you need.

Interview questions · 24 questions with model answers

Graduate Software Developer

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

Motivation and behavioural

Asked in the talent screen and the team interview. Listen for specifics, not enthusiasm.

  1. Walk me through a project you built where you had to make a technical decision you were not sure about.

    Show what a strong answer coversHide answer

    A strong answer

    • Names the actual decision, not just the project - which database, which pattern, whether to build or borrow
    • Lists the alternatives that were genuinely considered
    • Identifies the constraint that settled it: time, team skill, marks, hosting cost
    • Says what they would do differently now, without being asked

    Red flagDescribes the project for four minutes and never gets to a decision.

  2. Tell me about a time your code broke something. What happened and what did you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Owns it plainly, with no hedging about who else was involved
    • Describes how they diagnosed it - logs, a bisect, a reproduction, asking someone
    • Separates the fix from the prevention: a test, a validation, a check in the pipeline
    • Treats it as ordinary rather than shameful

    Red flagClaims it has never happened, or blames a teammate, the tutor or the tooling.

  3. Describe a group assignment where someone was not pulling their weight. What did you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Went to the person directly before escalating
    • Framed it around the work and the deadline rather than the person's character
    • Escalated to a tutor or lecturer only when the direct approach had actually failed
    • The team still delivered, and they can say what they gave up to make that happen

    Red flagSilently did all the work and is still angry about it - that becomes a code review problem later.

  4. What is something technical you taught yourself in the last six months, and how did you go about it?

    Show what a strong answer coversHide answer

    A strong answer

    • Names a specific thing, not a category
    • Can point at something they built or broke while learning it
    • Describes a misconception they had and how they corrected it
    • Chose it for a reason they can articulate

    Red flagLists a course they enrolled in with nothing to show for it.

  5. Why this role, in freight, rather than a graduate program at a large consultancy?

    Show what a strong answer coversHide answer

    A strong answer

    • Has actually looked at what the company does and can reference the product or the domain
    • Has a view on how they want to learn - depth in one product versus breadth across clients
    • Is honest that they have applied elsewhere too

    Red flagAny answer that would be equally true of every employer in Australia.

Core fundamentals

Calibration questions. A graduate is not expected to nail every one - watch how they reason when they do not know.

  1. What is the difference between an array or list and a dictionary or hash map, and when would you reach for each?

    Show what a strong answer coversHide answer

    A strong answer

    • Lookup by index or position versus lookup by key
    • Roughly O(1) average key lookup for a hash map versus O(n) scanning a list
    • Gives a concrete case: counting occurrences, caching results, joining two datasets in memory
    • Bonus: mentions that hash map ordering is not guaranteed in every language

    Red flagRecites Big-O notation but cannot give an example of when they used either.

  2. You type a URL into a browser and press enter. What happens?

    Show what a strong answer coversHide answer

    A strong answer

    • DNS resolution, TCP connection, TLS handshake, HTTP request, server response, browser render
    • Knows where their own code sits in that chain
    • Mentions at least one of: caching, load balancers, CDNs, cookies
    • Adjusts the depth as you probe rather than reciting a memorised list

    Red flagCannot get past 'it loads the website' even with prompting.

  3. What is the difference between an INNER JOIN and a LEFT JOIN? Give me a case where the choice changes the answer.

    Show what a strong answer coversHide answer

    A strong answer

    • Inner keeps only matching rows; left keeps every row from the left table with nulls where there is no match
    • Gives a real example - customers with no bookings disappear from an inner join, so a count comes out low
    • Knows that filtering the right-hand table in the WHERE clause quietly turns a left join back into an inner one

    Red flagGuesses, and cannot be led to the answer with a worked example.

  4. What makes code testable? How would you make a function that calls a payment API testable?

    Show what a strong answer coversHide answer

    A strong answer

    • Separates the decision logic from the input and output
    • Injects the dependency rather than constructing it inside the function
    • Names a stub, fake or mock and knows the difference between at least two of them
    • Mentions that you still want one real integration test somewhere

    Red flagAnswers 'you write tests for it' and stops.

  5. What is the difference between authentication and authorisation, and where does each happen in a web app?

    Show what a strong answer coversHide answer

    A strong answer

    • Authentication is who you are; authorisation is what you are allowed to do
    • Knows authorisation must be enforced server-side, not by hiding a button
    • Can describe a token or session travelling with the request
    • Bonus: mentions that a user editing another user's ID in the URL is the classic failure

    Red flagUses the words interchangeably.

  6. You have accidentally committed to main and pushed. What do you do?

    Show what a strong answer coversHide answer

    A strong answer

    • Stops and checks whether anyone else has pulled it
    • Knows revert is safe on a shared branch and reset with a force push is not
    • Tells someone rather than quietly fixing it
    • Bonus: suggests branch protection so it cannot happen next time

    Red flagReaches for a force push on main without a second thought.

  7. What do people mean by the SOLID principles? Name as many as you can, and tell me what the set is for.

    Show what a strong answer coversHide answer

    A strong answer

    • Names what they can - single responsibility, open/closed, Liskov substitution, interface segregation, dependency inversion - and says plainly which ones they cannot
    • Explains one of them properly rather than expanding all five acronyms with nothing behind them
    • Says what the set is for: code you can change in one place without the change rippling into unrelated code
    • Places them as object-oriented design guidance from the early 2000s, not a rulebook every codebase is scored against

    Red flagRecites all five fluently and cannot say what a single one means or why anyone would want it.

Role-specific depth

Asked in the 60-minute technical interview, after the code walkthrough.

  1. In a REST API, when do you return 400 versus 404 versus 409 versus 500?

    Show what a strong answer coversHide answer

    A strong answer

    • 400 for a malformed or invalid request, 404 for a resource that is not there, 409 for a conflict with current state, 500 for our own failure
    • Understands that a 500 is a bug report about us, not about the caller
    • Mentions that the response body should say what to do about it
    • Bonus: notes that returning 404 instead of 403 can be a deliberate choice to avoid leaking existence

    Red flagReturns 200 with an error message in the body and sees no problem with it.

  2. An endpoint takes four seconds to respond. How do you find out why?

    Show what a strong answer coversHide answer

    A strong answer

    • Measures before guessing - timing, logs, an APM trace
    • Splits the time between database, application and network
    • Checks the query plan or the number of queries before rewriting anything
    • Only then considers caching, indexing or pagination

    Red flagJumps straight to 'add a cache' or 'add an index' with no measurement.

  3. What is an N+1 query problem and how would you spot one?

    Show what a strong answer coversHide answer

    A strong answer

    • One query to fetch a list, then one more per item in that list
    • Spots it in query logs or an APM waterfall rather than by reading code
    • Fixes it with a join, an eager load or a batched fetch
    • Knows it is invisible with ten rows and fatal with ten thousand

    Red flagHas never heard of it and does not ask what it means.

  4. Design the data model for our booking system: customers, bookings, shipments and tracking events. Talk me through the tables.

    Show what a strong answer coversHide answer

    A strong answer

    • Gets the cardinality right - a booking has many shipments, a shipment has many tracking events
    • Chooses sensible keys and asks whether customer references are internal IDs or something the customer supplies
    • Recognises tracking events as append-only and high volume
    • Asks a clarifying question before drawing anything

    Red flagDraws a single wide table and does not revisit it when you describe a second shipment.

  5. What does idempotent mean, and why does it matter for an endpoint that creates a booking?

    Show what a strong answer coversHide answer

    A strong answer

    • The same request applied twice has the same effect as applying it once
    • Connects it to retries, flaky mobile networks and double-clicked buttons
    • Suggests a client-supplied idempotency key or a natural unique constraint
    • Knows GET, PUT and DELETE are expected to be idempotent and POST is not

    Red flagConfuses it with immutability.

  6. You are reviewing a pull request and you disagree with the approach. How do you handle it?

    Show what a strong answer coversHide answer

    A strong answer

    • Distinguishes a preference from a defect and says which one they are raising
    • Asks a question before issuing a verdict
    • Knows when to take it off the pull request and into a conversation
    • Is willing to approve something they would have written differently

    Red flagWould say nothing to avoid friction, or treats every comment as a blocker.

  7. Take the single responsibility principle. What counts as one responsibility, and how would you tell a class had taken on too many?

    Show what a strong answer coversHide answer

    A strong answer

    • Frames a responsibility as a reason to change, not a count of methods or lines
    • Gives a concrete case: a class that has to be edited when the pricing rules change and again when the invoice layout changes
    • Names the everyday signals - the honest name for the class needs an 'and' in it, the tests need pages of setup, unrelated tickets keep landing in the same file
    • Knows the cure can be worse than the disease: forty one-method classes are not obviously better than four honest ones

    Red flagSays 'one class, one job' and has nothing further, or would split every class until the flow cannot be followed.

  8. Where have you applied one of these principles in your own code, and is there a case where following them would make the code worse?

    Show what a strong answer coversHide answer

    A strong answer

    • Points at real code - an interface pulled out so a test could pass a fake, a switch statement replaced because every new case forced an edit to the same method
    • Can say what it cost as well as what it bought: another file, another layer of indirection, a longer path to read
    • Names a case where it is not worth it - a script that runs once, an abstraction over a single implementation that will never have a second
    • Understands the goal is code that stays cheap to change, and the principles are one route to that rather than the point itself

    Red flagAnswers entirely in the abstract, or argues that all five have to be satisfied everywhere.

Scenario and problem solving

Open-ended. There is no correct answer - you are watching the approach.

  1. Talk me through the code exercise you submitted. Why did you structure it that way, and what would you change with another two hours?

    Show what a strong answer coversHide answer

    A strong answer

    • Can navigate their own code without hesitating
    • Names a deliberate trade-off they made for time
    • Has a specific improvement in mind, not a vague 'more tests'
    • Admits any part they are unsure about

    Red flagCannot explain a section of their own submission.

  2. A customer reports that tracking numbers occasionally show the wrong shipment. You can reproduce it about one time in fifty. How do you approach it?

    Show what a strong answer coversHide answer

    A strong answer

    • Treats intermittent as a clue: concurrency, caching, a shared variable, an off-by-one on a paged query
    • Narrows the reproduction before touching code - which customers, which endpoint, what time of day
    • Adds logging or a correlation ID to catch the next occurrence
    • Considers whether to mitigate for customers while investigating

    Red flagStarts rewriting the endpoint immediately.

  3. We want customers to be able to export their booking history. Take me from ticket to production.

    Show what a strong answer coversHide answer

    A strong answer

    • Asks what the customer actually wants before choosing CSV, PDF or an API
    • Thinks about volume - a synchronous request will not survive ten years of bookings
    • Mentions authorisation: exporting only your own bookings
    • Covers tests, review, a staged rollout and how they would know it works

    Red flagGoes straight to implementation detail without a single question.

  4. How long would it take you to add a cancel booking button? Talk me through the estimate.

    Show what a strong answer coversHide answer

    A strong answer

    • Asks what cancel means in this business - refunds, notifying the depot, a time cutoff
    • Separates what is known from what is not and estimates the unknowns as unknowns
    • Gives a range with the assumptions attached
    • Is comfortable saying 'I would need half a day in the code to give you a real number'

    Red flagSays 'about two days' with no questions asked.

Questions to ask them

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

  • How is work assigned to graduates in the first three months - the same backlog as everyone else, or a separate one?
  • What does code review culture look like here? How long does a pull request usually sit?
  • What was the last production incident this squad had, and what changed afterwards?
  • How much of the codebase is legacy versus greenfield, and which will I mostly be in?
  • What does a strong graduate look like at the six-month review, in your words?

Example CV · fictional candidate

Priya Raghavan

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

Priya Raghavan

Graduate Software Developer

Brisbane QLD · 0400 000 000 · p.raghavan@example.com · github.com/priya-raghavan · linkedin.com/in/priya-raghavan

Professional summary

Software engineering graduate with two summers of commercial development across a .NET and React logistics platform and a university research tool. Comfortable taking a feature from ticket to production, writing tests as I go, and asking questions early rather than guessing. Looking for a graduate role on a team that reviews code properly and lets people ship.

Technical skills
Languages
C#, TypeScript, JavaScript, Python, SQL
Frameworks
.NET 8, ASP.NET Core, React, Node.js, Entity Framework Core
Data
PostgreSQL, SQL Server, Redis (basic)
Tooling and cloud
Git, GitHub Actions, Docker, Azure App Service and Blob Storage, Postman
Testing
xUnit, Jest, Playwright (basic)
Ways of working
Code review, Agile and Scrum, REST API design, test-first development (learning)
Education
Bachelor of Engineering (Honours), Software Engineering
Feb 2023 - Nov 2026

Queensland University of Technology

  • GPA 6.2 / 7. Dean's List 2024 and 2025
  • Relevant units: Data Structures and Algorithms (7), Database Systems (7), Software Architecture (6), Distributed Computing (6), Machine Learning (6)
  • Honours project: real-time group messaging for student teams. See Projects below
Experience
Software Engineering Intern
Nov 2025 - Feb 2026 (12-week vacation program)

Ardent Software, Brisbane

  • Built and shipped a customer self-service address book in ASP.NET Core and React, used by around 800 customers in its first month
  • Cut a nightly reconciliation job from 42 minutes to 9 by replacing a per-row query loop with a single set-based query and one index
  • Added 60+ unit and integration tests to a legacy billing module that had none, which caught two defects before release
  • Presented the squad's fortnightly demo three times to product and operations stakeholders
Student Software Developer (casual, 8 hrs/week)
Mar 2025 - present

QUT Faculty of Science research group

  • Maintain a Python and Flask data collection tool used by 14 researchers across three studies
  • Migrated the application from SQLite to PostgreSQL with no data loss and 20 minutes of planned downtime
  • Wrote the deployment runbook the group now uses to release without me
Retail Team Member
Jun 2022 - Feb 2025

Northside Grocers, Brisbane

  • Worked 20 hours a week alongside full-time study, including opening shifts before 8am lectures
  • Trained six new starters on register and stock procedures
Projects
Trackpoint - parcel booking and tracking API
C#, .NET 8, React, PostgreSQL, Azure, GitHub Actions
  • REST API with idempotent booking creation, webhook delivery with exponential backoff, and 78% line coverage
  • Deployed to Azure through a GitHub Actions pipeline that runs tests, builds a container and promotes on green
  • github.com/priya-raghavan/trackpoint
UniMess - real-time messaging for student groups (honours project)
ASP.NET Core SignalR, React, PostgreSQL
  • Load tested to 500 concurrent connections; documented the connection-pool exhaustion found at 650 and the two options for fixing it
  • Graded 88. Marker feedback singled out the failure analysis
Open source
C#
  • Two merged pull requests to an open-source .NET CSV parsing library - a quoting bug fix and a documentation correction
Leadership and activities
  • Vice-President, QUT Computer Science Club, 2025 - 2026. Grew weekly workshop attendance from 12 to 45 by switching to hands-on sessions
  • Volunteer mentor, primary school coding club, Brisbane, 2024 - present
  • GovHack 2025 - team placed second in the Queensland open data category
Certifications
  • Microsoft Certified: Azure Fundamentals (AZ-900), March 2026
Referees

Available on request.