About Benjamin Hall

Benjamin Hall

My name is Benjamin Hall or Ben and I'm a freelance full stack developer based near Birmingham in the West Midlands, United Kingdom. I have been making websites since 2001 when I was 13 years old. Before Twitter, Instagram and Facebook, I was creating Tripod, Angelfire and GeoCities web pages. Shortly after, I learned about PHP and never looked back. I've always favoured backend PHP over frontend as I loved the fact that I could create programs that actually did stuff instead of just being a flat, static website. With the introduction of jQuery and AJAX (and soon ReactJS) to my skillset, I was able to create highly interactive dynamic websites.

As a reliable and enthusiastic full stack developer with over 11 years of professional experience, I have a passion for expanding my knowledge and figuring out how things work. Naturally, when browsing the web, I can't stop my brain from deconstructing the website and theorising how the moving parts of the website come together and I'm constantly trying to improve and find better ways of achieving the same end goal.

As a full stack developer with a raw passion for writing elegant code, I work cleanly to the PHP PSR-2 recommendation - I'm a firm believer in adhering to a strict set of style guidelines to reduce cognitive friction in joint projects. I also develop code whilst being mindful of the CPU cycles and RAM constraints on production environments to keep the code slim and efficient. I've read a lot of code written to simply satisfy the end goal that could be rewritten clearer, cleaner, run much faster and require fewer server resources. This is especially important in shared-server environments which most small/medium websites use.

Over the years, I've worked with almost all of the large PHP frameworks such as Laravel, Symfony, CakePHP, CodeIgniter and Slim. Whilst my preference is pure PHP (no frameworks), I'm happy to work with them as I understand that they have their place. When working with client budgets, frameworks allow us to get a lot done in a short amount of time. I understand the fundamentals of the PHP scripting language and web development in general, so working with pure PHP or a new/different framework doesn't pose a problem.

I have a keen desire to expand my skill set in the web development field and I'm always looking for new (or better) ways to implement a feature or complete a task - whether that's pure PHP, PHP frameworks or new technologies altogether.

Being highly resourceful, timely and extremely dedicated combined with a strong technical knowledge of the latest web development technology makes me a great candidate to work on your next project!

Ben's Skill set

Languages

  • PHP 7 I write code that is fully PHP 7+ compatible whilst retaining 5.3+ backwards compatibility where possible.
  • MySQL/MySQLI/PostgreSQL Databases Including database creation, creating indexes, migration, backup and management.
  • JavaScript I've been working with Javascript for many years
  • jQuery I'm proficient in jQuery and have written quite a few custom plugins for clients.
  • Vue.js I've used Vue.js in a couple of personal projects, including an open-source calendar component.
  • AJAX Using asynchronous requests, I can create dynamic and self-updating content that makes your website feel faster and more responsive whilst improving user interaction.
  • HTML including HTML5 spec Such as using new structural elements that better define the content on the page - header, nav, main, aside, article and footer.
  • CSS including CSS3 spec I'm well-versed in the latest CSS3 techniques such as drop shadows, transitions, animations, gradients and media queries to create fully responsive websites.
  • Bootstrap Library My preference in front-end libraries. Bootstraps CSS components help cut down development time by providing a solid base for developing front-end UIs quickly.
  • RESTful APIs I've integrated weather, payment, content, statistical, product, social media and many more APIs ranging from unauthenticated to oAuth2.
  • AWS/Google APIs Such as S3, Google Maps, Google Geocode, etc.
  • Single Page Applications (or SPA's) Including Progressive Web Apps (PWA) to provide offline experiences for web users.
  • .htaccess rules and rewrites Handling redirects from WWW to non-WWW, HTTP to HTTPs, or permanent 301 redirects for moved content.

Server-Side

  • SSH Working with command line interface terminals.
  • WAMP, LAMP, LEMP, LLMP Working with NGINX(my personal favourite)/Apache/Lighttpd, MySQL and PHP Stack.
  • Domain Configuration & DNS Configuring DNS A/AAAA/CNAME/MX/TXT/SPF/SRV Records.
  • Email - Postfix/Dovecot/DKIM Configuring Postfix, diagnosing problems and setting up email digital signatures.
  • SSL and HTTPS Configuring SSL Certs and providing a managed HTTP to HTTPs switchover, including fixing mixed-content problems.
  • Cron Scheduling (cronjobs) Cronjob management tools and/or command line scheduling (crontab -e and /etc/crontab).
  • cPanel & WHM Configuring and hosting management.
  • Server Management Managing the upkeep, upgrades and maintenance of VPS and Dedicated servers.
  • Cloud Services Such as deploying to Heroku, Amazon cloud hosting (EC2), Digital Ocean, etc.
  • Database Including MySQL (my preferred choice), MySQLi, etc.

Tools

  • Visual Studio Code My new favourite code editor!
  • Sublime Text My old favourite editor :)
  • Git My preferred version control software - I use this daily.
  • Bitbucket My preferred private repository host. I use this daily too.
  • GitHub I use GitHub often. I host my open-sourced projects on both GitHub and Bitbucket.
  • Sass I love the dynamic style it brings to CSS - nested style rules and @mixins in particular.
  • Minification Tools Such as UglifyJS, UglifyCSS, etc

Methodology

  • Object-oriented programming (OOP) Before OOP, all of my code was written with procedural functions but since OOP, most of my code is object orientated. It helps create clean, easily maintainable code that considerably cuts down development time. I like writing logically chainable code.
  • Model-View-Controller pattern (MVC) I love the organised approach to MVC. All of my larger-scale projects are written in the MVC pattern.
  • Dependency injection (DI) Following the principle of Inversion of Control, I create flexible modular code that can be reused throughout a project.
  • ORM's like Eloquent ORM Object-relational mapping provides the middle layer between our program and our database.
  • Factory patterns I've worked with Factory Patterns on quite a few projects allowing us to push all of the heavy lifting into the 'factory' to reduce the amount of duplication in the codebase.
  • DRY - Don't Repeat Yourself Writing clean reusable modular code with less duplication.

Frameworks & CMS

  • Laravel My preferred framework for large projects with a lot of dynamic elements. I use Laravel to create bespoke systems.
  • WordPress My goto CMS for content-based website such as news, company, schools, blogs, or magazines style websites.
  • Slim Framework My new favourite lightweight framework. I have used this on a number of smaller projects.
  • Codeigniter
  • Symfony

Future

  • ReactJS I'm currently in the process of adding ReactJS to my repertoire.
Benjamin, is brilliant at what he does, he really knows what he is at. Gives real useful advice and guidance. He is fast and timely provides updates and always provides solutions and listens well. Trust me Benjamin is a breath of fresh air.

- Alexander T.

★★★★★

Ben had a great idea for my project and completed the project to our requirements very quickly. He also helped me tweak a few issues and answered my questions quickly. We'll work with Ben again!

- Gordon S.

★★★★★

I was impressed: a freelancer who could give me inputs and details on how he'd implement the solution, kept me updated in the meanwhile, understood my requirements and proposed pretty nice tweaks to make things even better. Ben, you are amazing. I will need no more time to find any other dev's, and will surely deal with you again if I need something related to these things in the future. Full stop.

- Marco F.

★★★★★

Absolutely superb, a great work ethic, outstanding knowledge and a great eye for detail. I thoroughly recommend him!

- Gary J.

★★★★★

Benjamin is a talented developer who can tackle technically challenging projects with great service and communication. Thoroughly recommended.

- Steven M.

★★★★★

Ben truly went above and beyond. He's fantastic at communication, coding, getting round problems, fixing issues, WordPress, custom plugins and much more. I will be using Ben again for other projects.

- Rachael R.

★★★★★

Ben went the extra mile and not only resolved the problem but provided a more suitable solution for the long term. Cheers!

- William R.

★★★★★

Ben is an amazing developer. He took the project and delivered it on time and within budget, whilst maintaining excellent communication. He also worked beyond what was asked to make sure the project was functioning correctly. Would highly recommend A++++!

- David B.

★★★★★

Fantastic work on our JS script. Ben worked beyond the goals of the project and overcame extra issues that were not defined in the project. He is very quick to respond and patent when waiting for our response. One of our top 5 Developers, We had to deal with many Interfaces including server firewalls/Java-scripting/JSON/PHP/PHP APIs/Remote Databases and automation.

- Kevin J.

★★★★★

Ben is just great to work with. Efficient, clearly communicating, understanding very quickly, and also giving great advice. I will continue working with Ben on any other WordPress stuff. Sorry for all those other PPH'ers :-)

- Bruno V.

★★★★★

Absolutely amazing experience. Ben is an expert in this field, I was amazed at how quickly he jumped on our platform and decoded the code, db etc. He will go over and above to find solutions for clients. Highly recommended.

- Harrus A.

★★★★★

Interested in working together to make something great? Hire CONOBE