I joined wave with somewhere between 2 to 3 years of experience in Computer Science and having only worked on academic projects. Since joining the Foundation team, I've taken on the role of a traditional developer and become a key member of the team. Through working with amazing developers, I've increased both front-end and back-end development skills. I've also had a chance to work on an amazing product as it matures in a demanding fast paced environment. Check out Wave Apps.
A major project I've worked on was porting the public site over several major versions of Django in a 2 day period. This also involved upgrading third party libraries and re-architecting the static file storage so that the application could be scaled across multiple servers. This allowed us to clean up the existing repository and update the code to our normal development standards.
A responsibility of the Foundation team, the transactions page is where most of my user-facing development can be found. I've written bug fixes and features that allow our customers to get more out of the accounting product.
One of the major features developed by our team during my co-op was bank reconciliation. I had a hand in both the front-end and back-end components of this feature and recently wrote a blog post about implementing the drag & drop feature. Read more about my experience with bank reconciliation on the Wave Product Blog.
Another project I took on was to re-write a significant portion of our CSV bank statement uploader. This involved diving head first into legacy code, of which no current employee had written. It gave me a chance to work on something user-input focused and trying to make it as versatile as possible.
Working as a part of a team with new and older, more experienced, co-workers is a large part of Wave's culture. In a team culture, I've been able to learn from and pair up with more experienced developers and have the opportunity to work on large projects.
Becoming familiar with and developing on top of a large legacy code base has been a challenge at Wave. Often, the original author of the code is not around and I've had to work with, clean up, and be creative with legacy code.
Agile development is the software delivery process of choice at Wave. I've been a part of sprint planning and estimations, and a few different management styles.