Nearly 20 years ago, the first season of Lost ended with one of the most striking, tantalizing images of early 21st-century television: a handful of plane-crash survivors on an uncharted island, staring down into a deep hole in the ground, carved out by … well, somebody. Fans had to wait until the season-two premiere to learn there was a person named Desmond living in that hole, passing the time by listening to vintage pop music. Fans then had to wait until the season-two finale to learn that Desmond was once a castaway himself, forced by circumstance to join up with the last vestiges of a world-saving cult.
Silo’s first season also ended with a flourish. Juliette Nichols (Rebecca Ferguson) — a skilled mechanic who, through a series of strange circumstances, had become the chief law officer within a massive, post-apocalyptic underground facility — was exiled by her political enemies and sent to the surface, where people usually keel over dead within minutes from the poisoned air. Instead, thanks to an extra-secure spacesuit, Juliette was able to keep walking out of the crater where the silo was buried and into an open field, where she found a dozen or so other craters, each with their own silos.
In the season-two premiere, Juliette explores one of those silos, where she finds a man living alone and — like Desmond on Lost — listening to vintage pop music. Also like Desmond, this man greets his visitor by threatening to kill her.
I don’t want to go too far with this comparison because Silo is a very different show than Lost. It’s more cerebral and more narrowly focused, less pulpy and epic. Silo is based on a series of novels, novellas, and short stories by Hugh Howey about a civilization that has been living in hunkered-down survival mode for so long that multiple generations have come and gone, leaving behind mostly people who know nothing about how their world used to be. The first season of Silo was all about introducing viewers to this society by having Juliette take on a new job and investigate a series of murders, which led her — and us — through all the different levels and classes within the silo.
Season two promises to open up the story quite a bit, as Juliette may begin to discover why her silo is disconnected from the other silos and why it’s possibly adrift from whatever their original mission might’ve been. Last season we learned that Juliette’s silo had at least one person, Bernard Holland (Tim Robbins), who knew a little about the program’s history and believed it was his duty to keep it a secret, lest his silo’s residents become restless and rebel — as had happened before. But since Juliette feels no such obligation to suppress the truth, she could once again be our surrogate this season, discovering everything we need to know about the Silo universe.
That would be welcome since some of the best moments in Silo’s solid first season were when Juliette or someone else stumbled across what are referred to as “relics” from Earth’s distant past, which to these people look almost incomprehensibly exotic. The most amazing of these relics was a children’s book about things tourists might do in the U.S. state of Georgia. Rafting trips, aquariums, planetariums … all of these seem like science fiction to someone who has only ever lived in a giant concrete tube.
Anyone who’s read Howey’s books knows these silos have numbers, but since the TV series hasn’t introduced that idea yet, for the purposes of this recap, let’s just call the two that we’ve seen so far “Juliette’s silo” and “the other silo.” The season premiere begins with a flashback to what happened to the other silo, which is littered with long-dead corpses and debris when Juliette arrives. In a long sequence, we see how the citizens of the other silo took up arms against each other after destroying the system of staircases and bridges that had previously connected the different levels. Finally, a faction opened up the airlock to charge outside, where they all died.
Juliette has to push past those bodies just to make it inside, where she finds a facility that, at one point, was laid out a lot like hers before this society collapsed. One of the big view screens in a communal area — which in Juliette’s silo is how the residents keep an eye on the ruined wasteland outside — is totally fritzed out and has “LIES” scrawled across it. To move from area to the next, Juliette plans out and executes the kinds of maneuvers one might find in an escape room or video game. She has to use whatever she can find — barrels, scrap metal, rubble — to build little pathways and move them into place.
All of the sequences showing Juliette doing her best Indiana Jones impression — improvising and exploring — are truly terrific. This whole silo is a relic, and the trip through it gives the same charge that the season-one scenes involving relics did. The veteran prestige-TV drama director Michael Dinner (who had previously worked with Silo creator Graham Yost on Justified) and the show’s crew keep the action taut, tense, and easy to follow as Juliette survives several potentially fatal setbacks and just keeps going. The other silo is a marvelous piece of set design — visually familiar via Juliette’s silo, yet in ruins. Whenever this episode returns to her perilous journey, it’s a knockout.
Alas, that’s not all that “The Engineer” is about. Roughly a third of this episode is spent looking back at Juliette’s childhood in her silo, covering the early days when she left her comfortably middle-class obstetrician father, Dr. Pete Nichols (Iain Glen), to go apprentice with the master mechanic Martha Walker (Harriet Walter). We see how the older employees in the department worked her hard and showed her no sympathy — and how she respected them all the more for it. We also see how she developed an early interest in the silo’s half-forgotten secrets, many of which can be glimpsed in pieces at its lowest levels.
These scenes are all fine, such as they are, and even poignant at times. The sequence where the young Juliette (played by Amelie Child-Villiers) repairs a mechanical toy dog works on multiple levels: as a reminder of the childhood she left behind when her mother died, as an example of how she will stubbornly pursue what she wants even when everyone tells her not to, and as a demonstration of her facility with problem-solving. There are, undoubtedly, echoes between these moments and what we see with the older Juliette in the other silo.
But the biggest weakness with Silo’s first season is that once it got past its excellent and mostly self-contained first episode, the storytelling started to sag and drift throughout the remaining nine. Season one is filled with moments of real wonder and has dramatic twists galore, right up to that spine-tingling final shot. But could it have been a lot tighter? Hell yes. It’s not the best sign that the season-two premiere already has such a divided focus.
That said, the episode does have a gem of an ending. As mentioned earlier, Juliette finds someone in the other silo: an unnamed and mostly unseen man (played by Steve Zahn), who tempts her toward his locked chambers with the sound of the song “Moon River.” He delivers a curt warning: If she tries to open his door, she’s dead.
But he also says something that reminded me again of the best of Lost — and the best of Silo so far. He explains that he gets why she might want to open his door because “You see a closed door … what’s on the other side?” It’s good when a mystery box show like this understands human nature. Keep showing us new doors, absolutely. But don’t keep them closed for too long.
The Down Deep
• Even though I’m not sure we needed the extended flashback to Juliette’s early days as a mechanic, there are several nice moments in these scenes which explore more of the cultural differences between life in “the mid” part of the silo and in “the down deep.” For example, Walker explains to Juliette that people on the lower levels favor plain speaking over bureaucratic euphemisms. (“If a pump ain’t working we don’t say, ‘It might not be operating at its projected capacity,’ we say, ‘It’s broke.’”)
• Another fun piece of graffiti in the other silo: a wall-size propaganda poster reading “THANK YOU FOUNDERS” with the “thank” crossed out and replaced with “fuck.” It sure seems like these folks were pretty pissed about the conditions in their silo! I look forward to finding out why.
• Welcome to the season-two coverage of Silo! Season one had its highs and lows but was promising enough on the whole, so I hope we can look forward to ten straight weeks of new mysteries and new discoveries. Plus, Steve Zahn! Stay tuned.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]