YouView is exploring ways to bring its award winning User Experience to increasingly wide groups of users and devices through HTML5 technologies.
Reporting to a Front End Web Technologies Team Manager, we are looking for Software Engineers to join our growing Software Engineering team.
We're looking for highly motivated people with strong problem solving skills, a curiosity for technologies, and a passion for user interfaces. Candidates must enjoy working in a team environment, but also be capable of tackling problems individually.
A commitment to delivering quality software is crucial, as is a strong understanding of the development practices that contribute to software quality using an agile mindset (unit testing, test driven development, version control, continuous integration, code and design review, etc.).
Applicants will have at least 5 years Software Engineering experience, obtained in a commercial environment. Strong understanding of the challenges and potential solutions required to build a large scale and slick UI in a resource constrained and asynchronous environment is essential.
The roles provide opportunities to work on various aspects of the software solution, including UX concepting, application architecture, API design, feature delivery, defect fixing, optimization, and tool development. It involves working with other delivery teams, and external partners, to produce integrated software solutions.
Application architecture, Data Structures, Algorithms, Business Logic, Integration with middleware and cloud services API’s.
What technologies will I use?
Micro Services, TypeScript/ES6, Rx, Unit Testing, Profiling.
How proficient do I need to be in those specific technologies?
Not proficient in the specific technologies (because they are pretty easy to pick up) but highly proficient in the principles and patterns which underlie them. For example, most unit testing frameworks are fairly similar. What is important is when and what to unit test, and how to make your code testable. If you’ve spent time doing Java, C#, or C++, then you probably have exposure to the important foundations.
What will make an applicant stand out?
Experience of decomposing hard software problems into elegant solutions.
Experience of creating APIs and abstractions through smart thinking, and collecting evidence to prove that the designs are fit for purpose.
HTML5 is an evolving collection of technologies, and applicants claiming to know them must have a deep understanding and hands-on experience of a good number of them. The role may evolve to use emerging technologies as they suit the needs of the project.
Architectural Patterns (System decomposition, Micro services, Isomorphic code)
Styling Languages (e.g. CSS3, Less, Sass, Stylus, etc)
Frameworks & Libraries (e.g. React, Require, Rx, Web Components etc)
Test Frameworks (e.g. Unit tests, Cucumber, Sinon, stbtester.
com, Selenium, etc)
Tools (e.g. Git, Gulp, Debuggers, Logging, Profilers, IDEs)
Browser Best Practices (e.g. DOM manipulation, CSS, Garbage Collection, I/O, etc)
Experience in any of the following technologies and software which supports the rest of our software stack is also highly desirable:
AWS / Bash / C++ / DBus / DVB / HTTP / IPTV / Jenkins / Jira / Linux / OS X / Photoshop / Python / SQL / TCPIP / Virtual