{"id":127,"date":"2024-03-17T22:09:47","date_gmt":"2024-03-17T22:09:47","guid":{"rendered":"http:\/\/www.fifthmorrison.com\/?page_id=127"},"modified":"2024-03-22T11:01:44","modified_gmt":"2024-03-22T11:01:44","slug":"experience","status":"publish","type":"page","link":"https:\/\/www.fifthmorrison.com\/?page_id=127","title":{"rendered":"Experience"},"content":{"rendered":"<h3>February\u20192020 \u2013 current \u2013 Sabrefish Insurance (Front End Technical Lead)<\/h3>\n<div>\n<div>In February 2020, I began a second stint at Sabrefish with a remit to evolve the front-ends further as well as integrate new functionality. This initially involved the migration of AngularJS 1.5 to <strong>Angular 17+<\/strong> via <strong>Typescript<\/strong>, managing state of vast dynamic layouts using <strong>RxJS<\/strong> and other tools for complex Java Underwriter and Broker Portal applications. In addition, I have been <strong>leading<\/strong> junior frontend developers; building proof-of-concept tools; migrating the <strong>Protractor<\/strong> end-to-end tests to a new <strong>WebdriverIO<\/strong> infrastructure and building a live <strong>React<\/strong> based Style Guide that also provides internal and external developers with information regarding component implementation (JSON model examples, documentation, etc), visual styling for tester reference plus standalone capability for demos and product management usage.<\/div>\n<\/div>\n<h3>June\u201915 \u2013 January 2020 \u2013 Sabrefish Insurance (Front End Technical Lead)<\/h3>\n<p>My initial role at Sabrefish was to take 2 large complex Java web-applications with legacy HTML from 2003 and give them a contemporary front-end design and <strong>infrastructure<\/strong> overhaul. This included a full new FE stack of <strong>AngularJS<\/strong>, <strong>Bootstrap<\/strong>, end-to-end tests using <strong>Protractor<\/strong>, <strong>Unit Tests<\/strong> within a <strong>Karma\/Jasmine<\/strong> suite and processes managed by <strong>Grunt<\/strong> and <strong>NPM<\/strong> at their core. I developed a core render engine to control the <strong>MPA<\/strong> flow with a &#8216;shadow DOM&#8217; based model, with many <strong>components<\/strong> designed for maximum reusability. Consequently, hundreds of pages were converted overtime across the two apps, with additional functionality added where required by clients.<\/p>\n<h3>Sept\u201914 \u2013 May\u201915 \u2013 Qmetric Insurance \u2013 Policy Expert.com (Front End Engineer)<\/h3>\n<p>In this role I was helping to deliver 4 new apps whilst maintaining one current live site within an <strong>Agile<\/strong> <strong>SCRUM<\/strong> environment. Typically, in teams of 6 at a time and rotating depending on overall project milestones, stories were managed using Pivotal Tracker alongside a traditional card based wall. <strong>Sprints<\/strong> were two weekly, rolling through familiar stages, e.g, planning, developing, Q.A, UAT (<strong>CI\/CD<\/strong> via <strong>Team City<\/strong>) before production deployment. Predominantly the role focused on front-end work within the apps including 1 <strong>AngularJS<\/strong> and 3 <strong>Backbone<\/strong> based projects. The Back end stacks were mostly <strong>Java<\/strong>\/<strong>MySQL<\/strong>\/<strong>MongoDB<\/strong>\/<strong>ElasticSearch<\/strong>. The front end processes were managed using <strong>Grunt<\/strong>. <strong>CSS<\/strong> pre-processing used <strong>SASS<\/strong> &amp; <strong>LESS<\/strong> with <strong>lodash<\/strong> templates. The first part of my time there was centered around building new components for Home and Car Insurance, quoting, purchase and management. The second was very much focused on performance within these apps involving a lot of refactoring of the early development work undertaken by my predecessors in anticipation of new features coming up. <strong>Testing<\/strong> technologies included end to end tests using <strong>Protractor<\/strong> (<strong>Selenium Web Driver<\/strong>) and unit tests via <strong>Karma<\/strong>, <strong>Mocha<\/strong>, <strong>Chai<\/strong> and <strong>Sinon<\/strong>.<\/p>\n<h3>Feb\u201913 \u2013 August\u201914 &#8211; CNN\/Turner Broadcasting (Full-Stack Engineer &#8211; International Lead)<\/h3>\n<p>This role required me to lead code within an <strong>International SCRUM<\/strong> setup including 80+ developers spread across the globe and many timezones. I lead the hands-on international development alongside 8 U.S based devs. Once we had developed the core codebase beyond the U.S centric model, I then also evolved the code further for full international roll-out. Subsequent to that, all the other developers would roll out features based upon the guidelines put in place.<\/p>\n<p>The <strong>GIT Flow<\/strong> branching model was used via <strong>BitBucket<\/strong> and <strong>JIRA<\/strong>\u00a0to cover the typical stages of a \u2018story\u2019. Individuals took <strong>full-stack<\/strong> responsibility. After tickets were assigned to our queue via the SCRUM Masters, our hands-off Technical Lead would designate the work. Responsibilities included pull requests for code reviews from peers, typically one from my immediate London based team and then one from a architect based in Atlanta. Here improvements and issues could be ironed out before work would be merged into our \u2018dev\u2019 environment via <strong>Bamboo<\/strong>. Through Q.A team co-ordination we would then promote the code to a Ref environment for further testing using the acceptance criteria created via myself and the person who created the ticket, typically the Product Manager. U.A.T was covered at this stage and if accepted then the code would be promoted to the remaining environments, prod, training etc.<\/p>\n<p>The bigger projects covered in my time at CNN have included:<\/p>\n<p><strong>CNN Expansion<\/strong> (www.cnn.com)<br \/>\nThis was the primary reason for me joining CNN. This was a full-stack role. The \u2018top line\u2019 technologies used were:<\/p>\n<p><strong>Node<\/strong><br \/>\n<strong>Express<\/strong><br \/>\n<strong>Restify<\/strong><br \/>\n<strong>CouchDB<\/strong><br \/>\n<strong>HTML5<\/strong><br \/>\n<strong>JS<\/strong><br \/>\n<strong>Mocha\/Chai<\/strong><br \/>\n<strong>CSS3 via SASS<\/strong><br \/>\n<strong>DUST Templates<\/strong><br \/>\n<strong>Grunt<\/strong><br \/>\n<strong>Bamboo<\/strong><br \/>\n<strong>GIT (BitBucket)<\/strong> mono-repo<\/p>\n<p><strong>CNN Formula One<\/strong> (Data tool and responsive website for 2013 and 2014 seasons)<\/p>\n<p>CNN\u2019s coverage of Formula One Racing. I built the back-end and responsive front-end website; Technologies used were:<\/p>\n<p><strong>Node<\/strong><br \/>\n<strong>Backbone<\/strong><br \/>\n<strong>MongoDB<\/strong><br \/>\n<strong>PHP<\/strong><br \/>\n<strong>HTML<\/strong><br \/>\n<strong>JS<\/strong><br \/>\n<strong>CSS3 via SASS<\/strong><br \/>\n<strong>Grunt<\/strong><br \/>\n<strong>GIT (BitBucket) repository<\/strong><\/p>\n<p>Other projects included work on the CNN Breaking News <strong>Python<\/strong> tool, Brazil World Cup coverage, the Oscar Pistorius trial special, re-skinning of the 2013 website, a reusable twitter module for the CNN CMS, an automated magazine templating tool and many more.<\/p>\n<h3>Nov\u201910 &#8211; Feb\u201913 Plus Two Digital Agency (Head of Development)<\/h3>\n<p>As an active coding Head of Development at Plus Two my time was split between leading two teams of developers, liaising with current and prospective business clients and coding on a variety of projects. Projects varied from prototyping to multi-sprint 18 month agile projects. The multi-platform PresentiaFx app was the main focus of my coding time, which was Flex and later iOS native codebases. Clients included Virgin, RBS, BP, ITV, TNT, Blackberry, Del Monte, Radisson Hotels and many more.<\/p>\n<h3>Mar\u201908 &#8211; Nov\u201910 Informa Telecoms &amp; Media (Senior Web Developer for Rich Media)<\/h3>\n<p>During my time working for this FTSE250 Publishing Company I worked across two teams; One that dealt predominantly with 50+ Websites for events of various sizes and the other which dealt with their 2 subscription based <strong>B.I Research products<\/strong> (both <strong>Java<\/strong> based). The majority of my work saw me building and maintaining interactive site elements and company tools built with Flex\/AS3, using PHP &amp; XML for server-side services as well as HTML\/JavaScript based products where applicable.<\/p>\n<p>The Research products required me to maintain the front-end of the Java projects ,working within a team of 6 within a classic <strong>Agile<\/strong> <strong>SCRUM<\/strong> environment. Two of the projects were based on the popular &#8216;<strong>Spring<\/strong>&#8216; framework with the other using &#8216;<strong>Tapestry<\/strong>&#8216; and version control was SVN and <strong>GIT<\/strong> based respectively.<\/p>\n<h3>Dec\u201907 &#8211; Mar\u201908 Freelance Contract Web Developer<\/h3>\n<p>(Various appointments via agencies and private work).<\/p>\n<h3>Sept\u201900 &#8211; Dec\u201907 E-Learning Developer &#8211; College of North-East London<\/h3>\n<p>Developed e-learning tools mostly in <strong>Flash<\/strong> and designed, built and maintained the Music Technology Website. Also <strong>Lectured<\/strong> Web Multimedia and Music Technology up to degree level.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>February\u20192020 \u2013 current \u2013 Sabrefish Insurance (Front End Technical Lead) In February 2020, I began a second stint at Sabrefish with a remit to evolve the front-ends further as well as integrate new functionality. This initially involved the migration of AngularJS 1.5 to Angular 17+ via Typescript, managing state of vast dynamic layouts using RxJS &hellip; <a href=\"https:\/\/www.fifthmorrison.com\/?page_id=127\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Experience<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"static-template-page.php","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/pages\/127"}],"collection":[{"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=127"}],"version-history":[{"count":3,"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/pages\/127\/revisions"}],"predecessor-version":[{"id":135,"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=\/wp\/v2\/pages\/127\/revisions\/135"}],"wp:attachment":[{"href":"https:\/\/www.fifthmorrison.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}