Northcoders: The Rabbit Hole

Northcoders: The Rabbit Hole

This is the second article of mine about Northcoders. If you have not, you may want to read the first one first for context: https://www.dhirubhai.net/pulse/northcoders-bootcamp-review-viktoria-sudraba-dtjae/

In the previous article I talked mostly about my personal experiences while studying at Northcoders Software Engineering Bootcamp, and I briefly touched on government funding for Northcoders (NC) students. Funds for each government sponsored student are transferred to NC in installments, as the student progresses through the bootcamp. The final installment is only released for the graduates who report finding employment within half-a-year after bootcamp. NC have been circumventing this funding hurdle by their sister company Tech Returners (TR) contracting recent graduates to deliver a four week "open source project". Every contractor works on their own, and the projects are not unique, they don't have to be, since the contents or outcome of the project is not the point. The point is for NC to be able to report the graduates as employed and receive the last installment of government funds. The contracted graduates receive £750 for delivering the minimum viable product (MVP), which tells me that NC receive at least enough overhead to cover the staff administering the "employment". And would the graduate not deliver the MVP, the better for NC - since employment is ticked off once contract is signed, and according to the contract "failure to complete the project will result in withholding of payment."

This article about how frequently is this dubious business practice carried out by NC/TR.


I have this 'bad boy' in my life, and I will totally blame this article on him, although it's none of his fault, and he does not even know yet that I am writing it. Late last year, when I told him about what random strangers had told me about the NC's business model, he said something along the lines: "So, your instincts were correct not to trust them. But I don't think you should be looking into it any further." To which I responded: "Oh, I'm not gonna look into it, I'm just gonna write up what people have been telling me." Which I did in an addendum to my first article a month ago. Big problem though! Before he told me that I should not be looking into it, the idea of looking into it had not occurred to me. At the time when he told me that I shouldn't, my first counter-thought was: "What do you even mean by "looking into it"? I'm not the MET, there's nothing I could do". But from there on the idea was now living rent-free in the back of my mind. The truth is - I simply got curious. At some point I realised that TR projects would be public on the NC graduates' GitHub accounts. Since "GitHub activity enhancement" is one of the selling points when contracts are offered to the graduates. And all of the graduates would be members of the NC organisation on GitHub, since they had to fork NC repos during bootcamps. I could parse through all the members' repos using GitHub API. I'd wanted an excuse to explore GitHub API for a while, so why not.. look into it. I was curious how many repos could I find. After all, TR would only offer these contracts to graduates who hadn't found real employment after the bootcamp. For if they had - no need to part with £750. Starting out, I thought I would find a couple dozen repos max. I found more than that.

There are three NC bootcamps that I had enough information about: JavaScript software engineering, data engineering and cloud engineering bootcamp. There has been some online talk about NC teaching Java, and I saw a lot of similar C# repos on latest NC students' GitHub profiles. But I don't have any information about TR contracting graduates from these cohorts, or what the project are about, if there are any. When it comes to the graduates of the former three bootcamps, they are offered a choice between two projects, depending on the bootcamp that they completed. Without further ado, here are the project repos - formatted as Python lists for the ease of use of anyone who may want to. For each project with several repos, such as front-end and back-end, only one is included.

CLOUD ENGINEERING Bootcamp

Choice 1 - Health Wearables Project

2_repos = ['Andriizachepilo/iot-wearables-health', 'elenacbravo/health-wearables']        

Choice 2 - Smart Home Assistant Project

MVP here: https://github.com/ja-m3s/smart-home-assistant/blob/main/Brief.pdf

7_repos = ['AyubAhmed0/launchpad-smart-home-assistant-project', 'dogmoony/smart-home-assistant', 'honhaoz/smart-home-heating', 'ja-m3s/smart-home-assistant', 'kay-hk/homebunny', 'ManalAbdulqawi/SmartHomeAutomation', 'NinaGondoliera/Grad_Smart_home']        

DATA ENGINEERING Bootcamp

Choice 1 - Streaming Data Project

9_repos = ['AlexOrrDE/GuardianAPI', 'alextfchan/streaming-data-project', 'Geno419/Streaming-Data-Project', 'KiraHeichou/Data-Streaming-API', 'ldearlove/Streaming-Data-Project', 'peterkonst/streaming-data-project', 'phil-taylor-sj/streaming-data-nc', 'Piggun/streaming-data-project', 'RymanAK7/Streaming-Data-Project']        

Choice 2 - GDPR Obfuscator Project (excellent name for parsing, btw)

MVP here: https://github.com/Shuhaan/gdpr-obfuscator-nc-postgrad-project/blob/main/README.md

# including 3 unfinished, 2 in progress
30_repos = ['15ML/gdpr-obfuscator', 'alixiazul/gdpr_obfuscator', 'ARN14/gdpr-information-and-password-manager', 'A-Waterhouse/GDPR', 'CJohnston079/obfuscator', 'clarch01/obfuscator', 'EricaC2401/GDPR-Obfuscator-Project', 'hjeffs/Obfuscator', 'innateterina/Obfuscator-Project', 'jambent/gdpr_obfuscator', 'JCHibbard/GDPRObf', 'J-K-FlipFlop/gdpr_obfuscator', 'Kedz-1/gdpr_obfuscator', 'kusuma-gattu/de-gdpr-obfuscator', 'laxmiprasannaimmadi/gdpr_obfuscator', 'LeahTew/Obfuscator-Project', 'mirkovicUK/GDPR-Obfuscator', 'padmapriyam/Obfuscator', 'philupa/GDPR_obfuscator', 'Pringading/gdpr_obfuscator', 'samgrim2024/gdpr-obfuscator', 'Sandyjayani/gdpr-obfuscator', 'Shabbir1246/GDPR-compliant-obfuscation', 'Shuhaan/gdpr-obfuscator-nc-postgrad-project', 'Simranjeeet-Singh/gdpr-obfuscator', 'soningfold/gdpr_obfuscator', 'tudorsonycx/gdpr-obfuscator', 'ua-rik/gdpr-obfuscator', 'ValeriiaP/gdpr_obfuscator', 'Willow-Bot151/GDPRObfuscatortProject']        

SOFTWARE ENGINEERING Bootcamp

Choice 1 - Exhibition Curator Project (another excellent name for parsing)

# including 7 unfinished, 6 in progress
98_repos = ['27Stanley/trExiCura', 'a-BROKE-boi/exibi-app', 'AGreaves99/exhibition-curation', 'AliciaSarah92/curatethis', 'aloan93/exhibition-curator', 'AnaBrh/exhibition-curator-project', 'Andrew-25/exhibition-curator', 'aneesahmahmood/Exhibition-Curator-', 'AnyaVeselova/exhibition-curation-platform', 'Asbayazitog1/NC-Exhibition-Curator--FE', 'AudeNgD/curatorly', 'BeckBob/MyMuseum', 'berri-puff/curateM', 'bryantomson/exhibition-curator', 'Byteuth/Artscape---Curation-Gallery', 'BytingMicrochips/exhibition-fe', 'ChannersSoh/museum-curator-project', 'CharlesMartinUK/ExhibitionCurator', 'codertetianka/launchpad-project-exhibition-curator', 'CoupDeWhoop/exhibition-curator', 'CraigAT1181/curator', 'dasartini/Extravaganza-Exhibition-Curator', 'Dave-Turnbull/curator', 'DustyCar/ArtSite', 'Eleaha/be-curator', 'elenamurgia/exhibition-curator', 'EmoryBrock/ArtExhibitCurator', 'enterthestream/Curated-Collections', 'Equallizerr1/Exhibition-Curator---Launchpad', 'Esther299/ArtVoyage', 'euandecoup/muse', 'Fetters83/be-arto-facts', 'Fetters83/fe-arto-facts', 'Georgie-x/global-gallery', 'grace-hartley/exhibition-curator', 'HarisKhan2212/Museum-Exhibition', 'hc-tbhc/Exhibit-JS', 'holyseo/exhibition', 'Hugosuavez/exhibition-curator', 'Humayra-R/exhibition-curator-app ', 'hw04/artacquire', 'Hydrochilli/curated_exhibition_app', 'Jared-Ha/art-exhibition-curation', 'jeniahutorova/exhibition-backend', 'J-H1993/museum', 'jmaccs/exhibition-project', 'JoeAAdams/Curators-Corner', 'JoeMosley96/exhibition-curator', 'Kamilla2424/Exhibitly-BE', 'kapilamin/exhibition-curator', 'kdando/Waltr', 'KelvinUng1/fe-exhibition-curator', 'Klnder/exhibition-curator', 'kylecom21/Exhibition-Curation-Platform', 'LauraJeg/Exhibition-Curation-Platform', 'lemonses/Museum-Curator', 'lgb94/museum-project-frontend', 'LivEva/Exhibition-project', 'LouisaWhitton/Curator', 'LukeDiB/exhibitionfe', 'lw1066/curationcreation', 'MaddieAnita/Exhibition-Curation-Platform-NC', 'madDwain/exhibitions-curator', 'Magdyz/exhibition-curator', 'malakum/nc-grad-exhibition-curator', 'MarlonTancredo/viewer-artwork', 'matthew-1313/myCuration', 'mikael-v/exhibition-curator-be', 'Mullah98/exhibition-curator-project', 'ndanner22/art-curator', 'NicholasF13/Exhibition-Curator', 'nkytruong/BE-Exhibition-Curation-Platform', 'ollycrossley/exhib-it', 'OskarBrzeski/ExhibitionCurator', 'Pirkhs/Exhibition-Curator', 'polikas/ExhibitionCurator', 'puppydog4/exhibition_platform', 'RonaldB123/ReturnersExhibition', 'samsonthompson/museum-curation-app-frontend', 'Sana-kh/exhibition-curator', 'sawm2000/exhibition_curator_fe', 'ShaunRainey/NC-Freelance-Project', 'sirbacharach/exhibit-it', 'SoliferNN914/Exhibition-Curator', 'stephenbowyer/exhibitly', 'sudo-ollie/Curator_Project', 'tjejack/exhibition-curator', 'TypeVee/Exhibiteur', 'valen-ua/Exhibition-curation-platform', 'WinnieLamS/exhibition-curation-platform', 'XiaoQuark/open-curator', 'YShamm/Exhibition-curator', 'zairacodes/exhibition-curator', 'ZeroSibe/exhibition_curator', 'ZEwela/exhibition-curator-project-pwa', 'ziagorospe/Museum-Curator', 'ziaxgit/ArtQuest', 'ZviHaffner/exhibition-curator']        

Choice 2 - Events Platform Project

MVP here: https://github.com/ClaudioCamba/evento/blob/main/README.md

# including 10 unfinished, 11 in progress 
110_repos = ['123Yusha/tatodo', '141Soft/events-platform', '16000psi/djisco', 'aabubakar17/meetEasy', 'aabubakar17/meetEasy', 'adamTheWordUnderscoreWillis/VillageHallEventsApp', 'ahmedsatti101/events-platform-project', 'alehow84/let-them-create', 'AlexStraton/Events-Platform', 'Alfie-F/Plan-R', 'AlfredoGvz/plan_me_pj', 'alicewilson17/events-platform', 'amyf211/Evently', 'andraimoraru/EventPlatform', 'ar-kt02/project-v1-launchpad', 'Arron-B/events-app', 'beckylakes/lp-events-platform', 'Billy-Dentith/events-platform', 'BurakPetro/Events-Platform-Project-with-google-calendar', 'Burnlees/events-platform', 'charley-js/events-platform', 'chriscodingxyz/evento', 'chris-gladney/events-platform', 'ClaudioCamba/evento', 'Cwazycodes/Events-Platform', 'DavidTaylor21/Events-platform', 'dudleyspence/EventHub', 'edthuman/events-platform', 'FreemindNation/eventzn', 'Gazdean/events-front-end', 'G-eebs/EventBall', 'GemboJones/events-app', 'Ggirassol/EventBeat', 'gilbertouk/fe-events-platform', 'ginnytruong/eventful', 'GiovanAaron/TechReturners-events', 'Glawall/Launchpad-Events', 'Gurtajs/Events-Platform', 'hannahchapman79/TogetherEvents-FE', 'HanzoDaBoss/se-events-platform', 'hassan0341/SE-Horizon-Events', 'HelloKt-8/Events-platform-project', 'heniscoding/community-events-frontend', 'Henry-WL/EPP_Backend', 'hjaox/EventPlatform-TR', 'Howling-Techie/events-platform-fe', 'Iagrah99/pawfect-events', 'IamSarojtmg/event-project', 'isabelpopa/events-platform', 'JackCowling123/SE_Events_platform_BE', 'JakeHRobinson/Events-Platform', 'Jambust123/EventSphere', 'James960714/LaunchPadEventsPlatform', 'JamieS87/community-events-platform', 'Jamtartarenice/Event-Planner    ', 'jaymckerracher/activents', 'joao-ponte/events-platform', 'justanotherchili/eventure', 'Jxffxjxke/Events-Platform', 'Karumu05/communityEvents', 'KashaM767/event-listing', 'KateCory/dana-events-platform', 'KcalbJ/events-app', 'KimEunwooDev/event-platform-react', 'Koalaphant/events-platform', 'KrisChe8/event_board', 'LeeConroy1977/EventWey', 'lentiosh/eventhub-backend', 'lesliezss/events-platform', 'LianTattersall/events-platform', 'LukaEli/Event-BackEnd', 'messat/events-platform-eventSpace', 'michael-farah/community-events-platform', 'MikaGawin/The-Community-Hub', 'mrsmithjsk/Events-Platform', 'muxappo/eventful', 'Nlim97/Events_Platform', 'OpusLearning/events-platform-backend-new', 'qmumtaz/events_project', 'Radishetta/event-platform', 'rahulvital/simple-vents-fe', 'ramemes/eventure', 'Rocamain/evently-front', 'Roodbaraky/events-platform', 'rsdecoder/eventify', 'ruchikaroy/events_platform', 'Sakhee89/fe-events-platform', 'saul-stack/events-platform-project', 'sclotaire/events-platform-app', 'SergMo/events-platform', 'serhii-fsi/events-platform', 'ShainiAnil/events-platform', 'shaquillekiragu/event-highway', 'sidendev/eventfully', 'Siffster85/graps-app', 'simonhighfield/events-platform', 'Stephen0wen/EventLoop', 'SuganyaArul/Events_Platform', 'sweepas/hud-events', 'swlho/beevents-fe', 'swoody2527/eventsplatform', 'Tanim1995/Hobbies', 'TheRealImrano/eventor-fe', 'TianYu-00/SE-Events-Platform', 'tkbunbury/eventure-platform', 'ViktoriiaPavliukh/event_platform', 'Willfoss/Events-Application', 'ww1659/platty', 'ZaidHassan96/vitalfit', 'zamarz/events-platform']        

TOTAL: 256 projects


Alright. Well. But... But what about all the success stories on the NC webpage? "6 Years On: Senior Software Engineer". "5 Years On: Engineering Manager". Alright. Well. Claiming causality over half-a-decade is bold, but let's look at the stats. Not the ones presented on NC website, obviously, it's a cherry-picked sample, noone presents "the failure stories". Let's look at what data can be found in the wild. Going back to GitHub API, I gathered the LinkedIn URLs where available on the NC members' bios. After stripping out NC staff and dead links I ended up with 391 LinkedIn profiles. Of these, 36 had no mention of NC, and 33 are either currently in a bootcamp or graduated in 2025 - too recently to draw any meaningful conclusions about career outcomes. That leaves a somewhat random sample of 322. Professional statisticians will object that the sample is not truly random because the people self-selected when they decided to reveal their LinkedIn URL on GitHub. But I get to work with what I get to work with.

Of the 322:

  • 86 still have NC as their last experience (either in work or study section)
  • 85 have 'Open To Work' banner

These are overlapping categories, the exact split is:

------OTW------
NC   | 49 | 36
Last | 37 | 200        

  • 178 (55%) work in tech, of which
  • 142 (44%) work in dev or data, of which
  • 123 (38%) are employed full-time, rather than freelancing or self-employed

Fun fact: amongst the 322 LinkedIn profiles is someone who's presence may explain the strange police interest in my first article. Apparently they were in the same bootcamp cohort as me, while working at MET, and they still work there. Well, if you're watching, MET, do you perhaps have a unit tasked with investigating cases of embezzlement of government funds?


One more curious fact that came across my screen - NC's and TR's parent company NC Group is public. My browser knows that I am into finance, so it coughed their price chart at me without me even explicitly looking for it. Their ticker on LSE is CODE - quite clever, I have to admit. According to press releases, NC Group acquired TR for 1.5M in Q1 of 2023, when their stock price had been relatively high and stable for months. Later same year, the price started to decline and CODE LN Equity reached max drawdown of 66% in Dec 2023 (as I was having the bootcamp experience, that tracks). It looks like the graduate contracts are an "innovation" in an attempt to bolster the cash flow. Indeed, looking at the creation date of the above repos, one is in 2023, 192 are in 2024 (average 16 repos per month) and 63 are within the first 47 days of 2025. Alas, it does not seem to be working. The stock price spiked over late June to early July 2024, and has since slid down again close to the previous global minimum. And insiders on Glassdoor say that there have been a number of redundancies made of late, workforce is in a disarray and the morale is low. Do with this info what you will.


This GitHub API learning experience has hit me with more emotion than I anticipated. When the number of repos reached 100 and then kept on going up, there was brief moment of disbelief.

Then nausea. The kind of nausea that comes with watching someone cynically pray on others' misfortunes while convincing them that they're being helped. It rolled in waves over several days with each uncovered batch of repos.

Then I felt angry. And anger is of course a cover emotion for helplessness (and if you did not know - you're welcome). So I got to sit with the heavy truth that since everyone has free will, they can choose to use their free will in this way, the choice is solely theirs and there is nothing I can do about them having the choice and/or choosing this way. And they did indeed willfully choose deceit.

I felt hurt over the broken promise of employment prospects, and the advertised "guaranteed job interview at the end of the bootcamp" (Yeah, where is my interview? I never got it.)

I felt taken for a fool since they offered the TR project to me as well - twice - but I have been underestimated my whole life, so, meh, whatever.

I felt heartbroken over having seen all these people putting effort into their projects, hundreds of commits, believing that it would get them somewhere, while it was actually getting cashflow for the organisation that was selling them hope.

I also felt perplexed - did they actually, actually, actually think that noone would go snooping? Heck, I did not even have to snoop (and frankly, my pentest skillset is non-existent), all the data is lying on the surface. It's all public. Anyone could have gathered it. And if NC were truly dealing with a group of people who are into the hacker culture - anyone would have.

And lastly - guilt. What will come of this? Am I the reason for the hopes of someone at the NC bootcamp being dashed right now? Has my previous article, and will this one drive potential students away in numbers that would impact on NC teaching staff? Hey, you knew what is going on, and you enabled it, and you had time to move along - after all everyone finds work following the NC experience. But there were a few of you who helped me out during the bootcamp, and I still believe that the knowledge aspect of NC bootcamps is quite alright.

As I write these words I only have two options - to publish or not. To make what I know public knowledge, let the chips fall where they may, or to do nothing, let time pass and end up in a future where I knew, but did not warn. And I can't do the latter.

#Northcoders #NorthcodersBootcamp #OpenSource #GovernmentFunding #ShadyBusinessPractices #ToShortOrNotToShort #CassandraComplex

Just putting it out there, and appreciate you're upset, but I'm not sure employers are jumping to hire people who write long scathing articles about places they've worked/been at...

回复
Alec Parker

Implementation Consultant / Application Support with 8 years experience in SaaS. Customer Service Enthusiast. Coding with React, React Native. More experience in sales and management across the Logistics sector.

3 周

Fantastic article. I was in the cohort that graduated in Software Engineering in May 24. Although I never did buy into the 95% find work within X months malarkey, I did think it would be higher than it obviously is. I recognised that offer of short term work to be exactly the fudge you show it to be, and it also angered me. Even with the doubts I committed to it, but as soon as I saw the size of the cohort my heart sank. I've been in software in support/implementation roles for 7 years so I had an idea of how large the market was, and unless NC had access to some magical golden seam of requirements there was no way they could honestly achieve the % they claim. Churning out hundreds of newly minted Devs every 12 weeks, yet so few opportunities on the board. There's going to be a lot of anger and heartbreak out there.

Now I see why I was the only one who completed the Exhibition Curator Project and got paid. While working on it, I had to explain to their tech team why I split it into frontend and backend—they didn’t get it, even though that’s what they taught us. After getting my £750, I checked GitHub and found similar projects—none reached MVP. I thought their teaching was ineffective, but now I see the real issue. I finished mine only because of my years of coding experience. Like you, I never got my promised interview. I was active on Northcoders Jobs Board but never got a single response. After six months, they revoked my access. With only ~15 listings per month, their system clearly can't deliver what they promise.

Matt Clough

Actuarial Analyst - Reserving & Corporate

3 周

Really interesting findings, and crazy if this is the full story. It reminded me of a careers talk on my bootcamp where they explained that they really were able to guarantee an interview after completion because they'd just interview you themselves if you couldn't get yourself one

要查看或添加评论,请登录

Viktoria S.的更多文章

  • Northcoders Bootcamp: Review

    Northcoders Bootcamp: Review

    It has been a month since graduation from Northcoders Software Development bootcamp. Seems like sufficient distance to…

    1 条评论

社区洞察

其他会员也浏览了