About the Company and Team
Railog develops software for automating railway transportation, which saves clients' time, frees up their resources for priority tasks, and improves data and service quality.
We are a small team, and we work like this:
- First, we figure out what problem we are solving. In a bug – not "insert a null check", but understand why this null appeared and if it should be there. In a task – not "add a button because they asked for it", but find out what pain point is behind it: manual work, errors caused by it, lack of data at hand. Sometimes it turns out that it needs to be addressed not with a button, and not where the client asked.
- The solution is proportionate to the task. We assess how urgent the client's need is and how critical it is. Saying "we can do a workaround in an hour or a proper solution in a week" is a valid conversation. Silently disappearing for a week to polish minor details is not.
- Few approvals: the issue is usually resolved in one conversation.
- We want people to stay for the long term. If you have had one job for 5+ years – for us, this is a plus, not a reason for questions.
About the Product – Honestly
The product has been around for many years and is used by dozens of companies. The tech stack is current: .NET 10, WPF, EF Core, recent library versions. However, some architectural decisions have accumulated over the years and are sometimes far from best practices – we are gradually addressing this, and this is also part of the job, not just new code.
The data is large: wagon locations, trips, operation history, documents, and much more. This is not CRUD – these are heavy queries, indexes, and execution plans. We work with both MS SQL and PostgreSQL, and they regularly behave differently. Plus, integrations with external railway systems (ETRAN and others), where formats are unfamiliar and break not through our fault.
We use GitLab – branches, merge requests, selective code reviews, not for every task. Tests are written in xUnit, and builds and tests are run in CI.
Clients are real people, so incidents sometimes occur. We handle them during working hours as a regular task: find the cause, fix it. There are no on-call duties or late-night calls.
What You Will Be Doing
- Development and support of desktop application modules (WPF) for automating railway processes: forms where an operator can view thousands of wagons without getting lost – filters, groupings, quick search.
- Business logic and database work – designing structures, queries that should execute quickly on real data volumes.
- Improving old code as we go: if we touch a module for a task, we clean it up. No one is asking to rewrite everything from scratch.
- Communicating with analysts, and if necessary, directly with clients. Tasks come from analysts, but important details sometimes emerge in conversation, not in the ticket text.
- Sometimes tasks extend beyond the desktop – integrations, a bit of web development with ASP.NET Core. This happens infrequently, but since the team is small, it might sometimes be "necessary" rather than "optional." The main work, however, is desktop, data, and business logic.
We try to assign tasks based on your strengths and interests – data, UI, integrations. We sometimes ask what you'd like to work on.
What We Value
- Commercial C# experience of 3+ years.
- Solid SQL skills (MS SQL or PostgreSQL): ability to write and read complex queries.
- Experience with Entity Framework or another ORM.
- Ability to read and maintain existing code, not just write new code.
- Interest in the subject domain: understanding how the process actually works for the client and using that as a basis. This is more important to us than knowing ten frameworks.
We need a strong developer, not an architect: it's more important to complete tasks accurately and efficiently than to design a new system from scratch. If you fall short on one or two points but the rest describes you, please apply. Technologies can be learned on the job; interest in the work cannot.
We especially value (but these are not entry barriers):
- Experience in creating user-friendly WPF interfaces for complex data and processes.
- Skills in optimizing data operations: complex queries, indexes, execution plans. We can teach this on the job if you have solid SQL skills.
Will be a plus: linq2db, ASP.NET Core.
Who Will Enjoy Working Here and Who Might Be Bored
You'll enjoy it here if you like to understand what you're doing and want your work to last for years, not until the next rewrite.
It will be boring if you want to switch technologies every six months. We try and implement new things – but based on need and justification, not because everyone is talking about it now. We don't switch to new stacks just for the sake of changing.
What We Offer
- Salary of 180,000–210,000 RUB net, the final amount will be determined after the interview.
- Full-time employment: 8 working hours a day plus a lunch break. You choose your start time – from 6:00 to 10:00 MSK – but your schedule should be stable afterwards so colleagues know when you're available. We don't keep track of hours during the day: if you need to step away, let us know and go; you can make up the hours later the same day, provided nothing is urgent. If you need a fundamentally different schedule due to personal circumstances or a significantly different time zone, it's negotiable: the only requirement is to have at least 4 working hours between 09:00 and 18:00 MSK.
- Remote work. Official employment according to the Russian Labor Code, so we work with individuals located within Russia.
- We plan deadlines together. If a deadline slips and you can explain why, it's a normal work situation, not a cause for reprimand. We don't have micromanagement.
- We automate routine tasks: builds, tests, reports are collected by scripts, not manually.
- AI as a tool, not a cult. We use it daily ourselves – for code analysis, tests, routine tasks. Company covers subscriptions to work-related AI tools. However, your name, not the model's, is under the commit: you cannot submit code for review that you haven't read and understood yourself.
- The company is accredited as an IT company – this provides deferment from conscription and preferential mortgages if you meet the program conditions.
Recruitment Process
Three steps, the process usually takes about a week – much depends on you afterwards: some complete the task in an evening, while others take the full duration. Then, it takes another two weeks for termination from your previous job; during this time, we prepare the contract and employment paperwork.
-
Online Interview. We get acquainted, discuss your experience and our tasks. Questions to us are welcome: about the team, processes, product – ask during the call.
-
Technical Task, after the interview – once it's clear there's mutual interest. We give you a week, no reminders, no "do it by tomorrow".
- Honestly about the content: we cannot grant access to our internal network, so it starts with you setting up a database on your end and running migrations according to the description. Then, a typical task for us: take a ready-made form as a sample, read data from the database, add a couple of filters, and display the results. A person familiar with WPF and EF can complete the form itself in less than an hour; the rest of the time is spent on setup and reading existing code. Hence, the estimated time of 2–4 hours – we count this including setup, not just coding.
- Everything you need to work – database versions, data, necessary libraries – is described in the task itself, and we provide it. You won't have to buy anything.
- If you get stuck or something is missing in the description – write to us, we are available and will respond during working hours. Getting stuck on setup is not a failure: we are more interested in your approach and questions than in a perfect result.
- The code remains yours; it doesn't go into the product.
- If you reach the coding stage, we will definitely follow up with a review within a week, regardless of the outcome.
-
Offer. Salary proposal and employment details.
How to Apply
Start your cover letter with the word "Strelka" – this will let us know you've read it all.
Next, provide two short examples from your work, 3–5 lines each:
- A complex bug that was hard to catch. What you initially saw, how you searched for it, and what the actual cause turned out to be.
- An instance where a quick fix was possible – adding a check, implementing a requested feature – but you first investigated the root cause of the problem and fixed it there. Or vice versa: you decided a quick fix was sufficient – explain why.
This is more important to us than a list of technologies on a resume, and it makes it easier for us to notice you.
We process applications without a cover letter last – not because of grammar, but it's easier to distinguish genuine candidates from mass applications. A couple of lines from you, and you'll definitely be noticed.
If all this sounds like you – let's get acquainted.