As a Lead Software Engineer, I strive to ensure the correct approach for the end user is delivered whilst providing business value. I am a positive and motivational person who likes to lead a team to build products around motivated individuals and give them the environment and support they need along with the trust to get the task completed. This is done with open communication and utilising the best of peoples skill sets.
My current way of working are Lean but have recently started to implement Agile methodologies to strengthen my ways of working. By working with both the product owner and user experience, we work out the effort vs the value collaboratively and ensure there is no wastage. The value is then delivered fast enough to enable us to learn from the feature whilst also engineered to a quality for ease of adapting when we go through our learnings.
Documentation is a first class citizen, as is test driven design and quality assurance. Dealing with micro front ends, you can quickly have many to manage so documenting domain knowledge specific to it can help when context switching. This allows the team to have the ability to work on a small codebase quickly, effectively and deliver value quickly.
As a Lead, I believe the need for a single source of truth and a knowledge base will empower the team and autonomy. Collaboration is also key, and collaborating with both User Experience and the Product Owner ensures nothing is delivered without the agreed value and effort. From these beliefs I’ve been able to enable a design system to be created by collaboration between the engineers and user experience/design to create a solution that’s fits everyone, help push for a new knowledge base to allow for our single source of truth for key documentation and processes within the digital team. This has all been achievable with a good working culture where collaboration is key with cross-functional teams, something that is close to my ways of working to allow for well thought out solutions and above all a great team to work in.
I am a passionate engineer who takes pride in what he delivers. In my spare time I am listening to music, taking my daughter out cycling or teaching her to skateboard. If I’m not doing that, I’m learning how to use my camera, playing games, experimenting with new programming projects and concepts to extend my skill set or writing to reflect on what I’ve learned. I admit when I’m wrong and question things I don’t know or am uncertain of.
Above all, I am loyal and get excited with a good team.
Please also read any recommendations I have via LinkedIn.
You can read more about me too…
My skills have adapted and changed over the years. I understand a language should be used for certain tasks and there is not a one size fits all. This is the same for best practice and methodologies. Having worked with Terraform, GoLang and Rust, I can see the benefits of infrastructure as code as well as using GoLang and Rust to help with certain tasks or tool chains.
My skill sets:
- Nix Shell (Bash, ZSH)
- GitLab CI
Open Source Contribution
With the many methodologies around, one of the most important to me is the open source community. I try to take this approach when leading on projects to ensure you code for the next person/team to pick up a feature that might be added to a micro front end or service the team have created. These skills have been gained mainly when working on open-source projects along side respected people within the PHP Community for projects like The PHP League. Some of my projects can be seen below:
Personal projects I've created and implemented previously:https://github.com/NigelGreenway/Demander
Projects I've worked on in the past:https://github.com/slimphp/Twig-View/pulls/NigelGreenway
Shell Energy (First Utility 2016-2019) (2016 - present)
Since my time at Shell Energy (formerly First Utility) I have been able to work with many great and talented people where I’ve been able to extend on current skill sets as ewll as gain new ones. Starting as a Software Engineer, I was brought in to help with the main functionality of the web site where people would manage their meter readings by submitting online, change their tariff, as well as other general account areas. These are journeys used by hundreds of people a day. I helped deliver new features to the system as well as bug fixes. This was a monolithic PHP MVC application using Symfony and Zend components via Composer and based on the Yii framework as a base. Since then I’ve supported team members with bigger features like our refer-a-friend, smart awareness and booking portal, loyalty scheme, the display of weekly usage and more. During these products, in recognition of my efforts I’ve been promoted twice in four years - first to Senior Software Engineer and then to my current role of a Lead Software Engineer.
My role as Lead Software Engineer initially pushed me out of my comfort zone. I lead a team of software, User Experience, Quality Assurance and API engineers to help deliver the right and best digital experience for our user base. Whether this is a new web app like our smart booking portal or a complete re-platforming of current systems like our monolithic codebase being split into micro front ends, I try ensure that the team have the right tools and information to hand and ensure MVPs are sensibly set. Working closely with the team I ensure we deliver value to both the customer and the business. We deliver apps that are adding value instantly. Once the initial app is delivered we iterate as a team and deploy multiple changes which are driven by analytics and data collated from UX.
Presto Classical Ltd (2014 - 2016)
My first task was to build an internal application to deal with how the business handles purchase orders with suppliers. Since then, I worked on rewriting the current website by converting the current procedural code into a fully object orientated application based on Domain Driven Design.
Within the first year, I have implemented Jenkins, a git workflow, PHPUnit and Test Driven Design along with DokuWiki documentation covering everything from code to hardware assets to requirement specifications using Dokuwiki. Working with the front end developer, I have implemented build scripts to ease the compiling of CSS from SASS, installing all server-side/front-end assets and Browsersync to allow testing of multiple devices with ease, media queries and front end functionality.
I designed the architecture for the new site and business application with ADR, CQRS and DDD whilst implementing StackPHP for the core whilst using packages from The PHP League and other resources as well as building our own or contributing to projects where they can aid in easing our development.
Resource Development International Ltd (2012 - 2014)
Based in Coventry, RDI are an on-line educational company that delivers university qualifications worldwide.
It is here where I extended my knowledge even further due to a great team. I was able to pick up knowledge on best practice, coding standards, a deeper knowledge of PHP and further myself as a better and more efficient developer.
I also had the chance to work on our Moodle platform by creating modifications, help with the theming of the new site and expand on the API connectors between our internal system and Moodle platform.
Caroco Marketing Ltd (2011 - 2012)
Originally based in Birmingham, Caroco Marketing specialised in web marketing from PPC, SEO, web design, social media services and the alike.
My time at Caroco Marketing gave me the chance to jump into project management and start working directly with my first PHP Framework; Symfony2. It gave me the chance to understand what is required when planning a large project along with how to prioritise tasks with both immediate and higher level managers.
I was part of an effort to create a new in-house system to manage Google PPC as well as keyword analytics and would also be asked to either modify current client web sites or create new ones with the TYPO3 micro CMS framework.
ITC Ltd (2010 - 2011)
ITC Ltd was a company who provided probate services based in Stratford-Upon-Avon.
I was part of a team that created modifications for the internal system or modified existing ones, along with bug fixing. The systems were custom built and were a collection of customer and document management web applications built with PHP.
Through each modification given, there was a process I learnt and found to be of great value to a developer; create the modification to the specification given, test locally and report on the test process in order for this to be passed to the test team and then liaise with the user acceptance team for further tweaks/modifications before being signed off and released.
Starting out as junior ; this was my first role in the world of development. Then, at the age of 26 I wanted a career I can excel in and gain rewards on a basis I can control, be that daily, weekly or monthly. Here, I learnt PHP at a deeper level and started to move from procedural code to the MVC pattern.