About the job
Pommelhorse is a fast growing technology startup based in Edinburgh, founded by experienced entrepreneurs with major prior successes.
We build complex real time video processing technology to transform the experience of video communication between people.
We believe we can make the world a better place by helping people regardless of their geography or personal circumstances to work, learn and contribute at a global level, by building technology accessible to 800-million daily users of video communication today.
Our technology allows people to feel like they’re in the same space as the people they communicate with, without any specialist hardware, headsets or displays, This can be for work, education, and remote services such as healthcare and remote diagnosis.
Using a mixture of hand-crafted vision algorithms and custom made deep-learning models we manipulate live video pixel-by-pixel, in real-time, typically on constrained hardware. We develop the high-value, challenging technologies that help communication platforms and equipment makers make better, more personal, and more productive products.
We’re looking for a creative software engineer, with interest in computer vision and algorithms, with a passion for solving difficult problems, to join the team. Your work will help transform video communication to a richer and improved experience, positively impacting the 800-million+ daily users of video-calls, and enabling new communication possibilities.
As part of your work, you’ll be often programming in Python and C++, working as part of a team, to implemented algorithm blocks, image signal processing pipelines, and application systems. These blocks and systems are tasked to perform image inferring and understanding, realise traditional computer vision algorithms, machine learning vision systems, depth sensing, various image analysis, detection and segmentation, 3D image data representation, 3D transformation and manipulation, image rendering, and various image generation and filling.
We’re always battling run-time, as we operate on constrained HW, and have to operate in real-time, so the role involves coming up with the solutions to difficult problems while trying to squeeze every last millisecond out of the code.
Implement new algorithms for real-time image manipulation in 2D and 3D, related to matching, hole filling, image stitching, and depth clean-up and estimation, prototyped often in Python with challenging performance requirements
Implement algorithms and system components, for real-time operation, often in C++ with a view to using parallelised processing hardware
If experienced/interested, sometime implement parts of the system in HW acceleration languages such as Metal and OpenCL
Assist and connect various custom made deep-learning based vision sub-blocks, with the assistance of traditional vision algorithms, to build bigger signal processing blocks
Help development data augmentation pipelines, and visualisation pipelines for custom image views
Help and lead building of proof-of-concept systems of signal processing pipelines, to demonstrate the value of the capabilities for end-users
You’ll always be working as part of a team, but depending on your level of experience and seniority, you’ll be given more ownership, and would be expected to support and mentor other members of the team for their personal development or work deliverables
Skills and Experience
You should ideally have some relevant industrial experience, with a Bachelor, Masters or PhD in the field of computer science or software engineering. However, we care more about the skills you’ve developed rather than how you’ve developed them, so we also encourage candidates with the relevant skills who might have had an unconventional career and education history to apply.
Some of the knowledge and skills integral to the role:
Strong Python knowledge and in particular Scientific python. e.g, NumPy, Pandas, Matplotlib
Experience and comfortable programming in C++, as bonus Objective C, Rust
Have at minimum and understanding of GPU/Accelerated-HW design and programming paradigms and ideally some practical experience of programming in Metal, OpenCL, OpenGL, CUDA or SYCL
Fundamental programming notions. e.g. Object Oriented, Functional Programming, data types, memory, pointers, compilers, interpreters, etc
Familiarity with machine learning frame works. pyTorch and TensorFlow
High-level knowledge of signal processing. e.g. Understanding of time domain, frequency domain, Fourier transforms, aliasing, superposition, sample-rate, resolution, dynamic range, noise, etc
High-level knowledge of 2D and 3D Image processing fundamentals, e.g. colour spaces, edge detection, feature detection, blurring, 2D transforms, 3D transforms, pose and extrinsic matrices, point-clouds, meshing, 3D rendering approaches, lighting
Comfortable at holding larger problems in your head, and trading off different solutions/approaches to a problem with justifiable reason
Strong communication skills, enjoy working as part of a team
As reference, we’re looking for someone with about 3-5 years industrial experience. If you’re fresh out of university but feel like you have the skills and interest, please still get in touch.
We encourage candidates of all different backgrounds and identities to apply. This is a rare opportunity to join a true technology startup at an early stage, and you will have a big part to play in shaping the culture and ethos of the company.
Salary, Benefits and Working Practices
£43,000 to £56,000 annual salary (Dependent on your level of seniority)
5% of salary contribution to pension by company
Stock options, to share in the company’s long-term success
Brand new Apple hardware
Flexible working and working from home, with our office in Leith available for group and face-to-face discussions
The position is open to all candidates with the right to work in the United Kingdom, for example British and Northern Irish citizens, citizens of the European Union with settlement status in the United Kingdom, or all other nationalities with right of work in the United Kingdom.
We are able to sponsor a candidate for a UK Skilled Worker (Tier-2) Visa. We currently only offer sponsorship to candidates which are already in the UK (for example working in a different UK based company on a Visa, or finishing degree)
Edinburgh, but we can be flexible.
The company offices are in Edinburgh. It would be good to be available 1-day a week or a day every other week to come in the office for certain brainstorming and discussions that are easier face-to-face. So, if you’re not too far we can make it work.