Skip to content

Instantly share code, notes, and snippets.

@leefreemanxyz
Last active Apr 13, 2022
Embed
What would you like to do?
{
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
"basics": {
"name": "Lee Freeman",
"label": "Full Stack NodeJS/TypeScript/React Developer",
"image": "",
"email": "lee.freeman1@gmail.com",
"phone": "",
"url": "",
"summary": "I'm a Irish/British Software Engineer living in Amsterdam. I am currently developing applications using Typescript, NodeJS, React and GraphQL and Neo4J (and writing lots of tests with Jest/Testing Library/Cypress). \n\nBuilding side projects with the above, Docker, K8s, MongoDB, Redis and Postgres. ",
"location": {
"countryCode": "US",
"address": "Netherlands"
},
"profiles": [
{
"network": "LinkedIn",
"username": "leefreemanxyz",
"url": "https://www.linkedin.com/in/leefreemanxyz/"
}
]
},
"work": [
{
"name": "Passionate People - JavaScript Engineers",
"position": "Software Engineer",
"startDate": "2021-05-01",
"highlights": [],
"summary": "At my client VodafoneZiggo, I have:\n\n- as per department-wide future state architecture, implemented a BFF layer using NestJS and GraphQL. I deployed this in our Kubernetes cluster across our DTAP environments using Helm templating and GitLab CI.\n- rewritten our BitBucket pipelines to GitLab CI. As part of this rewrite, I optimized pipeline times, integrated our Cypress testing into each pipeline (parallelized w/Cypress Dashboard) and enabled one-click deployment for branches to all our environments (short of production).\n- reduced bundle sizes for our React SPA, which reduced initial load times (by roughly 75%).",
"url": "https://www.linkedin.com/company/passionatepeoplenl/",
"location": "Amsterdam, North Holland, Netherlands"
},
{
"name": "ABN AMRO Bank N.V.",
"position": "Full Stack Engineer",
"startDate": "2020-09-30",
"endDate": "2021-04-30",
"highlights": [],
"summary": "I worked on an internal application to visualize the bank's interconnected applications, activities and organizational data. I wrote Cypher queries for our Neo4J database, import scripts and APIs in NodeJS and front-end components in Vue. \n\nAs part of a migration to Azure, I took responsibility for containerizing and deploying our component library in Storybook to Kubernetes via Azure Pipelines, and used Helm templating to setup feature branch deploys to help our UX designers as part of the review process.",
"url": "https://www.linkedin.com/company/abn-amro/",
"location": "Amsterdam, North Holland, Netherlands"
},
{
"name": "ERIKS Digital",
"position": "Software Engineer",
"startDate": "2018-08-31",
"endDate": "2020-08-31",
"highlights": [],
"summary": "I worked on an internal sales tool built on top of Neo4J. I was responsible for the back-end API (NodeJS/Apollo) and React/Typescript frontend. The API is inferred directly from the schema, and API response types for the front-end are generated from the API (end-to-end type safety). I wrote unit/integration tests using jest/testing-library and e2e tests using Cypress.\n\nI also helped with data modelling, loading scripts written in Python/Cypher and I made all these services available through a Docker-Compose file.\n\nOther things I've worked on at ERIKS Digital:\n\n-\tDeveloped and maintained a suite (5) of micro-apps using React/GraphQL/Typescript to guide customers towards the right products.\n-\tIntroduced a GraphQL middleware server using NodeJS/Apollo/Redis to knit together the team’s back-end REST microservices and provide a singular interface for our front-end applications to query from.\n-\tContributed to the shared component library built with React, Styled Components and Storybook.\n-\tWrote (a lot of) tests using Jest/React-Testing-Library to ensure/verify behaviour and prevent regressions, and participating in code reviews to maintain a high quality of code.\n-\tParticipated in all scrum activities to refine tickets, plan sprints and ensure we achieve our goals as a team.",
"url": "https://www.linkedin.com/company/eriks-digital/",
"location": "Amsterdam Area, Netherlands"
},
{
"name": "Aliens Are Among Us",
"position": "Web Developer",
"startDate": "2017-06-30",
"endDate": "2018-07-31",
"highlights": [],
"summary": "Over the past year, I have:\n\n- introduced the development team to React and encouraged best practices for working with React itself, libraries such as Redux, React-Router and Reselect. \n- drawn on my previous experience in e-publishing to build useful features for our in-house eBook format and online reader. This project used XML transformations, Node conversion pipelines and Ember. It also gave me chance to try out browser APIs like the MutationObserver API. Pretty cool.\n- built features and fixed bugs in a live-events application. This project uses javascript/jQuery and D3, but where possible I tried to apply some React-like principles to improve performance (e.g. comparison of previous/next values to avoid unnecessary DOM updates).\n- rebuilt a client's front-end from scratch with React/Redux/React-Router/Styled Components to use the latest best practices and ensure they have a solid foundation to build on.",
"url": "https://www.linkedin.com/company/aliens-are-among-us/",
"location": "Amsterdam Area, Netherlands"
},
{
"name": "Self-employed",
"position": "Freelance Editor/Content Developer",
"startDate": "2016-08-31",
"endDate": "2017-03-31",
"highlights": [],
"summary": "In this role, I edited and, on occasion, wrote short online courses for The Open University and FutureLearn. These courses covered a range of subjects, including histopathology, customer engagement, geology, health in the ancient world, teacher training, logistics and leadership.\nAs a result of these 6 or so months, I've experienced what it's like to work remotely and had to further develop my communication skills to make up for a reduction in face-to-face time.",
"url": "",
"location": "Amsterdam"
},
{
"name": "The Open University",
"position": "Learning Media Developer/Digital Development Editor",
"startDate": "2014-03-31",
"endDate": "2016-07-31",
"highlights": [],
"summary": "Over these 2 years, I worked with academic colleagues to develop courses for the FutureLearn platform. My day-to-day role included:\n\n- briefing authors in how to write for FutureLearn and providing feedback on initial drafts\n- editing material for house style and consistency\n- writing briefs for artwork/HTML5 assets\n- documenting internal processes\n- acting as a principal point of contact for courses I'm assigned to\n- proofreading courses before they go live to learners\n- reviewing and responding to feedback from critical readers and FutureLearn\n- mentoring staff who have yet to work on FutureLearn\n\nOutside of the day-to-day, I also directed video production of course materials, created artwork for my courses, developed Word templates to improve the quality and consistency of handovers and submitted bug reports to FutureLearn. \n\nBeyond my FutureLearn commitments, I provided support for The Open University's XML workflow system and in the production of alternative formats (principally ePub2). I was also the OpenLearn 'champion' for Digital Development Editors in my department and sat on the Editorial Best Practice Group.",
"url": "https://www.linkedin.com/school/theopenuniversity/",
"location": "Milton Keynes, United Kingdom"
},
{
"name": "The Open University",
"position": "Copy Editor",
"startDate": "2013-08-31",
"endDate": "2014-02-28",
"highlights": [],
"summary": "For about 6 months I worked on the DFID-funded TESS-India project, which aimed to produce primary and secondary level Teacher Development Units (TDUs) across English, Maths and Science. My role was to:\n\n- structurally edit TDUs and provide feedback/raise queries for the academic lead\n- copy edit and proof-read TDUs in compliance with the University House Style\n- work with Media Assistants to produce the agreed outputs (Moodle, ePub, Kindle, Word)\n\nAfter my 6 months working on the TESS-India project, I spent a month working in the Arts team, where I put my BSI proof-reading marks into practice as I was marking up corrections in extracts about Ancient Greek scrolls.",
"url": "https://www.linkedin.com/school/theopenuniversity/"
},
{
"name": "The Open University",
"position": "Media Assistant",
"startDate": "2012-08-31",
"endDate": "2013-08-31",
"highlights": [],
"summary": "- worked on the award winning OU Anywhere project, which converted print module materials into the OU's XML framework\n- identified in scope module materials \n- prepared the assets to be sent to outsourcing partners by storing all required files in the OU's content management system\n- carried out initial QA checks on returned files and made corrections as necessary to meet the required standards\n- carried out second-pass QA checks on the work of other in-house Media Assistants\n- signed off assets to be uploaded to module websites\n- responsible for documenting ePub production processes for other teams in the unit\n\nWorking on this project gave me experience working with XML (using the Oxygen Author), Photoshop and Illustrator. I also wrote chemical and mathematical notation in MathML and used Unicode to reproduce Russian/Chinese/Arabic character sets.",
"url": "https://www.linkedin.com/school/theopenuniversity/"
},
{
"name": "University of Huddersfield",
"position": "Sound and Lighting Operative",
"startDate": "2011-09-30",
"endDate": "2012-07-31",
"highlights": [],
"summary": "Provided audio visual support for evening concerts at the University.",
"url": "https://www.linkedin.com/school/university-of-huddersfield/",
"location": "Huddersfield"
},
{
"name": "University of Huddersfield",
"position": "Assistant Technician",
"startDate": "2010-07-31",
"endDate": "2011-07-31",
"highlights": [],
"summary": "Provided AV/IT support to the Music Department as an industrial placement for a year of my degree.",
"url": "https://www.linkedin.com/school/university-of-huddersfield/"
}
],
"volunteer": [
{
"organization": "MK4U",
"position": "Festival co-ordinator (music)",
"startDate": "2006-09-30",
"endDate": "2008-07-31",
"summary": "Alongside my A level studies at Stantonbury Campus, I was involved in organising a youth festival in Milton Keynes.\nThis included successfully making bids for grants from the MK Youth Bank; advertising for and selecting bands to play; and the set-up, running and breakdown of the festival in both July 2007 and July 2008.",
"highlights": [],
"url": ""
}
],
"education": [
{
"institution": "Stantonbury Campus",
"area": "",
"studyType": "",
"startDate": "2006-12-31",
"endDate": "2008-12-31",
"score": "",
"courses": [
"null - Government & Politics",
"null - Physics",
"null - Music",
"null - Music Technology"
]
},
{
"institution": "The University of Huddersfield",
"area": "Music Technology",
"studyType": "Bachelor of Arts (BA)",
"startDate": "2008-12-31",
"endDate": "2012-12-31",
"score": "2:1",
"courses": [
"null - Work and Professional Practive",
"null - Popular Music Studies",
"null - Interactive Sound Design",
"null - Music in the 21st Century",
"null - Computer Composition"
]
},
{
"institution": "Codaisseur",
"area": "Computer Programming",
"studyType": "Full Stack Web Development Academy",
"startDate": "2017-12-31",
"endDate": "2017-12-31",
"score": "",
"courses": []
},
{
"institution": "Free Code Camp",
"area": "Computer Software Engineering",
"studyType": "Full Stack Web Development Certification",
"startDate": "2016-12-31",
"endDate": "2016-12-31",
"score": "",
"courses": []
},
{
"institution": "Royal Latin School",
"area": "",
"studyType": "",
"startDate": "2001-12-31",
"endDate": "2006-12-31",
"score": "",
"courses": []
}
],
"awards": [],
"certificates": [
{
"name": "Go: The Complete Developer's Guide",
"issuer": "Udemy",
"startDate": "2020-02-28",
"url": "https://www.udemy.com/certificate/UC-e18336be-6054-4c00-ab36-51a693fe217c/"
},
{
"name": "Node JS: Advanced Concepts",
"issuer": "Udemy",
"startDate": "2020-05-31",
"url": "https://www.udemy.com/certificate/UC-4835e057-3d49-4765-b8ed-a35abfcba5b3/"
},
{
"name": "Typescript: The Complete Developer's Guide [2020]",
"issuer": "Udemy",
"startDate": "2020-05-31",
"url": "https://www.udemy.com/certificate/UC-fbd82c2e-728c-4a24-bff8-7ac3c2c50e15/"
},
{
"name": "Microservices with Node JS and React",
"issuer": "Udemy",
"startDate": "2020-06-30",
"url": "https://www.udemy.com/certificate/UC-70482ca2-80f4-48e1-abbf-bd2a24d8942f/"
},
{
"name": "Advanced CSS and Sass: Flexbox, Grid, Animations and More!",
"issuer": "Udemy",
"startDate": "2020-07-31",
"url": "https://www.udemy.com/certificate/UC-0f49ee79-b579-4a7e-93b7-9c63cbf6f5b6/"
},
{
"name": "The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert",
"issuer": "Udemy",
"startDate": "2020-08-31",
"url": "https://www.udemy.com/certificate/UC-6579cae2-fcc9-4a74-9f6c-0416782e8ba9/"
},
{
"name": "Microfrontends with React",
"issuer": "Udemy",
"startDate": "2020-12-31",
"url": "https://www.udemy.com/certificate/UC-8f89fe68-914f-407e-bb97-18286574cac0/"
},
{
"name": "Docker Mastery: with Kubernetes + Swarm",
"issuer": "Udemy",
"startDate": "2020-12-31",
"url": "https://www.udemy.com/certificate/UC-fb6a315f-1b42-4abb-90d6-f066831fd08c/"
},
{
"name": "NestJS Zero to Hero: Modern TypeScript Back-end Development",
"issuer": "Udemy",
"startDate": "2021-05-31",
"url": "https://www.udemy.com/certificate/UC-3c05f780-e863-4016-b4e3-eb6c7a402007/"
}
],
"publications": [],
"skills": [
{
"name": "Node.js",
"level": "",
"keywords": []
},
{
"name": "React.js",
"level": "",
"keywords": []
},
{
"name": "TypeScript",
"level": "",
"keywords": []
},
{
"name": "Docker",
"level": "",
"keywords": []
},
{
"name": "ABN AMRO Bank N.V.",
"level": "",
"keywords": []
},
{
"name": "Refactoring",
"level": "",
"keywords": []
},
{
"name": "Cypress",
"level": "",
"keywords": []
},
{
"name": "Microservices",
"level": "",
"keywords": []
},
{
"name": "HTML",
"level": "",
"keywords": []
},
{
"name": "Neo4j",
"level": "",
"keywords": []
},
{
"name": "Continuous Integration and Continuous Delivery (CI/CD)",
"level": "",
"keywords": []
},
{
"name": "Unit Testing",
"level": "",
"keywords": []
},
{
"name": "Webpack",
"level": "",
"keywords": []
},
{
"name": "Express.js",
"level": "",
"keywords": []
},
{
"name": "Git",
"level": "",
"keywords": []
},
{
"name": "CSS",
"level": "",
"keywords": []
},
{
"name": "Javascript",
"level": "",
"keywords": []
},
{
"name": "Gitlab",
"level": "",
"keywords": []
},
{
"name": "Redis",
"level": "",
"keywords": []
},
{
"name": "Azure DevOps",
"level": "",
"keywords": []
},
{
"name": "Vue.js",
"level": "",
"keywords": []
},
{
"name": "Kubernetes",
"level": "",
"keywords": []
},
{
"name": "Cypher",
"level": "",
"keywords": []
},
{
"name": "GraphQL",
"level": "",
"keywords": []
},
{
"name": "JavaScript",
"level": "",
"keywords": []
},
{
"name": "Redux.js",
"level": "",
"keywords": []
},
{
"name": "Helm (Software)",
"level": "",
"keywords": []
},
{
"name": "ES6",
"level": "",
"keywords": []
}
],
"languages": [
{
"fluency": "Elementary",
"language": "Dutch"
},
{
"fluency": "Native Speaker",
"language": "English"
},
{
"fluency": "Elementary",
"language": "French"
},
{
"fluency": "Elementary",
"language": "German"
},
{
"fluency": "Limited Working",
"language": "Spanish"
}
],
"interests": [],
"references": [],
"projects": [],
"meta": {
"version": "v1.0.0",
"canonical": "https://github.com/jsonresume/resume-schema/blob/v1.0.0/schema.json"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment