Green

Simon Green Kristensen

Full-stack engineer with a Master's in Computer Science and 2 years of part-time, startup experience. I enjoy working with new and exciting web technologies, but have experience with TypeScript, React and TailwindCSS. I am adaptable and a fast learner, which helps me find problems in my own and other's code before actual problems show up. I love developing ways to make life easier for myself and others, which usually leads me to software analysis and web development projects. I have spent a lot of time honing my skills with hobby projects, which includes a command-line tool for competitive programming and web-based games.

Contact info and links [email protected] LinkedIn GitHub Projects

Education

Msc: Computer Science (Software Analysis)

IT University of Copenhagen Sep '21 – Jul '23
Tags: Coq, Formal Verification, Scala, Software Analysis, Idris, OCaml, C++, Electronics, Systems Performance, MDSE

During my studies, I took courses on software analysis, the art of trying to find errors and problems in programs via analysis, which often involves new and exciting type systems. These include Program Verification, Advanced Software Analysis, and Modelling Systems Languages, as well as a research project and the thesis.

The thesis itself was about providing a code completion/suggestion ranking algorithm for the formal verification system Coq. The type system for Coq is very expansive, which provides opportunities for more specific suggestions, at the cost of low performance due to having to compare types. Our work can be found on the VSCoq project.

Other cool courses:

  • How to Make Almost Anything; had fun learning about prototyping physical products and robots.
  • Game Programming; taught me C++ and matrix operations, as well as Entity Component Systems and other game engine tricks.
  • Computer Systems Performance; didn't learn how to improve performance, but rather how to measure performance, as well as how the hardware works.

Bsc: Software Development

IT University of Copenhagen Sep '18 – Jul '21
Tags: C#, .NET, TypeScript, Web Design, CSS, C, SQL, Multithreading, Reactivity, Scrum, Java, JavaScript, Business Processes, HTML

Learned to program in multiple languages and paradigms using different design patterns. This was combined with courses on team collaboration, preliminary analysis, DevOps, design, and more.

One of my favourite courses was Programs As Data. Getting into the internals of compilers and interpreters was exciting, especially seeing how to perform operations on the syntax tree and optimising languages.

My final project was on creating an imperative-style programming language with reactive elements. Together with my mate Jonas Lindenskov, we implemented the language in C#, creating a neat proof of concept. It is accessible on our Github Organisation jolnsigkitu.

Experience

Full-Stack Software Developer

Firmnav Jul '20 – Jul '22
Tags: TypeScript, React, Tailwind, GraphQL, PostgreSQL, NodeJS, Express, Pulumi, TypeORM, DevOps, Docker, DigitalOcean, S3

Firmnav creates AI-powered data aggregations and predictions, but used to be a company database and search engine when I worked there. My role was full-stack software development on a fin-tech SaaS TypeScript web app with Express backend and NodeJS pipeline. I was responsible for benchmark visualisations, HubSpot and SalesForce CRM integrations, data layout selector, company relationship visualisations, and general platform improvements and bug fixes.

Teaching Assistant

IT University of Copenhagen Jan – Dec '20 and Sep '22 – Jul '23
Tags: Algorithms, Web, JS, CSS, HTML, Networking, Java, Python, Scala, F#, AI

I have led exercise classes, corrected assignments, and helped students get through the courses.

I have been a teaching assistant for 7 courses:

  • Algorithms and Data Structures teaching theoretical worst-case performance of sorting and such,
  • Systematic Design of User Interfaces teaching about web design and technologies,
  • Mobile and Distributed Systems teaching networking and threading with Java,
  • Algorithm Design teaching about dynamic programming, min-cut max-flow, and whether P = NP,
  • Advanced Programming teaching about Monads in 7 different ways in Scala,
  • Functional Programming teaching functional programming with F#, and
  • Introduction to Artificial Intelligence teaching αβ-minimax, binary decision diagrams, etc.

Volunteer Barista

Café Analog Sep '22 – Jul '23
Tags: Espresso, Latte, Board Games

I volunteered as a barista at the student café at my university, both to learn more about coffee and to get to know more of my fellow students.

Projects

Tags: Vue, Express, WebSockets, Tailwind

I made a web-based implementation of the board game Azul. It is implemented with Vue and Express, using WebSockets for communication between players and the server.

Tags: JavaScript, Web

I wanted to be able to extract the colors used in my favourite text editor theme, and therefore I made this little tool. It accepts a text snippet, and attempts to extract all colors used in the text, using small swatches to display them to the user.

Kat: A Kattis Helper

Kat on GitHub
Tags: Python, CLI, Competitive Programming

Kat is a tool for retrieveing, testing and submitting problems to Kattis, a code challenge platform. It can help in getting contest data, organises your solutions, and helps you in helping yourself troubleshoot your solutions by running your own fuzzers.

Hobbies

Bouldering

Tags: Problem Solving, Fitness

I go bouldering with my mates about once a week, primarily at Boulders Sydhavnen. We also gathered up a bunch of us in the Summer of '22 and went to Kjugekull, Sweden, where we climbed on actual boulders. I went with the same crew to get certified for top-rope climbing, which I'm looking forward to doing more.

Keyboards

Tags: Electronics, CAD, Design

I have spent a lot of time tweaking and perfecting the functionality, look, and feel, of my homemade black-and-gray split ergonomic keyboard, based on the Dactyl-Manuform.
It is not finished yet, but it will be Soon™.

3D Printing

Tags: CAD, Design, Manufacturing

I have an Ender 3 at home I have used to print the aforementioned split ergo keyboard, among many other nice things and doodads. Being able to design something, and then immediately be able to make a version I can hold in my hand, is so empowering.

Interests Lightning Round

– would take up too much space otherwise

Board games, Electronic music, Electronics tinkering, Dancing at parties, Video games, Cooking, Competitive Programming, Game Development, Math