CODE

MY PROJECTS

Family tree project

This was my capstone project in college. Initially I worked on it with a couple friends, then I worked on it by myself for a few months after graduating.

I was inspired to make this project after discovering two books that documented my family’s history going back before the American Revolutionary War (but interestingly, not to Europe). The books were uploaded to Google Play Books for free as part of Google’s book scanning project.

The project runs as a web app.

Features:

  • Storage of family trees on a database
  • User accounts with support for login with various socials
  • Visual representation of the family tree as a graph
  • Support for complex family structures
  • Limited support for the popular GEDCOM file format
  • Creation and editing wizards
  • A modern-looking interface

repo

Class assignment planner app

Previously posted on Google Play. This app has since been delisted as I didn’t feel it was worth maintaining.

The app featured sorting, notifications, marking done, assignment import/export, and more. Online sync was in-progress but abandoned as I couldn’t figure out the Google Drive integration.

repo

Raxar

A notetaking app with a hierarchical structure and an entertaining physics-based UI.

This is an incomplete app I’ve started and given up on a couple of times. I’ve got a DB structure, but the math required to make the UI work the way I wanted it to work kept kicking my ass.

2048 Android clone

I created a clone of 2048 on Android that I’m particularly proud of because I was very particular with the details, trying my best to be true to the original web version. I think it contains the most animations of any completed project I’ve worked on.

I’ve opted not to post this to itch.io even though I expect it to work on modern Android devices as I’d like my itch.io to be predominantly original work.

repo

CODING RESOURCES

General Tips

Read the docs!

Use Google to search Stack Overflow or other forums for help with specific topics.

Ask Gemini or other LLM your questions for help with more general topics.

If you can, work with people who can answer your questions.

Ask good questions.

  • Avoid non-specifics like “this”, “that”, or “thing”.
  • If your confused, start by pointing to a specific word that you don’t understand, and then asking what that means.

Dream big and scope small

Figure out how to use a debugger

If you keep upgrading your dependencies or migrating to new tools, you’ll never get things done. Finish the project, and then try out the new framework when you start a new project. A framework you have used where you know the limitations is usually better than a framework where you don’t know the limitations.

All languages are the same. Once you know a couple different ones, you know them all. To be specific, all languages implement

  • Storage
  • Branching
  • Functions/methods
  • Conditionals
  • Loops
  • Mathematical operators
  • Binary operators

And then most implement

  • Data structures (Array, List, Dictionary, Set, etc.)
  • Functional transformations (map, filter, etc.)
  • Multithreading/Multiprocessing (not the same thing, but similar interfaces)
  • UI
  • Audio
  • Networking
  • Libraries
  • etc.

A language is a tool. Appreciate it, but don’t get too attached.

It’s good to be comfortable learning any tool. It’s good to pick a few tools to be an expert in.

Be wary when reading opinions. Use your judgement and learn how to measure things.

Being an expert just means knowing more about the topic than the people around you.

Good engineering: “I encountered problem X. I thought Y was a good solution, so here’s what I came up with. What do you think?” Obviously, there are cases where you’ll get in trouble if you start on the solution without approval, but a good working relationship with your boss is one in which they trust you, even if they disagree with you sometimes.

A good working environment is one in which you can be honest.

Suggested Links

General Purpose

  • CyberChef: A site for figuring out the encoding of a string
  • Google Fonts: Index of fonts for use in websites
  • Jetbrains: Family of Interactive Developer Environments (IDEs) that do everything you’d ever need, and do it in a modern way.
  • VS Code: General purpose text editor with a good plugin support

Learning

  • Scratch is a great tool for getting an intuition of many of the limitations of computer programming.
  • Codecademy has well put-together courses for self-education. Some of the lessons have gaps that I struggled with. I’m guessing AI can help in this regard.
  • Udacity is ambitious with the number of topics it throws at you, which can be good or bad.

Career

If that’s your thing

  • u/RunninADorito has an excellent Reddit post on the subject

Unity

Proudly powered by Neocities