I’m passionate about what I do. I care deeply about software design and architecture and I advocate for practices like TDD and good development processes. I enjoy it and I find the process to be fun. Helping developers produce value is what I aim for. Whether it’s small jobs, freelance, consulting, or longer commitments - here’s some of what I can do for you:
🧰 Custom software development. With experience of a number of languages and frameworks, I can help build your software. Either from scratch or refactoring an existing project.
📝 TDD/Unit Testing. Designing software well requires confidence in both the specification and code. I’ve introduced unit testing on multiple projects to ensure correctness and maintainability.
⚙️ Development process. I’ve experienced several different methodologies of developing software, including Agile. I have experience with CI/CD (Continuous Integration/Continuous Deployment), Git, GitHub, Azure DevOps, and IaC (Infrastructure as Code) with GitHub Actions. I can help take your tedious and manual build and deployment processes to use modern IaC and CI/CD.
🔍 Code review. I’m happy to review your code and create a report of the findings, or I can implement the changes required for you. I start with running code quality tools, and then look at areas such as code style, documentation, and code coverage. In particular I look for issues with maintainability, readability, code duplication, strong coupling, encapsulation, etc. I also review the build and deployment process of the code under review.
📐 Design system development. I’ve have considerable experience of design systems/component libraries - either developing custom ones or using existing tools. I have developed design systems with web components (using Stencil), Vue, and React. Including using tools such as Tailwind and Styled Components.
☁️ Cloud development with Azure. I’ve designed several types of systems with Azure; batch, microservices, serverless, etc. I have experience with ARM/Bicep templates, Azure Storage (Table, Queue Storage), Azure Functions, and Azure Event Grid. My preferred workflow for Azure is a combination of GitHub Actions and IaC with ARM/Bicep, to ensure a smooth deployment workflow.
What I look for in a position
🏡 Remote first/remote friendly. I work remotely and I look for remote first or remote friendly positions. I’m based in the UK, but I’m happy to work in most timezones.
📧 Asynchronous communication. Asynchronous communication empowers teams with autonomy for more flexibility and convenience. It allows team members to respond to messages and tasks at their own pace, even if working across different time zones. This leads to more efficient use of time, better documentation, and more efficient and effective collaboration.
📅 Fewer meetings. Fewer meetings also contribute to the effectiveness and autonomy of remote teams. By limiting the number of meetings, team members have more time for deep work and can better manage their own schedules. Additionally, meetings that are scheduled are more likely to be productive and worthwhile, rather than being a constant interruption to work flow.
☕ Positive, people first, empathetic culture. A positive company and team culture is one that is friendly, collaborative, and empathetic. This type of culture promotes open communication, where team members feel comfortable sharing their ideas, opinions, and concerns without fear of blame or politics. Instead of focusing on placing blame, a positive culture encourages teamwork and problem-solving together.
💡 Open to change and innovation. Forward-thinking companies embrace new ideas and continuously improve processes. They value employee input and don’t adhere to the “we’ve always done it this way” mentality. Instead, being open to experimentation and willing to change course. Aligning with agile principles, adaptability and flexibility are essential to me.
📊 Decisions based on data and customer feedback. I believe that decisions should be made based on data and evidence. This is the opposite of the “sunk cost fallacy” where features are developed because they’ve already been started, rather than because they’re the best solution, and continue to be developed even if they’re not working or causing significant technical debt.
🏞️ Work-life balance. We are all human and have lives outside of work. I believe that work-life balance is important. High-pressure, high-stress environments are not conducive to productivity and creativity while increasing the risk of burnout.
📓 Commitment to producing high-quality and maintainable software. I believe that creating high-quality and maintainable software is essential for the success of any project. This means adhering to best practices, writing clean and readable code, and constantly reviewing implementations with customer requirements. Furthermore, this means teams are empowered to clean up technical debt without asking “permission”. I have listed some of my technical skills in the previous section.
🥇 Building software that the team can be proud of. Building software that the team can be proud of means creating a high-quality product that is functional and meets user needs but goes one step further and delights users too. It means taking the time to ensure that the software is polished and ready for release and that the team is confident in its quality.
💎 Not pretending to be agile. Many companies believe that “doing agile” is simply following a set of prescribed practices or ceremonies rather than genuinely embracing the principles and values of agility. Pretending to be agile and going through the motions without truly embracing the philosophy is counter-productive and can lead to frustration and disengagement. The agile manifesto is a good starting point for understanding the principles of agile.
Lloyd is highly proficient at what he does, and easy to work with. He was a big help when we were in a pinch!
— Sam Hulick, ReelCrafter, US
You can tell that Lloyd has a lot of experience and understanding in different areas of development. He is passionate about helping other developers, can identify their problems and even find much better approaches.
— Marvin Rudolph, Germany
Lloyd is an excellent developer; professional and a good teacher. He is very attentive to all aspects of the development cycle and more. In depth knowledge translated to an easier understanding, I would highly recommend him to any one taking development seriously.
— George C. Antohi, Romania