Josh Brown
About Me Portfolio Professional Resume Demo Sites Contact

Who am I?

Scroll
My Programming Background
Basic Info Code Info AppleScript Web (HTML/CSS/JS) PHP Bash/CLI Java

Information

  • Age: 16 years Old
  • Grade: 10th
  • Education: Currently in High School
  • Specialty: Cyber Security

Background

Before web development, I spent 1 - 2 years learning networking and cyber security. This helped me develop more secure websites (More about this on the PHP page...). I started web development around late 2017. I had previously created a website using drag and drop website services. I found them to be very restrictive design and organization wise. After inheriting a computer from my sister (she got a new one) and turning it into a server (more info on Portfolio page), I started to learn networking. I configured my router and computer to host a website. My web server was open for business!

                                    
/* The tabs above are real! Click them to see the corresponding page with my experience with that language.*/

.Josh_Brown{
    font-weight: bold; /* Like attempting to describe myself in CSS ;) P.S. Sorry in advanced the CSS puns XD */
    age: 16;
    grade: 10th;
    education: Currently in High School;
    self-taught: 100%;
    preference: I prefer backend development over front end development;
    background: Before web development, I spent 1 - 2 years learning networking and cyber security. This helped me develop more secure websites (More about this on the PHP page...). I started web development around late 2017.  I had previously created a website using drag and drop website services.  I found them to be very restrictive design and organization wise.  After inheriting a computer from my sister and turning it into a server (more info on Portfolio page), I started to learn networking.  I setup port forwarding on my home router and Apache. My web server was open for business! !important;
    justify-content: I wanted to document all the projects I have worked on and/or created. More info on the profile page...;
}
.Josh_Brown:focus {
     content: "Cyber Security" !important;
}
.Josh_Brown:focus:after {
     content: "Web Design";
}
.Josh_Brown.muscles{
    display: flex; /* ;) */
}
                                    
                                
                                    
<?php

    $info['Experience'] = "Around the time I started to learn JavaScript, I wanted to set up forms and I learned PHP. The summer of 2018, I set up my first login system (for the Media Server; More info on the portfolio page...).  My experience learning cyber security and networking helped me to make sure that the login system was secure.  I did lots of research learning all of the recommended practices including CSRF protection,  XSS protection, hashing, prepared statements, etc.  This was also my first time using MySQL, phpMyAdmin, and SQL.";

?>

                           
                                
                                
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Web (HTML/CSS/JS) Background</title>
<style>
    
    .info_title,.info_description {
        font-family: 'A Cool One', sans-serif;
    }
    
</style>
</head>
<body>
    <h1 class="info_title" >My Experience</h1>
    <p  class="info_description">My experience with HTML, began as it did for most: Changing text on websites using Inspect Element. By searching through HTML with the intention of changing the content of a site, I started to understand the format and structure of HTML. I decided I wanted to create a web page for my new server (More info on the Portfolio page).  Through countless Google Searches, I learned HTML and CSS and developed a web page.  As my HTML/CSS skills increased I got more ideas but knew many of them could not be done without JavaScript.</p>
<script>
    
      console.log("I was reluctant to starts JS because this was an actual programming language, but after seeing the syntax, I realized the similarities it had with AppleScript.  I learned JS pretty quick and started to understand and implement functional programming. I just recently started to use jQuery. jQuery has made things much easier and quicker to do, but having previously done things in Vanilla JS it allowed me to understand jQuery much easier.  I also recently started with async JavaScript.")
    
</script>
</body>
</html>
                                
                                    
#!/bin/bash
echo "I have lots of experience working with bash and command line interfaces. Between creating installation scripts and setting up/maintaining many local and cloud Linux servers, I  am very accustomed to CLIs and using bash."
                                    
                                
                                    
System.out.println("Two courses of computer science are offered in my school. Honors and AP computer science. Honors can be taken in 10th grade and AP in 11th grade with Honors as a prerequisite.  I talked with the computer science teacher and received permission to skip Honors and go directly into AP computer science. I would be taking it in 10th grade and was required to learn the Honors material over the summer.  While I had not ever used Java, I was able to learn all of the Honors material and most of the AP material over the summer while maintaining an internship (More info on portfolio page...).  Java was my first explicitly/statically typed language. While not a big fan of Java, I learned new concepts, such as inheritance, that I have applied in other languages. I have the least experience in Java.");
                                    
                                
                                
display dialog "AppleScript is a language that is often used to automate tasks in applications.  Its syntax is very similar to regular English but still has all the functionality you would expect (loops, variables, conditional statements, functions, etc.) so it's a good language to learn the basics. This was, in fact, my first programming language.  Most of the concepts I was already familiar with because of my extensive work with Stencyl (More on this in the portfolio section...).  I wrote many programs allowing me to automate different things on my Mac. For example, I built a script that counts the total pages of all the PDF's in a particular folder.  I later used AppleScript to create a bot to beat a Trivia game called HQ. (More info on portfolio page...)."
                           
                            
this websites code

Created Custom HTML5 Video Player

January of 2019

Based on Netflix's own player, I decided to build my own. While it is still a work in progress, most things work properly. I used Font Awesome for the icons and jQuery.

this websites code

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.

2fa preview

Created 2FA for Port Chester - Rye Brook Public Library

October of 2018

Another developer had created a UI to allow the library to edit the website without having to know HTML/CSS/JS. To increase security, I created and implemented a 2 Factor Authentication system.

Google Cloud screenshot

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.

Testimonials

JP

"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."

McAndrews logo

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.

Testimonials

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 screenshot

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 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.

Testimonials

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."

sign picture

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.

media website screenshot

Created Home Media website for family

August of 2018

My family had many old movies and TV Shows that we decided to digitalized because we wanted to watch them online. I decided to create a Netflix-like website. This was my first time creating a login system and using SQL. Each family member chose a unique username and password (stored hashed) that granted them access to the media 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 movie. Additionally, I included a request movie system where users could request movies to be added to the site. Finally, I added a profile page, where users could change their username and/or password, and view all requests and resume data. (Note: The demo below contains free videos in lue of movies. For demo purposes, user data (including request and resume data) is not saved and any username and password combination is accepted).

hq website screenshot

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 (source code below, although code quality isn't great. I was rushed.) 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.

Testimonials

Jake M.

"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"

Lauren W.

"The bot ran really well and the website was very easy to use."

keyboard server

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.

Testimonials

Rachel B.

"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."

Michael B.

"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."

study clash screenshot

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.

Testimonials

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!"

Zombie Wars Screenshot

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 (yeah, very original, I know ;). 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 letters, 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!

And more to come...

Coming Soon...

Contact Me

×

Welcome to my personal website. This website contains most of the projects that I have been involved in or created. It is also self hosted. While I do have experience with other libraries/frameworks, this website does not use any (with the exception of jQuery). All HTML, CSS, JavaScript/jQuery, and PHP was done by hand. No content/code creation programs/templates were used. All photos and screenshots are also original. Thanks! Note: The site is not complete yet. To close this message, click the X in the upper right.