Software Development at Environment Canada

Project Summary
As part of my PEY program, I secured a 16 month internship at
Environment Canada from May 2009 to Aug 2010. My primary job is being a Software Developer for the Data Management System (DMS) team, which is responsible for creating better processes for management of data, achieving standards and putting data in a format useful for clients and helping business continuity. Environment Canada is the branch of the Canadian government responsible for providing and maintaining meteorological activities and weather stations, so ‘data’ in this case usually means weather data and clients would include other branches of government, the meteorological team NinJo or the Weather Office network.

Technologies Used
Java was the main programming language I used. I used NetBeans as my main IDE.
Hibernate and Spring framework were the main Java frameworks that the DMS team used to communicate with the Oracle database.
We used Accurev to maintain a source code depository and also for continuous integration purposes. Hudson was used for build management. We used Aqua Data Studio to access the RDBMS and to execute queries. We used Maven as our build manager for our components and applications. Mantis is used as our bug tracker and to assign issues to developers. For testing applications, especially the Core interface, Apache Tomcat was used to deploy web servlets with the logging provided by Log4j.
Finally, We have our internal development wiki (powered by MediaWiki) for testing feeds and internal government Sharepoint to store and modify documents that hold the specifications and designs for our components.

Responsibilities/Roles
My responsibilities were several:
-Maintain the Core interface which interacts with the clients/components and the underlying database.
-Create and revise specifications and design documents.
-Implement code following the specifications and designs documents.
-Test the code using JUnit testing and integration testing.
-Build and test data and metadata lookups using the Core interface.
-Schedule and present specification, design and code reviews to upper management.
-Help maintain the DMS Developer Wiki by providing correct XMLs and URLs.
-Fix any bugs and issues with the code and send it to the testing team for packaging and release.

Project Details
Since this project was done over a period of 16 months, I was required to write a report on my accomplishments. Details of my project report can be found here.

Downloads
Government documents and software are considered sensitive so I don’t release the code. If you want code samples as proof of my work, then feel free to email me (Link at bottom).