Skills
Throughout my academic and professional journey, I have developed expertise in a diverse range of programming languages, frameworks, and technologies. These skills have been honed through hands-on projects, coursework, and continuous learning. Below is a detailed breakdown of what I am best at and how I apply these technologies in real-world contexts.
React & TypeScript
I use React and TypeScript on a daily basis for projects both at SurrealDB and personally. This is my primary frontend stack. I build component-based UIs, manage state with hooks and context, and leverage TypeScript for type safety and better developer experience. At SurrealDB, I've worked on Surrealist's various views and SurrealDB Cloud flows, which are all built with this stack.
SurrealDB, MongoDB, InfluxDB, Redis, and MySQL
I have vast experience using each of these databases across various projects. Each serves a different purpose in my toolkit, however SurrealDB is my go-to for new projects. I work with it professionally at SurrealDB and use it for personal projects like Transago and Chronosity. This is because SurrealDB is one of the most flexible and powerful databases available today and is the perfect database for almost all of the projects that I have thrown at it.
Rust, GoLang, Kotlin, Python, and C#
While not a full list of all the languages that I know, these are some of the programming languages that I am the most proficient in. I pick the right tool for the job:
- Rust: Systems-level work, performance-critical code, and where memory safety matters. I've dabbled in Rust for CLI tools and backend services.
- Go: Backend services, APIs, and concurrent systems. Go's simplicity and first-class concurrency make it great for scalable server-side work.
- Kotlin: I've mainly used Kotlin for developing frameworks designed to work with Java. It is the perfect replacement for Java in many cases and is a great language to learn.
- Python: Scripting, automation, data work, and rapid prototyping. I use it for tooling, school projects, and when readability and speed of development matter.
- C#: .NET development and game development (Unity). I've mainly used it for game-related projects with Starlane Studios and other personal projects.
Astro, PHP, CSS, and Tailwind
Outside of my normal stack of React and TypeScript, these are some of the web technologies that I am proficient in too, particularly for building static websites and content-focused projects:
- Astro: Static site generation with islands architecture. Great for blogs, documentation, and marketing pages where you want minimal JavaScript and fast load times.
- PHP: Server-rendered web applications and legacy integrations. I've worked with PHP for full-stack projects and WordPress customization.
- CSS: Custom styling, layouts (Flexbox, Grid), animations, and responsive design.
- Tailwind: Utility-first CSS for rapid UI development. I use it alongside custom CSS when I want to move quickly without sacrificing design consistency.
Tools & Practices
Beyond specific languages and frameworks, I'm experienced with the tools and practices that keep projects running smoothly:
- Version control: Git for branching, merging, and collaborative workflows. I'm comfortable with pull requests, code review, and rebasing.
- Build tools: Vite, Webpack, and npm/yarn for frontend builds. I've configured build pipelines and optimized bundle sizes.
- Testing: Unit tests, integration tests, and manual QA. I value test coverage where it matters most.
- APIs: REST and GraphQL. I design and consume APIs, handle authentication, and work with webhooks and real-time connections.