Personal Skills
Here are some of the skills I've developed.
Frontend Development

Experienced in building responsive and user-friendly interfaces using modern frontend technologies. Developed across multiple academic and personal projects, including a full-stack platform built as part of the Web Engineering course at ETH Zürich.

React
React
Solid understanding of React's core concepts, including component architecture, state management, hooks, and client-side routing. Applied these skills across multiple projects, most notably in a full-stack platform developed as a semester project. Capable of independently building complete applications, with occasional reference to documentation for setup and deployment configurations.
TypeScript
TypeScript
Learned TypeScript from the ground up and apply it consistently across all JavaScript projects. Comfortable defining types and interfaces deliberately to ensure type safety, rather than treating it as an afterthought. TypeScript is the default choice for any new frontend work.
Tailwind CSS
Comfortable in Tailwind CSS, having used it across multiple projects. Comfortable with the full range of utility classes for layout, spacing, typography, and responsiveness. For more complex custom animations, occasional reference to documentation is needed, but day-to-day styling is handled confidently without external guidance.
CSS
Strong working knowledge of CSS built through consistent use across multiple projects. Comfortable with layouts, flexbox, grid, responsive design, and component-level styling. More intricate animation sequences occasionally require consulting documentation, but the foundational and intermediate skill set is well established.
JavaScript
JavaScript
Solid grasp of modern JavaScript, acquired through a Web Engineering course and applied in subsequent projects. Comfortable with ES6+ syntax, asynchronous patterns, DOM manipulation, and working within frontend frameworks. TypeScript is now the preferred environment for new work.
Backend Development

Practical experience building backend systems through academic coursework and project work. Developed and deployed a RESTful API with a relational database as part of a full-stack semester project at ETH Zürich.

Relational Databases
Relational Databases
Formal coursework in relational database systems, covering SQL, schema design, and query optimisation. Applied this knowledge practically using PostgreSQL in a full-stack semester project, where the database underpinned a workflow management platform for a real-world client.
Node.js
Hands-on experience with Node.js through two projects, gaining familiarity with its runtime environment, package ecosystem, and building simple server-side logic. Solid conceptual understanding of its event-driven architecture, though most backend work to date has been primarily in Python.
Python
Python
Solid experience with Python across multiple contexts. Used it in a dedicated programming course, in Numerical Methods (covering topics such as numerical integration, linear algebra, root-finding algorithms as well as machine learning), and as the primary backend language in a full-stack semester project using FastAPI. Comfortable building APIs, implementing algorithms, and working with scientific computing libraries.
Design Tools

Self-taught in the Adobe Creative Suite through years of independent practice and continuous learning via tutorials. Able to produce polished visual outputs across print and digital media.

Adobe Photoshop
Adobe Photoshop
Self-taught Photoshop user with several years of practical experience. Developed skills through independent projects and an ongoing habit of following tutorials to expand technique. Comfortable with photo editing, compositing, and producing digital assets for use in web and design projects.
Adobe Illustrator
Adobe Illustrator
Self-taught in Adobe Illustrator, with experience in vector illustration, icon design, and producing scalable graphics for digital and print use. Skills developed independently through project work and regular engagement with tutorial resources.
Adobe InDesign
Adobe InDesign
Self-taught in Adobe InDesign, with practical experience in layout design for multi-page documents. Comfortable with typesetting, grid-based layouts, and preparing files for both print and digital distribution. Skills developed through independent practice and tutorial-driven learning.
Adobe Premiere Pro
Adobe Premiere Pro
Practical experience in Adobe Premiere Pro for editing short-form videos, social clips, and project reels. Comfortable with timeline editing, basic color correction, transitions, audio cleanup, and export workflows for web delivery.
Adobe After Effects
Adobe After Effects
Working knowledge of Adobe After Effects for motion graphics and compositing. Comfortable with keyframes, shape layers, masks, and simple title/intro animations to support web and media projects.
Programming Languages

Formal training in several programming languages through dedicated courses at ETH Zürich, providing a broad foundation across paradigms including imperative, object-oriented, and functional programming.

Java
Java
Completed a full semester of Java programming, covering object-oriented design principles, data structures, and core language concepts. Gained a solid understanding of the language's type system, class hierarchy, and standard library through structured coursework and programming exercises.
Python
Python
Solid experience with Python across multiple courses and projects, including a dedicated programming course, Numerical Methods, and a full-stack semester project where Python served as the backend language via FastAPI. Comfortable with a wide range of applications from algorithm implementation to API development.
Haskell
Haskell
Completed a semester-long course in Haskell, developing skills in functional programming concepts including pure functions, immutability, type inference, higher-order functions, and monads. The course provided a strong theoretical perspective on programming that has informed work in other languages.
C
Completed a full semester in C programming, covering low-level programming concepts including memory management, pointers, and systems-level thinking. The course provided a strong foundation in understanding how software interacts with hardware, complementing higher-level language experience.
Other Skills

Practical experience with essential development tools used throughout academic projects and personal work.

Git
Git
Comfortable with Git for both individual and collaborative development. Experienced with branching workflows, pull requests, and code reviews as practised in team projects. Handles day-to-day version control independently, with occasional reference to documentation for more advanced operations.
Docker
Docker
Conceptual understanding of containerisation and how Docker is used to package and deploy applications. Applied Docker in the context of deploying full-stack and frontend applications to a personal VPS, working with Dockerfiles and Compose configurations. More complex setups are approached with reference to documentation or AI-assisted tooling.