{
    "componentChunkName": "component---src-templates-categories-template-js",
    "path": "/category/about-me/",
    "result": {"data":{"allMdx":{"totalCount":5,"edges":[{"node":{"excerpt":"This short version of my CV should show my technical background for making this Tech Blog and AI Projects I am a Software Developer with passion for…","fields":{"slug":"/posts/2022-05-10-my-cv/"},"frontmatter":{"title":"My CV","date":"16-April-2026"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"My CV\",\n  \"date\": \"2026-04-16T00:00:00.000Z\",\n  \"published\": true,\n  \"categories\": [\"About me\"],\n  \"tags\": [\"my-cv\", \"per-steen-olsen\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"This short version of my CV should show my technical background for making this Tech Blog and AI Projects\"), mdx(\"p\", null, \"I am a Software Developer with passion for AI, C#, .NET, Umbraco CMS, Python, Django, FastAPI, Wagtail CMS, Java, Node.js, JavaScript, TypeScript, Next.js, React, Nuxt, Vue.js, Angular, Webpack and Vite as well as other programming languages, tools and DevOps\"), mdx(\"p\", null, \"Besides working with IT and Web Development, I have been working in other areas as well.\"), mdx(\"p\", null, \"IT Working experience\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Freelance\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Web Developer at VM Kontorteknik\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"IT Worker at the Libraries of Slagelse\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Web Developer at the former Jara IT\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Web Developer at the former Bank bankTrelleborg\")), mdx(\"p\", null, \"Higher education\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"AI, RAG and Machine Learning\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Education in C#, .NET, Python, Java, Node.js, JavaScript, TypeScript, Next.js, React, Nuxt, Vue.js and Angular / Full Stack \"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Online education in digital marketing\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Developing ASP.NET MVC Web Applications (20486)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Portuguese language exam B1/B2\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"AP Graduate in Computer Science\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Mathematics level C1\")), mdx(\"p\", null, \"Skills of languages\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Danish as my native language, and I passed an exam with the level equal to C2\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"English exams did I pass at the level equal to B2 written and spoken\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Portuguese exams passed in Lisbon at the level equal to B1/B2 written and spoken\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"German exam at level equal to B1\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Swedish and Norwegian without writing skills\")));\n}\n;\nMDXContent.isMDXComponent = true;"}},{"node":{"excerpt":"Vacation in Portugal in February 2023 Two wonderful weeks in Lisbon, Cascais, Carcavelos and Sintra ","fields":{"slug":"/posts/2023-02-16-portugal-february-2023/"},"frontmatter":{"title":"Portugal","date":"16-February-2023"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Portugal\",\n  \"date\": \"2023-02-16T00:00:00.000Z\",\n  \"published\": true,\n  \"categories\": [\"About me\"],\n  \"tags\": [\"lisbon\", \"portugal\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Vacation in Portugal in February 2023\"), mdx(\"p\", null, \"Two wonderful weeks in Lisbon, Cascais, Carcavelos and Sintra \"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/images-posts/lisbon_1_february_2023.jpg\",\n    \"alt\": null\n  })));\n}\n;\nMDXContent.isMDXComponent = true;"}},{"node":{"excerpt":"A nice day for cyckling 25 km just before the 2 of July 2022 where the Tour de France will be passing the roads near to my Hometown Slagelse","fields":{"slug":"/posts/2022-07-01-tour-de-france/"},"frontmatter":{"title":"Tour de France","date":"01-July-2022"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Tour de France\",\n  \"date\": \"2022-07-01T10:12:06.251Z\",\n  \"published\": true,\n  \"categories\": [\"About me\"],\n  \"tags\": [\"slagelse\", \"cycling\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"A nice day for cyckling 25 km just before the 2 of July 2022 where the Tour de France will be passing the roads near to my Hometown Slagelse\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/images-posts/tour_de_france_3_dk_2022.jpg\",\n    \"alt\": null\n  })));\n}\n;\nMDXContent.isMDXComponent = true;"}},{"node":{"excerpt":"A 5 km running event in June 2022","fields":{"slug":"/posts/2022-06-30-running/"},"frontmatter":{"title":"Running","date":"30-June-2022"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Running\",\n  \"date\": \"2022-06-30T13:33:00.222Z\",\n  \"published\": true,\n  \"categories\": [\"About me\"],\n  \"tags\": [\"slagelse\", \"running\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"A 5 km running event in June 2022\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/images-posts/runningone.jpg\",\n    \"alt\": null\n  })));\n}\n;\nMDXContent.isMDXComponent = true;"}},{"node":{"excerpt":"A part of the city center in my Hometown Slagelse","fields":{"slug":"/posts/2022-03-19-my-hometown/"},"frontmatter":{"title":"My Hometown","date":"19-May-2022"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"My Hometown\",\n  \"date\": \"2022-05-19T15:09:01.667Z\",\n  \"published\": true,\n  \"categories\": [\"About me\"],\n  \"tags\": [\"slagelse\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"A part of the city center in my Hometown Slagelse\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/images-posts/slagelse.jpg\",\n    \"alt\": null\n  })));\n}\n;\nMDXContent.isMDXComponent = true;"}}]}},"pageContext":{"category":"About me"}},
    "staticQueryHashes": ["4278130389"]}