|Hello, I'm a||developer.|
|human being named TJ.|
Nice to meet you.
My name is TJ, and I'm a 16-year-old developer. And this is my website! I'm listening to nothing by nobody right now.
I am an Intern in Software Engineering at srnd.org, the non-profit behind fun events like CodeDay and CodeBreak. I help make software such as CodeDay Clear, CodeDay Showcase, and more. See our open source site for a list of projects I've probably touched.
Not only do I work on projects at srnd.org, but I have many personal projects listed below (and on GitHub). So check them out as well :)
Some stuff I've worked on over the years. These are only a few of my projects; you can find all the rest on GitHub.
CodeDay Companion: A native Android app written in Kotlin to provide useful and contextually relevant information (such as upcoming event activities and announcements from the organizers) to CodeDay attendees before, during, and after the event. Source code will be released eventually.
MakerBot WebUI: A Node.js web app that acts as a MakerBot 3D printer controller. It's targeted toward public spaces such as college campuses or makerspaces that have public 3D printers. It lets users sign up on their own and queue their own prints. Basically, it eliminates the need for someone onsite to manually queue prints.
node-makerbot-rpc: A node module that communicates with MakerBot 3D printers via JSON-RPC. Supports things like uploading print files and basic functionality. Useful for automation. Also used in the MakerBot WebUI project :)
ExpressPoll 5000 Hacking: Some security research regarding the ExpressPoll 5000 done at DEF CON 25. Received some press coverage as well:
- Inverse: How a 16-Year-Old Hacked a Voting Machine This Weekend
- WIRED: To Fix Voting Machines, Hackers Tear Them Apart
- IB Times: Hackers break into US election machines in 90 minutes to show flaws in electronic voting
- The Hacker News: Hackers Take Over US Voting Machines In Just 90 Minutes
- Armstrong and Getty: (Segment from 8/2/2017)
In my free time, I like poking websites for security vulnerabilities. And, of course, I disclose them responsibly. Here's what I've found.
Environment Variable Leak on npm: Found a vulnerability in the npm internal API that leaked environment variables, including API keys and database passwords (Seriously, their Redis password used to be this-is-a-password-for-redis-and-it-is-a-secret-so-dont-share-it), on certain requests.
Cross-Site Scripting and Privilege Escalation on Big History Project:
When updating a user's profile, one could send arbitrary data to the server in the name fields,
and that is later shown on the website but isn't escaped, so you could put anything you want in
there. It is also shown and effective in the teacher's dashboard, so a student could technically
just XSS a teacher.
A certain exploit allows a student to gain access to the teacher dashboard, and do everything a teacher can do (enable tests/quizzes, view student scores, add/delete/edit students and classes, etc.) This is obviously really bad.