LanguageWire is a full-service provider of all services associated with creating, translating and processing text and graphics for numerous markets. In short, we help you transform your ideas and data into effective communication. We provide exactly what you need. We have more than 70 permanent employees located in Copenhagen, Stockholm, Oslo, Hamburg and Kiev, together with a network of more than 4,000 graphic designers and language experts from around the world. This has enabled us to specialise in building customised solutions for our customers because we always have someone on hand who knows your business and market.
On behalf of LanguageWire, Ciklum is looking for a Senior .Net Engineer to join Kyiv team on a full-time basis.
LanguageWire is a global translation services provider. We have built our own platform with a strong focus on automation and machine learning.
We have multiple teams developing parts of the combined solution: a business process management system, connectors for CMS and PIM systems, a web-based CAT tool, machine translation and NLP services.
Our team works on the core tools used for the translation process delivered as a set of micro services and we also own the public REST API. The team is located in the center of Kiev, at the Gulliver BC. The team consists of 3 developers, a QA engineer and a product director.
We do iterative development being close to our customers and releasing new features approximately every 3 weeks. We prefer direct communication over bureaucracy.
At LanguageWire we mostly use the Microsoft technology stack (we are three times Gold Microsoft partners), hosts most things on our own servers. A dedicated team of IT administrators and DevOps Engineers are responsible for the infrastructure. We are currently transitioning from a private cloud to a hybrid cloud strategy, leveraging containerization and infrastructure by code approach.
We are looking for an experienced developer who will work together with the existing team across all our services:
- We write code in C#. We use async/await a lot, so you need to understand how the compiler transforms this syntax sugar and why async’s are needed
- You should know your way around the base class libraries as well as your tools: Visual Studio & the debugger. We prefer to use as few third-party libraries as possible
- Our services are document-oriented. We do a lot of processing, writing various parsers, readers and writers. You should care about the performance, for example, you would not load a 500 MB file into memory
- Our services also store records in databases on the SQL Server. We do not have hundreds of tables, though migrations can be challenging. We use Entity Framework, but then validate generated SQL queries and execution plans. You need to understand the relational mode; index scans vs seeks to produce efficient queries. For migrations it is useful to know about window functions and common table expressions
- Most of our services are background workers without any UI. They communicate through synchronous remote calls and the message bus. You should be able to design asynchronous communications, extend existing protocols, so that other services would not break. You also should be able to write relevant tests
- We own a few REST API’s that exposes parts of our core functionality towards our Platform team, connector team, professional services team, integration partners and customers. We use Swagger to provide OpenAPI specifications for the consumers
- In our transitioning towards a hybrid cloud setup we will need to phase out our current messaging bus architecture and replace it with a more optimal communication mechanism between our micro services
- One of our most important consumers of the core tools is a Vue.js based web application. Knowledge and interest about how modern web applications work would be a nice skill to enrich the team with as well
- We have one service that use the InDesign Server API via COM. So, experience with unmanaged code interoperation is welcome
- Besides the development as such, we are also responsible for deployments and for providing tools for operational support. Background services are Windows services, you should be able to diagnose, why the service is not starting and generally know the Windows operating system architecture and tools well
- As a team we are responsible for ensuring that our own services perform well, and we always need to develop for stability, speed and easy diagnosis of issues. We are currently transitioning to an ELK based logging strategy where we combine the logs from all our microservices into one place. This will give an overview of how our micro services performs and allow us to dive into the details of how a specific job progress through the various services when needed
- 4+ years of experience with C#
- Solid experience with Asp.Net MVC
- Experience with Asp.Net Core
- Good understanding of OOP, OOD, DDD
- Familiarity with Entity framework
- Experience with n-tier architecture and microservices
- Experience with unit and integration testing
- Upper-intermediate English skills (verbal and written)
What's in it for you
- Open and friendly, but also demanding work atmosphere, where you have the opportunity to grow to become a rock star developer!
- Enthusiastic, professional and skilled colleagues that help each other to reach common goals
- Short communication distance: you communicate and work directly with the client
- Knowledge sharing, training and self-development opportunities
- State of the art, cool, centrally located office with a warm atmosphere that creates really good working conditions