Here's a brief introduction that covers the important parts:
- I am Prajwal S N, a pre-final year undergraduate student of computer science engineering from Bengaluru, India.
- I mainly focus on compilers and systems development, but am open to anything interesting.
- I was a Google Summer of Code mentee with CRIU in 2022 and 2023, where I worked on checkpoint and restore of containers in Go.
- I previously worked on static analysis for Rust and Go at DeepSource.
Here are some links that contain more details about me and my work:
I have explored various domains across my programming journey:
- Worked as a backend engineer for a real-time gaming platform, where I dealt with building highly scalable microservices to handle ~100k concurrent requests.
- Switched to systems development for Google Summer of Code with CRIU, where I worked on a Go library for manipulating container checkpoints.
- Joined a startup to work on static analysis for Rust and Go, gathering experience in the field of compilers.
- Returned to CRIU in GSoC 2023 to work on a project at the intersection of systems and cybersecurity - forensic analysis of container checkpoints.
Independent of my work, I love to dig deep into theory, and have dabbled in Haskell, OCaml, and a few other functional languages while reading and understanding research papers on programming language theory.
I have worked on several personal projects, with the most interesting being Lost, an object-oriented interpreted programming language implemented in Rust. It features a hand-written lexer, recursive descent parser, and runtime, with minimal use of external libraries. It also provides a WebAssembly-based REPL for users to try the language in their web browser!
I first learnt about the D language through my static analysis work, where I came across UFCS while exploring how different languages handle parsing and semantics. While I am now familiar enough with D to comfortably write code, my contributions and projects in it are still nascent. I'm currently spending more time learning about DMD's frontend, and the ecosystem with Dub.
I would consider these two languages to be my strongest. Owing to my prior work experience, I am intimately familiar with both languages, both at the usage level and the specification/standards level. Working on static analysis also enabled me to dive deep into the compilers of both languages and understand finer details and pitfalls that are usually not well-known.
I have officially completed multiple courses related to programming across the course of my degree, the most noteworthy being:
- Automata theory and formal languages
- System software
- Computer networks
- Database management systems
Apart from university courses, I have also independently studied online courses on compiler optimisations and certain topics in mathematics like linear algebra and graph theory.
I bring relevant experience working with compiler frontends, along with a healthy understanding of strongly typed compiled languages similar to D. I have also become reasonably well-acquainted with D itself. I greatly value time, and am a stickler for punctuality. I am a self-motivated individual and have the discipline to carry out my work irrespective of any external interferences.
I'm a generalist, and have spent considerable time poring over articles, research papers and repositories to try and understand today's technological ecosystem better. My desire to understand everything about what I'm doing has made me develop a wide knowledge base, which lets me analyse problems from multiple perspectives. I bring a diverse set of skills to the table, along with an approximate knowledge of many things. All of this, combined with my discipline and punctuality, makes me confident of my ability to carry out the project and complete it in an organised and timely manner.
My 7th semester classes will be in progress during SAoC, but will not affect my work in any manner. I can guarantee a commitment of 25 hours a week across the entire duration of the programme.