Tehtävän kuvaus
Position Overview
The Senior Software Engineer will lead one area of the Product Journey Engine (PJE), a platform that modernises the counter systems of a national post. Every counter transaction runs as a journey: a JSON definition built in a visual Designer and executed exactly as written. Working alongside the Chief Architect and the wider team, you will lead either the Journey Engine (a .NET runtime compiled to WebAssembly) or the POS Host Runtime (a TypeScript applet running inside a third-party ePOS).
Duties and Responsibilities
- Lead the design and delivery of one area of the PJE platform
- Own the contracts between engine, host and Designer, including versioning
- Troubleshoot and resolve technical issues across the engine/host boundary
- Own automated testing for your area
- Translate the specification into designs and JIRA stories, and challenge it where it is wrong or incomplete
- Mentor developers and take part in code reviews
Qualifications
- Post-secondary education in Computer Science or Software Engineering
- Substantial experience leading delivery of a complex component or service end to end
- Strong C#/.NET or TypeScript skills, with willingness to learn the other
- Experience with contract-driven design between components
- Experience building reusable libraries or SDKs with stable public APIs
- Able to meet the security clearance requirements of the target Escher client
Personal Skills
- Strong judgement and attention to correctness
- Confident challenging specifications rather than coding around them
- Treats performance, traceability and security as first-class concerns
- Ability to work as part of a team and mentor others
- Comfortable working AI-first with AI-assisted tooling
Technical Skills
- Required: .NET / C# / .NET Core or TypeScript / JavaScript
- Required: JSON and JSON Schema
- Required: Git workflows and CI/CD pipelines (Azure DevOps, GitHub Actions)
- Desirable: .NET / JavaScript interoperability
- Desirable (Journey Engine): Workflow, rules or state machine engines; WebAssembly with .NET
- Desirable (POS Host Runtime): Embedded or hosted JavaScript apps; browser peripherals integration; React and Material Design
Why Join Escher?
At Escher, you’ll be part of a global team with employees on four continents supporting customers from across 35 countries. Here, people truly are our greatest strength, and we mean it. At Escher, you’ll have the support of an experienced leadership team and a group of dedicated employees that have been helping postal operators redefine customer engagement for over 30 years.
What We Have to Offer
Escher offers a competitive compensation package, training allowance and free coffee and snacks when in the office, and so much more! Most importantly, a career at Escher is one that is both rich and rewarding with many opportunities and room for growth. This is truly a unique opportunity to be part of an exceptional team, helping to transform some of the biggest organizations in the world, and influencing the future of postal operations. If you’re up for the challenge, we want to hear from you!
Escher is an equal opportunity employer. We will not discriminate and will take affirmative actions and measures to ensure against discrimination in employment, recruitment, advertisements for employment, compensation, termination, upgrading, promotions, and other conditions of employment against any employee or job applicant on the basis of race, color, gender, national origin, age, religion, creed, disability, veteran’s status, sexual orientation, gender identity or gender expression
Get the latest news direct to your mailbox.
Cookie Details
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| visitor_id854873-hash | 10 years | This cookie is a security measure to make sure that a malicious user can’t fake a visitor from Pardot and access corresponding prospect information. |
| Cookie | Duration | Description |
|---|---|---|
| __atuvc | 1 year 1 month | AddThis sets this cookie to ensure that the updated count is seen when one shares a page and returns to it, before the share count cache is updated. |
| __atuvs | 30 minutes | AddThis sets this cookie to ensure that the updated count is seen when one shares a page and returns to it, before the share count cache is updated. |
| bcookie | 1 year | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser ID. |
| bscookie | 1 year | LinkedIn sets this cookie to store performed actions on the website. |
| lang | session | LinkedIn sets this cookie to remember a user's language setting. |
| li_gc | 5 months 27 days | Linkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes. |
| lidc | 1 day | LinkedIn sets the lidc cookie to facilitate data center selection. |
| UserMatchHistory | 1 month | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
| Cookie | Duration | Description |
|---|---|---|
| visitor_id854873 | 10 years | Set by Pardot, this cookie is used for visitors. The cookie contains a unique ID and identifier for the account which is derived from the Pardot tracking code placed on the site. |
| Cookie | Duration | Description |
|---|---|---|
| _ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
| _ga_3M7YQ4HRDY | 2 years | This cookie is installed by Google Analytics. |
| _ga_BSY49663QQ | 2 years | This cookie is installed by Google Analytics. |
| _ga_M26GHNB0SW | 2 years | This cookie is installed by Google Analytics. |
| _gat_gtag_UA_68120434_1 | 1 minute | Set by Google to distinguish users. |
| _gid | 1 day | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
| AnalyticsSyncHistory | 1 month | Linkedin set this cookie to store information about the time a sync took place with the lms_analytics cookie. |
| at-rand | never | AddThis sets this cookie to track page visits, sources of traffic and share counts. |
| CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
| pardot | past | The pardot cookie is set while the visitor is logged in as a Pardot user. The cookie indicates an active session and is not used for tracking. |
| uvc | 1 year 1 month | Set by addthis.com to determine the usage of addthis.com service. |
| Cookie | Duration | Description |
|---|---|---|
| loc | 1 year 1 month | AddThis sets this geolocation cookie to help understand the location of users who share the information. |
| VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
| YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
| yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
| yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
| yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| Cookie | Duration | Description |
|---|---|---|
| DEVICE_INFO | 5 months 27 days | No description |
| libsyn-paywall-s | 1 day | No description |
| ln_or | 1 day | No description |
| xtc | 1 year 1 month | No description |
Tietoa yrityksestä
Escher Logistics Software Oy