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.
Education
Msc: Computer Science (Software Analysis)
IT University of Copenhagen ( IT University of Copenhagenhttps://itu.dk/)Sep '21 – Jul '23During 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 projecthttps://github.com/coq-community/vscoq.
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 ( IT University of Copenhagenhttps://itu.dk/)Sep '18 – Jul '21Learned 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 jolnsigkituhttps://github.com/jolnsigkitu.
Experience
Firmnav was 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.
Unhaze was a platform for lead generation and prioritization based on the companies in your CRM. As a full-stack developer, I was responsible for every part except the machine learning models: frontend, backend, database maintenance, CRM integrations, data engineering, and DevOps. We managed to create a banger product and amazing team-work, but we were unfortunately trying to compete in a market that got saturated around us.
Ocean.io is a platform for finding best-fit customers for your B2B sales, and for finding contact information of the right people to contact. I am primarily working on the frontend, but I also am getting into the backend in Python and Go. So far, I have been responsible for implementing a re-design of the company info sidebar, and for tracking down and squashing bugs.
Teaching Assistant
IT University of Copenhagen ( IT University of Copenhagenhttps://itu.dk/)Jan – Dec '20 and Sep '22 – Jul '23I 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.
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
I made a web-based implementation of the board game AzulAzul. It is implemented with Vue and Express, using WebSockets for communication between players and the server.
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 is a tool for retrieveing, testing and submitting problems to Kattishttps://open.kattis.com, 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
Coffee
I love the taste of coffee, I love the process of making coffee, I simply love coffee. If you'd like to work with me, then an actual espresso machine with a steamer is closer to a need than a want.
Bouldering
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
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
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 otherwiseBoard games, Electronic music, Electronics tinkering, Dancing at parties, Video games, Cooking, Competitive Programming, Game Development, Math