Who are you? Where are you from and what is your backstory?
My name is Lee Crosdale, I’m from Essex, UK, I live with my fiance and two step children and I’m also the Lead Laravel and PHP Developer at Enovate, a web design agency in Chelmsford, Essex, UK.
I’ve had a passion for programming since a young age, and worked full time in web development for nearly 10 years. On the side I run a small Laravel 48 hour hackathon named LaraHack, at this time we have just finished the 3rd event.
What made you get into programming?
I was given a book on HTML 2.0 when I was about 8 years old, I had an interest in coding from that point onwards, however I didn’t really get into it as a full time hobby until I was around 12, when I discovered an open source PHP RPG game named ‘Dragon Knight’. I set the site to run locally on my computer, but then realised there were some bugs, I started to work out how to fix those bugs, and the rest is history.
What made you create LaraHack?
I was actively looking for Hackathons and came across the LaravelUK community. I asked around for a bit and noticed there was nothing of the sort. I decided to whip up a quick site, and started gathering sign ups, I acquired some sponsorship funding and put that into twitter advertising, but the sign ups were largely gathered by word of mouth, or simply tweeting / instagramming some screenshots of the site, with a small amount of information. I think the first event had around 50 sign ups, we hit 400 after the 3rd event, not too bad considering I don’t actively try to push it out that often.
What does your process for learning to code look like?
When I started coding, there wasn’t a huge amount of resources online, so I largely spent time reading and changing open source code, and also talking with people on MSN Messenger (yes I’m that old).
Nowadays there is a wealth of information to get started with coding, but I think the key to it is simply to pick a project, and practice, practice, practice. For me, those came in the shape of text based PHP RPG games. I would usually write down what I wanted the site to do, and then start coding to reach that functionality.
My process is largely trial and error. I like to gather an idea and start coding. Before the time of a decent framework like Laravel I would build my own libraries such as Database helper classes etc. I think if you’re learning PHP, you should start at the core foundations and not at a framework from the get go.
What does your process for building apps look like?
Since I build websites as a job but also as a hobby, I’ll pick the more professional one since my hobby process is pretty much a hackathon style of code until it works, which has it’s pros and cons.
My work process is pretty simple. One of the team members would talk to the client, and come up with some sort of sitemap / sketch for how the site may look. We would then get into a spec write up where we would figure out any custom code or functionality that may need to be coded. Once we have a spec and a time-frame, we code in weekly sprints and do a quick 15 minute stand up each day. That cycle would carry on until the testing phase, where we generate bug reports / issues on GitLab where the cycle would begin again.
When the client has tested and is happy, it goes live, however we closely monitor the logs for anything the testing may have missed. Make sure to always allocate time PLUS extra time for fixing bugs or coming up against challenging code. There is no point planning 2 weeks of work and leaving 0 hours for issues or life, you’re simply not going to achieve your goal.
Do you face any particular challenges when building over a period of time?
As a lead developer there are always challenges day to day, such as making decisions on how to approach a specific problem, usually I’ll do this by trying to gather as much information about that task as possible either by running through the code myself (if it’s a dev issue), or speaking with my peers about potential fixes/changes or possible issues that may be caused by those changes. Hopefully by that point there would be enough information to make a decision about that problem.
I would say my biggest challenge that I’ve come up against is having juniors in my team, it’s one thing learning yourself, but it’s another explaining that process to someone without as much experience as you. It’s awesome seeing people grow from strength to strength, and none of us have fallen out yet, so I like to think I’m doing something right!
From a learning perspective I would say my biggest challenge was simply finding help and resources. There are some brilliant tools online now (Codecadamy, FreeCodeCamp etc) which I wish were about when I was 12. I still use Laracasts when I need to find out something specific about Laravel, it’s a great site for all levels of experience.
Are you currently learning anything new?
Always! I’m currently learning the nuances of the Yii2 framework, mainly because at my current job the framework of choice is CraftCMS, the documentation from Craft isn’t amazing, so understanding how it’s core works is a must for me. There is a great site named CraftQuest.io that has been quite helpful, and obviously stack overflow as been a lifesaver at times.
Advice for those learning to code?
Honestly the best advice I can give is to enjoy it, don’t burn yourself out. Programming can be the most fun and the worst experience of your life at the same time, that feeling when you learn something new, or simply fix a bug is awesome. Also, don’t forget there are so many people out there that are willing to help you out, don’t ever be afraid of asking questions when you’re stuck, you’re not going to learn anything by just staring at your screen.
Take lots of walks, relax, do something else, enjoy life. Places like Instagram can make it seem like coding has to consume your entire life, which is fine for some people, but for me, burn out is the worst. Take your time, you’ll get there eventually with enough hard work and determination. There have been times where I’ve spent 4 hours on an issue, only to take a 5 minute break and fix it 20 minutes later.
I’m pretty active at LaravelUK, which is a great place to ask questions (in the #helpneeded channel) - https://laravelphp.uk register for the slack channel and join us!
What’s your tech stack?
The tools that I mainly use on a day to day basis are
PHPStorm - https://www.jetbrains.com/phpstorm/
DBeaver - https://dbeaver.io/
Git / GitKraken - https://www.gitkraken.com/
VSCode - https://code.visualstudio.com/
Honestly I don’t know what I’d do without PHPStorm now, it’s a great tool for helping you understand your code.I usually switch between Windows and Ubuntu (i3-gaps) depending on what I’m working on. All the above tools work on both platforms
The programming languages that I use mainly are
Although I know
What have been influential books, resources and links that have helped you?
Sadly most of my programming resources from the beginning are gone or way too outdated now.
The books that I’ve found influential through the years were
- Where Wizards Stay Up Late
Dreaming in Code
The Phoenix Project
Where can people learn more about you and your work?
LaraHack - https://larahack.com
My personal site - https://crosdale.dev
Twitch - https://twitch.tv/crosdale
Twitter - https://twitter.com/leecrosdale
LaravelUK - https://laravelphp.uk