Principal Software Engineer
Skills
AlgorithmArchitectureArgocdAuroradbAwsBigqueryConcurrencyData StructureDistributed ComputingDistributed SystemDockerDraw.IoDynamodbEnglishFeignFlywayGcpGithubGradleIntellijJapaneseJavaJenkinsJunitKafkaKibanaKotlinKubernetesMavenMessagingMicroserviceMiroMysqlNpmObject-Oriented ProgrammingOpen SourceOperating SystemPlantumlRedisResilience4jScalaSparkSpring BootTidbYarn
About the Role
You will design, develop, test, deploy, maintain, and improve software and core platforms. You will lead the technical execution of multiple projects, provide architectural direction, solve complex technical issues, build shared platforms, and improve scalability, reliability, and efficiency. You will also identify and address technical debt, create development tools, contribute to open source where possible, and mentor junior engineers.
Requirements
- Degree in Computer Engineering or Computer Science, or 7+ years of equivalent software development experience.
- Foundation in designing, implementing, and maintaining large-scale distributed systems.
- Experience developing distributed platform systems such as messaging platforms, pub/sub systems, databases, distributed computing frameworks, or schedulers.
- Strong knowledge of data structures, algorithms, operating systems, and object-oriented programming.
- Deep understanding of concurrency, distributed computing, large-scale systems, messaging, and algorithms.
- Software development experience in one or more general-purpose programming languages.
- Ability to learn new technology stacks as needed.
Responsibilities
- Drive the technical vision, architecture, system design, and development processes for systems.
- Identify, prioritize, and resolve technical debt.
- Improve system scalability and efficiency through measurable gains.
- Mentor and educate junior engineers.
- Design, develop, test, deploy, maintain, and improve software and core platforms.
- Lead technical aspects of multiple projects through hands-on execution and guidance.
- Provide architectural blueprints and technical leadership.
- Solve challenging technical issues throughout program phases.
- Build common platforms that support different business-vertical application systems.
- Develop tools and contribute to open-source projects where possible.
- Investigate and resolve root causes of problems.
Benefits
- Flexible work schedule.
- Choice of hardware and software tools.
- Super flex time with no core hours.
- Annual leave of up to 14 days in the first year.
- Five personal leave days each year.
- Social insurance, including health, employee pension, employment, and compensation insurance.
- 401K.
- Translation and interpretation support.
- Visa sponsorship.
- Relocation support.
