Simtec Electronics - (Software) Engineer ---------------------------------------- Availability Status ------------------- We are not currently actively recruiting for this position, however we will entertain applications from engineers who meet all the required and a large proportion of the desirable qualities we are looking for. We do not currently have a vacancy, however the opportunity is present for the right person to extend our team at any time. Prerequisites ------------- Live in/near one of Preston, Manchester or Dewsbury, or be able (and prepared) to travel to Tarleton at least once per week to arrive in Tarleton no later than 09:30. Also to be able (and prepared) to travel to customer sites when necessary. Able to provide sufficient internet connectivity to do job at home (e.g. minimum of 4Mbit/s downstream, 256Kbit/s upstream) Able to supply own primary work machine and to integrate OpenVPN into home network configuration. Educated to degree level in computer science or a related discipline; or equivalent professional or visible open-source experience. Job description --------------- Simtec are a small consultancy offering bespoke hardware and software services typically within the resource-limited computing space. We are looking for a software engineer to join an extant team to work on the internal systems, Simtec projects and customer projects. The software team is responsible for everything from programmable logic through boot loaders, kernels, OS layout and applications up to and including as high a level as web interfaces. The software team directly liases with the hardware group in order to help specify customer projects and to provide input to the design process when needed. Not all of the above is essential for every member of the team, however a willingness to learn all aspects of the team's responsibilities is desirable. An ideal candidate will have experience in resource-limited computing and a strong open-source (or at least providable-to-Simtec) codebase with good examples of coding work in C. Typically it is expected that you will work 37.5 hours per week, however Simtec offer a flexible working environment which is more oriented to the end-goal than specific times. Having said that, there are however core hours of 10:00 to 16:00 (with an hour off for lunch) Monday to Friday which must be met. Flexibility around that is at the discretion of the software team lead and up. You will be supplied with an IP phone which will be your 'desk phone' and you will be expected to be contactable on that phone during work hours. Remuneration ------------ Salary: up to £31,000 per anum, PAYE, paid monthly in arrears on the last working day of the month. Holiday: Bank holidays as defined in England, and in addition, 25 days per year. Simtec tends to shut-down from Christmas to New Year; so you would be expected to reserve some of your days for that period. Travel to/from the office and to/from any client sites can be claimed on expenses. Simtec also offer the ability to claim towards broadband and work computer costs via expenses. The claims may currently be up to £20 per month towards broadband and up to £250 per year towards your work-related computing hardware (e.g. a laptop for work when in the office). Note, this does not mean Simtec mandate any particular brand or model of computer, merely that we offer an amount towards it; we recognise that the machine will be used for non-work situations and that each user has different requirements and preferences regarding their computers. Required abilities/knowledge ---------------------------- - Able to work effectively in loosely knit teams - Able to self-start and specify work - C programming in a strong hobbyist or professional situation - GNU Make or similar - Basic UNIX shell scripting - Knowledge of at least one of Perl, Python, Lua (or similar) - Must take an interest in software engineering outside of work - A wide understanding of algorithms and heuristics - Comfortable with using a Linux OS as a work platform Desirable abilities/knowledge ----------------------------- - An understanding of the constraints placed on resource-limited computing platforms - A knowledge of the inner workings of the Linux kernel - An understanding of Linux distribution concepts - Some ability to read and comprehend circuit schematics at a logical and digital level - Familiarity with ARM processors and ARM assembler language - An understanding of the lower levels of a system's boot process - A facility for switching projects on a week-to-week basis as needed. - Experience dealing with customers directly for project specification. - Familiar with the use of OpenOffice (Writer) and Wikis (MoinMoin ideally) - Familiarity with the issues and constraints regarding the packaging of software for various Linux based operating systems - A strong appreciation for the concepts of Laziness, Impatience and Hubris as applied to software engineering