Senior Software Engineer (Core Algorithms)

Company Name: 
Software & Web Development
Post Date:  
Contact Email: 

Location: Champaign, IL or San Jose, CA

Veriflow is looking for a Senior Software Engineer with a passion to work in a complex computing environment to deliver high quality networking applications. The successful candidate will become part of a team that develops formal network analysis and verification applications. They will work with industry experts, algorithm scientists, and developers to design, develop, optimize, and enhance subsystems and system components.


  • Develop and maintain software that underlies our network analysis framework. Interact with technical leaders to understand specifications and recommend designs and changes to facilitate efficient and effective development.
  • Optimize and improve performance of code, working with the algorithms team to design and evaluate data structures and algorithms with the aim to improve scalability and performance.
  • Design and deliver products that meet specifications; ensure high standards in programming quality, style, and organization. Ability to create simple, easy-to-use designs that address complex user and environmental needs.
  • Enhance robustness and security of code, by performing on-going testing and code review in compliance with technical reference architecture. Write and execute performance and correctness tests for subsystems and components

Education & Experience:

MS or PhD degree in Computer Science (or related field), with 3-6 years of experience in relevant software development environments.


  • Strong experience developing software in C++. Ability to pick up new languages or frameworks quickly.
  • Experience independently designing and implementing medium- or large-scale software systems.
  • Experience in design, development, and debugging of parallel systems, including parallel algorithms and data structures, and multithreading.
  • Ability to work well on teams and achieve stretch goals in a fast-paced innovative environment.
  • Strong analytical, problem-solving, and debugging skills.

Additional experience in the following areas is highly desirable:

  • Experience with high-performance computing, scalable memory allocation, and/or task scheduling.
  • Good written and verbal communication skills. Ability to effectively communicate product architectures, design proposals and discuss options.
  • Experience with Python, Java.
  • Strong knowledge of formal methods and software verification.
  • Experience with computer networking, operating systems, or computer security. Good understanding of networking concepts and protocols is desired.

    To apply, contact: