Technical challenge checklist

Technical challenge checklist

October 16, 2020
programming, checklist

tags
Programming Software Engineering

Having done quiet a lot of technical challenges, and having forgotten some details when submitting, I came up with a good checklist of things to check before submitting the technical test.

Must do checklist #

  • Keep commit readable, check if the company has any commit format of their own in their public GitHub organization or their wiki page (if any), otherwise, use conventional commits
  • Structure your commits so we can revert in case of any bug. Make your git history ready for production, see Personal git workflow
  • Use well stable, known libraries
  • Document your decisions of why, where and how
  • Write tests for everything your write
  • Run static code analysers and make sure there aren’t any undefined variables
  • Benchmark what you wrote for validating algorithms/project
  • Configure and use a linter

Technical project #

  • Use environment variables for secrets, api urls, debugging and general configuration
  • Enable application logging where needed
  • Document reusable API functions
  • Lock dependency versions
  • Take some time to think of the project structure, create diagrams, check out related project’s structure
  • Read and re-read the requirements, if you have any doubts, do ask the developers/human resources
  • HTTP API? Run a stress test against your API
  • Containerize your application
  • Last but not least, have fun learning

Algorithms #

  • Document algorithm decisions and steps
  • Make algorithm comparison if possible
  • Don’t over complicate. It’s not because it’s an algorithm that it requires to be unreadable
  • Make sure the algorithm you are applying is well suited for the task
  • Don’t panic, you are not supposed to know all algorithms out there, but you are supposed to know where to search and implement your findings

Bonus #

  • Add CI integration (CircleCI, Travis, GitHub Workflow, etc)