Saturday, June 4, 2016

First 2 weeks done!

So I have missed writing these blogs, and I will make sure to write one every week. Last week I was working on updating my website to allow me to post these blogs. You can check it out here,

My first 2 weeks at Mozilla

My First 2 weeks have been good and bad. I will start with the bad. 

My original project was to convert a bunch of tests from Mozmill, Mozilla's Javascript test runner, to Marionette, their new Python based runner. I was excited. I would be able to put to use a lot of efficient algorithms that I've learnt over the years, and go all out. Sadly, that won't be the case.

Project Changes

So now my project is a bit up in the air. Everyone at Mozilla seems to be super busy as my mentor hasn't even had a good chance to give me the details on the new project. Either way I am looking forward to it. I am happy to be in an environment with such smart and bright individuals. I observe how they work and am learning to ask less questions. Weird, but questions can be problematic, especially too many questions. Google is becoming my best friend again. 

All in all I will write a post next week detailing the new project! 

Life of a dev

Within these 2 weeks my mentor has showed me a lot about how the workflow of a developer is always changing but has a few key principles. 
  1. Fix it if it's broken
  2. Ask the RIGHT questions
  3. Don't be afraid to do extensive research on the question you have
I'd say these cover quite a few areas but I'll explain.

Fix it if it's broken

With my current bug that I am very very close to finishing I ran into a few conceptual problems that caused some misunderstandings. 

I am a Java dev. I learned Java after C and initially loved it. I still do have a soft spot for it even now. However, this last week I was requested to edit what is known as a Concrete Class, or a Parent Class. Now to me, this was forbidden. I looked for every way to not have to edit the class, but there was no way to be found. I eventually had to ask my mentor and he told me something interesting.

My mentor said my logic was right. He said the fact that I am thinking in an OOP (Object-Oriented Programming) way was very good. However, he said to do what I was told as the final say. So now the Parent class ended up to be a little broken, but it was a relatively easy fix when I asked the right question.

Ask the RIGHT questions

Continuing on about the bug I am working on, asking the right question helped me to see what needed to be done. I was getting a very cryptic Javascript error, that my mentor eventually helped me figure out. Turns out the way the class was written was broken! So now I had to figure out why and fix it. 

Not knowing much about the entire project, a lot of research was done, as pointed out above. It turned out to be an easy fix, especially with python. Now my test runs great and anyone who needs to run that method that was broken will never run into problems with it. It was quite empowering knowing that I had just fixed a very important class, and that many developers after me will be able to use it just fine!

Wrapping it up

These first 2 weeks have been eye opening, and awesome at the same time. I know this next week coming up will be awesome and I can't wait to see what's in store for me!

Tuesday, May 3, 2016

Mom! Get the camera!


Hello world! 2 words every programmer will know all too well. It signifies a new effort in learning, and the first attempt and trying to understand a new language. This time, however, I really am saying hello!

Who am I?

My name is Benjamin Forehand Jr. I am a student at Valencia College, hoping to transfer to the University of Central Florida eventually. I study Software Development. I am 24 and from Orlando, FL.

I LOVE technology! It's always growing and there is always some cool you can do with it to aide your life.

I also love anything with an engine. I am a big Formula 1 fan as well as Endurance Racing. I have gone to a few events in the United States, and plan to attend many more. You could say that I am a car guy.

Music is also a love of mine. I am into electronic dance music and that is what I mainly listen too. I also love Reggae (part Jamaican) and alternative rock, like Coldplay.

Exercise is something I view as important and I usually workout during the week. It helps me stay focused and feels great at the same time. I do love sports, and I like to play Basketball when I can.

Why am I here...

I've always wanted to start a blog, a place to write out what goes on inside my head and to eventually teach people, when I have the skills too. I think blogs are great. I have learned so much from them and I would love to contribute to the community. 

That leads me into the topic of Open Source.

Open Source Projects

I personally love open source projects. I think the idea behind it is great. It makes it easy for the tech-minded individuals to be able to access high end technology and see how they can use it and or make it better. 

FREE. This word comes to mind when you talk about open sourcing. Its Free! Being able to use great software or hardware without buying it is great for the consumer. It also aids the producer because it gets their product out there, especially if they offer some form of paid support or something along those lines.


As a student and an eventual developer, one of the main ways to get your resume taken a bit more seriously is showcasing how you work. Contributing to an open source project that you actually like is a great way to do this. Usually you can get some form of mentoring from a lead developer on the project too. So not only can you showcase your skills but you also learn something. These skills will eventually prove valuable to someone and BAM, you've got a job!

I am currently contributing to an open source project from Mozilla. I'll tell you a bit about it below!

Outreachy Internship

I have been accepted into the Outreachy internship and will be interning with Mozilla. If you don't know what this internship is, please visit this link: Outreachy. I am very excited and thrilled to have this great opportunity to learn a lot from some outstanding developers!

Outreachy Details

I will be working with Mozilla on their Firefox Automation team. Specifically, I will be converting some tests from Mozmill (Javascript) over to Marionette (Python). I have already started and it has been quite the learning process! 

Working directly with the lead developer for the Firefox Functionality tests (Henrik aka whimboo) has really opened my eyes. I have learned so much and the test I converted wasn't even too involved. I can't wait until they get a little more difficult so that I can learn even more. Henrik is great too. He's very patient and doesn't get mad when I ask a ton of question, because I really do ask a TON of questions!

All in all, I am grateful to my mentor John Dorlus aka Silne30 for accepting me into the program and helping me even before this. He has turned into a great friend, someone I can go to for more than just technical questions. I know he is just as excited as I am.

Wrapping it up

So this being my first post it was kinda long. The posts that follow may be long as well, who knows. I would like to not only talk about what I do for the internship, but allow you to get to know me better through this blog as well. I hope you stay along for the ride!

- Benjamin