Coding for Education Technology
By: James Chao
Meet James Chao! James is a software engineer who has built web applications for educational tools like Turnitin and Grammarly. He graduated with a computer science degree during the early stages of the web. Because of the timing of his program, he didn’t learn web development during college but was able to use his skills to learn more about web technology as the tech was getting built. He began with barely interactive web pages and eventually was able to create full-blown desktop-level applications.
His current role is as a Distinguished Software Engineer at Turnitin, a company dedicated to improving learning and promoting honesty in schools around the world. He’s been able to help build many tools, including one that allows teachers to give feedback with their voices.
One interesting problem he had to solve was figuring out how to record and shrink audio files in the browser by compressing the audio stream in real-time using web workers while the user was speaking. After he figured out how to address this issue, the feature went live, and Turnitin received some positive feedback on social media from a teacher who loved how well it worked!
Another project James worked on was Turnitin’s new AI Writing report, which helps teachers and students use AI responsibly in school.
James’ main role is working as a frontend architect, which means he not only writes his own code but also helps different teams use good patterns and work efficiently. Some things he really enjoys about his role besides his day-to-day is the ability to work remotely. He says it helps him reach personal goals, all while working with people he can learn from. In his spare time, he enjoys working on personal projects, like creating tools for his church and participating in fun coding challenges like Advent of Code.
“Treat coding like a fun puzzle! This is how I got into coding. If you treat it like a fun challenge then you can enjoy it more, while building something that is useful for yourself or others,” he shares to encourage young coders.
He also advises aspiring computer programmers to be unafraid of changing or even deleting code when better solutions come up. James says, “Code is like a living creation that you will keep improving and building.”
He uses the following tools in his role:
Frontend specific:
- Typescript / Javascript
- Web Components
- React
More general:
- AWS Lambda
- VS Code
- Github
James is a father of three kids, and they help keep his life busy, full, and fun. He also enjoys a rich community life at his church, where he serves as a children’s Sunday school teacher. He’s also a lover of food, and noodles and dumplings of all kinds top his list of favorites.