Senior Software Developer
Местоположение и тип занятости
At SegmentStream, we help companies get the maximum value from their data.
Founded in 2018, SegmentStream platform is already trusted by many leading brands such as United Colors of Benetton, New Balance, Nespresso, MyToys, Eventim, and many others.
In order to evolve our product and scale our business, we are looking for an experienced Senior Software Engineer who is able to solve complex business challenges, constantly learn, and share their knowledge with colleagues.
What we do
- We develop high-load data pipelines using TypeScript, Go and a variety of data storing and queueing solutions.
- We build a UI on React.
- We believe in using the right tool for the right task.
- We deploy our code several times a day. We love efficiency, cloud solutions, CI / CD, Kubernetes and Terraform.
- We are proud of the code we write, but we are not obsessed with certain methodologies and technologies. We are sure that doing the “right things” is more important than doing “things right”. Nevertheless, we take very seriously the responsibility to our customers for providing reliable infrastructure, which a lot of their important business processes rely on.
You fit us if
- You can turn complex business requirements into a working product that our customers will love.
- You are proud of the code that you write, but at the same time remain pragmatic and self-critical.
- You know when to refactor and when to release.
- You are inspired by the search for elegant solutions for complex technical problems.
- You are focused, motivated, independent and able to complete the job, no matter how difficult the task.
- You’re empathetic, patient and happy to help your teammates grow.
- You perfectly know the best design patterns and effectively apply them.
- You are serious about testing, understand the value of logging, monitoring, profiling and error tracking.
Examples of future challenges
- Create a scalable and fault-tolerant microservice architecture with load balancing and auto-discovery.
- Parallel processing of terabytes of data in conditions of strict RAM restrictions.
- Create highly-available real-time event pipelines with unlimited scalability.
- Build efficient caching and proxying systems.
- Managing mutable shared state for various SQL and NoSQL database platforms with low-latency requirements
- Implement a smart sharding of queues, databases, and services in case standard balancing is not possible.
- Reduce the cost of the cloud infrastructure while maintaining the same development speed.
- You can write both server and client code (aren’t you an architect after all?) in ES6 or TypeScript using the latest features and API.
- You have a degree in Computer Science or similar.
- At least 5 years of experience in development or having cool open source projects on GitHub.
- Proven ability to write code that solves real problems.
- You deeply understand all the complexities of writing large single-page applications.
- Strong theoretical knowledge and practical experience in the design and implementation of highly-available, highly-load, fault-tolerant distributed systems.
- Experience in implementing scalable data processing pipelines and events, preferably using streaming technologies.
- You know parallel computing and do not confuse it with distributed computing.
- Familiar with best practices of deployment and testing code in the production environment.
- In your work, you demonstrate the use of architectural patterns for building scalable web applications (correct API design, high-loaded data pipelines, efficient algorithms, etc.).
- You value teamwork and agree with the statement that “a team is a group of people who are responsible for each other’s decisions.”
- You are familiar with the basics of machine learning.