floor9design

Skills

Background

I am a dedicated and rounded systems developer. I have solid experience in all aspects of modern system design including front and back-end systems. I have worked many full-stack and back-end roles and have regularly delivered greenfield/from scratch projects.

My strong background in systems work has enabled me to deliver large applications for clients. I have used established architectures and patterns across the whole development cycle to deliver solutions that are extensible, reliable and efficient.

Languages

I primarily work in php , specialising in object-oriented programming. I've worked in projects from php5.3 all the way to the modern 8.x versions. Keeping up to date with language improvements and security is vital, and I keep my knowledge up to date as the language progresses.

Testing and review are vital, and I have delivered high or 100% coverage sites using tools such as phpunit as well as code quality and static analysis tools such as phpstan.

Back end development often requires substantial work in databases. I have designed and devloped classic relational databases such as MySQL, MariaDB, SQL Server as well others such as MongoDB. Designing an efficient database is vital, as is interrogating it efficiently. I have worked in a number of production data environments where database interactions were critical and needed to be optimal.

As part of full stack development, I work extensively in HTML(5) and CSS(3). Clean and efficient websites are vital for systems delivery. Often I have worked to accessibility standards and approaches such as WAI/WCAG earning websites AA and AAA ratings. Responsive design is a must and this is something I have delivered for many clients.

I also use front end technologies such as javascript and jQuery to add to the web experience of users. This varies from basic niceties such as mobile friendly controls on sites, through to animations and rendering. There is also the hybrid front/back end of SOAP and modern JSON api interactions. I've worked substantially in this area, including releasing the well used open-source json-api-formatter.

Frameworks

Much of my work has used MVC frameworks, in particular Laravel and Symfony . I also have experience in other MVC frameworks such as CakePhp . I am particularly comfortable in the composer/packagist arena, having released several open source packages usable by the above frameworks.

Wordpress is extremely popular, and I have developed extensively in here for various clients. This includes creating an award winning web based game for Diva Creative (Move It Boom). I also created and maintain a Wordpress plugin for Eventim (Event Feeds for Eventim).

As part of my full stack and front-end development I often use jQuery. I have also used flot to create real-time, dynamic graphs and reporting. I've also added 3D imaging for projects, using Babylonjs to give custom rendering for technical designs and products in shopping carts.

Other technologies

Modern development usually requires a number of supporting elements. Virtualisation is often key, and I have developed and worked in VM environments for many years. Using Vagrant and Docker I have been able to ensure stable and shareable working environments for teams.

Similarly, version control is vital in teams. I use git and Github constantly. Subversion is also used by many, and I have plenty of experience with this. It is the main method of release for Wordpress plugins such as Event Feeds for Eventim.

Continuous integration often fits side by side with modern programming, and automated release and I have used services such as Travis CI, as well as analysis tools including Codecov.

Management and management tools

I've worked in many environments from small and personal, to large and corporate. There are hundreds of systems and approaches that organisations use... ranging from a morning chat over coffee to advanced online tracking software.

Most projects use some form of AGILE approach; SCRUM or Kanban, or some variant. I have worked with many tools designed to fit in with these approaches, including JIRA, Trello, Redbooth and others.

Documentation is also key, and I extensively work with documentation using many approaches. Wikis, Github/markdown and Confluence are examples of software and approaches I've used to deliver rounded documentation for clients. I have also used automated tools and protocols such as phpdoc and OpenAPI/swagger to deliver technical documentation to projects.