Course 2.1 · Curriculum 2026.1
Apex fundamentals, and the governor limits that shape every design
Write Apex that survives production. Governor limits taught as a design constraint, including the 120-second callout budget that decides your timeouts.
- Estimated effort
- 8 hr
- Lessons
- 63
- Modules
- 10
- Material
- 8 hr
Estimated effort is the sum of the lesson and lab times in the course outline, for this version of the course.
This course is planned and not on sale. The curriculum below is the plan, and it may change before the course opens.
See the courses on sale01What you will learn
8 capabilities, stated as things you can do
Each one is what you should be able to do at the end, not what the course covers. If an outcome is not testable, it is not an outcome.
- Write, run and debug Apex in an org using Developer Console and the command line.
- Query with SOQL and SOSL, and say which one a given question needs.
- Design around the per-transaction limits instead of discovering them in production.
- Set integration timeouts against the 120-second cumulative callout budget rather than by guessing.
- Move work off the synchronous transaction using future, queueable and batch, and choose between them.
- Read a limits exception and name the line that caused it.
- Explain the difference between a synchronous and an asynchronous limit set.
- Write bulk-safe code by default, because the platform gives you no other option.
02Curriculum
10 modules, 63 lessons
Every lesson shows its length and its type, from the course outline.
10 modules · 63 lessons · 8 hr of material
Apex is Java-shaped and database-flavoured. This module is the syntax, the tooling, and the parts that surprise people from other languages.
- VideoSetting up: CLI, an editor, and running your first anonymous blockPreview9 min
- VideoTypes, collections and the sObject8 min
- VideoControl flow, exceptions, and Apex-specific behaviour8 min
- VideoClasses, interfaces and the sharing keywords8 min
- ReadingReading the debug log without losing an afternoon6 min
- VideoThe generic sObject, and the trap of casting it wrong7 min
- LabLab: write and run your first class12 min
SOQL, SOSL and DML. Written for correctness under bulk from the first line, because retrofitting bulk safety is a rewrite.
- VideoSOQL: relationships, aggregates and the selective query9 min
- ReadingSOSL, and the searches SOQL cannot do6 min
- VideoDML, Database methods, and partial success8 min
- VideoBulk by default: sets, maps, and never querying in a loopOne hundred SOQL queries per transaction. A query inside a loop over 200 records is not slow, it is a hard failure.8 min
- VideoCollections: List, Set and Map, and choosing the right one7 min
- VideoRelationship queries: parent-to-child and child-to-parent in one line6 min
- LabLab: refactor a record-at-a-time class into a bulk one12 min
The limits that apply to every button click and page load. Most of them never bite until the org has real data volume.
- VideoThe per-transaction limit table, and the six that actually bite9 min
- VideoSOQL rows, query count, and the limit nobody hits until year two6 min
- VideoCPU time, and the operation that is free in a trigger and expensive in a loop6 min
- VideoDML rows, DML statements, and why one big update beats two hundred6 min
- VideoReading a LimitException back to the line that caused it7 min
- LabLab: instrument a transaction and read its limit consumption11 min
The limit set resets when code goes async, and that reset is a resource, not a loophole. Knowing what changes is the whole module.
- VideoTwo limit sets, not one: what changes when code goes async7 min
- VideoHeap size, and the collection that grows quietly6 min
- VideoCallout limits inside a trigger, and why there are none5 min
- VideoFuture methods get their own limits, and why that matters5 min
- ReadingReading: the official limit tables, side by side5 min
- ReadingReading: choosing sync or async before you write a line4 min
- QuizCheck: limits and where they apply11 min
The heart of the course. Every callout in one transaction shares 120 seconds. A limit you design around is an architecture; a limit you discover in production is an incident.
- VideoThe 120-second cumulative callout budgetEvery callout in one transaction shares 120 seconds. That single number sets your batch size, your timeouts and what has to move off-platform.9 min
- VideoA worked example: timeouts of 25, 45 and 60 secondsA real integration, sized so three sequential calls cannot exceed the budget even at their worst. The numbers were chosen, not inherited.9 min
- VideoThe 90-second wall-clock stop, and why it is never 1207 min
- VideoSizing a batch against a budget every record in it shares6 min
- VideoWhat has to move off-platform, and why6 min
- LabLab: budget three sequential callouts against 120 seconds12 min
Future, queueable, batch and scheduled. Four tools, four limit sets, and a decision table you can keep.
- VideoFuture methods, and why they are almost never the answer6 min
- VideoQueueable, chaining, and the finalizer8 min
- VideoBatch Apex, scope sizing, and stateful batches8 min
- VideoScheduled Apex, and the job that failed unnoticed for nineteen days7 min
- VideoChoosing between future, queueable, batch and scheduled6 min
- LabLab: convert a synchronous job into a batch and verify it12 min
A trigger that works on one record and fails on two hundred is the most common defect in a Salesforce codebase. This module is how it stops being yours.
- VideoWhy bulk safety is not optional on this platform6 min
- VideoThe two-hundred-record trigger context, and designing for it from line one6 min
- VideoMaps built once, not queried per record6 min
- VideoA bulk-safe SOQL pattern you can reuse5 min
- ReadingReading: the bulkification checklist5 min
- LabLab: break a class with two hundred records, then fix it12 min
Two query languages, and the difference is not stylistic. One is selective and fast, the other searches text across objects.
- VideoSelective queries, and the index that makes one selective7 min
- VideoAggregate queries: GROUP BY, HAVING, and a rollup without a trigger6 min
- VideoSOSL across multiple objects in one search6 min
- VideoDynamic SOQL, and the injection risk it opens6 min
- ReadingReading: how the query optimizer chooses a plan5 min
- LabLab: write a selective query against a million-row object15 min
Every limit taught so far eventually shows up as a stack trace. This module is how you read one without guessing.
- VideoReading a stack trace to the line that actually failed8 min
- VideoDebug logs: levels, categories, and turning off what you do not need6 min
- VideoGovernor limit exceptions, and the message that names the limit7 min
- VideoApex Replay Debugger, checkpoints and variable inspection6 min
- ReadingReading: common exception types and what each one means5 min
- LabLab: diagnose a failing transaction from its log alone15 min
A capstone class that has to be bulk-safe, budget-aware and readable, then the check that confirms it landed.
- VideoPutting it together: a bulk-safe, budget-aware Apex class7 min
- VideoCommon first-year Apex mistakes, named6 min
- VideoWhere Apex fits next: triggers, components and tests5 min
- ReadingReading: the governor limits quick-reference card5 min
- LabLab: build and instrument a small integration end to end15 min
- QuizCheck: Apex fundamentals and limits12 min
04Before you start
What you need first
Assumed knowledge and setup
- Courses 1.3 and 1.4. You need the data model and the automation model first.
- Any prior programming experience helps. No Java or Apex assumed.
- A Developer Edition org and Salesforce CLI installed. Setup is the first lesson.
Before this course
Courses often taken next
- 2.2 · Triggers, handlers and bulk safety
- 2.3 · Lightning Web Components: the parts that actually matter
- 2.5 · Integrations: named credentials, callouts, and where secrets live
Each is a separate course, bought on its own.
05Who teaches it
Elliot Saha
Co-founder, Chief Technology Officer
Platform architecture, custom Apex and Lightning Web Components, AI systems, and the Academy platform itself.
06Reviews
No learner reviews yet
This course has not been taken by enough people to publish an honest rating, and we will not print invented quotes on a page that sells verification discipline. Here is what we can evidence instead.
- Assessment
- Lesson checks onlyThis course carries lesson checks and issues no certificate.
- Curriculum version
- 2026.1You enrol into a version. Content changes do not move you mid-course, and your required-lesson count is snapshotted at enrollment.
- Refunds
- 14 daysAn individual purchase can be refunded within 14 days if you have completed less than 20% of the lessons. Team seats are refundable before they are assigned. From the Academy terms.
Start 2.1
This course is in development and not yet open for enrolment. The courses open now are listed in the catalogue.
- 8 hr estimated effort, labs included
- A ShareCo certificate is not a Salesforce certification