Driven by a passion for computer science,

I continued the study building on my university education. Beginning with CS61A by UC Berkeley as the first course in CS, I continued to dive deeper into data structures and algorithms, computer architecture, operating systems, programming languages theory and artificial intelligence. This ongoing journey continues to inspire me and fuels my passion for this field.

* Please note that my studies were completed using online resources, including MOOC platforms (Coursera, edX) and open courses provided by various universities. I am not affiliated with the academic institutions referenced herein.

Statically typed languages

C Java Rust>

Dynamically typed languages

Python JavaScript

Libraries and frameworks

NumPy pandas matplotlib

Web development

HTML5 CSS3 JavaScript

Database

PostgreSQL

Systems and tools

Linux Bash Git Jupyter LaTeX

Data Structures and Algorithms

Data Structures and Algorithms Practices
Total solved 1.3k+ Submissions 3.7k+
 
By languages:
Python 870 Python3 494
JavaScript 158 C 407
Java 338 Rust 60
 
By topic areas:
Array 694 String 318
Linked List 51 Tree 101
Breadth-first Search 82 Depth-first Search 107
Dynamic Programming 117

Learning more about data structures and algorithms allows me to delve into how information is organized and processed efficiently. I have studied the theories of data structures and classical algorithms, including:

  • UC Berkeley CS61B
  • Algorithms (Part I, Part II) courses on Coursera (and the algs4 textbook / website)
  • Algorithms Specialization on Coursera

In addition, I engage in regular practice to ensure a good level of proficiency and familiarity with multiple languages.

Computer Architecture

Computer Architecture

* AI-generated image

The complexities of computer architecture provide valuable understanding of how computer components interact to drive systems. In this domain, I studied the CS61C course by UC Berkeley, concentrating on the internal organization and operation of digital computers.

Operating Systems

study of operating systems

* AI-generated image

The Operating Systems Engineering course (MIT 6.1810, course number used to be 6.828, 6.S081) centers on the design and implementation of a minimalist version of Unix v6 (xv6). Adopting a "learning-by-doing" approach, the course guides participants through the integration of features into the xv6 operating system. This practical engagement in system-level programming offers an understanding of resource management in modern operating systems.

Programming Languages Theory

theory of programming languages

* AI-generated image

The Programming Languages series (Part A, B, and C) adapted from the University of Washington's CSE341 course offer great insights into the design of programming languages. It dives deep into different programming paradigms and their:

  • Abstraction mechanisms
  • Type inference and checking
  • Algebraic data types
  • Scoping rules
  • Syntax vs. semantics
  • Pattern matching
  • First-class function closures
  • Functional vs. object-oriented decomposition

Artificial Intelligence

I am actively engaged in the dynamic and rapidly evolving field of artificial intelligence, focusing on advancements and their potential applications.

On the theory front, I have completed several specializations on Coursera. To stay current with recent developments, I learn from:

  • UC Berkeley CS294 Agentic AI (my notes on GitHub)
  • Building SWE Agent CLI (GitHub repo) with minimal dependancy
  • Stanford CS153 Frontier Systems
  • Stanford CS25 Transformers United