> Markdown version of [/jobs/ext/1809065-senior-principal-software-engineer](https://www.wearedevelopers.com/jobs/ext/1809065-senior-principal-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Senior Principal Software Engineer - **Company:** Oracle - **Location:** Concord, NH, United States - **Experience:** Expert - **Salary:** $135,200.0 - $306,400.0 - **Contract:** Permanent contract - **Skills:** Java (Programming Language), Artificial Intelligence, C++ (Programming Language), Databases, Concurrency Controls, Data Loss, Dynamic Host Configuration Protocol, Distributed Systems, Domain Name System (DNS), Hypertext Transfer Protocols (HTTP), Hypervisor, Subnetting, OSI Models, NoSQL, Quick EMUlator (QEMU), Cloud Services, Reverse Engineering, Software Engineering, SQL Databases, TCP/IP, Virtualization Technology, Network Routers, Generative AI, Information Technology, Formal Methods, Golang - **Published:** July 13, 2026 - **Apply:** https://dejobs.org/x/x/6CDF68CE2B754D83960B7954A26A3E8C/job/ ## About the Role We are looking for self-motivated engineers with passion and expertise for practical application of formal methods to complex problems. You should value collaboration, innovation, pragmatism, and be focused on achieving results., * MS degree or higher in Computer Science, involving a significant amount of formal specification and verification. * 5+ years of full-time professional software development of concurrent and distributed systems, ideally cloud services. * Ability to write correct high-performance concurrent code in at least one of C/C++, Java, GoLang, or Rust. * Deep knowledge of standard distributed algorithms used in cloud dataplanes, e.g. Paxos, Raft, Viewstamped Replication, leases, methods of concurrency control, storage systems, and transaction systems. * Skilled in reading informal requirements, system designs, and code. Skilled in identifying the most critical and complex/subtle parts, and writing formal specifications for those parts at a level of abstraction appropriate for verifying correctness of the system. * Skilled in specifying safety and liveness using TLA+ on real-world problems, i.e. applying abstraction. Knowledge and experience of other specification methods and tools is also highly valued. * Skilled in verifying safety and liveness using model checkers such as TLC and Apalache. * Ideally, skilled at applying mechanical proof tools such as TLAPS, with associated experience of finding inductive invariants for concurrent algorithms. * Excellent at collaborating with software engineers to help verify correctness of their work. This requires strong interpersonal and communication skills. * Good at communicating complex technical ideas verbally and in writing, to engineers, managers, and executives. Additional abilities that are highly valued * Strong knowledge of database programming models (SQL and NoSQL), and database internals. * Experience working with geographically distributed teams via Slack and online meetings. * Knowledge of Computer Networking (OSI layers, HTTP, DNS, TCP/IP, DHCP, Routers, Gateways, Subnets, etc.) * Knowledge of Linux internals and troubleshooting skills * Knowledge of compute virtualization technologies (hypervisors, QEMU, containers, etc.) ## Description We use formal specification and verification methods to help developers of complex systems find very subtle bugs that are unlikely to be caught by normal testing techniques. We focus on preventing the kinds of bugs that would cause the most severe problems for our customers, in particular data loss/corruption or security vulnerabilities. We achieve this via the following activities: * Help engineers to state their requirements and algorithms much more precisely than conventional design docs. This typically uncovers many ambiguities and invalid assumptions - i.e. design bugs. * Provide additional ways to describe and think about requirements and design. This change in perspective can itself reveal problems. * Review critical sections of code, to reverse-engineer the higher-level algorithm or design that has been implemented. This 'recovered design' can then be formally verified to satisfy its intended properties. * Use tools such as model-checkers, constraint solvers, and increasingly (due to rapid progress with AI) machine-checked proof, in order to check a precise design against precise correctness properties. Additionally, we are helping to create new methodologies and tools to enable safe and productive use of Generative AI for designing, implementing, and testing mission-critical components and services. For example: * Automatically generate formal specifications from informal descriptions to remove ambiguity. Then validate that those specifications accurately capture the intent of the author -- i.e. that the resulting formal specifications allow behaviors that are desired, while disallowing all behaviors that should be prohibited. * Automatically generate implementation code from a formal specification, and then validate that the generated code satisfies the specification, e.g. via trace-validation/conformance testing, or by using code-level verification systems such as Verus, or by other techniques that you find or invent. * Automatically reverse-engineer a formal specification from code, at an appropriate level of abstraction such that the extracted specification can then be verified against high-level correctness properties. * Using AI to find inductive invariants and write mechanically checked proofs. ## Related Videos - [Shipping Faster with Less: Render on Cloud Hosting, AI Workloads, and the Future of DevOps](https://www.wearedevelopers.com/videos/1894-shipping-faster-with-less-render-on-cloud-hosting-ai-workloads-and-the-future-of-devops) - [An Applied Introduction to eBPF with Go](https://www.wearedevelopers.com/videos/1075-an-applied-introduction-to-ebpf-with-go) - [Go with the Flow: Stop the Leaks Before Your Memory's a Waterfall!](https://www.wearedevelopers.com/videos/100073-go-with-the-flow-stop-the-leaks-before-your-memory-s-a-waterfall) - [Leveraging Real time data in FSIs](https://www.wearedevelopers.com/videos/806-leveraging-real-time-data-in-fsis) - [Retooling and refactoring - an investment in people.](https://www.wearedevelopers.com/videos/371-retooling-and-refactoring-an-investment-in-people) - [Quantum DevOps - Quantum Application Development](https://www.wearedevelopers.com/videos/1441-quantum-devops-quantum-application-development) ## Related Articles - [Highest Paying Tech Companies for Developers](https://www.wearedevelopers.com/magazine/220-highest-paying-tech-companies-for-developers) - [7 Important Tips That Every Software Developer Should Know](https://www.wearedevelopers.com/magazine/101-7-important-tips-that-every-software-developer-should-know) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Résumé-Driven Development: How IT trends affect the job market for software developers](https://www.wearedevelopers.com/magazine/59-resume-driven-development-how-it-trends-affect-the-job-market-for-software-developers) - [What’s the Difference between a Junior, Mid, and Senior Developer?](https://www.wearedevelopers.com/magazine/238-what-s-the-difference-between-a-junior-mid-and-senior-developer) - [Fully Remote Software Engineer Jobs](https://www.wearedevelopers.com/magazine/447-fully-remote-software-engineer-jobs)