681 karma · joined August 29, 2018
https://liamilan.com
A year later (this summer) I used Crumb to land my first job at a pretty cool startup! The payoff was way more than I could have ever expected.
Wanted first class functions to simplify the parse step (they can be treated like any other value), but I needed a different mechanism to invoke “native code” vs user-defined methods, so there’s two different types for that.
Needed some kind of compound data type, but I didn’t want to deal with side effects from pass by reference, so Crumb implements lists, but they are always pass by value :)
P.s. theres some pretty neat stuff build with Crumb at https://github.com/topics/crumb if anyone’s interested!
It’s inspiring to see technical writing done like this. As an aspiring engineer, this sets a really high standard to aim for - excellent resource.
Location: Vancouver, BC
Remote: Yes, can work onsite/hybrid as well
Willing to relocate: Yes
Technologies: JavaScript, Node.js, Express, Python, Poetry, Flask, Git, Java, C, C++
Résumé/CV: https://drive.google.com/file/d/1rxE6SmDzM02jQikSbBFKIH1-ptAQ8rV6/view?usp=sharing
Email: liamilanyvr@gmail.com
Hi! I'm Liam, a freshman at UBC, aiming to specialize in Computer Science/Physics. Looking for a software related internship in the summer. I've been programming for 7 years, and built dozens of projects, most of them can be found on my Github (https://github.com/liam-ilan).Over the summer, I built Crumb (https://github.com/liam-ilan/crumb), a programming language from scratch, which was front paged here a couple months ago! I'm also a member of the firmware team at UBC Formula Electric, working on porting firmware for the Front Sensor Module to our next car.
Open to doing just around anything you need me to do. If you have an opening, or any advice, hit me up :D
Over summer, I built my own little functional language, Crumb (https://github.com/liam-ilan/crumb). Unlike Flix, the scope is tiny, but some pretty awesome stuff has been done with it. (Checkout this pixel art editor in your terminal, 100% Crumb: https://github.com/ronilan/crumbicon).
There’s a template (https://github.com/liam-ilan/crumb-template) and vscode highlighter (https://github.com/liam-ilan/crumb-vscode) for anyone who wants to mess around with it. Any feedback super appreciated :D
Though I didn't implement his language exactly, a lot of what he talks about carries over anywhere. It especially helped me figure out how to handle the memory management and scoping.
Vincent Jacques' DrawGrammar (https://jacquev6.github.io/DrawGrammar/) was also super helpful. Getting to see the syntax definition visually made writing it so much easier :).
1) When a function is finished, all memory related to the scope of that runtime is freed.
2) When an value is not returned out of a statement, or assigned to a variable, said value is freed.
3) When a function is applied, if an argument has no reference (it is not stored in a variable), it is freed.
4) Additionally, if the function itself has no reference (such as in the case of an immediately invoked function), it is freed.
Hope that clarifies things a bit :D
Location: Vancouver, BC
Remote: Yes
Willing to relocate: No
Technologies: JavaScript, Node.js, Express, Python, Poetry, Flask, Git, Java, Matplotlib and more
Résumé/CV: https://drive.google.com/file/d/14oXe10o0N2EJdYOyCrMbV56WDVK_U3Ac/view?usp=sharing
Email: liamilanyvr@gmail.com
Hi! I'm Liam, just graduated from high school, going into UBC Sciences next year, and looking for a programming related internship/mentorship/job. I'm a snowboard instructor during the winter season, so I have some work experience. I've been programming for 7 years, but have never worked professionally in the field, mostly working on personal projects.My most recent project is a database of electron orbital probability distribution renders done in Python and Matplotlib: https://liam-ilan.github.io/electron-orbitals/
Check out my GitHub: https://github.com/liam-ilan
Open to doing just around anything you need me to do. If you have an opening, or any advice, hit me up :D
Location: Vancouver, BC
Remote: Yes
Willing to relocate: No
Technologies: JavaScript, Node.js, Express, Python, Poetry, Flask, Git, Java, and more
Résumé/CV: https://drive.google.com/file/d/14oXe10o0N2EJdYOyCrMbV56WDVK_U3Ac/view?usp=sharing
Email: liamilanyvr@gmail.com
Hi! I'm Liam, 16, and looking for a programming related internship/mentorship/job. I'm a snowboard instructor during the winter season, so I have some work experience. I've been programming for 6 years, but have never worked professionally in the field, mostly working on personal projects.
You can find some of them at https://www.liamilan.com/
Open to doing just around anything you need me to do. If you have an opening, or any advice, hit me up :DRemote: Yes
Willing to relocate: No
Technologies: JavaScript, Node.js, Express, Python, Poetry, Flask, Git, Java, and more
Résumé/CV: https://drive.google.com/file/d/14oXe10o0N2EJdYOyCrMbV56WDVK...
Email: liamilanyvr@gmail.com
Hi! I'm Liam, 16, and looking for a programming related internship/mentorship/job. I'm a snowboard instructor during the winter season, so I have some work experience. I've been programming for 6 years, but have never worked professionally in the field, mostly working on personal projects. You can find some of them at https://www.liamilan.com/ Open to doing just around anything you need me to do. If you have an opening, or any advice, hit me up :D
Location: Vancouver, BC
Remote: Yes
Willing to relocate: No
Technologies: JavaScript, Node.js, Express, Python, Poetry, Flask, Git, Java, and more
Résumé/CV: https://drive.google.com/file/d/14oXe10o0N2EJdYOyCrMbV56WDVK_U3Ac/view?usp=sharing
Email: liamilanyvr@gmail.com
Hi! I'm Liam, 16, and looking for a programming related internship/mentorship/job. I'm a snowboard instructor during the winter season, so I have some work experience. I've been programming for 6 years, but have never worked professionally in the field, mostly working on personal projects.You can find some of them at https://www.liamilan.com/
Open to doing just around anything you need me to do. If you have an opening, or any advice, hit me up :D
Fixed now.
I'm Liam, Ella's brother, I built the server. It was the first time I wrote a node server. It's a rookie mistake...
;(
I watched your video and although I don't understand everything, I learned a lot. Separating my program into functions is a good idea. Your video clarified the map function for me.
Through your video, I understood that I was running code multiple times, when it only needs to run once (how I parsed my rules was one of these instances that you went over in your video), so thanks for pointing that out.
Again, thank you so much for taking the time to review my code. I really enjoyed your feedback.
Tell your son that it took me a while, and a lot of work, but it feels great to finish something (there are a lot of projects that I don't finish...).
I began learning using Scratch a long time ago. They even featured me last year (the project was a solar system in which I used sine and cosine to calculate the rotation of the planets). I then used blocklike.js to move to JS.
I watch a lot of YouTube videos. I like The Coding Train, Carykh, and Code Bullet, and I get a lot of my ideas from their projects.
I used blocklike.js to jump from Scratch to JavaScript. Then I worked for months on this one game for the app store called Sticky Quest. You can find it here: https://itunes.apple.com/us/app/sticky-quest/id1425679649?mt... This how I learned how to use npm packages such as Cordova and Eslint.