Jonathan Novak is a Staff Software Engineer in Redwood City with 14 years of experience building high-performance backend systems and leading engineering teams from startup to scale. He moved from founding and growing a revenue-generating startup to senior leadership roles—rising to CTO at UserVoice—where he architected mission-critical Rails systems, introduced Go-based services, and scaled engineering from 4 to 16 people. At Stripe he continues to apply deep systems and backend expertise; his open-source work on gocraft/web, gocraft/work, and gocraft/dbr shows a practical focus on job processing, routing/middleware, and database performance that many teams rely on. He pairs hands-on coding (notably Redis-backed job queues, custom middleware error handling, and query builders) with a knack for pragmatic refactors and high test coverage. Collected early-career systems work—writing embedded storage UI and device drivers—gives him a rare full-stack systems perspective that informs robust, efficient architecture decisions.
14 years of coding experience
11 years of employment as a software developer
Bachelor’s Degree, EECS, Bachelor’s Degree, EECS at University of California, Berkeley
Contributions:108 commits, 9 PRs, 122 pushes in 1 year 6 months
Contributions summary:Jonathan's commits primarily involve modifications to the `worker.go`, `job.go`, `worker_test.go`, `redis.go`, `worker_set.go`, `enqueue.go`, and `enqueue_test.go` files. These changes focus on the implementation of background job processing within the Go craft work library, specifically around the worker's core logic, job structure, queue management, and interactions with Redis for job scheduling and retrieval. The contributions also include adding features for unique jobs and tests for various queue management and retry scenarios. The changes are related to defining the retry queue and how to move jobs between different queues.
Contributions:138 commits, 6 PRs, 9 pushes in 2 years 8 months
Contributions summary:Jonathan's commits focused on implementing error handling mechanisms and adding features to the web framework's routing and middleware components. They added the ability to define custom error handlers and integrated them into the request processing flow. The user also refactored the code to remove unnecessary `fmt.Println` statements. They also added support for HEAD requests.
golanghttp-routergomuxrouter-middleware
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Jonathan Novak - Staff Software Engineer at Stripe