Accord365 Internship
Role: Engineering Intern
Dates: June 2020 - March 2021
Stack: Go (Buffalo, Gin), PostgreSQL, MySQL, Solidity, JavaScript, jQuery, HTML, CSS, Bootstrap, Truffle-Contracts, Web3.js, OAuth2
Overview
As an engineering intern on the Accord365 project, I contributed to both backend and frontend development, database design, blockchain integration, and client engagement. I co-facilitated the project’s focus group, created a wireframe, and worked closely with the client to refine requirements and validate progress.
Highlights
- Client Collaboration:
- Co-facilitated a two-part focus group with the client.
- Created study forms, drafted questions, and took notes.
- Consulted regularly with the client to review progress and debrief functionality.
- Design:
- Created a full wireframe for the project using Sketch.
- Backend Development:
- Built and updated PostgreSQL and MySQL databases; created models and wrote create/update queries.
- Implemented both Buffalo (Go frontend) and Gin (Go server) frameworks.
- Added OAuth2 authentication with Google in Gin.
- Implemented cookies and session handling in Gin.
- Frontend Development:
- Built HTML templates for the Go/Gin server with JavaScript, jQuery, and Bootstrap.
- Validated JavaScript forms using regular expressions.
- Blockchain Development:
- Developed an ERC-20/270 token buying site using Solidity, JSON, and JavaScript.
- Integrated Web3.js API calls for blockchain contract and transaction interactions.
- Used Truffle-Contracts for contract management.
- Created a wallet that users could load with Ether.
- Testing:
- Tested blockchain interactions with Ganache, Metamask, Geth, and the Ethereum test networks Rinkeby and Robsten.
- Verified form handling and wallet transactions.
Challenges & Solutions
- Routing problem in Go frameworks: Reached out to peers and mentors for help and improved debugging approach.
- Complexity of blockchain tooling: Leveraged test networks and local tools (Ganache, Metamask) to validate transactions without risk.
- Collaboration hurdles: Coordinated with teammates on JavaScript and Go issues, and created internal documentation (e.g., Accord365 Mobile Todo doc) to improve organization.
Collaboration
- Paired with teammates on JavaScript and Go issues.
- Regularly interfaced with the client, ensuring transparency and alignment.
- Reached out for support on specific blockers (routing and architecture).