SQL Parsing @ Google 2020 Summer Remote Intern
In the summer of 2020, I have worked as a Software Engineering Intern at Google for a SQL Parsing Project. The deliverables of the project is a group of feature design documents and a forked version of apache-calcite that enable query to be parsed into objects for downstream translation.
Here is what I've accomplished:
- Designed and delivered new features to the Google version of Apache Calcite, increased customer queries's pass rate from 40% to 95%. Customer was highly satisfied.
- Provided constructive feedbacks on feature design docs and code to other software engineers. Resolved conflicts in remote collaboration. Presented project and helped other teams to integrate it as a critical component in other projects.
In this project, I learn a lot about working as a software engineer.
Writing design document - Design documents need to be written in a way that is easy to read, follow, and comment on. To achieve that, design docs in the same project should follow the same template, which makes it easy for the readers/reviewers/future author to locate contents. Description and explanation of why the feature will be written in a specific way will benefit from being detailed. With detailed description and reasonings, reviewers can then pinpoint their questions and comments towards any component of the feature.
Communication in remote environment - After encountering a conflict of opinion on a feature design issue with my teammate, I tried to communicate over asynchronous comment threads first. We were not able to agree on a solution. We then escalate the discussion to our manager, and eventually resolved the conflict through a meeting. It's easy to lost context and get into conflicts when a long comment threads are formed on a certain design doc or a certain piece of code in a remote working environment. I prefer a synchronous way of communication when large issue come up in the team in a remote working environment.
Java Programming & Compiler Related - (waiting to be added)