Who am I?
- Age: 16 Years Old
- Grade: 11th
- Education: Currently in High School
- Specialty: Cyber Security
My name is Josh Brown and I am currently in 11th Grade. My main interest is cyber security, specifically application security. I also do web development for fun and for practicing web security. I also like taking and editing photos and videos.
Here are some of languages and technologies that I have experience with. I have varying degrees of experience with each item. See the Portfolio page for examples.
- Node.js (Electron, npm, yarn)
- Java (JavaFX)
Here are some of the editing programs that I have experience with.
- Adobe Photoshop
- Adobe After Effects
- Adobe Premiere Pro
- Adobe Audition
Created a Schedule Generator For my School
For the new school year, my school switched over to a rotating block schedule based on an 8 day week. Each day in the school year was designated a letter A through H each referring to a different period order. A student would receive a list of classes along with their associated period and letter days it applied to. A student would then have to match their schedule up with the letter day schedule. As you can see, this is very complicated and it can be difficult to remember everything and know where were one has to be. As such, I created a tool that imports a student's schedule from the school's scheduling website, eSchool data, and generates a printable letter day schedule and an iCal file containing events for each class for each day with the class name, classroom, and time. The website also autosaves users' classes for easy editing in case they make a mistake.
Completed Introduction To Systems Development (CNIT 18000) at Purdue University
Summer of 2019 (July - August)
Over the summer I decided to attend a class at Purdue University. I took Introduction To Systems Development (CNIT 18000) because it was the first course in Purdue's cyber security track and one of the few offered in the summer. The class was taught by Professor Victor Barlow.
In class, we learned many things. We began with learning about the SDLC, feasibility studies, scope, and creating DFDs. We then went on to requirements modeling, using UCD to model interactions between users and an information system. Next, we learned about validity checks and data and process modeling. We created DFDs to visualize how data was related. We continued on to object oriented modeling. My experiences with objects in object oriented programming languages made this portion significantly easier to understand. Next, we learned about user interface design, creating forms, and creating reports. We also learned about database design and querying. We learned about primary keys, composite keys, secondary keys, foreign keys, referential integrity, schema, types, cardinality and more. We modeled our databases using ERD and used SQL and QBE (MS Access) to query to database. We went on to learn about basic networking, OSI model, bandwidth, network types (bus/ring/star/hierarchical/etc.), WANs, and LANs.
Overall, I really enjoyed the class and learned a lot from it. My previous experience with object oriented programming, networking, database design and implementation helped me greatly.
Created StackOverflow / StackExchange Chat API Documentation
May of 2019 - Current
Since I wasn't unable to find any documentation of the StackOverflow chat API, I decided to create my own. The documentation is currently in progress. All of it is from various contributors manually testing and writing results for the documentation. Most of the documentation was written and tested by me, @Zoe also contributed significantly.
Created StackOverflow / StackExchange Chat Bot
May of 2019 - Current
I had been wanting to create a StackExchange chat bot for a while. I was originally most active on Ask Different, however, unlike many other sites, Ask Different did not have any bot inside their chat room. I spent a while researching creating a chat bot for StackExchange, but found very little information. I made a boilerplate to allow other people to create their own bots. I also added a plugin API so that people can add their own commands to the SO bot. Currently, the SO bot is in a couple different rooms across the network. The bot was written in Node.js.
Created Quick Downloader
January of 2019 - Current
With the help of Jake Schneider, we created Quick Downloader, an application that uses byte requests to download files from the internet an incredible speeds. Based on our tests its can reduce download time up to 80-90%. If you don't believe me, check it out for yourself below! :)
I came up with the idea and presented it to Jake, who agreed to help me create it. We split up the work so I would do the actual downloader part while he would stick with the UI part. We decided to use the Electron framework as we were both familiar with Web programming and it was cross platform. Jake decided to use React for the UI. In the end, we assisted each other on different parts of the project. I assisted him with some of the CSS and he helped improve and fix the downloader. This was my first project using Node.js, Electron, and React. It was also my first desktop App.
Due to our lack of React experience and suggestions from other developers, I decided to ditch it for v2.0. I removed React, recreated the entire UI from scratch (using the v1 as a reference), and rewrote the downloader script. v2.0 was released on August 8th 2019. Resuming downloads is scheduled for v2.1.0
Created This Website
November of 2018
I really wanted to document the projects I have worked on and teams I have been fortunate to be a part of. I also thought creating this website would provide an opportunity to practice web design. One of my hobbies is photography, so I made it my goal to have all the photos be originals instead of using stock images. All the images for the projects on this page are clickable and will bring up a bigger version. The one on the left is actual code from this site controlling the contact form, however the current code may have been changed. The up to date code can be seen, on GitHub, by clicking the "Source" button below.
Creation and Management of the Port Chester - Rye Brook Public Library Server
September 2018 - Current
After discovering a significant vulnerability with our web hosting service, allowing all sites to access all other sites' website files (including the donation user data) and another giving all sites root access to the server, I recommended changing web providers. After the library agreed, I set up a Google Cloud Ubuntu instance and worked with the other developer, JP, to transfer all of the library's files. I also installed PHP, MySQL, phpMyAdmin, set up an automatic backup script, and set up an automatic certificate renewal script. I continue to manage the Google Cloud instance. The demo below is the website that is being hosted on the Google Cloud instance.
"Working with Josh was a good move both business and personal wise. We worked together on several projects and I gained new insights in coding and am learning how to code much more securely. I gained a mentor as well as a friend. I’m glad he and I decided to work together."
Paid Internship MacAndrews & Forbes Incorporated
Summer of 2018
My eight weeks working in the cyber security division of MacAndrews & Forbes provided a great opportunity for me to both learn and gain experience in a work environment. During my time there, I worked with Sophos Central, Palo Alto Networks Console, Amazon AWS (Ubuntu and Windows instance creation, management, etc.), and many other tools.
MB, Cyber Security Technician
"I had the pleasure of working with Josh this past summer. He was super helpful, engaging, and eager to learn more about Cyber Security in the workplace. That type of demeanor displayed day in and out, let me know Josh is destined for great things! Not only did he learn something new, but I too obtained a great skill from him. Josh was pivotal in providing a solution to track important data in our project, which added value to the overall success. Thank You Josh, continue to be curious!"
Donation page for Port Chester - Rye Brook Public Library
February - March of 2018
My town's local library hired me to create and to set up an online donation page. In the past, while the library had a website, it did not allow donors to donate, instead the Library collected cash donations. The staff believed donations would increase if they had a more modern donation system. Using the PayPal API, I created a donation page. Unfortunately, the library's website was not encrypted with HTTPS. I informed the staff of the security risks associated with handling sensitive user data without proper SSL encryption. I also informed them of Let's Encrypt's free certificates. I worked with the other developer and web provider to install the certificate. The library was so pleased that they offered me a retainer to manage the donation page and to provide monthly site maintenance.
Dr. Elise Lemire, President of the Friends of the Port Chester - Rye Brook Public Library
"We were fortunate to find in Josh Brown a web designer and security expert on par with the best in the industry. We very much appreciated, in addition to his considerable expertise, his timeliness, attention to detail, and his ability to explain highly technical concepts in laymen's terms."
Volunteer Rye Brook Senior Center
October of 2017 - Current
Every Tuesday and Thursday I volunteer at the local Senior Center. I assist seniors with many different tech problems ranging from powering on a device to teaching them how to use Facebook, to malware/virus removal. This opportunity has given me experience with teaching others and communicating complex information.
Created Home Media Website
August of 2018
Inspired by Netflix, I decided to create a TV Show/Movie website. This was my first time creating a login system and using SQL. Each user can choose a unique username and password (stored hashed) that grants them access to the site. Like Netflix, resume data was stored in a database, allowing users to resume play from any device logged into their account. I used The Open Movie Database to provide information on about each TV Show/Movie. Finally, I added a profile page, where users could change their username and/or password, and view all their data.
Created an A.I. bot for the popular HQ Trivia game
December of 2017 - March of 2018
When the popular HQ Trivia game was released, it got me thinking of how I could beat it with a computer. I spent a couple of days theorizing how I would accomplish a task such as building a bot to answer questions. My first attempt took 14 seconds per question to convert the images into text, much longer than the 10 second limit. I then changed the method of text conversion to use tesseract-ocr. Once I was able to get the conversion time down to a couple of seconds, I started building the actual program. I created the base program in a couple of hours. I played the game with friends that night and we came close to winning. I spent the next couple of days refining the algorithm. The bot was now able to detect the type of question and adapt, it also was able to give different confidence ratings to each answer. The bot was now able to answer a question within four to five seconds. Word got around pretty fast and I developed a website where visitors to could view the bot's responses live. Visitors could also sign up for text alerts about upcoming games. Finally, on super bowl night, my friends and I won a total of $200 using the bot.
"The HQ bot was able to solve answers to the game very efficiently. It helped friends of mine win money in HQ when they normally wouldn’t have been able to without the bot"
"The bot ran really well and the website was very easy to use."
Created and managed my first home server
August of 2017 - Current
My sister, Rachel, was starting her freshman year at college and was purchasing a new computer. The new computer had a smaller drive than her previous one. This meant she was unable to transfer all of her data. I proposed the idea fo building a file server, or a cloud, as I described it. This would allow Rachel to access her data from anywhere in the world, from any computer, at any time. After transferring her data to an external drive, I wiped her old MacBook Pro 2011 and used it to create the file server, protected by a password only my sister knew. This worked extremely well. I then expanded the file server to allow for each of my family members to have their own private folder on the server. I also created a shared folder, for all of the media we wanted to share. This helped with sharing large amounts of photos and videos. Months later, I furhter expanded the server and started with a web server. This began my journey on web design. Currently, the server hosts this site and one more.
"I am not a person who likes to separate from old things, so having the server at my fingertips, makes me feel better because I can still view old files."
"Having our own personal server is a wonderful way to be able to share information and pictures with family and relatives anywhere in the world with ease and privacy."
Security Research for Study Clash
August of 2016 - August of 2017
Study clash is "a platform [that] converts study guides into multiple-choice trivia games" allowing "students [to] compete with their friends" to make "learning fun and more engaging". I was asked by the founders, Scott and Bryan Benson, to beta test the website and app. While beta testing, I found multiple vulnerabilities one of which allowed an attacker to change users username, email, and school without authentication. I quickly communicated these vulnerabilities to the founders and discussed possible solutions. The vulnerabilities were rectified within a couple days. This was one of my first experience with real world web security.
Scott and Bryan Benson, Co-founders of Study Clash
"Josh is very advanced for his age and went out of his way to help identify vulnerabilities in Study Clash. We were impressed by both his technical abilities and initiative. He has a bright future ahead of him!"
Created Games Using Stencyl
Summer of 2013 - Summer 2014
During the summer of 2013, I was first exposed to " programming" at summer camp. After designing the characters from scratch in Photoshop, we used Stencyl, a drag and drop coding flash 2D game maker, to develop the games. At the end of 2013, at the age of 10, I completed my first game: Zombie War (playable below, although you need flash). The game was set in an apocalyptic city. The payer must fight off zombies while rationing ammo to survive. Each level increases in difficulty. Shortly after coming home for the summer, I developed a sequel to Zombie War: Zombie War II. This game had the same premise but with more weapons and much more difficult levels. Finally, the following year I created Running Fun, a obstacle course game. The player must climb ladders, jump, and run to avoid spikes, bats, and bullets. While Stencyl did not provide a real coding experience, it did provide me with the fundamentals of programming and logic (if statements, variables, loops, etc.). Click below to play! Note: It may take a bit to load and once they load, you must click on the game to get the controls to work. Arrow keys and space bar are used for the games. Good luck!
Success! Thanks for your submission.