Etsimme motivoitunutta C++‑sovelluskehittäjää liittymään tuotekehitystiimiimme. Pääset työskentelemään korkealaatuisen sulautetun ja teollisen ohjelmiston parissa tiiviissä yhteistyössä elektroniikkasuunnittelijoiden, mekaniikka‑asiantuntijoiden ja testitiimien kanssa luodaksesi luotettavia ja valmistettavia tuotteita. Rooliin kuuluu C++‑sovellusten toteutus, optimointi ja testaus koko ohjelmistopinon tasolla – laitetason rajapinnoista aina korkeamman tason sovelluslogiikkaan ja työkaluihin.
Keskeiset vastuualueet – C++‑sovelluskehittäjä
- Suunnittelet, toteutat ja ylläpidät C++‑ohjelmistokomponentteja sulautetuissa ja työpöytäympäristöissä, hyödyntäen modernin C++‑kielen (C++11 ja uudemmat) parhaita käytäntöjä.
- Kehität ja optimoit ajureita ja middleware‑ohjelmistoa, jotka keskustelevat laitteistojen kanssa (I2C, SPI, UART, CAN, GPIO) ja hallitsevat resurssirajoitteisia järjestelmiä.
- Toteutat yksikkö‑ ja integraatiotestejä, CI‑putkia ja automatisoituja rakennusjärjestelmiä varmistaaksesi koodin laadun ja toistettavat julkaisut.
- Profiloit, debuggaat ja optimoit suorituskykyä, muistinkäyttöä ja reaaliaikakäyttäytymistä tarkoituksenmukaisilla työkaluilla (jäljitystyökalut, debuggerit).
- Tee yhteistyötä firmware‑, elektroniikka‑ ja mekaniikkatiimien kanssa määritelläksesi ja toteuttaaksesi luotettavat ohjelmisto‑laitteisto‑rajapinnat sekä tukeaksesi prototyyppien käyttöönottoa ja laboratoriotestausta.
- Osallistut ohjelmistoarkkitehtuuriin liittyviin päätöksiin, dokumentoi suunnitelmat ja ylläpidä selkeitä versioituja lähdekoodirepositorioita.
- Tuet tuotteen verifiointia, laadit testisuunnitelmia.
- Varmistat tuotteeseen liittyvien turvallisuus‑, tietoturva‑ ja teollisuusstandardien noudattaminen.
Vaaditut taidot ja kokemus – C++‑kehitys
- Soveltuva korkeakoulututkinto (tietojenkäsittelytiede, ohjelmistotekniikka, sähkötekniikka) tai vastaava käytännön kokemus.
- Vankka kokemus C++‑kehityksestä, mukaan lukien modernit kieliominaisuudet, template‑ohjelmointi, RAII ja idiomaattinen resurssienhallinta.
- Kokemusta sulautetuista järjestelmistä ja ristiinkäännöstyökaluista tai työpöytäsovelluksista, joissa on matalan tason laiterajapintoja.
- Tuntemusta CI‑työkaluista (CMake, Make, GitLab CI, Jenkins tms.) sekä versionhallinnasta (Git).
- Tietämystä yksikkötestauskehyksistä ja testiautomaatiosta (Google Test, Catch2 tms.) sekä kokemusta ylläpidettävien automaattitestien kirjoittamisesta.
- Hyvät debuggaustaidot ja kokemus debuggereista, jäljitystyökaluista ja logiikka-analysaattoreista.
- Ymmärrys käyttöjärjestelmäkonsepteista (RTOS, Linux) sekä prosessien välisestä viestinnästä, säikeistyksestä ja rinnakkaisuuden haasteista.
- Sujuva suomen ja englannin kielen taito
Toivottavat lisätaidot – etu hakijalle
- Kokemus viestintäpinosta (TCP/IP, MQTT, CANopen, Modbus, Ethernet) ja verkottumisesta rajoitetuissa ympäristöissä.
- Tuntemus turvallisuusstandardeista, turvallisista koodauskäytännöistä ja staattisen analyysin työkaluista.
- Skriptikielten (Python, Bash) osaaminen työkalujen, testiautomaation ja rakennustehtävien tukena.
- Kokemus pilvi‑integraatioista tai työpöytägrafiikoista, joita käytetään laitekonfiguraatioon ja diagnostiikkaan.
- Aiempi työskentely suorituskykykriittisissä tai reaaliaikaisissa järjestelmissä, mukaan lukien profilointi ja matalan viiveen optimointi.
- C, RobotFramework, QT käyttöliittymäkomponentit (QML, Quick3D), Jenkins, PostgreSQL, Flywaydb, Linux, Yocto, Docker Containers, 3D engines, CAD tyyliset ohjelmistot.
Mitä tarjoamme – ura ohjelmistokehityksen parissa
- Mielenkiintoisia ja vaikuttavia projekteja teollisuus‑ ja sulautettujen tuotteiden parissa.
- Monialaisen tiimin, kannustavan työympäristön ja mahdollisuuksia ammatilliseen kehittymiseen.
- Joustavat työajat ja hybridityömahdollisuudet.
- Henkilöstöedut ja työterveyshuolto.