Hey, so can you introduce yourself?
Hey, I’m Ashley Peacock, and I’m a Staff Software Engineer from London, UK. I’ve been working in the UK finance industry for most of my career, but I did start out working for a web development agency near my hometown in Suffolk.
Why did you learn to code?
I first learnt about coding in high school, when I was 14 or so. I really enjoyed HTML and CSS, and luckily for me a fellow student had already created their own website. I wanted to create a recipe search website, so I needed to learn more, such as how to make websites dynamic, and this fellow student helped me out to begin with.
Ultimately, I learnt to code because I just really enjoyed it, and prior to that, I’d always liked the idea of getting a job creating video games. I had a desire to make money too of course, so the websites I created from then on were designed to make money! These days, I stay as far away from the frontend as possible, unless I have to delve into it for a solo side project!
How did you learn coding?
Up until I got my second job, I was entirely self-taught when it came to coding - no one at my first job really coded, they just mostly turned Photoshop files into static websites. The biggest website I made when I was learning was a website for Flash games (for the kids, this was the only way to create anything like a game before HTML5 came along). It had lots of complex elements to it, at least for a beginner, such as login, scoreboards, and automatic addition of new games via an API feed.
I was a keen learner, so I also taught myself how to make Flash games to add to my website, using ActionScript. It was a very simple language, and the games I made were very simple too, but it was extremely fun.
I also created scripts for sale on CodeCanyon, and met a designer in the US, who I worked with to create WordPress themes for sale. It was a really lucrative partnership, at least for an 18 year old, as between us we earnt around $50,000 in the space of two years - not bad as a side hustle!
Since beginning my journey, I’ve learnt so much. I can’t possibly list them all, but I know HTML, CSS, JavaScript, PHP, Ruby, C#, MySQL, Postgres and MongoDB, to name a few. On top of that, I’ve learnt so much about software architecture, which is my big passion these days.
The only thing I would change would be learning from others sooner. I worked entirely in a vacuum early on, so I had quite a shock when I got my first big job, and realised I actually knew so little. Contributing to open source projects would’ve been a good way to get some feedback and learn from others, as an example.
I wouldn’t say completely avoid small companies (my first had 2-3 developers), but if you’re just starting out in your career, a bigger company with more people to learn from would likely be really advantageous.
How has your life changed since learning to code?
Since learning to code, it’s been such a big part of my life. I’m now 31, so I’ve been coding for over half of my life, and to this day, I still absolutely love it. My salary means I’ll always live comfortably, and I just love that I still learn so much each year, and you never stop learning.
Coding has also opened lots of doors for me, not just career-wise, but I recently wrote a book, with a focus on creating software using diagrams, that is probably my greatest achievement!
Learning to code also enabled me to travel, a company I worked for had an office in Texas, which I got to travel to twice. On the first occasion, I got to go for two weeks with a close friend who I also worked with, and we had an awesome two weeks of working during the day, and exploring Texas after!
It will sound cliché, but seeing as you spend a lot of your time working, finding something you love makes work so much easier. I don’t have Monday blues, or dread going to work, and that to me is simply amazing. What’s better than getting paid to do something you love?
What does a typical day as a software developer look like for you?
My typical day is very different to how it was when I was a mid-level or senior engineer. To explain how it’s changed, before I was a staff engineer, I would spend 90% of my time coding, and 10% of my time in meetings.
Once I was up to speed in the area of the codebase I was working on, I could pump out high quality code relatively quickly, so I’d often just spend the day listening to music, coding away. I’ve been blessed that my coworkers have always been amazing, so there would regularly be random conversations too.
If I could give some advice about what roles to go for, naturally you need to enjoy the industry the company operates in, but think a lot about the people and how you got on with them. I can’t overstate how important it is that your coworkers are like-minded, it’ll make work a breeze if they are!
As for my typical day as a Staff Engineer, it’s a lot more about leadership, technical direction and, unfortunately, attending quite a lot of meetings. I don’t get to code as much as I would like, but I do get to collaboratively work with my team a lot, on problems they are facing, ironing out gnarly technical aspects, and architecting the systems we build together.
How did you get your first web development job?
I started working for a small local web development agency. It was nothing flashy, they created websites for local businesses. There were no scalability problems, but the work was very varied. One day I’d be creating the frontend for a website, the next I’d be creating an eCommerce store, and the next I’d be creating a completely bespoke recruitment website, from scratch, in PHP & MySQL.
The latter they only started doing when I joined, so I felt like some sort of wizard. As mentioned earlier, I had a sharp realisation when I got my second job at a much larger company, that I was in fact not a wizard!
I applied for the job online when I finished my education aged 18, and the only experience I had were my personal projects. I probably stayed for too long in the end, I’d stopped developing and learning, but I learnt a lot about working with others and managing my time. If you ever feel like you’re standing still or not learning anymore, it’s time to move.
What are your career goals for the future?
Up until recently, I had a life goal of working for a big tech company, such as Netflix. However, they look a little less appealing recently with the big layoffs in tech, so I’m not sure what my next move will be.
In the mid term, I’m working towards another promotion at work.
As mentioned earlier, I wrote a book, which is currently in early access. It will be fully published in February, but you can get it now, it’s content complete. It’s all about diagrams, and how they can be used to help you create better software.
I’m a big advocate for their power, and believe they can make everyone a better engineer. It’s called Creating Software with Modern Diagramming Techniques, available here: https://pragprog.com/titles/apdiag/creating-software-with-modern-diagramming-techniques/.
You can follow me on Twitter here: https://twitter.com/_ashleypeacock. If you want some advice, or just want to chat about all things engineering, feel free to drop me a message, I always love to chat about anything techy!