From fbb9d4897c4cd5ddc7588a64012434be589f4529 Mon Sep 17 00:00:00 2001
From: Gagan Singh I am a Senior Developer at Scott Logic. I am interested in all programming topics from how a computer goes from power on to displaying windows on the screen or how a CPU handles branch prediction to how to write a mobile UI using kotlin or cordova. I am a Senior Developer at Scott Logic. I am interested in all programming topics from how a computer goes from power on to displaying windows on the screen or how a CPU handles branch prediction to how to write a mobile UI using kotlin or cordova. I lead the Data Engineering Practice within Scott Logic. I have a strong interest and expertise in low latency Front Office trading systems, software managing very large networks and the technologies involved in processing large volumes of data. I lead the Data Engineering Practice within Scott Logic. I have a strong interest and expertise in low latency Front Office trading systems, software managing very large networks and the technologies involved in processing large volumes of data. I am an intern going into my fourth year at Edinburgh Napier univeristy, and I have been working on a foyer screen for the offices. I am a Principal Consultant at Scott Logic. I have led software teams in several organisations as a Delivery Manager, CTO and Software Development Manager. My interest is in the approaches – whether they are Agile practices, technical skills, management styles or tools – that make software teams most effective. I am a Principal Consultant at Scott Logic. I have led software teams in several organisations as a Delivery Manager, CTO and Software Development Manager. My interest is in the approaches – whether they are Agile practices, technical skills, management styles or tools – that make software teams most effective. Last miner in the North East. Last miner in the North East. I'm Adam. I am a full stack senior developer, interested in all things web. I'm Ali, and I'm new here I am a Software Developer at Scott Logic working with .NET and HTML5 web technologies. I am a Software Developer at Scott Logic working with .NET and HTML5 web technologies. I am a Technical Principal at Scott Logic specialising in microservices and cloud architectures. I am a passionate advocate of the DevOps culture. I also write on e4developer.com I am CTO at Scott Logic and am a prolific technical author, blogger and speaker on a range of technologies. My blog includes posts on a wide range of topics, including WebAssembly, HTML5 / JavaScript and data visualisation with D3 and d3fc. You'll also find a whole host of posts about previous technology interests including iOS, Swift, WPF and Silverlight. I'm board member of FINOS, which is encouraging open source collaboration in the financial sector. I'm also very active on GitHub, contributing to a number of different projects. I'm a Lead Developer at Scott Logic working in the London office. I'm a full-stack developer who is always keen on finding ways to help a team improve their coding quality and practices."
cmeehan:
- name: 'Chris Meehan'
+ name: "Chris Meehan"
author-summary: " I'm a software developer at Scott Logic focusing primarily on JavaScript development, particularly with React. Recently, I've also taken an interest in mobile development. I joined the company after studying Mechanical Engineering at Bath and Computer Science (MSc) at Bristol. The fantastic learning opportunities at Scott Logic are one of the main reasons I joined, and as a result I'm currently learning functional programming (F#) in between projects. I’m a Business Development Campaign Manager at Scott Logic. I have a background in Sales, Marketing and PR and a keen interest in gardening. I’m a Business Development Campaign Manager at Scott Logic. I have a background in Sales, Marketing and PR and a keen interest in gardening. My name is Chris Price, I''m based in Newcastle upon Tyne and work as a Software Engineer at Scott Logic. I spend my days developing web apps for financial services companies (unfortunately mostly hidden behind paywalls). I do like to blog about things when I can and do some interesting stuff on GitHub. Senior UX Designer at Scott Logic based in the Bristol office. I spend my time researching users, designing solutions and testing to ensure a productive and pleasurable user experience. PC and VR Gamer, Motorcycle Enthusiast, Dad and Collector of Loud Shirts.'
+ name: "Dan Elliott"
+ author-summary: " Senior UX Designer at Scott Logic based in the Bristol office. I spend my time researching users, designing solutions and testing to ensure a productive and pleasurable user experience. PC and VR Gamer, Motorcycle Enthusiast, Dad and Collector of Loud Shirts."
picture: picture.jpg
dkerr:
author-summary: " I'm a full-stack web developer, with an interest in anything and everything that's new in web technology! Hi, I'm Dave, a Senior Developer at Scott Logic, based in Edinburgh. I'm a full stack developer with particular experience developing front end applications. I enjoy problem solving, Jazz, Star Trek and single malt whiskeys, not necessarily in that order. Hello, I'm a Senior UX designer at Scott Logic, based in Bristol. I'm a Senior Developer at Scott Logic, based in Newcastle. Test Engineer at Scott Logic Test Engineer at Scott Logic I am a Developer at Scott Logic and I love learning and building new things! I also like to drive and fix machines. I am a Developer at Scott Logic and I love learning and building new things! I also like to drive and fix machines. Test Engineer at Newcastle, studied Computer Science at Newcastle University Test Engineer at Newcastle, studied Computer Science at Newcastle University I have been working as a Test Engineer since 2012. In my spare time I enjoy playing piano and painting. I am a developer at Scott Logic, Newcastle. Find me on Github Key Account Advisor here at Scott Logic. I have a passion for all things related to innovation and disruption. I’m an early adopter of tech and in my spare time, I enjoy cycling, gardening and watching rugby! Key Account Advisor here at Scott Logic. I have a passion for all things related to innovation and disruption. I’m an early adopter of tech and in my spare time, I enjoy cycling, gardening and watching rugby! I'm a technologist who delights in pushing at the boundaries of what is possible. As Chief Strategy Officer at Scott Logic, I worry about where we and the world we operate in are heading longer term. I'm often heard talking about social value and environmental impact, or getting nerdy about data visualisation. I'm a Technical Project Manager at Scott Logic with a background in development and engineering. I moved to project management in 2009 and have experience in traditional and agile methodologies from large to small projects in both the public and private sectors. I am a Lead Developer at Scott Logic. I am a Lead Developer at Scott Logic. Just a regular software developer with no professional experience in the sustainability sector. Just a regular software developer with no professional experience in the sustainability sector. I am a Graduate Developer at Scott Logic, Bristol. I like to write about practical examples of web development and create side projects on GitHub. I work as a Test Engineer with a rather odd background in animation. When I'm not bug hunting I like to read, play piano and partake in local theatre productions. I am a Senior Developer at Scott Logic, based in London. I am a Senior Developer at Scott Logic, based in London. I am the first dedicated BA at Scott Logic, based in London. I am the first dedicated BA at Scott Logic, based in London. James was an Intern at Scott Logic, based in Newcastle. James was an Intern at Scott Logic, based in Newcastle. I am a Technical Architect at Scott Logic, based in London. I have many years of using C# within financial services. My current interests are in data analytics and visualisation, particularly using Tableau and Alteryx. I also enjoying learning about new big data technologies and machine learning. I am a Technical Architect at Scott Logic, based in London. I have many years of using C# within financial services. My current interests are in data analytics and visualisation, particularly using Tableau and Alteryx. I also enjoying learning about new big data technologies and machine learning. I am a summer intern at Scott Logic I am a summer intern at Scott Logic I am developer working at the Scott Logic Newcastle office. I'm involved in several projects and have a great interest in the cryptocurrency market. Believe that I may be one of the last Delphi developers on earth. I am a software developer at Scott Logic based in Bristol and I have a passion for sustainable software. More specifically how we can make the whole software lifecycle, from hardware production to continual deployment systems, more sustainable. I am a software developer at Scott Logic based in Bristol and I have a passion for sustainable software. More specifically how we can make the whole software lifecycle, from hardware production to continual deployment systems, more sustainable. I am a London based Delivery Principal at Scott Logic. Coming from a developer background I am passionate about agility and coaching in the tech space. I love working with our amazing teams and supporting our customers at all levels of seniority. I am a London based Delivery Principal at Scott Logic. Coming from a developer background I am passionate about agility and coaching in the tech space. I love working with our amazing teams and supporting our customers at all levels of seniority. I am a User Experience Designer at Scott Logic. With a background in Product Design I combine the three areas of People, Design and Technology to create meaningful responses to challenging problems. I am a User Experience Designer at Scott Logic. With a background in Product Design I combine the three areas of People, Design and Technology to create meaningful responses to challenging problems. I am a Senior Software engineer here at Scott Logic. I am a Senior Software engineer here at Scott Logic. I am Head of Testing at Scott Logic, responsible for the overall direction of the practice and how we deliver testing to our clients. I have a background in combining psychology with software engineering, with a keen interest in Human Factors testing and how we interact with technology. I am Head of Testing at Scott Logic, responsible for the overall direction of the practice and how we deliver testing to our clients. I have a background in combining psychology with software engineering, with a keen interest in Human Factors testing and how we interact with technology. I''m a lead developer at Scott Logic, working with HTML5 web technologies and C# / .NET development. When I''m not coding you''ll normally find me tinkering with cars or at the race track, but coding is a less expensive pass time. I also contribute to a few open source projects. I'm a Lead Test Consultant at Scott Logic, London. I like solving problems with innovation and pragmatism I'm a Senior Developer at Scott Logic. I like Functional Programming, Big Data and Machine Learning. I'm a Senior Developer at Scott Logic, with many years of C# experience. Recently I've immersed myself in JavaScript, including Angular and React."
- name: 'Nick Owen'
+ name: "Nick Owen"
picture: picture.jpg
nsoper:
- name: 'Nick Soper'
- twitter-url: 'https://twitter.com/devsoper'
+ name: "Nick Soper"
+ twitter-url: "https://twitter.com/devsoper"
twitter-handle: devsoper
picture: picture.jpg
nwolverson:
- name: 'Nicholas Wolverson'
+ name: "Nicholas Wolverson"
picture: picture.jpg
osouthwell:
author-summary: 'I''m a software developer at Scott Logic, based in Bristol. I''m at least a little bit interested in almost everything.'
name: 'Ollie Southwell'
picture: picture.jpg
okenyon:
- name: 'Oliver Kenyon'
+ name: "Oliver Kenyon"
picture: picture.jpg
osharon:
- name: 'Oded Sharon'
+ name: "Oded Sharon"
author-summary: ' I am a developer at Scott Logic, Edinburgh. Find me on Github Paulin is a Java developer at Scott Logic. When she's not programming, she can be found doing cryptic crosswords and climbing small rocks. I am an intern going into my third year of Computer Science at Newcastle University, and have mainly been doing Java, javascript and C. Recently I have been working with d3.js, less.css and Scott Logic''s own d3fc. I have been happily testing software and reporting bugs since 2005. I am the Author of Mega Ultra Super Happy Software Testing Fun Time. As well as writing I enjoy playing violin, playing PC games, going to the gym and pushing Golang and R to Github. I currently work at Scott Logic as a Senior Test Engineer. I am a UX Designer at Scott Logic. My background is in Product Design and I studied at Brunel University for 4 years. I have designed apps for mobile, desktop, tablet, web and service robot. I enjoy the research side of user experience, as I am always interested in learning about new technologies and design principles. I am a UX Designer at Scott Logic. My background is in Product Design and I studied at Brunel University for 4 years. I have designed apps for mobile, desktop, tablet, web and service robot. I enjoy the research side of user experience, as I am always interested in learning about new technologies and design principles. I'm a software developer at Scott Logic, Edinburgh. I joined in August 2017 after four years studying Computer Science and Mathematics at the University of Edinburgh. I am a Lead Developer at Scott Logic. I am a Lead Developer at Scott Logic. I work developing web applications for our clients at Scott Logic. You can also find me on GitHub. I'm a senior developer at Scott Logic's Bristol office, with a very .NET-flavoured background and an inexplicable fascination with domain-driven design. Developer at Scott Logic. I have a love for learning and am passionate about programming, music, cinema, VR, martial arts and too many other things to name. My only regret is that there is not enough time to do it all. Developer at Scott Logic. I have a love for learning and am passionate about programming, music, cinema, VR, martial arts and too many other things to name. My only regret is that there is not enough time to do it all. I am a senior developer at Scott Logic, working primarily with Java. I'm currently fascinated by data science and machine learning Full-time learner and Test Engineer at Scott Logic Full-time learner and Test Engineer at Scott Logic Simon Duncan is a UX designer, particularly interested in interaction design and information architecture. These are some of his thoughts. Simon Duncan is a UX designer, particularly interested in interaction design and information architecture. These are some of his thoughts. The ol'' job descrip'' says "developer", but I prefer the term "technical doer"; I feel it more adequately encompasses the breadth of what we do. Variety is of course the spice of life and, to stretch that metaphor, whilst I like a bit of this and that, ElasticSearch is my salt, and .NET my pepper. Sam enjoys working across the technology stack, he is passionate about building systems that deliver high value, incorporating new ideas, improving productivity and communicating with the developer community. He is interested in patterns and process within the changing world of software engineering. In his spare time, he can run a fine game of Dungeons and Dragons! Sam enjoys working across the technology stack, he is passionate about building systems that deliver high value, incorporating new ideas, improving productivity and communicating with the developer community. He is interested in patterns and process within the changing world of software engineering. In his spare time, he can run a fine game of Dungeons and Dragons! I'm a Delivery Manager at Scott Logic. I have a distant memory of being a developer with the past decade or so dedicated to project delivery, scaling and expanding Agile for large organisations and sharing what I learn along the way. Marketing Channels Coordinator at Scott Logic, with a background in SaaS marketing. Marketing Channels Coordinator at Scott Logic, with a background in SaaS marketing. I started at ScottLogic in 2018 as a member of the Development team. Prior to Scott Logic, I''ve worked around the UK, as a full system product developer, using C++, C#, javascript, ruby, shell scripts and what seems like dozens of company-specific frameworks. As a product developer, I''m interested in making sure I''m solving meaningful problems for our clients, and providing an experience that doesn''t make them fat. I am a Developer at Scott Logic. I have a strong interest in front end development and the javascript ecosystem as a whole. I like most things to do with mathematics and chess. I am a Developer at Scott Logic. I have a strong interest in front end development and the javascript ecosystem as a whole. I like most things to do with mathematics and chess. I am primarily a C#/Javascript developer, but I dabble in iOS from time to time Outside of work I love games, both video games and board games. I even wrote a book and gave a talk about applying ideas from games to improve customer interactions. I am a user experience designer based in London. Using an agile approach, I design desktop, tablet and mobile web apps. At Scott Logic, I work with clients mainly in financial services enhancing their trading platforms, analytics dashboards and Intranet tools. I am an enthusiast of Data visualization and interactive projects using code for art. I am a user experience designer based in London. Using an agile approach, I design desktop, tablet and mobile web apps. At Scott Logic, I work with clients mainly in financial services enhancing their trading platforms, analytics dashboards and Intranet tools. I am an enthusiast of Data visualization and interactive projects using code for art. I am a Senior Developer at Scott Logic. I am a Senior Developer at Scott Logic. I'm a developer at Scott Logic, after joining in 2014 as an intern. I'm a User Experience Designer at Scott Logic. My interests lie in the future of the in-car experiences, working with complex systems and cat GIFs. I am a Senior Developer at Scott Logic. I like exploring technology and have a keen interest in Big Data and Machine Learning. I am a Senior Developer at Scott Logic. I like exploring technology and have a keen interest in Big Data and Machine Learning. Test Engineer at Scott Logic, I like to share my passion for testing. '
+ name: "Heather Carter"
+ author-summary: " Test Engineer at Scott Logic, I like to share my passion for testing. "
picture: picture.png
dnicholas:
- name: 'Danny Nicholas'
- author-summary: ' I am a Senior Developer at Scott Logic. I normally use Java to answer all sorts of tricky questions but have been known to occasionally dabble with JavaScript. I am a Senior Developer at Scott Logic. I normally use Java to answer all sorts of tricky questions but have been known to occasionally dabble with JavaScript. An advocate for agile, single page web apps and React/Redux An advocate for agile, single page web apps and React/Redux Test Engineer for Scott Logic. Based in the Newcastle office'
+ name: "Chris Brown"
+ author-summary: " Test Engineer for Scott Logic. Based in the Newcastle office"
picture: picture.jpg
cyule:
- name: 'Courtney Yule'
- author-summary: ' \nI am a Developer in the Bristol Office.\n\nI joined Scott Logic in 2017 as a graduate in Computer Science from the University of Bristol.\n\nI spent two weeks making minor changes to this blog's code. You're welcome.\n I'm a senior developer at Scott Logic, based in Newcastle. I've been involved with Java development for the last fifteen years and I'm keenly interested in modern JVM technologies."
twitter-handle: magnus2025
- twitter-url: 'http://www.twitter.com/magnus2025'
+ twitter-url: "http://www.twitter.com/magnus2025"
picture: picture.jpg
hashbyha:
- name: 'Hugh Ashby-Hayter'
+ name: "Hugh Ashby-Hayter"
author-summary: " I'm a Software Developer at Scott Logic's Bristol office. Experienced in .Net with a growing interest in JavaScript and React I joined Scott Logic after studying Mechanical and Electrical Engineering at the University of Bath. As a software developer I enjoy overcoming challenges and expanding my knowledge to stay up to date with the latest tech. I joined Scott Logic after studying Mechanical and Electrical Engineering at the University of Bath. As a software developer I enjoy overcoming challenges and expanding my knowledge to stay up to date with the latest tech. I'm Frances, a graduate tester working in the Scott Logic Bristol office. I'm immersing myself in testing at Scott Logic and in the wider South-West test community I'm a Senior Test Engineer at Scott Logic.I'm very passionate about testing and very keen in learning new things so I can use it in my testing and deliver better quality. I'm always interested to share my testing lessons learned or experiences in the form of stories and I like brainstorming and bouncing ideas by having deep diving conversations. I have gone from being a solo test advocate to building up a team of 4 testers.I challenged myself to step out of my comfort zone and do some talks in 2019. I''m a developer that started as a graduate in 2018. You can find me mostly using front-end tech. I''m also on GitHub as Ro4052. I'm a Principal Consultant from our London office. I develop software at Scott Logic and have an interest in compilers, following Rust, JavaScript and Swift language development especially. I also enjoy a good walk. I can be found on GitHub. I got into testing by force, I remained in testing by choice I got into testing by force, I remained in testing by choice I'm a Lead Developer at Scott Logic, in Edinburgh. Software Developer at Scott Logic, based in Newcastle. Software Developer at Scott Logic, based in Newcastle. Content and Channel Manager at Scott Logic, with a background in digital marketing, content management and product management in the creative industries and the IT sector. Content and Channel Manager at Scott Logic, with a background in digital marketing, content management and product management in the creative industries and the IT sector. I''m a Senior Developer at Scott Logic, based in Newcastle. I''ve been hooked on software engineering ever since I watched GoldenEye as a teenager and I''m passionate about Java, Kotlin, Rust, Go and Python. My interests lie within search engines, distributed systems, microservices, cloud computing and learning new languages. I''m the proud father of two rescue cats, Olive and Ziggy, commonly known as Cutie-Cat and The Tron. I also write on my personal blog. I'm a Lead Developer at Scott Logic in London, having previously spent over 10 years working as a Software Engineer and Architect in the motorsport industry. My background has historically been in .NET applications written in C#, although I also work on web applications using technologies such as TypeScript, React/Redux and D3. I'm a developer at Scott Logic. I like to break things and sometimes fix them. I've been in testing and QA since 1998. Yes, we had computers way back then. No, my first tablet was not made of stone.\n\n Since then I got some time off for two people shaped development projects of my own.\n\n I am cat slave to a very large and opinionated Tuxedo Tom who likes walking across keyboards and spilling tea.\n\n For 2019, I am going to continue to use my evil powers for good."
twitter-handle: ElizaFx
picture: EF.PNG
mwalker:
- author-summary: 'Technical Recruiter'
- name: 'Martin Walker'
+ author-summary: "Technical Recruiter"
+ name: "Martin Walker"
picture: MartinWalker.jpg
mnicholson:
- author-summary: 'Technical Recruiter'
- name: 'Matthew Nicholson'
+ author-summary: "Technical Recruiter"
+ name: "Matthew Nicholson"
picture: MattNicholson.jpg
rgarside:
- author-summary: 'Technical Recruiter'
- name: 'Rupert Garside'
+ author-summary: "Technical Recruiter"
+ name: "Rupert Garside"
picture: RupertGarside.jpg
mphillips:
- author-summary: 'Delivery Director'
- name: 'Matthew Phillips'
+ author-summary: "Delivery Director"
+ name: "Matthew Phillips"
picture: MattPhillips.jpg
thands:
- name: 'Tom Hands'
+ name: "Tom Hands"
author-summary: "I am a software developer at Scott Logic with a keen interest in web development with a specific love for the React framework.\n\nOutside of the office I like to keep active, taking part in a multitude of activities and have a strong passion for travelling."
twitter-handle: tomhands1
picture: profpic.jpg
oforeman:
- name: 'Oliver Foreman'
+ name: "Oliver Foreman"
author-summary: "Hi I'm Oliver. I'm a developer for Scott Logic based in the Newcastle office with an interest in web app development."
picture: Picture.jpg
ocronk:
- name: 'Oliver Cronk'
+ name: "Oliver Cronk"
author-summary: "Hi I'm Oliver. I talk about Innovation, Technology, Sustainable Technology and Enterprise Architecture"
picture: picture.jpeg
swoods:
- name: 'Scott Woods'
- author-summary: 'Hello, I am Scott. A Developer working for Scott Logic in Newcastle.'
+ name: "Scott Woods"
+ author-summary: "Hello, I am Scott. A Developer working for Scott Logic in Newcastle."
twitter-handle: null
picture: profile.png
bquinn:
- name: 'Benedict Quinn'
- author-summary: 'I am a developer at Scott Logic. I have quite a varied experience and interest in software, including native mobile, web applications, Java servers and cloud. I especially enjoy the challenge of mastering something new, and the beauty of well made software.'
+ name: "Benedict Quinn"
+ author-summary: "I am a developer at Scott Logic. I have quite a varied experience and interest in software, including native mobile, web applications, Java servers and cloud. I especially enjoy the challenge of mastering something new, and the beauty of well made software."
twitter-handle: null
- picture: 'Newcastle staff photos 2019 - 156 (1).jpg'
+ picture: "Newcastle staff photos 2019 - 156 (1).jpg"
slaing:
- name: 'Simon Laing'
+ name: "Simon Laing"
author-summary: "I'm a lead developer at Scott Logic in Bristol. I enjoy the opportunity to share the experiences I've had, and skills I've learnt, for the benefit of others."
twitter-handle: null
picture: profile.png
swaterman:
- name: 'Steven Waterman'
+ name: "Steven Waterman"
author-summary: 'I''m a developer at Scott Logic, showing off the cool and tricky things I learn so that you don''t have to go through as much pain as me! Senior Developer with over 20 years of experience. Always keen to broaden my horizons. Particularly interested in UX theory and Agile methodologies. Co-organiser of the Agile North East Meetup. I am a Delivery Manager based in Scott Logic's London office. I develop front end applications at Scott Logic. I started out working on iOS apps and frameworks, cutting my teeth during the Objective-C days (this might explain my love of long method names and square brackets). Outside of work, I can often be found walking up hills in the Lake District and Scotland. I build apps at Scott Logic. I have an interest in all things front-end and love to share the things I learn. I build apps at Scott Logic. I have an interest in all things front-end and love to share the things I learn. As a Principal Consultant here at Scott Logic, I focus on improving the performance of our clients businesses through the application of modern technologies. When I am not in the office, you will find me out on the trails having fun on my mountain bike. As a Principal Consultant here at Scott Logic, I focus on improving the performance of our clients businesses through the application of modern technologies. When I am not in the office, you will find me out on the trails having fun on my mountain bike.
Find me on GitHub and Twitter.'
twitter-handle: SteWaterman
picture: steven-waterman.jpg
mridene:
- name: 'Mehdi Ridene'
- author-summary: 'Test engineer with 7 years of experience across telecommunications, video-on-demand and financial industries.'
+ name: "Mehdi Ridene"
+ author-summary: "Test engineer with 7 years of experience across telecommunications, video-on-demand and financial industries."
twitter-handle: null
picture: Untitled.png
jstrachan:
- name: 'James Strachan'
+ name: "James Strachan"
author-summary: "Hi! I'm James, a developer at Scott Logic with passion for language design and an interest in TypeScript and Rust. I also love a hike or a paddle. "
twitter-handle: null
picture: jstrachan.jpeg
ashing:
- name: 'Alex Shing'
+ name: "Alex Shing"
author-summary: "I joined Scott Logic as a graduate developer after completing CodeClan's software development course. I previously worked as a sushi chef, and studied Product Design Engineering.\n\nI love eating."
twitter-handle: null
picture: blogpic.jpg
kday:
- name: 'Kyle Day'
- author-summary: 'I am a Test Engineer at Scott Logic, based in Newcastle.'
+ name: "Kyle Day"
+ author-summary: "I am a Test Engineer at Scott Logic, based in Newcastle."
twitter-handle: null
picture: photo.jpg
jgrant:
- name: 'James Grant'
- author-summary: 'I am a developer for Scott Logic in London, interested in cloud and containerisation technologies.'
+ name: "James Grant"
+ author-summary: "I am a developer for Scott Logic in London, interested in cloud and containerisation technologies."
twitter-handle: null
picture: sl-profile-picture.jpeg
smangan:
- name: 'Stephen Mangan'
+ name: "Stephen Mangan"
author-summary: "I'm a graduate test engineer at Scott Logic in Edinburgh. Since starting, I've taken a big interest in automated testing and testing in an agile environment. In my spare time I enjoy playing music !"
twitter-handle: null
picture: MyFace.jfif
pgraham:
- name: 'Paul Graham'
+ name: "Paul Graham"
author-summary: "
I am a seasoned expert, highly skilled at translating our customers' business needs into scalable and sustainable solutions, and driving those solutions to success. I have worked across both a traditional landscape and the core cloud platforms: AWS, Azure, GCP, Private Cloud, Hybrid Cloud and an ever-growing collection of best-of-breed tools.
I am a spiritual leader, I love building strong partnerships and thrive on empowering, supporting and coaching organisations, teams and individuals to success."
twitter-handle: null
picture: ckoris.png
dgrew:
- name: 'David Grew'
- author-summary: 'A history student turned software developer with experience in financial services and public sector, primarily working on backend projects.'
+ name: "David Grew"
+ author-summary: "A history student turned software developer with experience in financial services and public sector, primarily working on backend projects."
twitter-handle: dw_grew
picture: dgrew_author_picture.png
dhinrichs:
- name: 'Doro Hinrichs'
- author-summary: 'I am a Graduate Developer at Scott Logic, based in the Edinburgh office. Originally from Germany, I found a home in Glasgow while studying Psychology. I pursued a career in mental health before transitioning into software development, where I enjoy bringing a people-focused approach to coding. Outside of work, you can find me surrounded by plants, playing football, or working on a DIY project.'
+ name: "Doro Hinrichs"
+ author-summary: "I am a Graduate Developer at Scott Logic, based in the Edinburgh office. Originally from Germany, I found a home in Glasgow while studying Psychology. I pursued a career in mental health before transitioning into software development, where I enjoy bringing a people-focused approach to coding. Outside of work, you can find me surrounded by plants, playing football, or working on a DIY project."
picture: profile.png
pburgess:
- name: 'Paul Burgess'
+ name: "Paul Burgess"
author-summary: "I'm a Lead Developer at Scott Logic and am passionate about using technology to solve real world problems.\n\nI use a wide range of languages and write about TypeScript, JavaScript, React, C# and .NET as well as how to best work together as a project team to deliver solutions."
twitter-handle: null
picture: HeadShot.jpeg
redwin:
- name: 'Richard Edwin'
- author-summary: 'I am a Delivery Principal at Scott Logic. I am passionate about technology and driving transformation and innovation.'
+ name: "Richard Edwin"
+ author-summary: "I am a Delivery Principal at Scott Logic. I am passionate about technology and driving transformation and innovation."
twitter-handle: null
picture: redwin.jpg
jheward:
- name: 'James Heward'
- author-summary: 'I am a Solution Architect at Scott Logic.'
+ name: "James Heward"
+ author-summary: "I am a Solution Architect at Scott Logic."
twitter-handle: null
picture: jheward.jpg
nwilson:
- name: 'Nigel Wilson'
- author-summary: 'I am General Manager at Scott Logic.'
+ name: "Nigel Wilson"
+ author-summary: "I am General Manager at Scott Logic."
twitter-handle: null
picture: nwilson.jpg
sforeshew-cain:
- name: 'Steve Foreshew-Cain'
+ name: "Steve Foreshew-Cain"
author-summary: "I am Scott Logic's CEO, and have over 20 years of leadership experience from private enterprise and public bodies including ITV, The Co-operative Group and the UK’s Government Digital Service."
- twitter-handle: 'https://twitter.com/s_foreshew_cain'
+ twitter-handle: "https://twitter.com/s_foreshew_cain"
picture: sforeshew-cain.jpg
jbeckles:
- name: 'Jevon Beckles'
- author-summary: 'I am a language agnostic developer interested in scalable software solutions, hardware-software systems and data analytics.'
+ name: "Jevon Beckles"
+ author-summary: "I am a language agnostic developer interested in scalable software solutions, hardware-software systems and data analytics."
twitter-handle: null
picture: me.png
kangel:
- name: 'Kat Angel'
- author-summary: 'Developer at Scott Logic working primarily with ReactJS'
+ name: "Kat Angel"
+ author-summary: "Developer at Scott Logic working primarily with ReactJS"
twitter-handle: null
picture: headshot2.PNG
ddiep:
- name: 'Dillon Keith Diep'
- author-summary: 'I am a developer at Scott Logic in the Bristol office. I like to learn about all sorts of tech and often hop between topics of my interest.'
+ name: "Dillon Keith Diep"
+ author-summary: "I am a developer at Scott Logic in the Bristol office. I like to learn about all sorts of tech and often hop between topics of my interest."
twitter-handle: null
picture: me.jpg
fhubin:
- name: 'Frank Hubin'
- author-summary: 'I am a Delivery Manager at Scott Logic. Using a lean approach, Agile values and team empowerment, I build bridges between business and technical teams to improve collaboration and make delivery a reality.'
+ name: "Frank Hubin"
+ author-summary: "I am a Delivery Manager at Scott Logic. Using a lean approach, Agile values and team empowerment, I build bridges between business and technical teams to improve collaboration and make delivery a reality."
twitter-handle: null
picture: picture.jpg
gsmith:
- name: 'Ged Smith'
+ name: "Ged Smith"
author-summary: "Initially from a Marine Engineering background, I am a Senior Test Engineer with Scott Logic, based in Newcastle with twenty plus years software testing experience. Away from the keyboard, if I'm not concocting home brew, I'm either at the allotment or out on the kayak."
twitter-handle: null
picture: picture.jpg
mjrichards:
- name: 'Mark Richards'
- author-summary: 'I am a Senior Developer at Scott Logic.'
+ name: "Mark Richards"
+ author-summary: "I am a Senior Developer at Scott Logic."
twitter-handle: null
picture: picture.png
cfisher:
- name: 'Cara Fisher'
- author-summary: 'I am a Graduate Software Developer at Scott Logic. '
+ name: "Cara Fisher"
+ author-summary: "I am a Graduate Software Developer at Scott Logic. "
twitter-handle: null
picture: profile-pic-square.jpg
jleftley:
- name: 'James Leftley'
- author-summary: 'I am a Lead Developer at Scott Logic.'
+ name: "James Leftley"
+ author-summary: "I am a Lead Developer at Scott Logic."
twitter-handle: jleftley
picture: jleftley.jpeg
aternar:
- name: 'Alex Ternar'
- author-summary: 'I am a UX Designer at Scott Logic.'
+ name: "Alex Ternar"
+ author-summary: "I am a UX Designer at Scott Logic."
twitter-handle: null
picture: aternar.jpg
mcooke:
- name: 'Myra Cooke'
- author-summary: 'I am Chief Talent Officer at Scott Logic.'
+ name: "Myra Cooke"
+ author-summary: "I am Chief Talent Officer at Scott Logic."
twitter-handle: null
picture: mcooke.jpeg
mpace:
- name: 'Molly Pace'
- author-summary: 'I’m a business development associate at Scott Logic with a passion for technology, background in neuroscience, and interest in all things running and outdoors related.'
+ name: "Molly Pace"
+ author-summary: "I’m a business development associate at Scott Logic with a passion for technology, background in neuroscience, and interest in all things running and outdoors related."
twitter-handle: null
picture: mpace.jpeg
mking:
- name: 'Martha King'
- author-summary: 'I am a Developer at Scott Logic.'
+ name: "Martha King"
+ author-summary: "I am a Developer at Scott Logic."
twitter-handle: null
picture: mking.jpeg
smartin:
- name: 'Simon Martin'
- author-summary: 'I am a Senior Developer at Scott Logic.'
+ name: "Simon Martin"
+ author-summary: "I am a Senior Developer at Scott Logic."
twitter-handle: null
picture: smartin.jpeg
jvolmut:
- name: 'Jan Volmut'
- author-summary: 'I am a Senior Developer at Scott Logic.'
+ name: "Jan Volmut"
+ author-summary: "I am a Senior Developer at Scott Logic."
twitter-handle: null
picture: jvolmut.jpeg
spavitt:
- name: 'Stewart Pavitt'
- author-summary: 'I am a Technical Architect at Scott Logic.'
+ name: "Stewart Pavitt"
+ author-summary: "I am a Technical Architect at Scott Logic."
twitter-handle: null
picture: null
xchen:
- name: 'Xin Chen'
- author-summary: 'I am a lead test engineer at Scott Logic. For the last 15 years, I had the pleasure to work with different people with different backgrounds and focus areas. I am passionate about the latest concept and technology used in Quality Assurance. In my spare time, I enjoy traveling and exploring the varied culture. I used to live in four different counties.'
+ name: "Xin Chen"
+ author-summary: "I am a lead test engineer at Scott Logic. For the last 15 years, I had the pleasure to work with different people with different backgrounds and focus areas. I am passionate about the latest concept and technology used in Quality Assurance. In my spare time, I enjoy traveling and exploring the varied culture. I used to live in four different counties."
picture: picture.jpeg
jarnstein:
- name: 'Jack Arnstein'
- author-summary: 'I am a senior tester at Scott Logic with a passion for all things security related. In my spare time I enjoy board games with my family and friends. I also enjoy Lego with my eldest, as well as assisting my junior twin testers in their explorative testing of all things in the known world.'
+ name: "Jack Arnstein"
+ author-summary: "I am a senior tester at Scott Logic with a passion for all things security related. In my spare time I enjoy board games with my family and friends. I also enjoy Lego with my eldest, as well as assisting my junior twin testers in their explorative testing of all things in the known world."
picture: picture.jpeg
mgrabara:
- name: 'Matt Grabara'
- author-summary: 'I am a developer at Scott Logic since 2020 with background in economics and data science. My interest in decentralised communication drove me to obtain an amateur radio licence and prepare others for Amateur Radio Foundation exam. In my off-screen time I like travelling, learning languages, acrobatics and hanging upside down otherwise during circus classes. Attempting a handstand since May 2022.'
+ name: "Matt Grabara"
+ author-summary: "I am a developer at Scott Logic since 2020 with background in economics and data science. My interest in decentralised communication drove me to obtain an amateur radio licence and prepare others for Amateur Radio Foundation exam. In my off-screen time I like travelling, learning languages, acrobatics and hanging upside down otherwise during circus classes. Attempting a handstand since May 2022."
picture: picture.jpeg
acaulfield:
- name: 'Anna Caulfield'
+ name: "Anna Caulfield"
author-summary: "I'm a Delivery Principal at Scott Logic. Ex- Virgin Money, Telegraph Media Group. Regular at Glastonbury Festival, Mum of two and a crazy sausage dog owner."
- picture: picture.jpeg
+ picture: picture.jpegs
colive:
- name: 'Charlie Olive'
+ name: "Charlie Olive"
feed-description: 'Write ups on technical topics learnt through my Consultant role at Scott Logic'
email: colive@scottlogic.com
author-summary: 'Developer based in the Bristol office. Most experienced in back end and RESTful services, curiously learning about everything else. I also run a lot.'
picture: unnamed2.jpg
bwallis:
- name: 'Beth Wallis'
+ name: "Beth Wallis"
author-summary: "I'm a Technical Recruitment Partner for Scott Logic, covering Leeds and Newcastle."
picture: picture.jpeg
wboothclibborn:
- name: 'William Booth-Clibborn'
+ name: "William Booth-Clibborn"
author-summary: "Hey I'm William, I'm a graduate developer in Edinburgh at Scott Logic. I've previously worked within, both the public and private sector, and within research too. I particularly enjoy working with a wide range of domain experts. I've got an interest in digital accessibility, Physics, and ML. In ML I'm most interested in MLOps and Natural Language Processing (previously using sentiment analysis to find discrimination in conversational text). I hope I'm able to share some unique thoughts and experiences with you!"
picture: picture.jpg
pholman:
- name: 'Peter Holman'
+ name: "Peter Holman"
email: pholman@scottlogic.com
- author-summary: 'Software Developer and tech enthusiast'
+ author-summary: "Software Developer and tech enthusiast"
picture: blog_thumbnail.jpg
smendis-scottlogic:
- name: 'Sonali Mendis'
+ name: "Sonali Mendis"
email: smendis@scottlogic.com
- author-summary: 'I am a senior developer from Scott Logic, Newcastle. I am a fullstack developer with experience in web, mobile, backend and cloud technologies. I have done a bit of everything and I am enthusiastic to share my knowledge with the rest of the world.'
+ author-summary: "I am a senior developer from Scott Logic, Newcastle. I am a fullstack developer with experience in web, mobile, backend and cloud technologies. I have done a bit of everything and I am enthusiastic to share my knowledge with the rest of the world."
picture: picture.jpg
klau:
name: 'Kiet Lau'
@@ -1301,7 +1302,12 @@ authors:
author-summary: 'I am a Bristol-based software engineer specializing in DevOps and infrastructure, with passions for 🦾🤖 and 🌱💚'
picture: picture.jpg
aaltitude:
- name: 'Ashleigh at Altitude Foundation'
+ name: "Ashleigh at Altitude Foundation"
email: enquiries@altitudefoundation.org
author-summary: 'Ashleigh is a student who has been doing work experience at the Altitude Foundation, a charity that enables young people with untapped potential to pursue their passion for technology, get their first job, and inspire others to do the same.'
- picture: picture.jpg
\ No newline at end of file
+ picture: picture.jpg
+ gsingh:
+ name: "Gagan Singh"
+ email: gsingh@scottlogic.com
+ author-summary: "I am a senior software developer at Scott Logic, Bristol."
+ picture: picture.jpg
diff --git a/_posts/2023-09-19-metrics-collector-in-jest.md b/_posts/2023-09-19-metrics-collector-in-jest.md
new file mode 100644
index 0000000000..d15ae7cd14
--- /dev/null
+++ b/_posts/2023-09-19-metrics-collector-in-jest.md
@@ -0,0 +1,219 @@
+---
+title: Optimizing Test Suite Metrics Logging in Jest Using `metricsCollector`
+date: 2023-09-19 12:00:00 Z
+categories:
+ - Testing
+ - Tech
+tags:
+ - testing
+ - jest
+summary: Discover how to streamline metrics collection in Jest test suites using a centralized 'metricsCollector' utility, simplifying test maintenance and enhancing data-driven testing practices.
+author: gsingh
+---
+
+When striving for robust code quality, efficient testing is non-negotiable. Logging metrics from your test suite can provide valuable insights into the performance and reliability of your codebase. In this blog post, we'll explore a resourceful method to log metrics effectively in Jest test suites using the `metricsCollector` module. This approach not only keeps your codebase clean and efficient but also allows you to seamlessly incorporate metrics recording into your testing process.
+
+## The Hypothesis
+
+Let's set the stage with a hypothetical scenario: You're developing an application that relies on an API. This API call, while essential for your application, is notorious for its carbon footprint. It returns a value containing the amount of CO2 emitted during the call. With an eco-conscious mindset, you're eager to quantify the environmental impact of your software testing. Your goal is to measure the total CO2 emissions during your test runs, not just to validate your code.
+
+## The Naive Approach
+
+Before we delve into the solution, consider the naive approach.
+Here's an example of a test file (co2EmissionsNaive.test.js) using the naive approach without the metricsCollector module. This example demonstrates what the code might look like when metrics logging is managed manually inside a test suite:
+
+```javascript
+//co2EmissionNaive.test.js
+
+const environmentallyUnfriendlyAPI = require("../test-utils/mocks/apiMock"); // This is our function to call the APIs
+const co2Metrics = require("../test-utils/metrics/calculateCO2Metrics"); // This is our function which has all our calculations for the CO2 emisions.
+
+describe("Testing the API Calls - Naive Approach", () => {
+ let suiteMetrics = [];
+ let singleCO2Emissions = 0;
+
+ afterAll(() => {
+ const { totalCO2Emissions, meanCO2Emissions } = co2Metrics(suiteMetrics); // Returns the totalCO2Emissions and meanCO2EMissions using the suiteMetrics.
+ console.log("Total CO2 emissions for the suite", totalCO2Emissions);
+ console.log("Mean CO2", meanCO2Emissions);
+ });
+
+ afterEach(() => {
+ const metrics = { CO2Emissions: singleCO2Emissions };
+
+ // Pushing the metrics that we want to record
+ suiteMetrics.push(metrics);
+ });
+
+ test("Test the API call with 10", async () => {
+ // Make the environmentally unfriendly API call
+ const result = await environmentallyUnfriendlyAPI(10);
+
+ // Record the CO2 emissions metric
+ singleCO2Emissions = result.data.CO2Emissions;
+
+ // Ensure that the result is as expected
+ expect(result.data.output).toBe(true);
+ });
+
+ test("Test the API call with 15", async () => {
+ const result = await environmentallyUnfriendlyAPI(15);
+ singleCO2Emissions = result.data.CO2Emissions;
+ expect(result.data.output).toBe(true);
+ });
+});
+```
+
+When the test is run, it produces the below result
+
+![Mean and total CO2 Emissions are logged in the console]({{site.github.url}}/gsingh/assets/./naiveResult.PNG "Mean and total CO2 Emissions are logged in the console")
+
+If we have multiple test suites where we are using this environmentallyUnfriendlyAPI calls and want to log their CO2 Emission data, then you could copy-paste metric recording and logging code into each test file. This approach clutters your test files, making them harder to read and maintain. It's prone to inconsistencies, and calculating suite-level or overall metrics becomes a complex, error-prone task. Let's be honest; this approach is neither clean nor efficient.
+
+## The Metrics Collector Solution
+
+The solution lies in the metricsCollector module. This custom module streamlines metrics collection and management within your test suites, eliminating the need for repetitive code. Here's how it works:
+
+```javascript
+// metricsCollector.js
+
+const metricsCollector = () => {
+ let metrics = {}; // store a single metric
+ let suiteMetrics = []; // Store suite-level metrics
+
+ // This function is used to record the metric
+ const recordMetric = (key, value) => {
+ metrics[key] = value;
+ };
+
+ const clearMetrics = () => {
+ metrics = {};
+ };
+
+ // This function is used to return the suite Metrics
+ const getSuiteMetrics = () => {
+ return suiteMetrics;
+ };
+
+ // This function is used to add a single test's metrics to the suite metrics
+ const addToAllMetrics = () => {
+ suiteMetrics.push(metrics);
+ };
+
+ // This function is used to console log all the suite metrics
+ const logMetrics = () => {
+ suiteMetrics.forEach((m) => {
+ for (const key in m) {
+ console.log(`Logging metrics -- ${key}: ${m[key]}`);
+ }
+ });
+ };
+
+ // beforeEach jest hook, here we are clearing the test level metrics before running the next test
+ beforeEach(async () => {
+ clearMetrics();
+ });
+
+ // afterEach jest hook, here we are adding a single test's metrics to the suite level before running the next test.
+ afterEach(async () => {
+ addToAllMetrics();
+ });
+
+ // Here we are exposing all the functions that we think can be used in the test suites to use the suite metrics.
+ return { recordMetric, logMetrics, getSuiteMetrics };
+};
+
+module.exports = metricsCollector;
+```
+
+In this solution:
+
+- metricsCollector initializes metric storage.
+- Metrics are recorded at both the test case and suite levels.
+- It simplifies logging and provides flexibility in calculating suite-level metrics.
+- If we want to include more functions in our metricsCollector module around suiteMetrics, we can have those and then can use those functions in our test suites.
+
+## Integration into Test Suites
+
+Now, let's see how you use it in your sample test suite, co2EmissionModule.test.js:
+
+```javascript
+// co2EmissionModule.test.js
+
+const environmentallyUnfriendlyAPI = require("../test-utils/mocks/apiMock");
+const co2Metrics = require("../test-utils/metrics/calculateCO2Metrics");
+const metricsCollectorModule = require("../test-utils/metricsCollector");
+
+const { recordMetric, getSuiteMetrics, logMetrics } = metricsCollectorModule(); // This will return the functions e.g. recordMetric, getSuiteMetrics
+
+describe("Testing the API Calls - Naive Approach", () => {
+ afterAll(async () => {
+ const suiteMetrics = getSuiteMetrics(); // Returns all the metrics collected for this test suite.
+ const { totalCO2Emissions, meanCO2Emissions } = co2Metrics(suiteMetrics); // Returns the totalCO2Emissions and meanCO2EMissions using the suiteMetrics.
+ console.log("Total CO2 emissions for the suite", totalCO2Emissions);
+ console.log("Mean CO2", meanCO2Emissions);
+ });
+
+ test("Test the API call with 10", async () => {
+ // Make the environmentally unfriendly API call
+ const result = await environmentallyUnfriendlyAPI(10);
+
+ // Record the CO2 emissions metric
+ recordMetric("CO2Emissions", result.data.CO2Emissions);
+
+ // Ensure that the result is as expected
+ expect(result.data.output).toBe(true);
+ });
+
+ // ... (similar tests follow)
+});
+```
+
+#### _Test results_
+
+When the test is run, it produces the below result
+
+![Mean and total CO2 Emissions are logged in the console]({{site.github.url}}/gsingh/assets/moduleResult.PNG "Mean and total CO2 Emissions are logged in the console")
+
+By using this modularised approach, if we want to use 'logMetrics' function in another test suite, we can just plug it in our afterAll hook and it will work as the following.
+
+```javascript
+//co2EmissionModule.test.js
+
+// previous import statements
+
+const { logMetrics } = metricsCollectorModule(); // This will return the functions e.g. recordMetric, getSuiteMetrics, logMetrics
+
+describe("Testing the API Calls - Naive Approach", () => {
+ afterAll(async () => {
+ logMetrics(); // Plugging logMetrics
+ });
+
+ test("Test the API call with 10", async () => {
+ // Make the environmentally unfriendly API call
+ const result = await environmentallyUnfriendlyAPI(20);
+
+ // Record the CO2 emissions metric
+ recordMetric("CO2Emissions", result.data.CO2Emissions);
+
+ // Ensure that the result is as expected
+ expect(result.data.output).toBe(true);
+ });
+
+ // ... (similar tests follow)
+});
+```
+
+When the test is run, it produces the below result
+
+![Metrics are logged]({{site.github.url}}/gsingh/assets/moduleLogMetrics.PNG "Metrics are logged")
+
+## The Results and Conclusion
+
+In this blog post, we've tackled the challenge of tracking environmental impact in your Jest test suites. We started with a scenario where an environmentally unfriendly API call produces CO2 emissions. We contrasted a naive approach, which involves repetitive metric tracking in each test file, with a more streamlined approach using the metricsCollector.
+
+By centralizing metrics tracking, you can keep your test files clean and maintainable, while also gaining the flexibility to log metrics at different levels. With our metricsCollector module seamlessly integrated, running our test suite yields insightful metrics logging without cluttering the test code itself. The common module approach centralizes metrics management, promoting clean and focused tests.
+
+In conclusion, our hypothesis was successfully tested and validated. By leveraging the metricsCollector module, we achieved a streamlined and organised way to log metrics during Jest test executions. This method enhances the maintainability and readability of our test suite, enabling us to focus on what matters most: writing high-quality, well-tested code.
+
+_Note: This blog post provides a high-level overview of logging metrics in Jest test suites. For more advanced use cases and in-depth analysis, you can extend the metrics collector and data processing logic to suit your specific needs_.
diff --git a/gsingh/assets/moduleLogMetrics.PNG b/gsingh/assets/moduleLogMetrics.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..25282bbccf436ab8ed8951f662e6f9c0536c3f20
GIT binary patch
literal 19646
zcmd43c{tSX_xL}RRxhcPeQB435F$${6lyA>Fs8CELmE3XQ%WjZWsgQ^EHU;OAv5R|
zWgGi2gHd8I#y&I5=J)h^f8L+#dws9>@Av)w@x89!_Yc=xp4`qk_w&Bbea_>Y+pC*5
zEX4N6?g4>7V%M%-xeWqsMT0 zBOadRh0~+FlYyGg%7fT}4P2QP1u*RG5oi^2t$DtqZ_Q0&el!`*4Y_k@G$X
z^7cZOYhxdQTSu4nxL{WY>)TZ1D2708>2;RFjO+iKwOSV~^f* &buyu#$E?HF2>5EY@wLAh(f=?db=^)0X4t6QWQG
z0oSE-afv*6>xg{Z@+9c1G!5E2yDQub&V;E2z5Z7 !Q@<8VB8|n#dA6fvf$&-kg_V#*LczT6Al-
z@${F}*`CKZMvi%lS_CO}YG{_KB_xPuNr{l6gy#LU@iP%F#cF$Pu82AWCfT#yXQYlP
zUEx>gWXO477lH#`4(WPbh!HSY?k)FPx(1KQMGlAXWR9kM%{H|2@Wek@)|@I2*1|bWRT4
zKqvr*wZ46m%@w^z#9gkE1Dc{`r&35~HW{?*x9HU3_?&maDUzfLQMaN*iXAjD3rbSk
zSh)Q6P&C5Jpp_6`2_d#tEnF5j46L7yzR~kO_J3S>*wVo@AoDLP(`5D-Siw4fj1-h;
zmR$o41?>d-C88gsGD_Hch)HtsR7m+bxCRMnW#1k{|kR
zXwcFYmpFTQzMQ7fEOf#h##==aBkLW>pH0S=SLEKV|NQrcv&L_V4CCu=aC;x)R!$k|
z?rFZ~U_XP~&uU;BY<+@we6tC@7Z;6z{z<&;mTxS!^xxnz!C0^a9=Wn{{5OC
_
ze7yK|V?&s|_jbQMkdgT&jL%#_Y&Q8%?Ly!9A0B;wJQgvdIvSFYSpQGfq7*Z;fLMVB
z(l&&gdX!++=9loLB0%|OP$p+YK|^99VC7i`zTuz5g|^F41G;|Y3+jf|pw9Pg_N5{J
zeeprS`_pQS!t(l(F0KZ1diz3R+@>mBA=Gm5rj?!Q{D+(lEC0Za-%P#w;%wTyxH+60
z#E4D|CJ~k!k~FzB{)BEp$j(LX*79t;qT$9Yi8eeMR=~=cF9na%1am7Wf9xDeu(*@d
zhM3b6&QpZ-*&F`#RFfbu$0i&NF3nc9$v+9`x!*8?>Pv;zF||h}pu7n=(e-_|g~S?X
zCOUj^n}^$cBsY=74)aH@z*Xt(=Rb|FKa(m8EXz*#&T(GnDN~Pkd=2F<+`tRgIU9w%
zYz<+7Ppcbn1z~nnN^w>=jwQgTf1$rgf5oxJ^+O;4hpzv9QUnaB>5?e^YgwW-dtnUa
z!izCkub2;BU%)^e^hsc&park=Rb*-XswKhNs-Fxy7Rnw&tw+zVtrbQr_g?rWun|Oy
zX3q(iye>L$+&M(!MWqkPnHNG8-zf=yn9K^x`YP6H{1Fq!zYLwVT+AW^okflBBt_9C
zA
BYW$ynAO(fc
z*roFtW9+x{Js!d@7s8j|qY-|*$DG-jhbmyYF`TD1Dn2TV9kq9!k$QCRB8rY@ZC@p>
z{iyN)8xjSp;@Q5%4Fi7LCbNkGi_tV=BY716w?+umaI^pnHdEW@b!tto70N_TnP?uD@pH+0C5pYGw1G6DS$d#AD~?)bz933=U^4
z52Zx-9xA|576;lStW4PU#JF(7@ox
H+2&Ai=oOQ>2dhYdxeVXWEj*%?q@
z#@J0Llj4_&4>4dX5un($LkcPuFuX$rb^EQsW=Z4cKH7XN7=njlgoX5;*{u6#A)1Qu
zP%OpeMf-+fw0Uj6+EB@xh4M)Gs9Qa;)Ly(!6;&jI;^0xE0OAOruAH*@N&FSr6BMPB
zyw{<1EOk5UBq50t!RN3D`a4gy9OW7Uv*J2A!mVca1CJj`LtEzSIIC#+4Dom$&d;F)
z1}f)uLg85-#6mCQ2wq2$C>g!1qR*6Ys~k`A60I+}9PC+7_*#UsKX0bs@O2q;vgK%%tqTyh`y{eP1B)lnSa^ze8bl!oDg}
z5Tj)*`IS4d!5Nr*VDtV{M>pVp-fph8p+H;wDRC`c4eMa
z8uB^2Q{)^sA-Z>x^Yo{Gb=f0%o+)vi$5w&dm-F)z>dvHd?x0#FOwQP*ZAN;=`HCwA
zXT7M+k1rtyPfwD6(?Y7zB5C}`