James Winfield.

A senior front-end software engineer in London

Heading Image for James Winfield, showing AI generated software engineers in the style of Gustav Klimt

Timeline


1992: Picked up a book on programming for my ZX Spectrum from the local library. There was only one book. I did make some small programmes though don’t ask me what – probably a lot of nested if statements!

1996: Considered studying IT Studies at A-level, but it didn’t work with what else I was studying.

1998: Fell in love with the internet at university, whilst studying Maths.

1999: Started learning a bit of HTML.

2000: Aborted university. Had to get a job. Stopped learning HTML.

2003: Decided to get a degree – I wanted to study “web design” as I knew it at the time, but nowhere offered anything that was a part-time qualification, which I could do whilst working. Gave up on the idea and started a degree in Business Studies and Economics with Open University.

2008: Actually finished this degree.

2009: Realised that my career was making me unhappy, and that I hated wearing a tie. Started thinking about what else to do.

2010: Picked up a book by Sitepoint on building a website with HTML/CSS.

Kind of the start


2010: Made redundant. Started learning HTML/CSS again.

2011: Having spent all my redundancy money in Ibiza/Berlin, I had to get another job I hated to pay the rent. Seeing all these missed opportunities?!

2011: Hated my new job enough, and the commute from Reading to Bracknell, that I started spending weekends learning instead of in nightclubs. Some weekends, anyway.

2011: Finally had a website live! I cannot actually remember what it was. It was basically HTML, CSS and looked a bit like Ceefax as I had no concept of design. ALL THE FONTS, please.

2012: Decided that I definitely wanted to be a web developer – I was getting into it, it wasn’t just a frustrating hobby.

2013: Started learning design and PhotoShop because I thought you had to do that also.

Getting serious about learning


2014: Started learning JavaScript. OMG what is this stuff? I also started to feel empowered – like I could build something.

2015: Ramped up my learning. Did too many free courses on random things like SQL, Python, Java and repeated JavaScript that I already kind of knew, but by doing this I figured out that front-end was where my interest lay, even if I yet again delayed my journey.

2015: Started making a portfolio of websites so that I had something to prove I could code. As by now, I could actually code.

2016: Finalised my portfolio – you can still see some of it on the Internet Wayback Machine.

2016: Shortly after, I had an interview (at a pub), and was offered a role as a junior web developer. Made it!

2016: Lost job – was told after my 3 month’s probation that I was not cut out to be a developer. Ouch.

2016: Started learning WordPress and PHP – as previously all my websites needed content to be uploaded by FTP every time. Kind of a revelation – especially considering that I had been blogging since 2008.

2017: Spent 4 months doing pretty much nothing but learning and practicing how to write code, including React – with maybe one day off every 10 days. Well, and speaking to recruiters.

Lovespace


2017: Had 4 interviews where I came second (so I was told, anyway) before finally cracking the interview with Lovespace. Apparently, writing that I had a mullet for a hairstyle (at the time) on my website, helped me get the interview. And then I smashed the interview, and more or less, the take-home challenge.

2017: Struggled a bit – as the website was in jQuery, and my manager didn’t know it. Was pretty slow to build, but slowly learnt.

2018: Suddenly at the beginning of the year, I started to grasp things. There was no feedback loops, no code reviews, no unit tests, nobody to guide me, etc so it was kind of fail on release (just like Twitter in 2023) and then fix, but I progressed.

2018: We rebuilt the main order flow in AngularJS, and they employed a senior engineer – who was great. Finally someone to help me understand, like I think I help others now.

2019: Built a new fulfilment app/website from scratch in AngularJS.

2019: Asked for a pay rise. Was told no, but they’d promote me to mid-level engineer. I turned it down.

M&S


2019: Was offered a job as a software engineer at M&S. With a pay rise! I had only asked for £30k at Lovespace and would have stayed. Still in touch with a few people from Lovespace, go to their alumni event every year and follow their progress as a start-up. They were a good start-up to work for, and I like to think I was good for them, once I’d figured out my bearings.

2019: Quickly realised how much I had to learn – going from AngularJS to vanilla JavaScript, having to learn how to write unit tests, having to do code reviews (feels so crazy we never did that at Lovespace), having to do technical presentations, etc etc. Was a real leap in professionalism.

2019: Rebuilt the PDP page in vanilla JavaScript, with Handlebars for markup, SCSS, Mocha for unit tests – the new framework at M&S, or it was at the time. Successful project, greatly improved speed, Core Web Vitals and most importantly, it was positive for revenue.

2020: Continued to build out the PDP page, adding new features, and expanding scope so all product categories were covered.

2020: Asked to join a recommendations mission team as their second front-end engineer – a back-end focused team that created recommended product strategies with increasingly complex data science principles – which outperformed our previous external solution.

2021: Became lead engineer for the recommendations team, albeit of only 3 of us.

Senior Engineer at M&S


2021: Promoted to senior engineer. Didn’t feel like I was ready at the time but I had a manager who really believed in me and disagreed! He was right – I was behaving as a senior engineer at the time that I was promoted.

2022: Started working on an outfitting project on the new tech stack that a different team were building (React, TypeScript, NextJS, GraphQL) – which was super exciting, and I turned down opportunities to move to the team building the new tech stack to do so.

2022: Later in the year, my outfitting project was cancelled. Cue frustration as I went back to doing experimentation in vanilla JavaScript and watched other colleagues doing really cool stuff. Oh well, at least I was working from home. I tried, and failed to get another job – as I didn’t have enough React experience. Catch 22.

2022: Led upskilling project for other colleagues within the Personalisation & Decisioning department, so that they could all be ready for working on the new tech stack in 2023.

2023: Started working on the new tech stack. Still team lead, though now in a reformed Personalised Experiences team, where we a/b test through Optimizely to find solutions to increase revenue whilst bringing personalised experiences to the customer.

2023: Doing quite a lot of building in my spare time, including rebuilding this blog in NextJS/GraphQL – and my DJ Mix Of The Week website in Frontity. Well, you can see what I’m building…or at least what I started on my projects page – am trying to get out of my comfort zone and do more Node-based back-end stuff too.

Gosh this was more words than I planned.

Next?