My Internship with Intuit
- 2 minsIt’s been a while since I’ve written on my blog! And I haven’t contributed to any new personal projects in a while, simply because working at my internship has kept me rather preoccupied.
Top: Personal GitHub, 252 contributions in the last year.
— ᚛ᚉᚏᚔᚄᚈᚓᚅ᚜ (@cristyn_howard) January 19, 2019
Bottom: Work GitHub, 487 contributions in the last year. pic.twitter.com/nXSB75fgIz
I’ve had an amazing year at Intuit. It was difficult to say goodbye to the team on my last day. I’ve met so many wonderful people over the past 12 months, who have helped me learn more about writing software professionally than I could learn in any class.
While it’s still fresh in my mind, I wanted to take a moment to review some of the things I’ve learned and been taught on the job.
I’ve chosen to write this list in bullet-point form for the sake of concision, and I’ll be sure to add to it as I remember various skills I’ve picked up in the past year.
Without further ado, here is a list of essential skills that I learned on the job with Intuit as a Software Developer Intern.
Essential Skills Learned:
- Developer & deployment workflow
- Using git forking workflow, making local branches that track different branches of the main repo (patching different product versions)
- The automated Jenkins deployment process
- Initial deployment to development environments for QA/testing
- Splunk & error log reading
- Cutting release candidates off of the main development branch for product updates
- Daily monitoring for new exceptions/bugs/warnings/crashes, investigating them and making tickets
- Writing and reviewing good pull requests
- Structuring commits so that changes are easy to follow
- Writing descriptions that provide context
- Responding to comments, answering questions, deliberating collaboratively on the optimal solution to a problem
- Reading PRs without background — using descriptions, commit records, and specs in Jira tickets to understand the change that another engineer made
- Reviewing code changes by other engineers — looking for refactor opportunities, auditing style, checking for bugs, getting exposed to different implementation of solutions
- Architectures
- Understanding of how live database centres impact delivery & structure of product (i.e. latency)
- Understanding of how a stateful software system impacts delivery of product updates (i.e. draining pools of sessions to perform rolling deploys)
-
Security: reviewed OWASP top ten in education session with senior engineers
- Agile methods
- Making concise and informative Jira stories
- Stand ups & retrospectives
- Managing sprint velocity
- Reverse-engineering, refactoring, and building tests for old, legacy code
- Piecing through project files to trace and identify the source of bugs
- Getting comfortable rewriting legacy code for improved efficiency and readability
- Writing unit tests for previously untested legacy classes
-
Working on a cross-functional team with Tax Analysts, developers with other specialties, and QA testers for multiple languages (English & French)
- Accessibility
- Participated in accessibility audits
- Completed “Accessibility Champion” training, which focuses on how to design and build accessible products
- Working with new (to me) technologies:
- LESS CSS, JSP
- Node, React, Express
- Github & Jenkins APIs
- Maven, Tomcat, Springboot
- Perforce