Accord365 Apprenticeship
Overview
Headed backend architecture in Go (Gin) and frontend development in JavaScript. The database was designed with PostgreSQL and the blockchain integration was implemented using Web3.js. I co-facilitated the project’s focus groups, created a wireframe, and worked closely with the stakeholders 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, (refactored from a) MySQL database; created models and wrote create/update queries.
- Implemented Go (Gin) server.
- Added OAuth2 authentication in Gin.
- Implemented cookies and session handling in Gin.
- Frontend Development:
- Built HTML templates for the Go 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.