My professional work in the software industry over the years. There is a bit of time between jobs here and there where I was working non-technical jobs and spending a lot of time on personal projects working to develop the skills needed to work in the industry.
Web Developer (May ‘12 - Sept ‘13)¶
This was my first time working in truly high scale development, both in traffic and in team size. It was also my first gig working with a purely remote team distributed across many timezones.
- Started out working on addons.mozilla.org, reworking the use of redis as a part of the caching solution.
- Worked on security critical sections of the site including the blocklist that Firefox uses to shut down bad addons and extensions in the wild.
- Was moved over to working on marketplace.firefox.com as part of the payments team.
- Integrated with multiple payment providers and built the security pin portion of the site.
- Was involved in many of the architecture choices such as revamping deployment, moving to smaller services, and caching.
Senior Software Developer (Mar ‘10 - Feb ‘12)¶
I loved this company and learned a great deal while I was working there. It is where I cut my teeth on Django apps that needed more than just some more hardware thrown at them to scale.
- Was part of a team that implemented, maintained, and extended a large Django application that powered 3 sites.
- Scaled that application using celery for offloading and generous amounts of caching.
- Upgraded Django between major versions twice. From 1.1 to 1.2 and from 1.2 to 1.3.
- Wrote and encouraged the writing of both unit tests and functional tests.
- Wrote and maintained one click deployment scripts using Fabric.
- Interfaced with the clients regularly to gather requirements for features.
- Guided the architecture of the application using community best practices and past experience.
Software Developer (Sept ‘09 - Nov ‘09)¶
This was a PHP shop I worked at for a short while. I did development on a well established code base.
- Updated unit tests, allowing for more confidence that application was correct.
- Met with clients to discuss and advise on what course to take for re-designing their software.
- Implemented feature requests, fixing existing bugs in the module while adding the feature, resulting in cleaner, better documented code.
- Participated in “brainstorming” sessions concerning design/testing details for various project.
Critical Path Software¶
QA Tester (May ‘08 - Aug ‘08)¶
Here I worked in the QA department testing software and hardware. The primary project I was hired for were 2 lines of computers that a company was going to release and they wanted some independant stress testing done in a wide range of activities. Online gaming, word processing, downloading content, watching HD video both streaming and off a Blu-Ray.
- Learned to write very effective bug reports.
- Wrote and executed test plans, tracking progress and reporting defects.
- Worked with a team to decide on software milestones and requirements.
- Set up many different hardware/software configurations for testing.
- Wrote a tool using C++ to generate data for testing.
- Assist in delegation of various portions of testing to help train new members of the team prior to product release.
Intern Software Developer (Dec ‘05 - Aug ‘06)¶
This was my first foray into the world of software development at a company. The stack was a large java backend with a PHP layer on top with liberal use of Perl as glue.
- Cleaned up and maintained several in-house tools written in Perl, Java, and PHP for processing and displaying circuit schematics.
- Created a GUI for two of the in-house tools so that non-technical staff could assist in processing schematics that needed human interaction.
- Implemented a secure login system with detailed permission setup.
- Documented all of the above mentioned work, along with a large portion of a Java based webserver back-end.
I had a great time at this job and this, on top of my passion I already had, really sealed the deal as far as my desire to pursue software development as my career.