:sunrise: GSoC 2019 with Zulip

:sunrise: GSoC 2019 with Zulip

- 10 mins

This post contains a summary of my accomplishments during my time as a Google Summer of Code 2019 participant with the Zulip Open Source Project.

I would like to thank my official and un-official mentors who helped me to become a better software developer. With their help, I’ve had an incredibly fun, productive, and enriching summer!

Tim Abbott, Aditya Bansal, and Anders Kaseorg: Thank you for your patience and insight, and for imparting excellent advice and expertise when reviewing my code.

My work for the summer, based off my proposal, improved upon Zulip’s already awesome development productivity tooling. Alongside this project, I also completed a project that implemented a full web application feature from scratch. This feature brought a “public only” data export capability to the application with a simple click of a button. An event that previously took a few back and forth emails, and effort from a Zulip administrator to manually conduct the export.

Work completed

My work during the summer can be found at my GitHub project.

All of my merged commits can be found here.

Development productivity tooling

This project consisted of many sub-projects to improve the quality of life for developers.

Clean up var/ filesystem access

This project consisted of two-parts: A general initial clean up and re-structure, followed by the long-term implementation for the filesystem.

A couple bug fixes as additional follow ups:

This project helped me to see the importance of planning, drafting, and editing when it comes to implementing ideas in code. It’s one thing to have the right idea, but another thing entirely to have the best approach.

Moving forward

Mypy upgrades

Later in the summer I began work on upgrading mypy, as well as adding the new --warn-unreachable option, which warns of redundant or unreachable lines of code. Adding this option resulted in a large blob of files that needed to be looked at as preparatory work in order to add the option by default.

Export feature for the webapp

This project has been on-going since April 2019. It was an awesome feeling to see this pull request closed, and the “public export” functionality of this feature complete. The journey here was an incredible learning experience in code-reviews, full stack development, and software engineering in general!

After working on this project, I can’t imagine a more efficient way to get well acquainted with the Django framework. Tim Abbott is an incredible software engineer, and a kind and patient teacher. This project wouldn’t have been possible for me without his help. With his guidance and feedback, I have come a long way from the software developer I was when this project began.

Work on the TODO list

I still have a few pull requests in progress that are both pending review, and in need of a new perspective to achieve an optimal approach.

Besides the two projects mentioned above, there will always be plenty of other work to be done! One of the really enjoyable parts of my summer was assisting fellow students when they ran into issues regarding the provisioning process, or when they simply faced problems with the development experience in general. Being able to help out the development community was a very rewarding experience. As such, I’ll continue to lend a hand whenever and wherever I can!

As I head into the new school year, a side-project that I plan to work on involves integrating the mypy pyre-stubs into a current stubbing effort with Django. This project will give me increased exposure to type hinting and annotations, helping to improve my understanding. Alongside this venture, I’d like to work on upgrading to Django 2.x. Combining these two efforts to help improve upon Zulip will push me outside of my comfort zone, helping me to grow as a software engineer.

Wyatt Hoodes

Wyatt Hoodes

Pressured != crushed; Perplexed != despair

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora