--- import { getCollection } from "astro:content"; import Container from "@components/Container.astro"; import PageLayout from "@layouts/PageLayout.astro"; import ArrowCard from "@components/ArrowCard.astro"; import Link from "@components/Link.astro"; import { dateRange } from "@lib/utils"; import { SITE, HOME, SOCIALS } from "@consts"; import EmojiScroller from "@components/EmojiScroller.astro"; const blog = (await getCollection("blog")) .filter(post => !post.data.draft) .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()) .slice(0,SITE.NUM_POSTS_ON_HOMEPAGE); const projects = (await getCollection("projects")) .filter(project => !project.data.draft) .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()) .slice(0,SITE.NUM_PROJECTS_ON_HOMEPAGE); const allwork = (await getCollection("work")) .sort((a, b) => new Date(b.data.dateStart).valueOf() - new Date(a.data.dateStart).valueOf()) .slice(0,SITE.NUM_WORKS_ON_HOMEPAGE); const work = await Promise.all( allwork.map(async (item) => { const { Content } = await item.render(); return { ...item, Content }; }) ); ---

Hi, I'm Michael

I'm a software engineer at the University of Canterbury, working on Tuihono UC | UC Online. I specialize in full-stack development. While my primary expertise is in software engineering, I also have a strong interest in cloud infrastructure and DevOps. Based in Christchurch, New Zealand

Feel free to connect with me through any of the social media links at the bottom of this page!

Latest posts
See all posts
    {blog.map(post => (
  • ))}
Work Experience
See all work
    {work.map(entry => (
  • {dateRange(entry.data.dateStart, entry.data.dateEnd)}
    {entry.data.company}
    {entry.data.role}
  • ))}
Recent projects
See all projects
    {projects.map(project => (
  • ))}
Let's Connect

If you want to get in touch with me about something or just to say hi, reach out on social media or send me an email.

    {SOCIALS.map(SOCIAL => (
  • {SOCIAL.NAME} {"/"}
  • ))}
  • {SITE.EMAIL}