Ethan Cha

Aspiring Computer Science Student Portfolio

My Path Into Computer Science

I grew into computer science by following curiosity, learning with others, and building useful things.

Getting started

I joined the Columbia Science Honors Program on weekends. The classes were challenging, and I learned to be patient with hard ideas. Topics like theoretical computer science and applied math gave me a base I still use.

Through USACO and ACSL, I practiced problem solving under time pressure. Choosing the right data structure and naming the invariant became habits. The results mattered less than learning to think clearly.

Learning by teaching

I founded Codificar Inc., a 501(c)(3) offering free instruction in Java, Python, and competitive programming. I built a tiered curriculum, organized peer tutors, and taught students from middle to high school. Mentoring an ACSL team that won NJ All-Star Senior was a highlight.

I also lead our school’s Data Science Club. We run workshops on Pandas and NumPy, invite mentors from universities and nonprofits, and host small case studies. My goal is to make data work feel approachable and practical.

Games and game design

I care about games as a way to learn systems and share ideas. I co-founded Counterspell Bergen, a regional high school game jam with 50+ participants. We secured local sponsors and shipped a simple event site that Columbia Engineering Outreach later highlighted.

I prototype small games and mechanics in my free time. I focus on feedback loops, clarity of objectives, and playtesting with peers. Game design has improved how I structure programs: clear rules, small iterations, and readable code paths.

Research and method

Air quality became my first research area. I used the Kolmogorov–Zurbenko filter to study long-term PM2.5 trends and later applied Conditional Probability Functions to assess local sources in the NY Metro area.

Projects

At the Wolfram Summer Research Program, I used Perlin noise to generate city layouts. I also helped build an automated Arduino spectrophotometer with RGB LEDs, an LDR sensor, and a 3D-printed cartridge, plus software for wavelength selection and calibration.

I like removing friction for users. Liquiboard is an Android keyboard that adapts key borders to a person’s typing pattern using machine learning. For the Congressional App Challenge, I built a simple intermittent-fasting companion and a kid-friendly news summarizer.

Community and service

I lead a student Capture the Flag group where we practice ethical hacking, cryptography, and binary exploitation. I also volunteer at Liberty Science Center and MoMath, serve with YCFL, and play drums at my church. These roles keep me focused on people, not just code.

Industry experience

As a Technology Intern at Chibitek (2025), I helped monitor client systems, resolve network and software issues, handle cloud migrations, and write documentation. I learned that clear runbooks and steady operations are part of good engineering.

Study and structure

I’ve studied linear algebra at Cooper Union and joined a competitive programming camp at Columbia. Certifications like Java SE 8 and PCEP formalized skills. The main value is that each step prepared me for the next one.

What I’m aiming for

I try to notice problems, model them carefully, and ship small, reliable improvements. I like building with others, documenting what we learn, and leaving things a bit clearer than we found them. Computer science, for me, is steady work with useful results.