Internship Tasks

2798 hands-on tasks to practice real job skills - earn XP, build a track record, get noticed for internships.

All Tracks Agile Scrum Programming Data Analysis Project Management DevOps UI/UX Design Digital Marketing Robotics
All Levels Beginner Intermediate Advanced Expert
💻 Intermediate

List Installed PHP Extensions/Modules

Type the command to list every PHP extension currently enabled.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Regenerate the Composer Autoloader

Type the command to regenerate the autoload files after adding new classes under an existing PSR-4 namespace.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Update Dependencies to Their Latest Allowed Versions

Type the command to update all dependencies to the newest versions allowed by composer.json's constraints.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Validate composer.json

Type the command to check composer.json for syntax and structural errors.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Show Details of an Installed Package

Type the command to show the installed version and details of the monolog/monolog package.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Run PHPUnit Tests

Type the command to run the project's test suite using the local PHPUnit binary installed via Composer.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Print PHP Configuration Info

Type the command to print the full PHP configuration (equivalent of phpinfo()) from the CLI.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Locate the Active php.ini File

Type the command to show which php.ini configuration file PHP is currently using.

Programming
⏱ 3min ⭐ 80 XP
🌳 Intermediate

array_merge() vs the + Operator on Arrays

Pick the correct explanation of how duplicate numeric keys are handled differently.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Pass by Value vs Pass by Reference

Pick the correct outcome for a function parameter passed by reference.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Abstract Class vs Interface

Pick the correct distinction between an abstract class and an interface.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

The final Keyword

Pick the correct effect of marking a class or method as final.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Closures and the use() Keyword

Pick the correct explanation of variable capture in an anonymous function.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

match vs switch

Pick the correct distinction between PHP's match expression and a switch statement.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Shared State via Static Properties

Pick the correct behavior of a static property across multiple object instances.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Autoloading and PSR-4 Namespaces

Pick the correct requirement for Composer's PSR-4 autoloading to find a class automatically.

Programming
⏱ 3min ⭐ 70 XP
📊 Intermediate

Compare String Concatenation vs sprintf

Read a chart comparing execution time of building 100,000 strings with '.' concatenation versus sprintf().

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read OPcache Hit Ratio Over a Day

Read a line chart of OPcache hit ratio across a day and identify when it dropped.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare json_encode vs serialize Output Size

Read a chart comparing the byte size of the same array encoded with json_encode() versus serialize().

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Session File Growth Over a Week

Read a line chart of total session storage size across a week and identify unusual growth.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare array_map vs Manual foreach for Transformation

Read a chart comparing execution time of array_map() versus a manual foreach loop building a new array.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare String Function Speed: strpos vs preg_match

Read a chart comparing execution time for a simple substring check using strpos() versus preg_match().

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Composer Autoload Time: Cold vs Warm

Read a chart comparing autoloader boot time on a cold cache versus a warm, optimized autoloader.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare Execution Time Across PHP Versions

Read a chart comparing the same benchmark script's execution time across PHP 7.4, 8.0, and 8.2.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Array Function Memory Footprint

Read a chart comparing peak memory used by array_filter() versus a generator-based filter over a large dataset.

Programming
⏱ 3min ⭐ 90 XP
🔍 Intermediate

Fix an array_search() Falsy Result Bug

Find the line where a loose check misinterprets a valid index of 0 as 'not found'.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Function Expecting Array Mutation by Value

Find the line where a function is expected to mutate the caller's array but can't, because PHP arrays are passed by value.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix an Incorrect isset() Check on a Nested Array Key

Find the line where checking a nested array key throws a warning because a parent key doesn't exist.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix an Uninitialized Property Causing a Null Error

Find the line where a typed property is used before being initialized, causing an error.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Closure That Doesn't Capture an Outer Variable

Find the line where a closure fails to reference an outer-scope variable because 'use' was omitted.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix Infinite Recursion Missing a Base Case

Find the missing piece causing a recursive factorial function to recurse forever and hit a stack limit.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Type Juggling Bug in a Price Total

Find the line where string input from a form is used in arithmetic without validation, risking unexpected results.

Programming
⏱ 5min ⭐ 120 XP
🧮 Intermediate

Write an array_reduce Expression to Sum Values

Write the PHP expression that sums all values in $numbers using array_reduce.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a preg_replace Expression to Strip Non-Digits

Write the PHP expression that removes every non-digit character from a phone number string.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a usort Expression With a Custom Comparator

Write the PHP expression that sorts an array of associative arrays $people by their 'age' key ascending.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a Closure That Captures an Outer Variable by Reference

Write the PHP closure expression that increments an outer $total variable each time it's called, using use (&...).

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a match Expression for a Status Label

Write the PHP match expression that returns a human-readable label for a numeric $status code (1, 2, or default 'Unknown').

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a Spread Operator Expression to Merge Arrays

Write the PHP expression that merges $defaults and $overrides into a new array using the spread operator, with $overrides taking precedence.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write an instanceof Check Against an Interface

Write the PHP expression that checks whether $logger implements the Psr\Log\LoggerInterface.

Programming
⏱ 3min ⭐ 90 XP
🔢 Intermediate

Order a Constructor Chain in Inheritance

A Manager class extends Employee. Order what happens when 'new Manager()' runs and its constructor calls parent::__construct().

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order a PHP Session Lifecycle

Order the steps of using PHP sessions to remember a logged-in user across requests.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order Static vs Instance Property Access

Order the steps of accessing a static counter property that increments every time a new object is created.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order preg_match's Matching Steps

Order the conceptual steps of how preg_match applies a regular expression to a string.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order Type Juggling in a Loose Comparison

Order the internal steps PHP takes when evaluating '0' == false with the loose == operator.

Programming
⏱ 4min ⭐ 100 XP
📊 Intermediate

Compare Pagination Strategies by Query Time

Read a chart comparing offset pagination vs cursor pagination query time as page number increases.

Programming
⏱ 3min ⭐ 90 XP
🔍 Intermediate

Fix a Mass Assignment Vulnerability

Find the line that leaves the model vulnerable to mass assignment of unintended fields.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Relationship Defined on the Wrong Side

Find the line where the relationship method is backwards for the schema.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Route Parameter Name Mismatch

Find the line where the route parameter name doesn't match the controller's type-hinted variable, breaking implicit binding.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix Unescaped Blade Output (XSS Risk)

Find the line that renders untrusted user content without escaping, opening an XSS hole.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix an Incorrect Date Cast

Find the line with a cast type that won't behave like a Carbon instance.

Programming
⏱ 5min ⭐ 120 XP
🔍 Intermediate

Fix a Collection vs Array Method Mismatch

Find the line calling an Eloquent Collection method as if it were a plain PHP array function.

Programming
⏱ 5min ⭐ 120 XP
🧮 Intermediate

Write a Query to Count Posts per Category

Write the Eloquent expression that returns each category with its post count using withCount.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write an Eager Load for Comments and Their Authors

Write the Eloquent expression that eager loads a post's comments along with each comment's author, in one query chain.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a whereHas Query for Related Existence

Write the Eloquent expression that returns only posts that have at least one comment.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a firstOrCreate Query

Write the Eloquent expression that finds a Tag by name or creates it if it doesn't exist.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write an updateOrCreate Query

Write the Eloquent expression that updates a Setting's value for a given key, or creates it if the key doesn't exist yet.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Call a Local Query Scope

Write the Eloquent expression that calls a defined scopePublished() local scope on the Post model.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Create a Model With a Related Factory

Write the factory expression that creates one Post along with 3 related Comments in one call.

Programming
⏱ 3min ⭐ 90 XP
🧮 Intermediate

Write a Conditional Query With when()

Write the Eloquent expression that filters posts by category only when a $category variable is not null.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Log Level Distribution

Read a chart of log entries by severity level over the last 24 hours and assess app health.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare Artisan Command Execution Time

Read a chart of execution time for common Artisan commands and identify the slowest one during deploys.

Programming
⏱ 3min ⭐ 90 XP
💻 Intermediate

Roll Back the Last Migration Batch

Type the command to undo the most recently run batch of migrations.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Generate Custom Middleware

Type the command to generate a new middleware class called CheckSubscriptionActive.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Generate a Form Request Class

Type the command to generate a Form Request class named StorePostRequest.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Run a Single Seeder Class

Type the command to run only the PostSeeder class, without re-running the whole DatabaseSeeder.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Start Processing Queued Jobs

Type the command to start a worker that processes jobs from the default queue.

Programming
⏱ 3min ⭐ 80 XP
💻 Intermediate

Generate a Queued Job Class

Type the command to generate a new job class named SendWelcomeEmail.

Programming
⏱ 3min ⭐ 80 XP
🌳 Intermediate

Resolving the N+1 Query Problem

Pick the correct fix for a classic Eloquent performance issue.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Where Service Providers Belong

Pick the correct purpose of a service provider.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Choosing whereHas Correctly

Pick the correct query for filtering parent records by a related model's condition.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Validation Rule for Unique Email, Ignoring Current User

Pick the correct validation rule for an email field on a profile update form.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Purpose of API Resources

Pick the correct reason to use Laravel API Resources.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Why Queue Failed Jobs Need Handling

Pick the correct next step when a queued job keeps failing.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Accessors vs Mutators

Pick the correct distinction between an Eloquent accessor and a mutator.

Programming
⏱ 3min ⭐ 70 XP
🌳 Intermediate

Sessions vs Cookies in Laravel

Pick the correct description of how Laravel typically stores session state.

Programming
⏱ 3min ⭐ 70 XP
📊 Intermediate

Spot the N+1 Query Spike

Read a chart of query counts per page and identify the page suffering from an N+1 problem.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Queue Throughput Across Workers

Read a chart of jobs processed per minute at different worker counts and pick the best worker count for the target throughput.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Compare Indexed vs Non-Indexed Query Time

Read a chart comparing query execution time on a large table with and without an index.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Diagnose an HTTP Status Code Spike

Read a chart of HTTP status code counts over the last hour and identify the dominant problem.

Programming
⏱ 3min ⭐ 90 XP
📊 Intermediate

Read Cache Hit Ratio Over a Week

Read a line chart of daily cache hit ratio and identify the day it dropped significantly.

Programming
⏱ 3min ⭐ 90 XP
🔢 Intermediate

Order the Laravel Request Lifecycle

Arrange the stages a Laravel HTTP request passes through, in the correct order.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order a Form Request Validation Flow

Order the sequence of events when a StoreOrderRequest is used on a controller method.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order a Queued Job's Lifecycle

Arrange the steps from dispatching a job to it finishing successfully.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order an API Resource Response Flow

Order the steps from an Eloquent query to a transformed JSON API response using API Resources.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order a Feature Test Workflow

Order the steps for writing and running a Pest/PHPUnit feature test for a POST endpoint.

Programming
⏱ 4min ⭐ 100 XP
🔢 Intermediate

Order a Database Transaction's Steps

Order the logical steps of a DB::transaction() closure that transfers funds between two accounts.

Programming
⏱ 4min ⭐ 100 XP