Senior Software Engineer
Our nation’s elections are being challenged like never before, and the elections industry has historically stifled innovation to improve voting technology. As the first newcomer in the industry in the last 30 years, Clear Ballot rises to the challenge with a simple goal: Let’s create technology that empowers our customers to improve democracy.
Elections are the cornerstone of our democracy, with voting being our greatest freedom. While most Americans across the country watch and read about elections, Clear Ballot lives them. A great election includes secure, reliable tabulation equipment, full transparency of the process in which ballots are created and cast, and the ability to audit the results. Our mission is to surpass those expectations in a way that will raise the bar for the entire election technology industry.
About This Role
The role involves some design, development, and testing of the applications and features within the next generation election systems for the cloud and premise-based targets. Qualified candidates will have demonstrated development of small to large applications using a decomposed micro-service paradigm with experience in formulating small designs from the architecture and requirement specifications you are given.
What you’ll do:
- Work on products that bring the next generation election systems to the market,
- Be a generalist – allowing you to jump in and work most of our products software stack
- Collaborate with team members from design to implementation as well as integration and test
- Work with different technologies, development process’, tools, and open source
- Be a key contributor to the design, development, and product functionality of the next generation election systems.
Requirements:
- Bachelor’s degree in Computer Science
- 3 - 5 years of product development
- Experience with a couple of these languages: C/C++, Java, Python, Go, and Rust
- Experience with scripting languages such as: shell, Lua, and Powershell
- Understanding of RESTful APIs and how to connect security services to it
- Some system programming experience (or exposure) – possibly around high-performance designs
- Experience (or exposure) developing applications using containers, especially with Docker as well as within Kubernetes
- Experience with DB technologies and understanding of high availability, distributive, and high transactional solutions
- Solid object-oriented programming and design skills
- Familiar with agile software development methodologies, including continuous integration
- Experience in development tools such as git, JIRA, and Coverity
- Experienced (or exposed) and worked in projects based on platform abstraction
- Experienced using collaboration tools like Confluence
- Experience with either Linux as a development platform and target
In addition to the above, it would be desirable for the ideal candidate to have some of the following skills/experience or a desire/aptitude for learning them:
- Master’s degree in Computer Science
- Understand VM concepts, with an understanding of virtualization concepts
- Experience developing with threads and multi-cores as well as concurrency issues and how to solve them
- Use of open source within a large design – integration and test experience
- Capable of doing a design for a complex software component that requires well defined API boundaries
- Experience with development using a micro-service architecture approach with containers
- Contribute to product documentation, good writing skills required
- Experience with LDAP and AD and other authentication services (e.g., oAuth2 and JWT)
- Experience with setting up, configuring, and building solutions around opensource like Nginx
- Experience with orchestration solutions such as Docker swarm or Kubernetes
- Working experience around security concepts for authentication and authorization
- Experience with Kafka, Redis, mySQL (or mongoDb or marionDB), and Memcached (or 0mq or RabbitMQ)
- Experience developing for a Linux target that can run on an x86 as well as ARM processors – single design for mixed platform architectures
Clear Ballot Group, Inc. is an Equal Opportunity Employer. We are committed to diversity and dedicated to professional development and advancement. We believe everyone deserves to work in a welcoming, respectful and considerate environment. We live by our values and hire accordingly.
Our talented team and driven investors share a passion for solving problems and restoring confidence in America’s democratic process. We are looking for energetic professionals to join us in this mission.
Take a minute and ask yourself this question: Do you care about increasing transparency in elections, defending a fair democratic process, and innovating for public good?
If the answer is a resounding "YES!", we want you to join our team! Please email your resume to careers@clearballot.com.