From fbb9d4897c4cd5ddc7588a64012434be589f4529 Mon Sep 17 00:00:00 2001 From: Gagan Singh Date: Tue, 19 Sep 2023 13:41:53 +0100 Subject: [PATCH] Blog post for Metrics Collector in Jest (#65) * Blog post for Metrics Collection using Jest * Changed the date * Removed the unused image * Resolved conflict * Update 2023-09-13-metrics-collector-in-jest.md * Suggested changes and the post date --- _data/authors.yml | 890 +++++++++--------- .../2023-09-19-metrics-collector-in-jest.md | 219 +++++ gsingh/assets/moduleLogMetrics.PNG | Bin 0 -> 19646 bytes gsingh/assets/moduleResult.PNG | Bin 0 -> 17483 bytes gsingh/assets/naiveResult.PNG | Bin 0 -> 17770 bytes gsingh/index.html | 6 - 6 files changed, 667 insertions(+), 448 deletions(-) create mode 100644 _posts/2023-09-19-metrics-collector-in-jest.md create mode 100644 gsingh/assets/moduleLogMetrics.PNG create mode 100644 gsingh/assets/moduleResult.PNG create mode 100644 gsingh/assets/naiveResult.PNG diff --git a/_data/authors.yml b/_data/authors.yml index 671f17e64f..7a164b09c8 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -118,40 +118,41 @@ active-authors: - xchen - zrubin - zwali + - gsingh authors: aaiken: - name: 'Andy Aiken' + name: "Andy Aiken" picture: picture.jpg asegrove: - name: 'Alex Segrove' + name: "Alex Segrove" picture: picture.jpg - author-summary: 'Hi, Im Alex - Delivery Manager based in the London office. I spent the last few years in the Government Digital Service heading up delivery for GOV.UK, Digital Identity and Government Data policy, then worked with governments around the world to help them with their own digital transformation.' + author-summary: "Hi, Im Alex - Delivery Manager based in the London office. I spent the last few years in the Government Digital Service heading up delivery for GOV.UK, Digital Identity and Government Data policy, then worked with governments around the world to help them with their own digital transformation." bpritchard: - name: 'Beth Pritchard' + name: "Beth Pritchard" email: bpritchard@scottlogic.com - author-summary: 'A developer at Scott Logic, based in Newcastle. Interested in all things cloud. Partial to loud music, video games, and hanging out with my cat. (they/them)' + author-summary: "A developer at Scott Logic, based in Newcastle. Interested in all things cloud. Partial to loud music, video games, and hanging out with my cat. (they/them)" twitter-handle: null picture: bpritchard.jpg aaspellc: - name: 'Andy Aspell-Clark' - author-summary: '

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.

' + name: "Andy Aspell-Clark" + author-summary: "

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.

" twitter-handle: aspellclark - twitter-url: 'http://www.twitter.com/aspellclark' - google-plus-url: 'https://plus.google.com/u/1/+AndyAspellClark' + twitter-url: "http://www.twitter.com/aspellclark" + google-plus-url: "https://plus.google.com/u/1/+AndyAspellClark" picture: picture.jpg aaylett: - google-plus-url: 'https://plus.google.com/117103827242094116619' - name: 'Andrew Aylett' - twitter-url: 'https://twitter.com/aaylett' + google-plus-url: "https://plus.google.com/117103827242094116619" + name: "Andrew Aylett" + twitter-url: "https://twitter.com/aaylett" twitter-handle: aaylett picture: picture.jpg abarron: - name: 'Adam Barron' + name: "Adam Barron" email: abarron@scottlogic.com author-summary: "I'm a developer at Scott Logic in Newcastle. I've found myself primarily writing Typescript for Cloud Services, with a bit of .NET on the side. I can also be found playing various video games and enjoying loud live music." feed-description: "Adam's experiences and thoughts living and working in the world of tech." picture: abarron-crop.jpg - twitter-url: 'https://twitter.com/awbarron' + twitter-url: "https://twitter.com/awbarron" twitter-handle: AWBarron aberrill: author-summary: 'Test Engineer at Scott Logic with a great interest in test automation and accessibility' @@ -159,1141 +160,1141 @@ authors: picture: picture.jpg acarr: feed-description: "Andrew's thoughts on technology" - name: 'Andrew Carr' - author-summary: '

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.

' + name: "Andrew Carr" + author-summary: "

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.

" picture: picture.jpg acheshire: - name: 'Alexander Cheshire' + name: "Alexander Cheshire" picture: picture.jpg afiddes: - name: 'Avril Fiddes' + name: "Avril Fiddes" picture: picture.png agard: author-summary: '

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.

' - name: 'Alec Gard' + name: "Alec Gard" picture: picture.jpg ahickman: - name: 'Andy Hickman' - author-summary: '

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.

' + name: "Andy Hickman" + author-summary: "

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.

" picture: picture.jpg alee: - name: 'Andy Lee' + name: "Andy Lee" author-summary: "I'm a Technical architect at Scott Logic, in Bristol. I have a full-stack .Net background, but lately I'm most interested in all sorts of web technology." picture: picture.png amjones: - author-summary: '

Last miner in the North East.

' - name: 'Andrew Jones' + author-summary: "

Last miner in the North East.

" + name: "Andrew Jones" picture: picture.png amorgan: - name: 'Adam Morgan' + name: "Adam Morgan" author-summary: "

I'm Adam. I am a full stack senior developer, interested in all things web.

" picture: picture.png asheehan: author-summary: "

I'm Ali, and I'm new here

" feed-description: "Ali's thoughts on life and technology" - name: 'Ali Sheehan-Dare' - twitter-url: 'https://twitter.com/im_alisd' + name: "Ali Sheehan-Dare" + twitter-url: "https://twitter.com/im_alisd" twitter-handle: im_alisd picture: picture.jpg awallis: - name: 'Allen Wallis' + name: "Allen Wallis" picture: picture.jpg awelsh: - name: 'Antony Welsh' - author-summary: 'Lead Developer based in Edinburgh. My career in software is old enough to drink.' + name: "Antony Welsh" + author-summary: "Lead Developer based in Edinburgh. My career in software is old enough to drink." twitter-handle: null picture: blogpic.jpg awhitmell: - name: 'Andrew Whitmell' + name: "Andrew Whitmell" author-summary: "Associate developer at Scott Logic based in the Newcastle office. When not bashing keyboards, I can usually be found playing with a Labrador or looking at guitars I can't afford." picture: awhitmell.jpg bdimitrov-SL: - name: 'Bogdan Dimitrov' - author-summary: '

I am a Software Developer at Scott Logic working with .NET and HTML5 web technologies.

' + name: "Bogdan Dimitrov" + author-summary: "

I am a Software Developer at Scott Logic working with .NET and HTML5 web technologies.

" picture: picture.jpg bjedrzejewski: - name: 'Bartosz Jedrzejewski' + name: "Bartosz Jedrzejewski" author-summary: '

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

' - twitter-url: 'https://twitter.com/e4developer' + twitter-url: "https://twitter.com/e4developer" twitter-handle: e4developer picture: picture.jpg bmacdonald: - name: 'Brendan MacDonald' - author-summary: 'Senior Test Engineer working at Scott Logic based in the Edinburgh office.' + name: "Brendan MacDonald" + author-summary: "Senior Test Engineer working at Scott Logic based in the Edinburgh office." picture: picture.jpg bmumford: - name: 'Ben Mumford' + name: "Ben Mumford" picture: picture.jpg cburbidge: - name: 'Chester Burbidge' + name: "Chester Burbidge" author-summary: "Software Engineer at Scott Logic. Experienced in dotnet but interested in all areas of software development, especially 'devops' and functional programming." - twitter-url: 'https://twitter.com/chestercodes' + twitter-url: "https://twitter.com/chestercodes" twitter-handle: chestercodes picture: picture.jpg ceberhardt: author-summary: "

I am CTO at Scott Logic and am a prolific technical author, blogger and speaker on a range of technologies.

\n

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.

\n

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.

\n" feed-description: "Colin Eberhardt's Technology Adventures" - name: 'Colin Eberhardt' - twitter-url: 'https://twitter.com/ColinEberhardt' + name: "Colin Eberhardt" + twitter-url: "https://twitter.com/ColinEberhardt" twitter-handle: ColinEberhardt picture: picture.jpg cgrant: - name: 'Chris Grant' + name: "Chris Grant" picture: picture.jpg ckurzeja: - name: 'Chris Kurzeja' + name: "Chris Kurzeja" picture: image.jpg author-summary: "

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.

" picture: picture.jpg ccocks: - author-summary: '

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.

' - name: 'Claire Cocks' + author-summary: "

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.

" + name: "Claire Cocks" picture: picture.jpg cprice: author-summary: '

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.

' - name: 'Chris Price' - twitter-url: 'https://twitter.com/100pxls' + name: "Chris Price" + twitter-url: "https://twitter.com/100pxls" twitter-handle: 100pxls picture: picture.jpeg croberts: - name: 'Charlotte Roberts' - author-summary: 'Test Engineer at Scott Logic. Based in the London office.' + name: "Charlotte Roberts" + author-summary: "Test Engineer at Scott Logic. Based in the London office." picture: picture.png csalt: - name: 'Caitlin Salt' + name: "Caitlin Salt" author-summary: "I'm a Lead Developer at Scott Logic, based in our Bristol office. My interests are varied and wide-ranging, but I tend to specialise in .NET and cloud-hosted technologies. When I'm not at a keyboard, I get passionate about almost any sort of outdated and vintage machinery." picture: picture.jpg csmith: - name: 'Chris Smith' - twitter-url: 'https://twitter.com/cjsmithie' + name: "Chris Smith" + twitter-url: "https://twitter.com/cjsmithie" twitter-handle: cjsmithie picture: picture.jpg dcook: feed-description: "Dan Cook's thoughts on all things Big Data." - google-plus-url: 'https://plus.google.com/102307699647083644941' - name: 'Daniel Cook' + google-plus-url: "https://plus.google.com/102307699647083644941" + name: "Daniel Cook" twitter-handle: dancookdev - twitter-url: 'https://twitter.com/dancookdev' + twitter-url: "https://twitter.com/dancookdev" picture: picture.jpg dgorst: - name: 'Dan Gorst' + name: "Dan Gorst" picture: picture.jpg delliott: - 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.' + 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!

" - name: 'Dean Kerr' + name: "Dean Kerr" picture: picture.jpg dketley: - name: 'Dominic Ketley' + name: "Dominic Ketley" picture: picture.jpg dmcnamee: - author-summary: 'Tester. Photographer.' - feed-description: 'Daniel is a senior test engineer and exponent of rapid software testing.' - google-plus-url: 'https://www.google.com/+DanielMcNamee' - name: 'Daniel McNamee' - twitter-url: 'https://twitter.com/demcnamee' + author-summary: "Tester. Photographer." + feed-description: "Daniel is a senior test engineer and exponent of rapid software testing." + google-plus-url: "https://www.google.com/+DanielMcNamee" + name: "Daniel McNamee" + twitter-url: "https://twitter.com/demcnamee" twitter-handle: demcnamee picture: picture.jpg dmiley: - name: 'Drew Miley' + name: "Drew Miley" picture: picture.jpg dogle: - name: 'Dave Ogle' + name: "Dave Ogle" author-summary: "

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.

" picture: picture.jpg dpizzi: - name: 'David Pizzi' + name: "David Pizzi" picture: picture.jpg drees: - name: 'David Rees' + name: "David Rees" picture: picture.jpg author-summary: "

Hello, I'm a Senior UX designer at Scott Logic, based in Bristol.

" dsmith: author-summary: "

I'm a Senior Developer at Scott Logic, based in Newcastle.

" - name: 'Darren Smith' - twitter-url: 'https://twitter.com/darrenpsmithweb' + name: "Darren Smith" + twitter-url: "https://twitter.com/darrenpsmithweb" twitter-handle: darrenpsmithweb picture: picture.jpg dtheasby: - name: 'Drew Theasby' - author-summary: '

Test Engineer at Scott Logic

' + name: "Drew Theasby" + author-summary: "

Test Engineer at Scott Logic

" picture: picture.jpg dthomas: - name: 'David Thomas' + name: "David Thomas" picture: picture.jpg dwybourn: - name: 'David Wybourn' + name: "David Wybourn" picture: picture.jpg ebrown: - name: 'Eddy Brown' + name: "Eddy Brown" picture: picture.png - author-summary: '

I am a Developer at Scott Logic and I love learning and building new things! I also like to drive and fix machines.

' + author-summary: "

I am a Developer at Scott Logic and I love learning and building new things! I also like to drive and fix machines.

" ekouri: - name: 'Effrosyni Kouri' + name: "Effrosyni Kouri" picture: picture.png emason: - name: 'Elliot Mason' - author-summary: '

Test Engineer at Newcastle, studied Computer Science at Newcastle University

' + name: "Elliot Mason" + author-summary: "

Test Engineer at Newcastle, studied Computer Science at Newcastle University

" picture: picture.jpg ffarhadi: - name: 'Farzaneh Farhadi' + name: "Farzaneh Farhadi" author-summary: "

I have been working as a Test Engineer since 2012.

\n

In my spare time I enjoy playing piano and painting.

" picture: picture.jpg gginghina: - name: 'Georgiana Ginghina' + name: "Georgiana Ginghina" picture: picture.jpg garora: - name: 'Gurveer Arora' + name: "Gurveer Arora" author-summary: '

I am a developer at Scott Logic, Newcastle. Find me on Github

' picture: picture.jpg gkendall: - name: 'Guillaume Kendall' - author-summary: '

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!

' + name: "Guillaume Kendall" + author-summary: "

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!

" picture: picture.jpg godds: author-summary: "

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.

" feed-description: "Graham Odds' thoughts about design, technology and data visualisation." - google-plus-url: 'https://plus.google.com/u/0/106838695703708413394' - name: 'Graham Odds' - twitter-url: 'https://twitter.com/g_odds' + google-plus-url: "https://plus.google.com/u/0/106838695703708413394" + name: "Graham Odds" + twitter-url: "https://twitter.com/g_odds" twitter-handle: g_odds picture: picture.jpg gthompson: author-summary: "

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.

" feed-description: "Gary's thoughts on Agile, Scrum, and all things Tech Project Management." - name: 'Gary Thompson' + name: "Gary Thompson" picture: picture.jpg gsingh: author-summary: 'I am a senior developer at Scott Logic. I am passionate about solution designing and front end-based technologies and in my free time I enjoy watching and playing Cricket.' name: 'Gagan Singh' picture: picture.jpg hbellamy: - name: 'Harry Bellamy' - author-summary: '

I am a Lead Developer at Scott Logic.

' + name: "Harry Bellamy" + author-summary: "

I am a Lead Developer at Scott Logic.

" hgoode: - name: 'Harry Goode' + name: "Harry Goode" picture: picture.jpg - feed-description: 'Just an introduction into the incredibly broad subject of sustainability in software.' - author-summary: '

Just a regular software developer with no professional experience in the sustainability sector.

' + feed-description: "Just an introduction into the incredibly broad subject of sustainability in software." + author-summary: "

Just a regular software developer with no professional experience in the sustainability sector.

" hmumford: - name: 'Harry Mumford-Turner' - twitter-url: 'https://twitter.com/mumf_' + name: "Harry Mumford-Turner" + twitter-url: "https://twitter.com/mumf_" author-summary: '

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.

' picture: picture.jpg hpowell: - name: 'Hugh Powell' + name: "Hugh Powell" picture: picture.jpg hpretswell: author-summary: "

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.

" - feed-description: 'Bits and bobs on software testing' - name: 'Hannah Pretswell' - twitter-url: 'https://twitter.com/HannahPretswell' + feed-description: "Bits and bobs on software testing" + name: "Hannah Pretswell" + twitter-url: "https://twitter.com/HannahPretswell" twitter-handle: HannahPretswell picture: picture.jpg ilapworth: - name: 'Isaac Lapworth' - author-summary: '2018 Newcastle intern' + name: "Isaac Lapworth" + author-summary: "2018 Newcastle intern" picture: picture.png ilopatkin: - name: 'Ilya Lopatkin' + name: "Ilya Lopatkin" picture: picture.jpg isullivan: - name: 'Ian Sullivan' + name: "Ian Sullivan" picture: picture.jpg janakerman: - name: 'Jan Akerman' - author-summary: '

I am a Senior Developer at Scott Logic, based in London.

' + name: "Jan Akerman" + author-summary: "

I am a Senior Developer at Scott Logic, based in London.

" picture: picture.jpg jayphi11ips: - name: 'Jason Phillips' - author-summary: '

I am the first dedicated BA at Scott Logic, based in London.

' + name: "Jason Phillips" + author-summary: "

I am the first dedicated BA at Scott Logic, based in London.

" picture: picture.png jbandenburg: - name: 'Joe Bandenburg' - twitter-url: 'https://twitter.com/joebandenburg' + name: "Joe Bandenburg" + twitter-url: "https://twitter.com/joebandenburg" twitter-handle: joebandenburg picture: picture.jpg jbrunton: - name: 'James Brunton' - author-summary: '

James was an Intern at Scott Logic, based in Newcastle.

' + name: "James Brunton" + author-summary: "

James was an Intern at Scott Logic, based in Newcastle.

" picture: picture.jpg jcardy: - name: 'Jonathan Cardy' + name: "Jonathan Cardy" jdunkerley: - author-summary: '

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.

' - name: 'James Dunkerley' + author-summary: "

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.

" + name: "James Dunkerley" twitter-handle: jdunkerley - twitter-url: 'http://twitter.com/jdunkerley' + twitter-url: "http://twitter.com/jdunkerley" picture: picture.png jfriel: - author-summary: '

I am a summer intern at Scott Logic

' - name: 'James Friel' + author-summary: "

I am a summer intern at Scott Logic

" + name: "James Friel" picture: picture.jpg jharris: - name: 'Jon Harris' + name: "Jon Harris" author-summary: "I'm a full stack developer with Scott Logic in Bristol with experience of greater or lesser extent in C#, Java, React, Python and Spark." twitter-handle: null picture: headshot.jpg jmacdonald: - name: 'Jamie Macdonald' - author-summary: 'I am a software developer at Scott Logic, based in our London office. I work on full-stack projects, but particularly enjoy building frontend applications with complex styling challenges. When not CSS-wrangling, I can be found at the cinema watching a mix of indie darlings and deeply silly action movies or at home spending more time tinkering with retro games than actually playing them.' + name: "Jamie Macdonald" + author-summary: "I am a software developer at Scott Logic, based in our London office. I work on full-stack projects, but particularly enjoy building frontend applications with complex styling challenges. When not CSS-wrangling, I can be found at the cinema watching a mix of indie darlings and deeply silly action movies or at home spending more time tinkering with retro games than actually playing them." picture: picture.png jhill: - name: 'James Hill' - google-plus-url: 'https://plus.google.com/u/0/113102044823162726684' + name: "James Hill" + google-plus-url: "https://plus.google.com/u/0/113102044823162726684" author-summary: "

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.

" picture: picture.jpg jhowlett: - name: 'Jake Howlett' - author-summary: '

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.

' - picture: 'jhowlett.jpg' + name: "Jake Howlett" + author-summary: "

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.

" + picture: "jhowlett.jpg" jmelon: - name: 'Jean-Sacha Melon' - author-summary: '

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.

' + name: "Jean-Sacha Melon" + author-summary: "

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.

" picture: picture.png jmcevoy: - name: 'Jessica McEvoy' + name: "Jessica McEvoy" author-summary: "I'm a Principal at Scott Logic. Ex-Senior Civil Servant, formerly of GDS, Cabinet Office." picture: picture.jpg jphillpotts: - name: 'James Phillpotts' + name: "James Phillpotts" picture: picture.jpg jrice: - author-summary: '

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.

' - name: 'James Rice' - twitter-url: 'https://twitter.com/jamesricedesign' + author-summary: "

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.

" + name: "James Rice" + twitter-url: "https://twitter.com/jamesricedesign" twitter-handle: jamesricedesign picture: picture.jpg jsteer: - author-summary: '

I am a Senior Software engineer here at Scott Logic.

' - name: 'Joe Steer' - twitter-url: 'https://twitter.com/joesteer' + author-summary: "

I am a Senior Software engineer here at Scott Logic.

" + name: "Joe Steer" + twitter-url: "https://twitter.com/joesteer" twitter-handle: joesteer picture: picture.jpg jwarren: - name: 'Josh Warren' - author-summary: 'I have been a software developer at Scott Logic since joining in August 2022. When I’m not tapping away at a keyboard, you can find me travelling the world or attempting to write some music!' + name: "Josh Warren" + author-summary: "I have been a software developer at Scott Logic since joining in August 2022. When I’m not tapping away at a keyboard, you can find me travelling the world or attempting to write some music!" picture: jwarren.jpg jwhite: - name: 'James White' + name: "James White" picture: picture.jpg jwilson: author-summary: "\t" - name: 'Jule Wilson' + name: "Jule Wilson" jwren: - author-summary: '' - name: 'James Wren' + author-summary: "" + name: "James Wren" picture: picture.jpg jwright: - author-summary: '' - name: 'John Wright' + author-summary: "" + name: "John Wright" kcoombes: - author-summary: 'I am a Test Engineer from Newcastle' - name: 'Kay Coombes' + author-summary: "I am a Test Engineer from Newcastle" + name: "Kay Coombes" picture: picture.jpeg khurley: - author-summary: 'Business Development Manager' - name: 'Kirsten Hurley' + author-summary: "Business Development Manager" + name: "Kirsten Hurley" picture: picture.jpg kjones: author-summary: "I'm a full stack senior developer with experience in C#, Typescript (mainly Angular)" - name: 'Ken Jones' + name: "Ken Jones" picture: picture.jpg mhowie: author-summary: "I'm Scott Logic's Head of Marketing and Communications" - name: 'Marghaid Howie' + name: "Marghaid Howie" picture: picture.jpg dhunter: author-summary: "I'm a senior developer at Scott Logic, based in the Edinburgh office. My background is full-stack .NET web applications and more recently some Xamarin projects. Outside of work I like a pub quiz, live music and playing lego and soft play with my wee boy." - name: 'Dean Hunter' + name: "Dean Hunter" picture: picture.jpg labs: - name: 'Scott Logic Labs' + name: "Scott Logic Labs" lcollingwood: - name: 'Laurie Collingwood' + name: "Laurie Collingwood" picture: picture.jpg lpage: - name: 'Luke Page' + name: "Luke Page" picture: picture.png lpisani: - name: 'Laurence Pisani' - author-summary: '

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.

' + name: "Laurence Pisani" + author-summary: "

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.

" picture: picture.jpg lramchandani: - name: 'Laveena Ramchandani' - author-summary: 'Test Engineer, working at Scott Logic. I am based in the London Office. ' + name: "Laveena Ramchandani" + author-summary: "Test Engineer, working at Scott Logic. I am based in the London Office. " picture: picture.jpg lwilson: - name: 'Louise Wilson' + name: "Louise Wilson" author-summary: "I am a Delivery Principal at Scott Logic based in the Edinburgh office. I am passionate about building great services within the public and private sector. I'm a big fan of tasty food and energetic dancing." picture: lwilson.png mamos: - name: 'Matthew Amos' + name: "Matthew Amos" author-summary: "I'm a Lead Developer at Scott Logic, based in London, with almost 15 years experience in Java. I also write Scala, Kotlin, Python and some JavaScript. I am a certified AWS solutions architect, and Terraform fan." picture: picture.jpg mbuhagiar: - name: 'Mark Buhagiar' + name: "Mark Buhagiar" author-summary: "I'm a Senior Developer at Scott Logic based in London. When not frantically typing away at a keyboard, I can usually be found either cooking or out on a run." picture: picture.jpg mcrease: - author-summary: '' - name: 'Murray Crease' + author-summary: "" + name: "Murray Crease" mdebeneducci: - name: 'Mathew de Beneducci' - author-summary: 'Senior Developer in the Bristol Office, interested in Java backend development and Big Data tools' + name: "Mathew de Beneducci" + author-summary: "Senior Developer in the Bristol Office, interested in Java backend development and Big Data tools" picture: picture.jpg mdunsdon: - name: 'Matthew Dunsdon' + name: "Matthew Dunsdon" picture: picture.jpg mjose: - name: 'Mark Jose' + name: "Mark Jose" author-summary: '

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.

' picture: picture.jpg mkirova: - name: 'Mila Kirova' + name: "Mila Kirova" mmathew: - name: 'Mili Mathew' + name: "Mili Mathew" author-summary: "

I'm a Lead Test Consultant at Scott Logic, London. I like solving problems with innovation and pragmatism

" - twitter-url: 'https://twitter.com/Testflaneuse' + twitter-url: "https://twitter.com/Testflaneuse" twitter-handle: Testflaneuse picture: picture.jpg mperrin: - name: 'Mike Perrin' + name: "Mike Perrin" mrhodes: - name: 'Mark Rhodes' + name: "Mark Rhodes" picture: picture.jpg msinton: - name: 'Matt Sinton-Hewitt' + name: "Matt Sinton-Hewitt" author-summary: "

I'm a Senior Developer at Scott Logic. I like Functional Programming, Big Data and Machine Learning.

" picture: picture.jpg mtinning: - name: 'Michael Tinning' - twitter-url: 'https://twitter.com/mttinning' + name: "Michael Tinning" + twitter-url: "https://twitter.com/mttinning" twitter-handle: mttinning picture: picture.jpg nhemley: - name: 'Nicholas Hemley' + name: "Nicholas Hemley" nowen: author-summary: "

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

' picture: picture.jpg pshek: - name: 'Paulin Shek' + name: "Paulin Shek" author-summary: "

Paulin is a Java developer at Scott Logic. When she's not programming, she can be found doing cryptic crosswords and climbing small rocks.

" picture: picture.jpg rbaxter: - name: 'Rolf Baxter' + name: "Rolf Baxter" picture: picture.png rbeckett: - author-summary: 'Graduate Developer at Scott Logic' - name: 'Richard Beckett' + author-summary: "Graduate Developer at Scott Logic" + name: "Richard Beckett" rcaulcott-cooper: author-summary: '

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.

' - name: 'Ruth Caulcott-Cooper' + name: "Ruth Caulcott-Cooper" picture: picture.png rdoyle: - name: 'Richard Doyle' + name: "Richard Doyle" picture: picture.jpg rfarmer: - name: 'Roisin Farmer' + name: "Roisin Farmer" rhamilton: - name: 'Rosie Hamilton' - twitter-url: 'https://twitter.com/Rosicadia' + name: "Rosie Hamilton" + twitter-url: "https://twitter.com/Rosicadia" twitter-handle: Rosicadia feed-description: "A collection of Rosie Hamilton's thoughts on software testing." author-summary: '

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.

' picture: picture.png rhendry: - name: 'Ross Hendry' + name: "Ross Hendry" picture: picture.jpg rnewsome: author-summary: "Scott Logic's Head of Development, Newcastle upon Tyne" - name: 'Rob Newsome' + name: "Rob Newsome" rmarcalo: - name: 'Rui Marcalo' + name: "Rui Marcalo" picture: picture.jpg rrahim: - author-summary: '

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.

' - name: 'Rhianna Rahim' + author-summary: "

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.

" + name: "Rhianna Rahim" picture: picture.jpg rrhodes: - name: 'Ross Rhodes' + name: "Ross Rhodes" twitter-handle: trrhodes author-summary: "

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.

" - twitter-url: 'https://twitter.com/trrhodes' + twitter-url: "https://twitter.com/trrhodes" picture: picture.jpg rschuller: - author-summary: 'Graduate Developer, Bristol' - name: 'Ricardo Schuller' + author-summary: "Graduate Developer, Bristol" + name: "Ricardo Schuller" rsillem: - name: 'Robin Sillem' - author-summary: '

I am a Lead Developer at Scott Logic.

' + name: "Robin Sillem" + author-summary: "

I am a Lead Developer at Scott Logic.

" picture: picture.jpg rwilliams: - name: 'Robat Williams' - twitter-url: 'https://twitter.com/_rwms' + name: "Robat Williams" + twitter-url: "https://twitter.com/_rwms" twitter-handle: _rwms author-summary: '

I work developing web applications for our clients at Scott Logic. You can also find me on GitHub.

' picture: picture.jpg rwillis: - name: 'Rowan Willis' + name: "Rowan Willis" author-summary: "

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.

" picture: picture.jpg jdunleavy: - name: 'Joe Dunleavy' - author-summary: '

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.

' + name: "Joe Dunleavy" + author-summary: "

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.

" picture: picture.jpg sbaker: author-summary: "

I am a senior developer at Scott Logic, working primarily with Java. I'm currently fascinated by data science and machine learning

" - feed-description: 'Sioned is a developer working primarily Java, with a side-interest in data science.' - name: 'Sioned Baker' + feed-description: "Sioned is a developer working primarily Java, with a side-interest in data science." + name: "Sioned Baker" picture: picture.jpg sbulut: - author-summary: '

Full-time learner and Test Engineer at Scott Logic

' - name: 'Seda Bulut' + author-summary: "

Full-time learner and Test Engineer at Scott Logic

" + name: "Seda Bulut" picture: picture.jpg sdavies: - name: 'Sam Davies' - twitter-url: 'https://twitter.com/iwantmyrealname' + name: "Sam Davies" + twitter-url: "https://twitter.com/iwantmyrealname" twitter-handle: iwantmyrealname - google-plus-url: 'https://plus.google.com/+SamDavies_ActuallyMyRealName' + google-plus-url: "https://plus.google.com/+SamDavies_ActuallyMyRealName" picture: picture.jpg sduncan: - name: 'Simon Duncan' - author-summary: 'UX designer. Arduino & physical computing enthusiast. Likes hip hop and 30 minute drone pieces.' - twitter-url: 'https://twitter.com/simonduncan' + name: "Simon Duncan" + author-summary: "UX designer. Arduino & physical computing enthusiast. Likes hip hop and 30 minute drone pieces." + twitter-url: "https://twitter.com/simonduncan" twitter-handle: simonduncan - feed-description: '

Simon Duncan is a UX designer, particularly interested in interaction design and information architecture. These are some of his thoughts.

' + feed-description: "

Simon Duncan is a UX designer, particularly interested in interaction design and information architecture. These are some of his thoughts.

" picture: picture.jpg sfoley: - name: 'Simon Foley' + name: "Simon Foley" picture: picture.jpg shamiltonritchie: - name: 'Simon Hamilton Ritchie' - author-summary: 'Lead Developer in London' + name: "Simon Hamilton Ritchie" + author-summary: "Lead Developer in London" picture: picture.jpg sgrant: author-summary: '

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.

' - name: 'Sam Sutherland Grant' + name: "Sam Sutherland Grant" picture: thinkyMe_150x150.jpg shall: - name: 'Steven Hall' + name: "Steven Hall" picture: picture.jpg shogarth: - author-summary: '

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!

' - feed-description: 'Sam on Software' - name: 'Sam Hogarth' + author-summary: "

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!

" + feed-description: "Sam on Software" + name: "Sam Hogarth" picture: picture.jpg shunton: feed-description: "Steve's adventures in all things Agile" - name: 'Steven Hunton' + name: "Steven Hunton" author-summary: "

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.

" picture: picture.png sking: - name: 'Saber King' + name: "Saber King" picture: picture.jpg slinsley: name: Stephen Linsley picture: picture.jpg - author-summary: '

Marketing Channels Coordinator at Scott Logic, with a background in SaaS marketing.

' + author-summary: "

Marketing Channels Coordinator at Scott Logic, with a background in SaaS marketing.

" snandal: - name: 'Shikha Nandal' + name: "Shikha Nandal" picture: picture.jpg - author-summary: 'Senior Test Engineer at Scott Logic' + author-summary: "Senior Test Engineer at Scott Logic" sobrien: name: "Siobhan O'Brien" - author-summary: 'UX Designer' + author-summary: "UX Designer" picture: picture.png soneill: name: "Sean O'Neill" picture: picture.jpg sroebuck: - author-summary: 'Technical Architect' - name: 'Stuart Roebuck' + author-summary: "Technical Architect" + name: "Stuart Roebuck" swilson: - author-summary: 'Senior Marketing Executive' - name: 'Scarlett Wilson' + author-summary: "Senior Marketing Executive" + name: "Scarlett Wilson" tbaker: - name: 'Tom Baker' + name: "Tom Baker" tbarclay: - name: 'Tim Barclay' + name: "Tim Barclay" picture: picture.jpg tclarke-scottlogic: - name: 'Thomas Clarke' + name: "Thomas Clarke" author-summary: '

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.

' - twitter-url: 'https://twitter.com/deworde' + twitter-url: "https://twitter.com/deworde" twitter-handle: deworde picture: picture.png jbickleywallace: - name: 'Josh Bickley-Wallace' + name: "Josh Bickley-Wallace" author-summary: "I'm a software engineer who also builds teams, children and sometimes houses." picture: picture.jpg tferguson: - name: 'Tyler Ferguson' - author-summary: '

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.

' + name: "Tyler Ferguson" + author-summary: "

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.

" picture: picture.jpg tgilbert: - name: 'Tom Gilbert' + name: "Tom Gilbert" author-summary: "Tom is a Senior Test Engineer at Scott Logic. In addition to testing, I'm also interested in improving business processes. When I'm not trying to break things, I enjoy cooking outdoors and playing golf." picture: picture.jpg tkelly: author-summary: '

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.

' - name: 'Thomas Kelly' + name: "Thomas Kelly" picture: picture.jpg tmakarem: - author-summary: '

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.

' - name: 'Tamara Chehayeb Makarem' + author-summary: "

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.

" + name: "Tamara Chehayeb Makarem" twitter-handle: TamaraCMakarem - twitter-url: 'http://twitter.com/TamaraCMakarem' + twitter-url: "http://twitter.com/TamaraCMakarem" picture: picture.jpg tsimmons: - name: 'Tom Simmons' - author-summary: '

I am a Senior Developer at Scott Logic.

' + name: "Tom Simmons" + author-summary: "

I am a Senior Developer at Scott Logic.

" picture: picture.jpg wcaine: - name: 'Will Caine' - author-summary: 'Scott Logic Intern at the Newcastle office during the summer of 2018.' + name: "Will Caine" + author-summary: "Scott Logic Intern at the Newcastle office during the summer of 2018." picture: picture.jpg wferguson: author-summary: "

I'm a developer at Scott Logic, after joining in 2014 as an intern.

" - name: 'William Ferguson' + name: "William Ferguson" picture: picture.jpg wloveland: author-summary: "

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.

" - name: 'Will Loveland' + name: "Will Loveland" picture: picture.jpg wreilly: - name: 'William Reilly' + name: "William Reilly" picture: picture.jpg wtrimble: - author-summary: 'Lead Test Engineer' - name: 'Wullie Trimble' + author-summary: "Lead Test Engineer" + name: "Wullie Trimble" zwali: - name: 'Zinat Wali' - author-summary: '

I am a Senior Developer at Scott Logic. I like exploring technology and have a keen interest in Big Data and Machine Learning.

' + name: "Zinat Wali" + author-summary: "

I am a Senior Developer at Scott Logic. I like exploring technology and have a keen interest in Big Data and Machine Learning.

" picture: picture.png cmcormack: - name: 'Cian McCormack' - author-summary: 'Tester, Scrum Master, Rookie Speaker, Ex-Chef, Spice Enthusiast, Collector of Rubber Ducks, Banana Loather.' + name: "Cian McCormack" + author-summary: "Tester, Scrum Master, Rookie Speaker, Ex-Chef, Spice Enthusiast, Collector of Rubber Ducks, Banana Loather." twitter-handle: aCyanNinja - twitter-url: 'http://www.twitter.com/aCyanNinja' + twitter-url: "http://www.twitter.com/aCyanNinja" picture: picture.png cmcknight: - name: 'Chloe McKnight' - author-summary: 'I am a full stack software developer based in the Edinburgh office' + name: "Chloe McKnight" + author-summary: "I am a full stack software developer based in the Edinburgh office" picture: picture.jpg hcarter: - name: 'Heather Carter' - author-summary: '

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.

' + 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.

" twitter-handle: danosworld72 - twitter-url: 'http://www.twitter.com/danosworld72' + twitter-url: "http://www.twitter.com/danosworld72" picture: picture.jpg phands: - name: 'Paul Hands' - author-summary: '

An advocate for agile, single page web apps and React/Redux

' + name: "Paul Hands" + author-summary: "

An advocate for agile, single page web apps and React/Redux

" twitter-handle: PhDHands - twitter-url: 'http://www.twitter.com/PhDHands' + twitter-url: "http://www.twitter.com/PhDHands" picture: picture.jpg lhamilton: - name: 'Louise Hamilton' - author-summary: 'Business Analyst from the Scott Logic London Office ' + name: "Louise Hamilton" + author-summary: "Business Analyst from the Scott Logic London Office " picture: picture.jpg cbrown: - name: 'Chris Brown' - author-summary: '

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: '

' + name: "Courtney Yule" + author-summary: "

" twitter-handle: CourtneyYule - twitter-url: 'http://www.twitter.com/CourtneyYule' + twitter-url: "http://www.twitter.com/CourtneyYule" picture: picture.jpg imaxwell: - name: 'Iain A Maxwell' - author-summary: 'Senior Developer at Scott Logic. Working out of the Edinburgh office.' + name: "Iain A Maxwell" + author-summary: "Senior Developer at Scott Logic. Working out of the Edinburgh office." picture: picture.png callan: - name: 'Cameron Allan' + name: "Cameron Allan" author-summary: "I'm an intern working on the foyer screen over summer, after which I'll be going into my fourth year of Computer Science at St Andrews." picture: picture.jpg masmith: - name: 'Matthew Smith' + name: "Matthew Smith" 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

" picture: picture.jpg magnussmith: - name: 'Magnus Smith' + name: "Magnus Smith" author-summary: "

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

" picture: picture.jpg hbedford: - name: 'Harry Bedford' - author-summary: '

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.

' + name: "Harry Bedford" + author-summary: "

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.

" picture: picture.jpg bborowski: - name: 'Bartosz Borowski' - author-summary: 'UX Designer @ScottLogic, technology enthusiast; interested in all things web.' + name: "Bartosz Borowski" + author-summary: "UX Designer @ScottLogic, technology enthusiast; interested in all things web." twitter-handle: bbo_ux - twitter-url: 'http://www.twitter.com/bbo_ux' + twitter-url: "http://www.twitter.com/bbo_ux" picture: picture.jpg jporter: - name: 'James Porter' + name: "James Porter" author-summary: "Hi, I'm James. I am a software developer working on applications across web and mobile. I enjoy exploring new technologies and experimenting with agile processes to increase team performance. Outside of work you can find me hiking in the Lake District, playing board games and discussing politics with friends." twitter-handle: null picture: picture.jpg fbromley: - name: 'Frances Bromley' + name: "Frances Bromley" author-summary: "

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

" twitter-handle: FranMayB - twitter-url: 'http://www.twitter.com/FranMayB' + twitter-url: "http://www.twitter.com/FranMayB" picture: picture.png clee: - name: 'Yui-Wah (Clement) Lee' - author-summary: 'Yui-Wah (Clement) Lee, Ph.D., is a senior developer in Scott Logic. His current technical interests in the industry are Java, SQL, and data engineering, and he has a background in academic and industrial research in mobile computing. Dr. Lee is a co-inventor of four US patents and worked in Bell Labs (New Jersey, USA) and Nokia (New Jersey, USA). He taught at the Chinese University of Hong Kong in 2006-2007.' + name: "Yui-Wah (Clement) Lee" + author-summary: "Yui-Wah (Clement) Lee, Ph.D., is a senior developer in Scott Logic. His current technical interests in the industry are Java, SQL, and data engineering, and he has a background in academic and industrial research in mobile computing. Dr. Lee is a co-inventor of four US patents and worked in Bell Labs (New Jersey, USA) and Nokia (New Jersey, USA). He taught at the Chinese University of Hong Kong in 2006-2007." picture: picture.jpg pkhan: - name: 'Parveen Khan' + name: "Parveen Khan" author-summary: "

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.

\n\n

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.

\n\n

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.

" twitter-handle: Parveen_Khan10 - twitter-url: 'http://www.twitter.com/Parveen_Khan10' + twitter-url: "http://www.twitter.com/Parveen_Khan10" picture: picture.png cakehurstryan: - name: 'Callum Akehurst-Ryan' - author-summary: 'Senior Test Engineer with 10+ years as a software tester across the banking, broadcast and commercial industries.' + name: "Callum Akehurst-Ryan" + author-summary: "Senior Test Engineer with 10+ years as a software tester across the banking, broadcast and commercial industries." picture: picture.jpg rgraham: - name: 'Ronan Graham' + name: "Ronan Graham" author-summary: '

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.

' picture: picture.png rgriffiths: - name: 'Robert Griffiths' + name: "Robert Griffiths" author-summary: "

I'm a Principal Consultant from our London office.

" picture: picture.jpeg rpilling: - name: 'Rob Pilling' + name: "Rob Pilling" twitter-handle: bobrippling - twitter-url: 'http://www.twitter.com/bobrippling' + twitter-url: "http://www.twitter.com/bobrippling" author-summary: "

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.

\n

I can be found on GitHub.

" picture: picture.jpg robsmith: - name: 'Rob Smith' - author-summary: 'Sales and Marketing Director here at Scott Logic. I have a passion for all things related to delivery excellence, and in my spare time I enjoy football, cycling and mountains (where I often inadvertently get lost).' + name: "Rob Smith" + author-summary: "Sales and Marketing Director here at Scott Logic. I have a passion for all things related to delivery excellence, and in my spare time I enjoy football, cycling and mountains (where I often inadvertently get lost)." picture: picture.jpg zrubin: - name: 'Zac Rubin' + name: "Zac Rubin" author-summary: "I'm a Test Engineer at Scott Logic, based in Newcastle." picture: picture.jpg sladen: - name: 'Simon Laden' - author-summary: '

I got into testing by force, I remained in testing by choice

' + name: "Simon Laden" + author-summary: "

I got into testing by force, I remained in testing by choice

" picture: picture.jpg dcastellano: - name: 'Debbie Barkey' + name: "Debbie Barkey" author-summary: "

I'm a Lead Developer at Scott Logic, in Edinburgh.

" picture: picture.jpg hsteele: - name: 'Huw Steele' + name: "Huw Steele" author-summary: "I'm a lead developer for Scott Logic, based in Bristol, focused primarily on .Net and Azure." picture: picture.jpg abagdonaite: - name: 'Auguste Bagdonaite' - author-summary: '

Software Developer at Scott Logic, based in Newcastle.

' + name: "Auguste Bagdonaite" + author-summary: "

Software Developer at Scott Logic, based in Newcastle.

" picture: picture.jpg msuperina: - name: 'Marzio Superina' - author-summary: 'Developer at Scott Logic. Lately I have been experimenting with C.' + name: "Marzio Superina" + author-summary: "Developer at Scott Logic. Lately I have been experimenting with C." twitter-handle: marziosuperina - twitter-url: 'http://www.twitter.com/marziosuperina' + twitter-url: "http://www.twitter.com/marziosuperina" picture: picture.jpg skondru: - name: 'Sai Kondru' + name: "Sai Kondru" author-summary: "I am a Senior Test Engineer with 9+ years of experience mainly in medical research and publication, and banking domains, with a strong manual and automation testing background.\nI have experience in leading test automation approaches for both frontend and backend technical stacks using a variety of frameworks. I frequently train others in the use of automation tools and languages in order to demystify the automation process.\n" twitter-handle: null picture: MyPhoto.jpg pdykes: - name: 'Paul Dykes' - author-summary: '

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.

' + name: "Paul Dykes" + author-summary: "

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.

" twitter-handle: null - picture: 'Profile pic for blog-1-2.jpg' + picture: "Profile pic for blog-1-2.jpg" sbreingan: - name: 'Stuart Breingan' + name: "Stuart Breingan" author-summary: "I'm a Senior Developer at Scott Logic, based in Edinburgh.\nMy background is in Java and .NET but interested in technologies across the stack." twitter-handle: null picture: picture-square.jpg hwilliams: - name: 'Herb Williams' + name: "Herb Williams" author-summary: "I'm a strategic tester at Scott Logic, London. I don't find bugs - they find me!" picture: herbs-gravatar.png active: true chedler: - name: 'Catherine Hedler' - author-summary: 'UX Designer at Scott Logic based in Edinburgh. Enjoys rock climbing, fungi foraging and comfortable shoes.' + name: "Catherine Hedler" + author-summary: "UX Designer at Scott Logic based in Edinburgh. Enjoys rock climbing, fungi foraging and comfortable shoes." twitter-handle: null picture: IMG_2198.jpg jhenderson: - name: 'Jonathon Henderson' + name: "Jonathon Henderson" author-summary: '

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.

' picture: picture.jpg jmorris: - name: 'Jamie Morris' + name: "Jamie Morris" author-summary: "I'm a Senior Developer based in Scott Logic's London office." picture: Jamie-Morris.jpg amcdevitt: - name: 'Adam McDevitt' + name: "Adam McDevitt" author-summary: "I'm an Intern Software Developer at Scott Logic in Edinburgh for Summer 2019. In September 2019 I will be entering my 4th year of studying BSc Computer Science at the University of Edinburgh" twitter-handle: null picture: adam.jpg asureshkumar: - name: 'Adrian Sureshkumar' + name: "Adrian Sureshkumar" author-summary: "

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.

" twitter-handle: null picture: Profile.jpg mmoxon: - name: 'Martin Moxon' + name: "Martin Moxon" author-summary: "

I'm a developer at Scott Logic. I like to break things and sometimes fix them.

" twitter-handle: null picture: IMG_20190921_204539.jpg awojtczuk: - name: 'Anna Wojtczuk' - author-summary: 'A Senior UX Designer at Scott Logic. Evangelist of User Centered Design & fan of good workshops. An amateur triathlete and a proud mum of two devils. ' + name: "Anna Wojtczuk" + author-summary: "A Senior UX Designer at Scott Logic. Evangelist of User Centered Design & fan of good workshops. An amateur triathlete and a proud mum of two devils. " twitter-handle: null picture: IMG_5028-2.jpg efiennes: - name: 'Elizabeth Fiennes' + name: "Elizabeth Fiennes" author-summary: "

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!
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: "

Senior Developer with over 20 years of experience. Always keen to broaden my horizons.

\n\n

Particularly interested in UX theory and Agile methodologies. Co-organiser of the Agile North East Meetup.

" twitter-handle: svenadultbooks picture: picture.jpg ssibanda: - name: 'Siso Sibanda' + name: "Siso Sibanda" author-summary: "

I am a Delivery Manager based in Scott Logic's London office.

" twitter-handle: null picture: picture.jpg sburnstone: - name: 'Sam Burnstone' + name: "Sam Burnstone" author-summary: "

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).

\n

Outside of work, I can often be found walking up hills in the Lake District and Scotland.

" twitter-handle: null picture: profileimage.jpeg mstobbs: - name: 'Matt Stobbs' - author-summary: '

I build apps at Scott Logic. I have an interest in all things front-end and love to share the things I learn.

' + name: "Matt Stobbs" + author-summary: "

I build apps at Scott Logic. I have an interest in all things front-end and love to share the things I learn.

" twitter-handle: matt_stobbs - twitter-url: 'http://www.twitter.com/matt_stobbs' + twitter-url: "http://www.twitter.com/matt_stobbs" picture: ProfilePhoto.jpg phughes: - name: 'Peter Hughes' - author-summary: '

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.

' + name: "Peter Hughes" + author-summary: "

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.

" twitter-handle: null - picture: 'PFH Picture (Square).jpg' + picture: "PFH Picture (Square).jpg" nbetts: - name: 'Nick Betts' + name: "Nick Betts" author-summary: "Principal Consultant at Scott Logic in Newcastle. I have a keen interest in technology, specifically within Banking and Government sectors. In my spare time you'll find me out on the road cycling." twitter-handle: null - picture: 'NBProfile (2).JPG' + picture: "NBProfile (2).JPG" csanderson: - name: 'Chloe Sanderson' - author-summary: 'UX designer based in Edinburgh. Fan of design systems and good puns.' + name: "Chloe Sanderson" + author-summary: "UX designer based in Edinburgh. Fan of design systems and good puns." twitter-handle: null picture: me.png isugar: - name: 'Ian Sugar' + name: "Ian Sugar" author-summary: "I'm a Technical Principal at Scott Logic in Bristol with particular interest in data engineering, cloud architecture, microservices and functional programming. Especially Clojure! I'm also interested in software engineering culture and how to make fun equal productive." twitter-handle: iansugar picture: 0.jpeg mmcalroy: - name: 'Martin McAlroy' + name: "Martin McAlroy" author-summary: "I'm a Test Engineer at Scott Logic in Newcastle Upon Tyne." twitter-handle: null picture: scott_logic_pic.jpg aburgess: - name: 'Andrew Burgess' + name: "Andrew Burgess" author-summary: "A Senior User Experience Designer with Scott Logic's London office, I'm interested in exploring user requirements, improving how teams approach solutions, and creating successful products that address those needs." twitter-handle: null picture: IMG_0604.jpg abirch: - name: 'Alex Birch' - author-summary: 'A very full-stack developer' + name: "Alex Birch" + author-summary: "A very full-stack developer" twitter-handle: null picture: abirch.png rgrey: - name: 'Ryan Grey' + name: "Ryan Grey" author-summary: "I am a Lead Developer based in Scott Logic's Newcastle Office. My main interests include native iOS development, software development processes and more recently cloud computing architecture." twitter-handle: null picture: rgrey-profile-pic-small-2019.png jspruce: - name: 'Jonny Spruce' + name: "Jonny Spruce" author-summary: "I'm a Graduate Developer at Scott Logic's Newcastle Office. I'm most familiar with both Node and Python development but am always keen to learn more. Outside of work I enjoy singing/playing guitar and playing football." - twitter-handle: 'http://www.twitter.com/jonnyspruce' + twitter-handle: "http://www.twitter.com/jonnyspruce" picture: jspruce.png ckoris: - name: 'Cat Koris' + name: "Cat Koris" author-summary: "I am a Delivery Principal at Scott Logic. I am passionate about technology and driving transformation and innovation.

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%-xeWqsMT0MnE>68P-! z&l}hGcycUsD+nZykIxP@el!^#5_#?>%PcUW@vD1Su|SXpJ-^$pOvz{z!Edf_)>6Y3ys4w@7%{%Ow@K^tF=}aTFz%n< z=DYLa=n)zS46iHxEN66rULT`Ab|AILEBeyz4B-e@#P(S}{#S7tEx_)i>7ob-ba$+T z==ABSdbsFUjN}ePW3?iY+cKOqm?I2dJHDy%8GoxLIN!tA=Rr4G?;-8C(u)4gC}lvg z$L!x&HbsIY3riBu76F4mPbQfi8dA7s48qEY0zH73hkL&PUS(sT+)mPU;*Fp09^K4`wW2@FWRz;!Gl^OlJH8u4 zZ>^0iMv$WlHhip%3#Vz#iPmCQVod41JE^r>HJac9r47L#5YH`dytXX1TOH?US|E0k zqFaCc89huqW50riiLva|ZuAO;Og04F*YoB7Z6mctE;W{&CoO{c$F4ox=AJuJCNV&KfO7er9OmCWCvBzB9Edi!u& zb?qJZ(mK~Oe}*D7N>lr4dkN6m$1LBuNrNzUA^rX zUT{0JN;6Q$D?$PVM}5|jZqMjF@#U;P7~YMoFZjf`%cwbS6lBkp49$*&s?!50GTBEy z{XLO`ShySlHD_B<1GD{n1~B9gY7=E<`tAwiGVwXtoDv5?FbZ2*80SkJ^l4poIaA5p z0-8%3Hl8SoZO!+Gz4kovS~3#xIxp5H(8)F7d)1vZ|4f>*=*$5-Uns15*)1AxHruDSGn^(4IKm*jBQOul^^gWwCfbpZjT?*Z)BFAg$Vp!l@L z&UWE9{Yr?m+ zJ*KFlN&6o`xQk@jY|oN8{7v*C;R1aT?Eqb?j0B3bM*Ti4N@U$a2 zzsbh6<*bdlS&&<+hxKB=?#x$jg^W5&@^h2mgmL|;@UFrEll)SQ^95%wWQ&sv=!u|Q z${)wrdQP`vHjE#o)B0Ox`@Z7p^w-lvlr=R4Lu{{ff{ONu(Ao3VQD`wVTi%rMqyJ9b zNqz;EJ*|6)g_vbI-7ZE+K`%JNkhVoez#pvCBRVCESvm)n>Prgkq|XfOhmmztxAu4b zg+3~Kxy;VpdTp8Ncu9j&R(%~%&FvF2n4ilHjH_y@!W;G08C$~aU1lqD^R) zoRFfn6Ep;o+X=q+(ya%kcE#n2Xq;d1z_Bfj8bSnbF#Fx=(}&zX3CI(H{wFcY{HfJ- zwyWgy?NHm`uhkIQbC#{C%~#$3(snCxfMA#2qIeZQcYqz$9n&^A3=0cYa;{0D&~Z(3 zKZf8@>M>ALT=tEW_ZdRco4_S`RaKJ9{N(x+L5;$pQ=xtnFunb1S4Ta{S6y6&2_7xwcTPIm`$YaRL{gK-RW|$v zPRvFAaGKS(B&TOh{EAJx(c;AT$u@!;iGHBnHZfy_J99S$pKchd+Faa;_fWN->X_(V zjlX`e_5$wZ#txG3+D`wXE%YsAA)xane&LJBHB2ODHl>QxIO7IWjvDl zN*T?y%S5Ken(aF8wE2in`B_5&oZ+L;|K$HRoiXT46yU``Pt5*zo#y|!LG&vN4XY{h z7g}3Kmx{=V=y_x0FUW)8>uUD^Z{LXDXXvrGHlQad`pjw&I3CU_N74WK#|oGTN#-AI zDZ!^h2^-6z9@#Dj%OHqAw~cy@$Q)kXFe);#-zaS6g9lIP%VWXueEZ#4@o@OSa3mFa<`oPH*pbOKHAuYmY+D94WK4&+n8qz{S1zy`X49GYVWvt(pL4 z7XLsws$fU%ss7z!SB1L^{m6$Uqc4l0Wbsp<+vioIFL@=32Vqt`%!1-&lxT`d9l(3S zyD3L`9DI3Z<5O2rQHxA z+3hPf!X)3vG^t1!M!zuKo!xLG)QwR|&0|xa$PJq>`r?Ln+HPFwR}uwgv7jOR_q{!K z;l8?|4&i=ET@FFR%v;hWMoS}qCyy7w25ScByBY!IU6@xEeGy&d2Y>U~Dor*+&tCpSNEub)Zz~ouCtXq zHAnlIDzvfFAUf2Y;f<^9m%Jrfzd2^8X#5qkr(4EoX>J>ee-2nE_tiy6aMSEUZlcVt zjZ{Nm<>>A+B)#gD0E>N!WCO>&uUylLyb7X4JA4liW}emik6{6P%P`S0&{@-%=k{~` zHwE_7WA?HG-q4;p)^qzyXE{rx>l%nt?-&D|J)^i;pGfgB~}ZGT0Oy(m7j0; zLOH24t;H;QJ5feE#lu*off+N2eZ)k6s_ye#mI1#{2TUD}`7mJc98sAhqcoXKS=aCC zm{Ff;tr#)?@NC*4b*ZF*HAfoVgC6!db^)4E>zR^KTsp^4jSzU&Qg9A=g3p3|hbQJq z(0WDC{p_sz@rA$i*3``#cYSJuY{Iri^TYr<9Wd!L}9Tgh*yJ)^9rauw(HJf|908} z=h8(vw;(-VQY5cp=&QWEmDt`j&w3w0 zNAmCq%2@BvtKRdk>`-oJm=#!`6A`c>m(;AX!cxsLHyRSfOz=unlw&n~$KT@~XWqu) zr*VtXNww*cp9IVUYD62LU(ARgaXo>xOmX#1i!I+Y;#?T7hqiZWbjhk) z#?~$}Njpf_o1+W2pT)prY-pXf^?UDNX}F1?5vKesK1jeys@3IxN&T16s-IPPnI4XEFK;Q9s>JLwws0AEAKQWZm5ALA z23{*x%O!uZu5|AsR%Nw{AJqiCVAe=Ud1q8EDmGr?T9dX zj5Mm@6UFxVOsrGBHSy!$Zh^Oc zo{7t-b7*-UdmBM0J#uhwb?2>9i&_(T+&35II88&@K2S+7ng(rt5I37x!{?j3A}h(} z!2~UM&*>y=v5xU$MPetBQ0>Gtv`mbTdX$3ElGCOmb=y{+%f zk9R@9IpQnP)c0y^>bAhX``bk?>!_ z`P#gR`AOC6U7T!t1Am$kk`OWdTkRJC)=`A!0r~9ydDbEyNA!KQ${ukzr@>u{(YB+wmcIH_m0S}X z-=W{dJ7|dQh*VoLfGodPvf_dloiOAJE?cYj8|t0q{4W1HO83R{tci)d`JYw`PSl#% z2aopF8x~L%V@|Y&-4FyB7{-qrpF3daZ)}o{sTkCx1dhcN3>R|@P)Je@V>6c@CNLJv zL3(n4PH>IA^#=_d5sr@^jL_?*vigt@Vp03jzrC9<+$oU0dQcjjy@pqATA5k~uLjBU zLw(MV9{)4LIz~s9EMLakXUf&;vY9F-<>#V2o^DvDHK?p-|7a+RHG^I1%N)H);$DB; z&^cMD*4sM0!ytd*^4XgVW+BU`Df{b(A;@YQw#~_srckNAO=q0T8V%iJn zGl^*i2&y;yEwf&X;1E+jVc;IQy8G>N_FJELFl~N0y-0JyDO2N)YEtc#SAD?J zYbE8Dcak__IAHKGHoy*vX34fc?{a`>oiqSWq-*_c-qbn6EqBcp|N7B6`@a4bOK*N4 zGk&aps_tj9p)Pa$m^7$6xJeK}4e%;sXn}+=^_MEX=&aVhK#O zX#2i9r<0iVuO%IaPd2SgUu{_>B52m_2t)&2Egk@WF zm2LRNgR#!4E0l^Ubf0IIBSLDp7MO{-NH;U`Lmxt5rZfd-pnd}Rmp1%UWsup*!BJ!7HM%nos#EvE(Z~`z1^CTl5|N(*4lqN%(p@!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(1KTi z*nTlf_9g%Bk98l>$RZOQ(od@(!=(yQhSQ{$X-<^5WbXcs^XWaE;v?wp_O?3Lh0*-U ze{$5JsR~DXJ+A}WAwqfr?OruMr5CUv(wsJW#p~B=$$h9}9cRMt;mk;%S&-I};Jq_x zN~B&fWM2T=rEp`+^@g^KGqAHFuzTyv8ChQUsI(5JLI;{a8lOxlg|S#a)|ve37K_W# zCW)ITY8=I>uI2BO@b@xwYudn2?V{jyTk>ivyDY{oEMjy9-w~+-v#$n|AfkQ_ErWU( z_2S^`(?O|Wf;I93+a2c@cA=j>2$=qPeerE918kUA*_>8Xp%+O)dwhAy=EsNKeNJ|h zR0LB7xJ3;EoZFd$Qtc0*MP1ih?+w*`LdR%08|c&1^*cN4gKq!}dP$Ylw*v%&A2h`H zx~pHoE(o*U0;^uBfi5 z`69-wS1L~g$|fMe{D7(lM|^Des{!QN&hppeVTS`Rb(2mNUH5;^{Sz;D`jN3$VQ<8q z9QX(Rlddly{r{Y(cPVUS;1I$|m36TRSmfk^Z00B;vUFdg@zGGleS+=BnoToabX~qz zUUSIsME{~fZhbuM(~k1QUFe;zUE})vJIUX;r!gl8&$>6vWPIiq)~M!-e9N^M{BixnrAtyR(^)-7&&)Mvs<_ms(#ntlN>S0}PcPQErOawX zs}lI2*_&K?KCuvG?C6; z3s_?QjH|#*I!-7Ih=J-~j@K6CKH3kHvm!l^GT)uc_Od*A_qrGq6HQ_NtnrBJ-KsE< zH>c^sC6p?rB52wVj!Fbqa)Z;Tg)ZlU=d=ZtZk6!2GZ74Kk3cKi`0A`-*RZ0XCQFY; z0Z1b0y3ai5zWqK!&hsQLg(cLyw;nNs2Nw`+_3Weqce$;~(xngC10(ADD$<~ekh7JMhD{>gal1pi?nHE;X% z_Ehxi>VC;M^NtEjg5esd5@fLVz&kBG&sXWQda^Kn7 z`+5I671MtPBq|kmrJXh_hEMeO8+u&aENgil3+;NcnWuH*ZJJg#69%4qUMO=mPnAbQ z{1P1{cMAV2`!J+#G^Q|=bLPfkizl54%dc+Hf2Q8ToegC~^XlmdkLf=P2U5JMHokgd z&j1K5EBIun<;QoR)q(bf^VE}^IceXO?rr^Wrl2Vo?2#ic|95 zYklQ9_K;wx%3qcdk%g)sOjJMnbgThL{r+BHh#D{?@1pCva!{&~u0f(Wn!9j&sBO@# zCUN((+=I5-xh_?(R2Kw~H~y142V}9l;G?1VsJl!RjEJh(jf`=Xa|bQg=ERy*9n(e? zaX=09hi;Tdai{S|u5zyM?&d5q2P8}YyLrePrOqKzEf!Rl|0q;gP@2K&G*v-6xc|}~I?%VF@WBmh1^0aVAuwVFShIQi*#*o|a#sQ2N?s%&76sJqbgt25f@ z9-EuM1k?h6=|9v-MSlqIWA9CpO8x0CB@rB1L?CL zqY7Re5h|{;JAv|O)gZLTVdG>JYr&C4Uxda_ZsewXhn6_pm~lLj+~w#+*hK^F-O?nH zw9ilv{;xH6{AS6HYcgayxC{!o{Wu+0@B7Ip>c^s$hcz={yE5v35>vVBzr_te=dCws zs6OJ|zR^D{H9}5D_^_P}(S-XhSZpuH*$F5s2WGJQe=L#xlLebODQmTLhSpjGlQZoJ zR}jv;mr_Hs{THbPx*1Eigeq^cCpxm`-y!AOVg33qOWkBhls*mAyxn4lv)nKMdd!MD zoPyk-&|!u}`#|YH#qagkjGa#qA@flM>dm-}GGbe9d45i*aNVCMsfvw2{E{J~ zCG}&T$L1X?q7#xPCO6zl=1isHbD+}EsVkyidX0A(rQt8g#`LaD8(&Z~1#-*;${A{D zr}W+_Te+Q+Wl!gf_wUSjygr9}kf_pW@2=j`WnZMuv}fY7!VvMBL^A&8!CRvk&7Ds! zKPm+jSwj-Vw^rU=ze$%W1`y;SL#8H09CEXD@KDdIO`O1Sa4BR@ioz;^IiQWCQT^j6U=h#KpOtAP`a%`V@_HXL$z^JiE*J z3AK0XBtic$wIWgL>TzoHn8rvh^sg7&kJ_}HR_njjxcCnb3=Uw$R;dSKzB{e4J)Y4| z{xa>~n%;|#D_U^>42k(XxIkGlm=E3?M6DBYe>%w_ovc<;GGZ%M4h^Ir)I6M_dO-LP zZpBf>z_q4;s#pE2(+-knz}xL@8h_WFUH^U;@78wLB`O6f4Om!#(1-?#0T#XpLj0Ih zQ&sh-oTP^i>}@Ld1$;G9N!!hvA8D@D)R%}&s8uQ(baE{fL;1p-wcwiWgxoqym&0>D z`YYT6aEOV^P_Q`<+o7`!#CtLx)~0^5ZpZ=i{j1%kWf{={zL2-pU%HuC<+BfqfO<4I zmL2qJ@oe<}8gx#vCfz7siv}CoQMGlAXWR9kM%{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|3e1ZY=dkme7^0@d7y^)oIm`zvFPW#tG$^UzU0{=>m zGuM*yVPax_t)F254pAa5mX^?^NXs;-O_x-B)6T&m{Tn}5o% zW0dnAQlctX00rA{=8ju!p=g3V&J)(Y-#M&M5$|V9 z_d}7tsc3)!x102k0~RN+zXFrq6p$0Mcol8p!_F|jKa`=G0)AufF7$SxHiVu32X&N_ zuP%w(e%(L#vJpe?CrdZ29e-6RPi{J$Al`HlTa!0frr)YRn+UmB8MLnHxBbm^y6wze z3hC`N$5Pt)DXTQ~Y;=K%^Xw|DxYG>3pu6U+(44?XU+Pi5(uOiG)iFlYx4Y!G#KB<% zTdeiednpVdv3AN)(AHsZUUc1f)vfhjJFey4df1@P83_ZQpr7f}q3&fTZmAZ-s#Zh* z;H-UEuh?hae1P`F-d{J|CX;c}#-Tg#Z6#~^;YU3v>RaFTM{Qu*tshGO@)EG+g)bCR zUbP?-0#fUIfF26$C&`PpMb`L*(+<9FnIfdTV={fb8&lRoXqVSz3tRi@P(0V~+dH&X zSxRrSvuw7IRZUUSCkpFzjB(-E4xiTd5jXMz{8$iIdhXyRGdl!{#jf|l9(s~zza+0| zc67XL8$8r$b9}Zyr*&;>Ou~4^LBVmVgM7VBUNWijtx)1<)DP9P_K{PQS4t-j{YSj^S z!JBNc=4Y0AP^Sk^Czw!~YwXH9QSA>PVy!WXGc{y*ET+x*oZWDptF=~>wvAuk()PUy zP1-6ByBtJWcYC7j9Pcy5y2i4CP{hS*|9t1EFDjyW<%oXxkK9|1IS_K%XWsp(t1G7V25mTs#(k-g>{9XU}!# z;Y!7P&7LGvue&iwb6H}gDM$VM+kh$O(Q$Cru-NaxaUH^mZZQJ|>)2U;7 zRN0ip6|Cq|dadWCZeo%^w@SzBOadRh0~+FlYyGg%7fT}4P2QP1u*RG5oi^2t$DtqZ_Q0&el!`*4Y_k@G$X z^7cZOYhxdQTSu4nxL{WY>)TZ1D2708>2;RFjO+iKwOSV~^f*ZkkpWPT{z8DA;g{gVb z_d9aYn(mjXsB}LI_Xl1B`a%0&&Z6^BJyB(%EB%|&Epq{c+dSVF>;usabftFB@|>FB z-iMc6j?l~07BRwpZtc%3_k>P%!(aXXI~z#4c#C1SVS5;UYi&Y}K^efTU6JV2DB$MgJ2NX=tUl zcD;2tF-I7Yq~94Awz;!#26N4&@O(EIN*kWzjo`Qp-S)1>50H=1YgYPXmBbDS4L6Te zZEyIDtVCvqmwT2r!rq16%uzjU)2l=!DmqLug9@lxE0}6XkFimR+7~YwM*tp{P;_$0 z_oi4A(3o2?<6n=3?s)M%M_I4QLcP>vDXwh~G{0qR(I^7_YX@aTZ|cE*=d^pFhFgYkRyws8SA$*8VhpARVr67E(fEvP1IA> z%3$3Ho7vBuMQUY}EpaaSXC684Hx$3fGk4zbGRdWP@RJjnZ^qy3-rD$Xm%ZC#V*LEK zO{To=9Ds`!zw#?Kfl69x3)mOQWKp1bR}*)3}gv5)Oq8#EV0(F zoDX7W^Fgci_GMY4CZWp5?RdYG8c#>jpLTD*WRmwuw_*QmlAd2-LAT5PNisSD=o^e#}QCQjRSn{CAS(Jg&1M+mO~5c`HA@ z4+Mh+4{~&jQ`t1~z-*ec4M&$U@;-JjOpBaY&Em$dAZL0f``{&A*ao&XbIC<2`p00{ z^DHa2oAH6%2?dq}C|IlsF8;$bs56>~eBcBr&o%SgbFVyT%Ruz-pv$v2>T%rmQ*}2z z+N!ye?LIP04>tV0@t3f0^r=EmQ1?Fl`~}>2#s?d*i)^RINI?yrlsdzJifgM;5(mF{ z*A^ybAjM#c_;t-b6!~BDHIK~cd7CvsNLpUrs3ax0;Ek~3GLZV7^xfFL8k*{+M*ExK zU^B2j|EOMy$aaWy9^5>(yj;{jKW?-%lF0pz*d^J#W9w+@ozKLBb^Ki8`~~A=+!}#F z^r6qRdf+@v$=z%nd2?UCHWMJwk$B35aS$L4%o&gUEIVQaTNfm~V~ zk*F-hzDP$y{t_J3Gpl|wv$aGNvk`LK#@v-;|5Cqv9!e;1RJR%|1Q za)8%0>;;JGx7cb6N}5;FLQ*%onv(S)7APQ*N$KPI_7TZ|g%2Tg+R{9D*I z!Eb!sqM4`zV3nBEe#q+79_TP~*zAtbWKY69Ko0g%PV1Rr&TU6*AuwZ&3Giy@bgk87 zKKmbQ0KdlY0J=o+MycrfbLcu+Ho3h+0W`NYik`3%o8y-#c}~qS{B-Ya$Kxm7%>FJA zeO$e-*e*jw@DA3SaC<{5HV`1GUUPi*2_Cx0$8t!eX!{u}>H;;D32+L4JhLH*NiZR| z0>NgImuR1i!V@S?$t{pX)`W}-gbXV8*@ceyh}xrX*x4O@+MzpgSd$yAZanznFmHp9 z)wanR@7;Ba!1`a#c-(;7Zr}|^b>(!O;FUJDaPD=L(G$4ZI-#js?XJ;c2Ew%jZPoff z0}*#jsopqMcQqxdV6MHoHLV9FN-g^WD`xhx-KUysE}Y&5s*f74-T4C4oAlj|Skt5N zkWjMdW_kQvvZMy2+wDl4Y7^gH9*REH{$e{UN$o=Z!hRz^Ynslu zikx}wCS%RjF-9lXz~9Z-<2$jn(tVs>R+1R{Hhw_y2&|H)^p8Wv8{w@3(G@EmynW1_ zPavj?e>-=7*Qu9wk>zbOuSP)?mRUBur~5azs6@n(@VaPbxANndRT1XRvg{6tP|(l` z5%8R$Bzbb3_ 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 zAvgwP=1Aw$fmEar70OvPa=Qo84rwx z$ez}AbI2w5#eT&`MjjJM9eVU%NP14ldXk@`by_>WloEzF<8deh7G(C%zBXm36T)G= zpbUxQE%*~BOFA@+0Cc`#7wQc_-#bbPW3xhz2O*3dxRg?WD&|d97+>R>bH-scpJ-d1{Z|4wza>yUwiz=) zViVdTH8piUV8b4PaOviJHgVaN^H$Dfi6A$@(E!(cc+LWEw2tm1tnD1-_{B9*l~_YzKV_P2D&)sE zt~J~zs!a@+=ej*^f;a57iUObf3;DU*o%iRg%}E=egMIGq6=%fMH;<;3Y~pI~wfh?r zWr(#;eqmI$obr|elvY|stV2faGa%R26mhpgdj3Eh&(T?+psgWT{m#LZx4Y39K7WCx z0&Sw`(1^7HFdi|TXM)0CN88OxbVm@@Yw9of%@OHzlL-7qD=N>#d?bitG#Y~vRE;)h zm;~cZ9P>{AdkEM3@p;F;`lBYW$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_&6_np~X zxlu6Mc)(Uk*sqbrB&8O;;?}`%XYWRca+iwzv!Zp3V!rA)i^gNeGmJ=C-muDFtqT%0 zCQC8OJf>qqGxFpTCwooYE}@oXUKl<<&{xyic{EE5eE|RBemB{N<7I>!U$2$g_~Tl? zRt5Mog0RCs7{xpHJYFTwGRUo^Rndp){|ucFKbOWtu?HPTiC_2MCN6#7DCg}g`ytYpz=d9+70)P4)Xy6WgoMgH`##(~k5ar()WS62|Dc!$NxOJ^TuA4pi2_f!de z-4Ql*oM`(ed;0b5!++I}uaNRAXvGC_DBdktWFB{UP^YRu7|MQUAI z@Bo`EALh~Ej`oxvTozY>6U(*mpQ;FQ`H z(EYu7Mxnxvc4Fi*>zeGjhWdGa=4h+)ddhslPE<}kCtH}P+A3U|6l#B19WTKzUjB76BW6 zT79GM*?4O_5Lu5p%|TN){5ZW{FH=ZL$mP`)-@$iHD;a6RPZ8@r->C05hM9>WG-I{m zrqed&xNr7hk-&9>4I1ZLDsU;I{VTVFHY;q4rq)Aw6gdy#_|YIiV>AhkvuLqt<4@_u z)I6_3)KE8Qdc+<9d)v1Vy!i`g_&W{Qh6b4}{-E5yel!iMdZ7SUS7Mimo#raSXcJlz@FDvO5h^@LIOZ`@yZTQZ`sq;7=%afVgyN z$JiALbEq$%=1b@PcrD&jCSK=PBpuEJ-#8|#81x|FDn!>QHL5`DFc7)3(hLS0Mg>BN z1)~}J;(vg6a#W^bnix7bZjcr9Q{&gPg+hr5s(xc?tJsA^VzsmRHK13|iilHNoU! zQ6`F>HwykB{QZVMShrE)`OhhGq6Ag?n8jS|^)O;4H5(t^%gZHQe{BaDUhzH6!*2jC zba>vUjQ?u=uTkn~Hi6sR<~T{@c5tC5xUJyGSy!m)r;)hv^`~HyF$iL^GljIBq8n?M z;R|tT@vvO%59oVzr`U==4igWeomU*|O<8aiC?Oj*;y&$ARmr0zes)t7{J!aKO|zoO zct0!nVQ9o}EFg{uv{#HiG{0!FgJgu+W9$CT2OG9l?*tqLYrNJ!m++pjI{C8IBIh>!ZLDQ6h+Q+)^N z!Mr6ZwaPfHcZ#Lepn{Sb%l1!NI-fl5MRaRSoXHWPQ-VSZ0bSSwH;k5?X05&h*Gu1w zFH;5zz*8MHs(W-QuWyagsGs>Nj@lZi6Z#|F$Yd!i<0f9b>3UfvIWeKmwZ zKW5D8O5FtuuMt-saMmWq0~Ze&AI0|t(5#p>mTtKL3A4~B7;tp~mIT|7pRjo^YC`N; z^JN&EA*#PXd9+Ovqw!RZefto(5ba1xQlKNLkFwsZ)KCqPe{H#cEkeR@(ww^IjO^-M zr$MeLO}?pbaFQg48`ki=ht&ncz_1Pr zsKSkyb$?bs+uADmm-pJzM8%&V=?3*kNQTy}!h@8w+q@uNdO(+x$*s&h;kL%o;n?we z6!p2Sg?i4Y%j}ksk3OO$P(wl3rK2oz6Z$|g=!qpC-HC=`d zM0*g=wtsPB+&vxICcUovYI>;mt0PV;gK_qlY^yairK>&x8%JjKG5)SWl`d8A0_9ib z|B-Dvr0d@1`pl!6s6@{BfDI^($G)bF)LDQU)rWY>Xq`IgweMb=Qg^xf@$2s1bCI+w z9+pWG3PewBW`56_1wMeno)YW@>*m&={W~KT-m`SpBV+HfS!lVK=(&kp(Y#q+D>_-mm-Cskh%% zRzyBmUj=3sex}?G+nK?3Z7Ih<4^HR~ZHHUad{)pof>q`_Cf5j!oC`ejsiDX8gBPl( zBc1Vx8t6MW)E3%qud0x-?;L0CDhg^6PTTK5J|g=J{5vm9Dt+t$KJ zaa9Dx$c;bz@cF_{;bs-y(?6;}dTYyPmYkrRM9Ug@1Xr3Cqh^1rbaT)X-i|PXZBg~Y z=~wM@Ybno{Jij`kg~HxH>OEoT7Rfb3oR3iuHwmr;6SoD-eYN04D|kRl0~P!-KS) z=l77tsii(y(8{Z=@6%Mafzo$2!L3$bfmc^^P|d(UDZs}AeJSkT=ytug0@vqK?SzPkg~M+(@$+ z?A#D!#>gASEIBFF2xC_n6RI$0jlRrfa{N@aRa2GQjE_s`tQ^s~+UQ%PAG>b0ENM+% zC`*Z6{~C(7JH9^Cju;w?Ux1k$&~rWHh@ z;KTg9zu+NfTSy$#)!~5!M;vT3D0KreovS6h7H7X_w=>&NR(;j~GEZ>2uk0^oz2U&p zmWx+%tQl<4$3E(ndthAq`EjjzaM zx!%I!aR)+~^>f4OLvUO!`9|P%6&Np>u?;wEo3?{__qt-GkR|mVzo~P%_(HR$#x%0B ztnuMc?9DeRVp4b`VY)T3^7yV9&0EymkG2kR1^7#D^yXrt6pH&|b&gS8Y2-^OxCn`Y z)3iIdm>bsZGcPI;HJ==o5+Ez_2)9=T^+D9gd0SP#2}Z4lAqLtze5qkTo!H<qR2r3OB=&v^7pNPuU$&>3OfzDbVFxDan1{a$;R6n zjV~0A7tzQ?;PZL{Sq_*t7f*A>52g;cHn?oVes2j6z7PxeQSP` zwj798UQIc>0kP-* z>Ek?uny>;m9;&4b5o@c#$`B`<802b$2!@kk0h6W)RoSRPNT87=OGywAP-YRTfHjP8 zM5GV{Nmw2cDJURI5<(J26weSK5?Mhq=%fA8-r0VCU*5gZJ}&GFu(AtYm3oI;!Cv_>~H3S7f54X2*gqixsHLPpQ~Kr${IE2I#?}}Gj92q4CJvw1*j3m)xHyVqs)Y)hn7&9N zlPknYgz489?nkqQb*e;P!Bg;y!Hy_6Bi7d^@Qx7UiqtI>NWY=71IbJ}f0-=*?1r&(8=fh0u3 zh=Qm+AdG~&uo37J3f9nG8C#Owl?Sd&3BP?anp7`MN_LwF=1g_kpJQLC<}Q;}E9QHK=~i})+HSgT{Bb*v*BN{8oJjGh1l_oIFcXZ42DMU6Zq z9aFLbZ?#B!;GW;P)RRd@)!j9OYNr!t6H|Z3$CS4TpewWJ1}*S zQ?@*ZailEFTe!@J$-ibD>ID;sjNtg~FO?QPPUw}2<^*(1X5q7b?zYOTn!s#Ze=)D> z^`+s65Z7|7^yBlJ^(fKKPq-*-F+Yz?vFjrQm&!(UwI^CCMpt4t&tjf(>-T2)80$o59 z){^<&E2#!XI41!pugO!$?yTTPKj3T~$^#JbnQbSXjYgVFgr<{@v%%T}c6D~3f9QCV z*m7atTGAu~*ci-Ck0KkI;ts z+!xmqG@USKBP7d|MJ?}|;69A!$^N)9H0ouRR8LW(r+46uW!pq V;?n(As)3pXad-W}rOxR>%Ab9UK=l9s literal 0 HcmV?d00001 diff --git a/gsingh/assets/moduleResult.PNG b/gsingh/assets/moduleResult.PNG new file mode 100644 index 0000000000000000000000000000000000000000..04a5e614c5d23c0bf262f662d8967e88327fb6dc GIT binary patch literal 17483 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 literal 0 HcmV?d00001 diff --git a/gsingh/assets/naiveResult.PNG b/gsingh/assets/naiveResult.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f6ab84160cf11c13bbf97a4d26a8e463d865a33c GIT binary patch literal 17770 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