W3C Internationalization Checker - An API rewrite in Java


Personal details

My details are:

Name
Joseph J Short (Joe)
Email
Joseph.J.Short@gmail.com
Personal Website
Skype ID or SIP address
joseph.j.short on Skype
IRC nick
jjs
Github account
https://github.com/JosephJShort
Phone number
+44 (0) 7837 668932
School Name
The School of Computing Sciences at the University of East Anglia (UEA)
Years completed
3 (2 of my current course)
Programming Languages
Java (Advanced), C++ (Intermediate), SQL (Particularly MySQL and PostgreSQL) (Advanced), PHP (Advanced), CSS, XHTML and other Web markup (Advanced), TeX (Advanced), Javascript (Beginner). I should have no problems in adapting to similar languages. I'm also a 'RegExps wizard'!

Background

I'm a bright and hard-working undergraduate student at the School of Computing Sciences at the University of East Anglia (UEA). I'm excelling at the undergraduate degree course of Master of Computing in Computing Science and expecting to graduate with a first in the summer of 2015.

I've worked in part-time jobs since leaving school, and have a professional and driven attitude towards my work. Soon I'll be at the start of a new career in computer science!


Project description

In keeping with the proposal template, I've hosted my project description on an external site, formatted as an HTML5 document.

Proposal history and potential mentor

The project proposal is based on an idea from W3C's ideas page entitled "Internationalization checker overhaul". I developed my proposal with feedback from Alexandre Bertails following our discussions on the IRC (at irc://irc.w3.org/#w3c). After submitting my first draft I revised the proposal to match W3C's template 'application template'. My second draft is currently being read by you!

Alexandre Bertails is the most likely person to be my mentor.

Anticipated challenges

I am sufficiently familiar with the development environment and the technology stack; therefore the greatest challenge will be in maintaining time-management and productivity. I'd like to succeed with all the main deliverables, providing quality code. Overall I want to provide the W3C with something they can use. My requirements analysis in week 1 should minimise the risk of failing at this objective.


Schedule of deliverables

Milestones and deliverables schedule

Week 1 - June 17th - Familiarisation
The First week shall be used to: download and run the existing code; set up a development environment with the right tools and technologies; conduct research about the purpose and domain of the i18n Checker; and create a rough design for the new Java API.
The deliverables are:
Week 2 - June 17th - Design and preparation
After week 1 my mentor will be able to comment on my design and requirments analysis. I can start moving the design in to a working software project. Deliverables are:
Weeks 3 to 6 - July 1st - First sprint
As soon as the above duties are completed, work on implementation can begin. In this period I shall implement the API and begin porting the test suite in to JUnit. I shall talk to my mentors for guidance, and update them at regular intervals.
Week 7 - July 29th - Week of mid-term evaluation
Early in the week, me and my mentor shall meet to discuss the progress of the project. This is in preparation for the mid-term student and mentor evaluations (deadline on August 2nd).
Weeks 8 to 14 - August 5th - Second sprint
The second period of implementation. Initially I shall act upon any suggestions and advice from the mid-term evaluation. The rest of the second implementation shall be focused on sequential completion of the major deliverables.
Week 15 - September 16th - Last week
The 16th is Google's suggested 'pencils down' date". In accordance, I shall use the last week to make sure that I leave the i18n Checker in a good, robust condition. Activities for the last week are: 'scrubbing code', integration and acceptance testing, updating the documentation and preparing the project for future developers.
Further details
I shall spend about 30-40 hours a week on the project, and manage my breaks in a flexible way. I shall establish a steady presence on the W3C IRC channel (irc://irc.w3.org/#w3c).

Other commitments

Summer research placement

I have applied for funding for an 8 week summer research placement in my school. If I get this funding, there would be a four-week overlap with the start of my GSoC project. I don't anticipate any problems caused by this overlap. I won't be able to keep regular office hours for this period, but I'll still be able to put about 30 hours in a week. I have experience with long hour days and weeks for my previous part-time work. That said, I will respect the wishes of W3C and my mentors. Moreover, if it comes to an ultimatum, this project is definitely my preference.

I have no other commitments this summer. I'm very enthusiastic about putting a lot of time in to this project; the alternative is working for about 35 to 60 hours a week in my catering job. Instead I'll have the opportunity to work on this fantastic project, and to garner the respect of members of the open source community!


Open source development experience

I do not have any experience in contributing to open source projects; this is very much to my detriment of my character. As I become an able and experienced software engineer (and ultimately a professional), I'm keen on creating a presence in the open source community. Indeed, the opportunity to begin contributing to open source is one of the driving factors behind this proposal.

I have a great admiration for open source projects and public, collaborative development. Having been a long time user of free software, I feel that I owe the most to members of: The Apache Software Foundation, W3C, the Software Freedom Conservancy, and the developers of GNU. I learned to program after having learned about web development and design; so I owe a particular debt of gratitude to the W3C for my use of their validators and their huge body of standards and information on best practices.


Work experience

Please consult my current résumé. Note that I do not have professional experience developing software; in lieu I have provided written references from my professors that attest to my ability in software development.


Academic Experience

Academic Performance

2010–11 Access course: Applied Computing Science with a Foundation Year.

A year of introductory theory, programming, math, writing and teamwork. Finished with an overall grade of 68%.

2011–12 Current course: Master of Computing in Computing Science.

An undergraduate master’s course with a wide coverage of topics in the Field of computer science. Finished my first year with an overall grade of 75%. Here is a list of my units of study and individual grades:

2012–13 Current course: Master of Computing in Computing Science.

I've the following provisional coursework marks for my current year:

I’m also taking a unit called Theorhetical Computing, which is assessed with tests and exams only.

In the next two years

My study shall be focused in these areas:

References

I've collected four written references from my professors at UEA.

First reference

Referee
Dr Joost Noppen, Lecturer in Software Engineering
Interaction
Dr Noppen runs a unit called 'Software Engineering 1' which I completed at the end of the spring semester this year. The unit was centered around a 14 week group project. Participants had to enact the requirements analysis, design, implementation and testing phases of a typical software life-cycle. The product specifications were set by a real business partner, Aviva plc, the UK’s largest insurance provider. My team submitted a web application that comprised over 23k lines of code, and documentation of over 60 pages. The teaching of the module was focused on: the principles of software engineering, design descriptions and theory, some of the tenants of good design, and an introduction to modern development tools.
Reference
[Questions written by me, answers by Dr Noppen]

Does Joseph understand the principles of software engineering?

Joseph is an excellent student and he has grasped the concepts and principles of software engineering very well. During the module and in his course work you can clearly see his understanding of important concepts such as modelling, analysing, developing and testing a software system. He has demonstrated a solid understanding of the modelling formalisms and technical documentation aspect and he has managed to combine this with the practical skills to deliver a quality working system and infrastructure.

How successful was his group project?

The group project of Joseph was very successful. The project involved creating a software system from a requirements specification to a fully working system including design, documentation and testing. The end result was a high quality system that was the result from a solid development process. During the project Joseph also demonstrated skill in facilitating development with tooling and infrastructure and moving beyond the brief in requested functionality and development practice. Overall the project was completed very successfully.

Has Joseph shown capability to work in a team of developers?

Joseph has demonstrated excellent capability in working in a team of developers. The project teams consisted of groups of four students and Joseph performed very well in his group. There was a clear coordination and division of tasks present and the group worked in a very effective manner.

Second reference

Referee
Dr Tony Bagnall, Senior Lecturer
Interaction
Dr Bagnall has taught me on two units. The unit 'Data Structures and Algorithms' gave an introduction to complexity analysis, sorting algorithms and a large variety of data structures. And the unit 'Programming 2' covered advanced object oriented programming with Java and C++ and an introduction to Matlab. You might say that Dr Bagnall has taught me the 'nuts and bolts' of computer science!
Reference
[To be received]

Third reference

Referee
Dr Graeme Richards, Lecturer in Computing Sciences
Interaction
Graeme is my academic advisor and has taught me since the start of my academic life. He teaches on lots of introductory material; he's greatly accountable for my success at UEA.
Reference

I have been Joseph’s academic advisor for three years and have taught on several of his modules. He has always been an extremely hard working and conscientious student and achieves excellent academic results. In addition to his academic work Joseph contributes to the school through active membership of the School Board and the Staff Student Liaison Committee.

Joseph’s academic performance to date has been outstanding; I am confident that he will continue to work at his current level and that this will ensure that he graduates with a First Class Honours Degree.

Fourth reference

[To be confirmed]


Why W3C

[Section unfinished]