OpenEXA
Senior Software Engineer, Distributed Systems
NEWSeattle, WA or NYCFull-timeGlobal
š Midš On-site
ActivePosted within the last 30 days
Job Description
[AI-summarized by JobStash]
You will design, implement, and optimize scalable, fault-tolerant distributed systems. You will implement distributed algorithms, data structures, and protocols to ensure reliable communication and coordination. You will profile and optimize system performance, debug complex distributed issues, and integrate distributed components with existing software. You will define technical specifications from system requirements and provide technical guidance to more junior engineers.
Requirements
- āBachelor's or Master's degree in Computer Science, Software Engineering, or a related field
- āProven professional experience as a Software Engineer with a focus on distributed systems
- āProficiency in programming languages such as Java, C++, or Python
- āSolid understanding of distributed systems concepts including distributed algorithms, consistency models, fault tolerance, and scalability
- āExperience with frameworks and technologies used in distributed systems such as Apache Kafka, Apache Hadoop, or distributed databases
- āFamiliarity with cloud platforms and services (AWS, Azure, or GCP) and containerization technologies (Docker, Kubernetes)
- āExperience with performance profiling, optimization techniques, and debugging distributed systems
- āStrong problem-solving and analytical skills
- āStrong collaboration and communication skills
Responsibilities
- āDesign and develop distributed systems and architectures to meet scalability, performance, and reliability requirements
- āCollaborate with architects and product managers to define system requirements and translate them into technical specifications
- āImplement distributed algorithms, data structures, and protocols to ensure communication and coordination across systems
- āOptimize distributed systems for performance, fault tolerance, and scalability
- āConduct testing and debugging of distributed systems to identify and resolve issues promptly
- āIntegrate distributed systems with existing software solutions
- āStay updated with advancements in distributed systems and contribute to technology improvements
- āProvide technical guidance and mentorship to junior engineers
Tech Stack
Hadoopfault tolerancedistributed systemsKafkadebuggingConsistency modelsDistributed algorithmsDistributed databasesScalabilityoptimization