Hi. I'm Jonathan Lam.

Nice to meet you. Résumé. Projects. Contact.

jon@life: ~
$ whoami

I'm an undergraduate student studying electrical engineering at the Cooper Union for the Advancement of Science and Art and passionate in software engineering. I've worked on software solutions have helped my community and myself for all sorts of everyday needs, from analyzing bowling scores to improving English skills. Continuing to provide these kinds of solutions is my goal, packaged in self-documenting, future-proof code and delivered in a minimalistic client interface.

By day, I study electrical engineering. By night, I'm a coding ninja/ping pong-er/Rubik's speedcuber/left-hand Dvorak typer.

The journey is more important than the destination. Would you like to hear a story?


My mom brought home two books she found at an old book sale. I had recently fallen out of a car phase, so I was down in the dumps and didn't have much to interest me. I tried reading the Java one— the name was cooler— but it made no sense. I asked my dad about the HTML one, and he showed me how to input an example on Notepad and see the output on Internet Explorer. I had complete control over the webpage. I was enthralled.


By this time, I had experimented with a little bit of HTML (4), Java, C++, and PHP, solving little math puzzles and discovering the syntax. Our final project for PLTW was open-ended, so I decided to demonstrate my programming skills. I learnt some JavaScript and CSS and threw together some calculator interfaces, and presented my knowledge of how these languages (along with HTML and PHP) could be integrated into a single, useful application.


I spoke with my English teacher in the tenth grade because I couldn't speak during any of the daily class discussions. I was afraid to get my incomplete ideas out. She suggested that I practice (practice English?, I wondered) by writing or speaking on any whimsical thought. So I began a blog and posted many posts, many days in a row. I got so involved in the blog that I spent many days in a row writing posts and the blog became the hub for my programming projects as well. I hosted web programming projects, such as Project Euler solutions or JavaScript games, on the blog, and wrote blog posts about them.


The website for our local bowling center was archaic, so I built a new version for them. Our bowling team didn't have any established method of digital data collection or analysis, so I devised a system for storing data, a heuristic equation to choose the next week's lineup, and built a website to display statistics. For the new Safe Rides service at our school, I built a web-app to streamline the (then pen-and-paper method) for volunteers and clients alike. My first blog was also growing a little outdated, so I built a new blog with a JS stack.


High school ended, so it was time to reach out. I met the great entrepreneur, Joshua Hirth, and worked with him to develop websites to promote his two innovative medical kits with websites. I attended four hackathons in the second half of the year. For the engineering design course, I helped develop an Android app to analyze a chemical glucose test strip, and designed a website to document the process.


2019 has just begun, and there's so much to do! I'm collaborating with our student banker to develop a new fusion website for all of the student-run websites at our university, including club funding, the bookstore, a student resource locator, and locker management. I hope to begin some work with machine learning, mobile app development, and security systems, and I have plans to touch up on a lot of old projects. Most recently, I've been looking for opportunities in employment or internship in the summer. Onwards!
Here are some of my projects! If you're stuck, try swiping on the icons (for touchscreens), or using the arrow keys. Enjoy!

Preferred Technologies


I have the most fun working with JavaScript and other C syntax-like languages (C, C++, Java, PHP), but I'm trying to expand my horizons. My goal for the near future is to learn about symbolic languages such as Lisp and their applications in AI, as well as one-codebase-multiple-platform technologies (e.g., Ionic, React Native, NativeScript) to speed up development for web and mobile. I also hope to learn Python and Perl, and get a deeper understanding of NoSQL (MongoDB, Cassandra) and SQL database technologies.


Category Preference
Editor ViM
Browser Google Chrome
OS Linux (xubuntu)
Language JavaScript
JavaScript Framework Angular 2+
Indenting spaces (2)
Code Style Mr.doob
Code Philosophy AMP Design Principles

Find anything interesting? It'd be great if you reached out!