I like to see the fruits of my labor in the hands of real people. I have trained myself in my spare time to work with a variety of environments and languages. I write maintainable, high performance code, and like it to be simple and reliable. I have an eye to onging maintainence costs and how to keep them as low as possible. I'm happy working with a broad range of technologies and will adapt to new situations quickly, researching things in my own time if the need arises. I am comfortable working in a team and alone.
In my spare time I turn my programming skills to video game development. I have professional experience with web applications and software development but I also have a good background knowledge of various programming styles. I am open minded, never to feel the need to force my styles on others, and can communicate with non technical people with no trouble. Above all, I want my work to make a positive impact, and will work for any employer who I believe is making a positive contribution.
I am a Web Applications Developer, so my primary skill is in producing interactive web applications for both fun and serious purposes. I can develop and manage the whole software stack, including source control, hosting, and deployment.
I have a broad range of professional and personal experience, and learn new environments and toolsets very quickly.
I currently work for Distinction ltd, as a web developer, I create C# ASP.net, and Kentico applications for various clients.
I was tasked with maintaining several important areas of the application, many of which were subject to a high volume of feature requests. My most important responsibilities included maintaining the timetabling system, which I particularly enjoyed, and writing and maintaining their reporting tools. I wrote or maintained several API's, which are used for core aspects of the product. I built some features from the ground up, other things I upgraded when customers made feature requests. The company was always adding new features, and the product was always growing.
I was also trusted as a key holder and would secure the premises in the evenings.
Working for this company for 3 years, I experienced a high volume, highly agile environment, with feature requests being processed at rapid speed. I developed and maintained various modules, all of which were in constant flux. Schools would occasionally require something in an emergency, for example if they recieved notice of an inspection and required a new report.
Many of the reporting tools in SchoolPod have to deal with a large volume of data, as schools gather data rapidly as they take attendance, record incidents, and schedule classes. I learned how to write high performance code in T-SQL, and I also learned to write user interfaces for web applications had to run on older browsers, right down to Internet Explorer 7.
Using the company's in-house reporting framework, coupled with Google Visualisations, I was able to produce high performance reports which brought data across from various parts of the system, allowing schools to visualise various forms of data.
I was able to greatly simplify the codebase from the state it was in following the first wave of development, cutting down on the volume of code, and introducing re-usable API's, practices and techniques which the company treated as a standard.
In tune with their policy that users should not have to go through complex setup procedures for their software, I had to enable printing in many screens across the product, which had to function from the browser. I added print functionality and developed a series of tricks and processes which were adopted by other members of the team, and improved upon. For example, a sudden customer request was received to add printing to a progress tracking tool, and I had this functioning in record time. Another request was to add a totally new print format for timetables, which I was able to turn around within 2 days. I was still able to strike a balance between rapid release and quality code; Despite the rushed coding, other developers were able to pick it up and modify and upgrade it shortly afterward.
The Timetable module was a core part of the product, and I was able to upgrade this over time from the very early beginnings to an advanced timetabling application with printing functionality. I was able to produce a highly interactive UI and visualise the timetable of a given student, teacher, or location on paper for print purposes. I implemented a number of highly complex upgrades to its fundamental data structure, while maintaining the modular structure to ensure backward compatibility.
I was the primary developer of the Dashboard screen in SchoolPod, and produced a variety of small applications in limited space. These had to load quickly and be compatible with low end devices and outdated browsers, since one of the selling points of the product was that it required minimal setup on the user's end. I improved its data structure, standardised the code and cut future development time down considerably.
My first programming job was at a company called Alberon Systems, using PHP4 to build sites for clients. This was before PHP became an object oriented language so we did everything using a procedural methodology. My main task during my employment was to develop a website for an Essex estate agent, and I had to interface with a third party database using an unusual FTP based API. The company also sold domains and sublet server space, and my secondary responsibilities were to provide technical support for both software and hosting customers over the phone.