{"componentChunkName":"component---src-templates-blog-js","path":"/fi/embedded-world/","result":{"data":{"page":{"id":"bdd65ef8-4207-51d7-9ebb-9097c90b3380","slug":"embedded-world","fields":{"slug":"/embedded-world/"},"frontmatter":{"title":"Tickingbot maailmalla: Juho ja Marko vierailivat Embedded World -tapahtumassa","date":"07.04.2026","image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIFAQT/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABROLYqE8P/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEhMR/9oACAEBAAEFAtm3s+bF5EFY7Vf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGn/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAEQESExcf/aAAgBAQAGPwLCjRY0xcP/xAAZEAACAwEAAAAAAAAAAAAAAAABMQARIUH/2gAIAQEAAT8h2ijFCZnBdJjgEDbVLnIoSo9tP//aAAwDAQACAAMAAAAQ2D//xAAWEQADAAAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QiZD/xAAXEQEAAwAAAAAAAAAAAAAAAAABEBFR/9oACAECAQE/ELC5H//EABwQAQACAwADAAAAAAAAAAAAAAEAESExUWGRwf/aAAgBAQABPxBFVK0Nd+QMrDIvkUVbs8vUE5oUxgFNQEDSVDSUQAep3nLP/9k=","aspectRatio":1.6846361185983827,"src":"/static/5d1ff1d2fe2d16008d8e963c136657b3/ea7dd/messutsisaan.jpg","srcSet":"/static/5d1ff1d2fe2d16008d8e963c136657b3/53485/messutsisaan.jpg 625w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/f7dca/messutsisaan.jpg 1250w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/ea7dd/messutsisaan.jpg 2500w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/c7a0e/messutsisaan.jpg 3750w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/d2452/messutsisaan.jpg 4000w","srcWebp":"/static/5d1ff1d2fe2d16008d8e963c136657b3/dc072/messutsisaan.webp","srcSetWebp":"/static/5d1ff1d2fe2d16008d8e963c136657b3/a12ce/messutsisaan.webp 625w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/4d702/messutsisaan.webp 1250w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/dc072/messutsisaan.webp 2500w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/8deb6/messutsisaan.webp 3750w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/3a911/messutsisaan.webp 4000w","sizes":"(max-width: 2500px) 100vw, 2500px"}}},"image2":null,"metadescription":null,"content":"Tickingbotin asiantuntijat Marko Saarinen ja Juho Kokkonen pääsivät maaliskuussa aistimaan alan uusimpia tuulia Saksan Nürnbergissä järjestetyssä Embedded World -tapahtumassa. Embedded World on yksi maailman suurimmista sulautetun alan konferenssi- ja messutapahtumista, kun mukana oli tänä vuonna noin 36 000 vierailijaa ja 1262 näytteilleasettajaa. Kysyimme Markolta ja Juholta, mitä reissusta jäi käteen ja mihin suuntaan sulautetun tekniikan maailma on menossa.\n\n## Uskomme, että kehitys syntyy kokemuksista\n\nTickingbotilla kannustamme asiantuntijoitamme rohkeasti mukaan alan keskusteluihin, ja tarjoamme mielellämme kasvun paikkoja arjen lisäksi työreissuilla. Kun toimitusjohtajamme Matleena Piesala ehdotti reissuun lähtöä, ei Juhon ja Markon tarvinnut asiaa kauaa pohtia. \n\n\"*Totta kai se tuntuu tosi hienolta lähteä. Se, että on valittu mukaan reissuun, kertoo siitä, että meihin ja työn hyödyllisyyteen uskotaan*\", Marko kertoo lähdön fiiliksistä.\n\nKokemuksena tällaiseen suureen kansainväliseen tapahtumaan osallistuminen oli sekä Markolle että Juholle uusi kokemus. Tuhansien näytteilleasettajien ja lukuisten puheenvuorojen joukosta löytyi molemmille mielenkiintoisia aiheita. \n\n## Edge AI ja sulautetun tekniikan kehitys\n\nMarkon mielenkiinto kohdistui messuilla erityisesti rautapuolen kehitykseen ja siihen, kuinka nopeasti ala liikkuu eteenpäin. Yksi messujen suurimmista ja näkyvimmistä teemoista oli Edge AI.\n\n\"*Mikrokontrollerien nopeudet ovat kasvaneet ylipäätään, ja nyt isona juttuna on Edge AI. Niissä on nykyään jo sisäänrakennettuja neuroverkkoprosessointiyksiköitä*\", Marko selittää.\n\nMarko näkee tässä selviä mahdollisuuksia myös Tickingbotin asiakkaille. Hänen mukaansa kyse ei ole vain ohimenevästä hypestä, vaan teknologiasta, jota voidaan hyödyntää esimerkiksi konenäössä ja tutkatekniikassa. \n\n\"*Se ei ole kaukaa haettu asia, vaan sellaista tekniikkaa, jota voisimme upottaa projekteihimme jo nyt*\", hän toteaa.\n\n## Tekninen velka ja ohjelmistokehityksen laatu\n\nJuho puolestaan syventyi konferenssin puolella ohjelmistokehityksen prosesseihin. Erityisen mieleenpainuva oli puhesarja, joka käsitteli **teknistä velkaa (technical debt)**. Projekteissa tehdään tietoisia tai tiedostamattomia kompromisseja, jotka kerryttävät korjausvelkaa tulevaisuuteen. Kehittäjien keskuudessa tekninen velka kuormittaa, mutta kaikissa organisaation rooleissa sen vakavuutta ei aina ymmärretä. \n\n*\"Oli mielenkiintoista kuulla, miten teknistä velkaa voi hallita. Yksi tärkeä pointti oli teknisen velan kirjanpito. Meidän tulisi kirjoittaa ylös tekemämme kompromissit, jotta voimme perustella niiden korjaamiseen tarvittavan ajan myöhemmin myös johdolle*\", Juho kertoo.\n\nHän poimi matkalta mukaan myös uusia tapoja analysoida koodin laatua ja työtapoja. Vaikka osaaminen Tickingbotilla on jo vahvaa, kansainväliset puheenvuorot antoivat työkaluja viedä arjen tekemistä vieläkin systemaattisempaan suuntaan.\n\n## Suomalainen osaaminen kestää vertailun\n\nVaikka reissulta lähdettiin hakemaan oppeja, se vahvisti myös uskoa omaan tekemiseen. Sekä Marko että Juho huomasivat, että monet Tickingbotilla jo nyt käytössä olevat tavat ja asiantuntemus ovat kansainvälisestikin tarkasteltuna erittäin korkealla tasolla.\n\n\"*Kyllä siinä tuli sellainen olo, että monet asiat me tehdään jo nyt oikeasti hyvin. Joissakin puheenvuoroissa käsiteltiin asioita, jotka ovat meille jo itsestäänselvyyksiä*\", Juho summaa.\n\n## Epäonni lennoissa vapautti aikaa nähtävyyksiin\n\nPaluulennon peruuntuminen toi asiantuntijoille yllättäen ylimääräisen päivän Saksassa, joka käytettiin hyödyksi tutustumalla paikalliseen kulttuuriin ja Nürnbergin historiaan. Nähtävyyksien kiertely toi hyvää vaihtelua hektisiin tapahtumapäiviin, joten tässä tapauksessa epäonni kääntyi positiiviseksi mahdollisuudeksi. \n\n\"*Tickingbotilla pääsee osalliseksi monenlaiseen. On laajat näköalat ja hienoa, että tarjotaan tällaisia tilaisuuksia avartaa maailmaa*\", Marko ja Juho tiivistävät. \n\nTällaiset reissut ovat tärkeitä, jotta pysymme ajan tasalla alan kansainvälisestä kehityksestä ja pystymme tarjoamaan asiakkaillemme parasta mahdollista osaamista. Seuraavaksi opit jaetaan koko tiimille, kun matkalta kertyneet muistiinpanot ja oivallukset käydään yhdessä läpi.","content2":null,"recommendations":[{"slug":"ajosimulaattori"},{"slug":"3-d-tulostin"},{"slug":"libwebsockets"},{"slug":"kasvun-esteet-piilossa-datassa"}]}},"jobs":{"nodes":[{"fields":{"slug":"/business-developer-data/"},"frontmatter":{"title":"Business Developer (DATA)","slug":"Business Developer (DATA)","enabled":false}},{"fields":{"slug":"/datakonsultti/"},"frontmatter":{"title":"Datakonsultti","slug":"datakonsultti","enabled":false}},{"fields":{"slug":"/sw-test-automation-engineer/"},"frontmatter":{"title":"Testiautomaatio-osaaja","slug":"SW test automation engineer","enabled":true}},{"fields":{"slug":"/software-developer/"},"frontmatter":{"title":"C++ ohjelmistokehittäjä","slug":"Software developer","enabled":true}},{"fields":{"slug":"/embedded-software-engineer-senior/"},"frontmatter":{"title":"Sulautetun ohjelmiston kehittäjä (Seniori)","slug":"Embedded Software Engineer (Senior)","enabled":false}}]},"blogs":{"nodes":[{"fields":{"slug":"/embedded-world/"},"frontmatter":{"language":"fi","title":"Tickingbot maailmalla: Juho ja Marko vierailivat Embedded World -tapahtumassa","date":"07 April 2026","slug":"embedded-world","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAASABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQDAv/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwD/2gAMAwEAAhADEAAAAWXWQNaZlswJUiFU/8QAHRAAAgIBBQAAAAAAAAAAAAAAAQIAAzIEESEzQv/aAAgBAQABBQLKA8BlEWoqipvDUZ5ow1Hb/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAQEf/aAAgBAwEBPwELmN//xAAZEQEAAgMAAAAAAAAAAAAAAAAAARESMUH/2gAIAQIBAT8BypbiNP/EAB0QAQEAAAcBAAAAAAAAAAAAAAABAhESITIzUbH/2gAIAQEABj8Cz+K4YWp5s7IqK//EAB0QAQEAAgIDAQAAAAAAAAAAAAERACExQRCBkbH/2gAIAQEAAT8hkTLHhDE4gJ04ND5ZvSaaespDcUq4Kdpc/HxtCNBM/9oADAMBAAIAAwAAABCv17//xAAYEQEAAwEAAAAAAAAAAAAAAAABABAxEf/aAAgBAwEBPxAEe7Q2aZ//xAAYEQEAAwEAAAAAAAAAAAAAAAAAARExsf/aAAgBAgEBPxCmFE9Mn//EAB0QAQEAAgIDAQAAAAAAAAAAAAERACExYVGBsdH/2gAIAQEAAT8QLyMABGcp5yWWKQE/TDMDuvuRAAOm0qfcbVoImE6ZlmQ3Bg4KmrL16cJwcm+8a+gAGg0Z/9k=","aspectRatio":1.098901098901099,"src":"/static/318928769375a4190042e9298cd08a30/2244e/etusivu.jpg","srcSet":"/static/318928769375a4190042e9298cd08a30/86e11/etusivu.jpg 100w,\n/static/318928769375a4190042e9298cd08a30/f836f/etusivu.jpg 200w,\n/static/318928769375a4190042e9298cd08a30/2244e/etusivu.jpg 400w,\n/static/318928769375a4190042e9298cd08a30/4fe8c/etusivu.jpg 600w,\n/static/318928769375a4190042e9298cd08a30/14b42/etusivu.jpg 800w,\n/static/318928769375a4190042e9298cd08a30/6808f/etusivu.jpg 3288w","srcWebp":"/static/318928769375a4190042e9298cd08a30/1f5c5/etusivu.webp","srcSetWebp":"/static/318928769375a4190042e9298cd08a30/d1f52/etusivu.webp 100w,\n/static/318928769375a4190042e9298cd08a30/61e93/etusivu.webp 200w,\n/static/318928769375a4190042e9298cd08a30/1f5c5/etusivu.webp 400w,\n/static/318928769375a4190042e9298cd08a30/ad85c/etusivu.webp 600w,\n/static/318928769375a4190042e9298cd08a30/58556/etusivu.webp 800w,\n/static/318928769375a4190042e9298cd08a30/c9161/etusivu.webp 3288w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIFAQT/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABROLYqE8P/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEhMR/9oACAEBAAEFAtm3s+bF5EFY7Vf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGn/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAEQESExcf/aAAgBAQAGPwLCjRY0xcP/xAAZEAACAwEAAAAAAAAAAAAAAAABMQARIUH/2gAIAQEAAT8h2ijFCZnBdJjgEDbVLnIoSo9tP//aAAwDAQACAAMAAAAQ2D//xAAWEQADAAAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QiZD/xAAXEQEAAwAAAAAAAAAAAAAAAAABEBFR/9oACAECAQE/ELC5H//EABwQAQACAwADAAAAAAAAAAAAAAEAESExUWGRwf/aAAgBAQABPxBFVK0Nd+QMrDIvkUVbs8vUE5oUxgFNQEDSVDSUQAep3nLP/9k=","aspectRatio":1.6846361185983827,"src":"/static/5d1ff1d2fe2d16008d8e963c136657b3/ea7dd/messutsisaan.jpg","srcSet":"/static/5d1ff1d2fe2d16008d8e963c136657b3/53485/messutsisaan.jpg 625w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/f7dca/messutsisaan.jpg 1250w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/ea7dd/messutsisaan.jpg 2500w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/c7a0e/messutsisaan.jpg 3750w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/d2452/messutsisaan.jpg 4000w","srcWebp":"/static/5d1ff1d2fe2d16008d8e963c136657b3/dc072/messutsisaan.webp","srcSetWebp":"/static/5d1ff1d2fe2d16008d8e963c136657b3/a12ce/messutsisaan.webp 625w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/4d702/messutsisaan.webp 1250w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/dc072/messutsisaan.webp 2500w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/8deb6/messutsisaan.webp 3750w,\n/static/5d1ff1d2fe2d16008d8e963c136657b3/3a911/messutsisaan.webp 4000w","sizes":"(max-width: 2500px) 100vw, 2500px"}}},"image2":null,"content":"Tickingbotin asiantuntijat Marko Saarinen ja Juho Kokkonen pääsivät maaliskuussa aistimaan alan uusimpia tuulia Saksan Nürnbergissä järjestetyssä Embedded World -tapahtumassa. Embedded World on yksi maailman suurimmista sulautetun alan konferenssi- ja messutapahtumista, kun mukana oli tänä vuonna noin 36 000 vierailijaa ja 1262 näytteilleasettajaa. Kysyimme Markolta ja Juholta, mitä reissusta jäi käteen ja mihin suuntaan sulautetun tekniikan maailma on menossa.\n\n## Uskomme, että kehitys syntyy kokemuksista\n\nTickingbotilla kannustamme asiantuntijoitamme rohkeasti mukaan alan keskusteluihin, ja tarjoamme mielellämme kasvun paikkoja arjen lisäksi työreissuilla. Kun toimitusjohtajamme Matleena Piesala ehdotti reissuun lähtöä, ei Juhon ja Markon tarvinnut asiaa kauaa pohtia. \n\n\"*Totta kai se tuntuu tosi hienolta lähteä. Se, että on valittu mukaan reissuun, kertoo siitä, että meihin ja työn hyödyllisyyteen uskotaan*\", Marko kertoo lähdön fiiliksistä.\n\nKokemuksena tällaiseen suureen kansainväliseen tapahtumaan osallistuminen oli sekä Markolle että Juholle uusi kokemus. Tuhansien näytteilleasettajien ja lukuisten puheenvuorojen joukosta löytyi molemmille mielenkiintoisia aiheita. \n\n## Edge AI ja sulautetun tekniikan kehitys\n\nMarkon mielenkiinto kohdistui messuilla erityisesti rautapuolen kehitykseen ja siihen, kuinka nopeasti ala liikkuu eteenpäin. Yksi messujen suurimmista ja näkyvimmistä teemoista oli Edge AI.\n\n\"*Mikrokontrollerien nopeudet ovat kasvaneet ylipäätään, ja nyt isona juttuna on Edge AI. Niissä on nykyään jo sisäänrakennettuja neuroverkkoprosessointiyksiköitä*\", Marko selittää.\n\nMarko näkee tässä selviä mahdollisuuksia myös Tickingbotin asiakkaille. Hänen mukaansa kyse ei ole vain ohimenevästä hypestä, vaan teknologiasta, jota voidaan hyödyntää esimerkiksi konenäössä ja tutkatekniikassa. \n\n\"*Se ei ole kaukaa haettu asia, vaan sellaista tekniikkaa, jota voisimme upottaa projekteihimme jo nyt*\", hän toteaa.\n\n## Tekninen velka ja ohjelmistokehityksen laatu\n\nJuho puolestaan syventyi konferenssin puolella ohjelmistokehityksen prosesseihin. Erityisen mieleenpainuva oli puhesarja, joka käsitteli **teknistä velkaa (technical debt)**. Projekteissa tehdään tietoisia tai tiedostamattomia kompromisseja, jotka kerryttävät korjausvelkaa tulevaisuuteen. Kehittäjien keskuudessa tekninen velka kuormittaa, mutta kaikissa organisaation rooleissa sen vakavuutta ei aina ymmärretä. \n\n*\"Oli mielenkiintoista kuulla, miten teknistä velkaa voi hallita. Yksi tärkeä pointti oli teknisen velan kirjanpito. Meidän tulisi kirjoittaa ylös tekemämme kompromissit, jotta voimme perustella niiden korjaamiseen tarvittavan ajan myöhemmin myös johdolle*\", Juho kertoo.\n\nHän poimi matkalta mukaan myös uusia tapoja analysoida koodin laatua ja työtapoja. Vaikka osaaminen Tickingbotilla on jo vahvaa, kansainväliset puheenvuorot antoivat työkaluja viedä arjen tekemistä vieläkin systemaattisempaan suuntaan.\n\n## Suomalainen osaaminen kestää vertailun\n\nVaikka reissulta lähdettiin hakemaan oppeja, se vahvisti myös uskoa omaan tekemiseen. Sekä Marko että Juho huomasivat, että monet Tickingbotilla jo nyt käytössä olevat tavat ja asiantuntemus ovat kansainvälisestikin tarkasteltuna erittäin korkealla tasolla.\n\n\"*Kyllä siinä tuli sellainen olo, että monet asiat me tehdään jo nyt oikeasti hyvin. Joissakin puheenvuoroissa käsiteltiin asioita, jotka ovat meille jo itsestäänselvyyksiä*\", Juho summaa.\n\n## Epäonni lennoissa vapautti aikaa nähtävyyksiin\n\nPaluulennon peruuntuminen toi asiantuntijoille yllättäen ylimääräisen päivän Saksassa, joka käytettiin hyödyksi tutustumalla paikalliseen kulttuuriin ja Nürnbergin historiaan. Nähtävyyksien kiertely toi hyvää vaihtelua hektisiin tapahtumapäiviin, joten tässä tapauksessa epäonni kääntyi positiiviseksi mahdollisuudeksi. \n\n\"*Tickingbotilla pääsee osalliseksi monenlaiseen. On laajat näköalat ja hienoa, että tarjotaan tällaisia tilaisuuksia avartaa maailmaa*\", Marko ja Juho tiivistävät. \n\nTällaiset reissut ovat tärkeitä, jotta pysymme ajan tasalla alan kansainvälisestä kehityksestä ja pystymme tarjoamaan asiakkaillemme parasta mahdollista osaamista. Seuraavaksi opit jaetaan koko tiimille, kun matkalta kertyneet muistiinpanot ja oivallukset käydään yhdessä läpi.","content2":null,"recommendations":[{"slug":"ajosimulaattori"},{"slug":"3-d-tulostin"},{"slug":"libwebsockets"},{"slug":"kasvun-esteet-piilossa-datassa"}]}},{"fields":{"slug":"/tickingbot-kehittyy-hallituksen-tuella/"},"frontmatter":{"language":"fi","title":"Tickingbot kehittyy hallituksen tuella","date":"16 March 2026","slug":"tickingbot-kehittyy-hallituksen-tuella","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAUDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABrZc+Q03GSPsaJgL/xAAcEAACAgIDAAAAAAAAAAAAAAABAwIEABESEyH/2gAIAQEAAQUCPgjPZx9jqMplWC0sixLk+4zbd5//xAAVEQEBAAAAAAAAAAAAAAAAAAAgIf/aAAgBAwEBPwGD/8QAFhEAAwAAAAAAAAAAAAAAAAAAAREg/9oACAECAQE/AUY//8QAHBAAAQUAAwAAAAAAAAAAAAAAAAECEBESITFB/9oACAEBAAY/Aiu4zVqbU5tBxnxsf//EABwQAAIBBQEAAAAAAAAAAAAAAAERACExQVFxEP/aAAgBAQABPyE2kS8uvBoOB3tKEcG40MaUajggRBgSuf/aAAwDAQACAAMAAAAQ+wi//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxAcOx7P/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQAQETH/2gAIAQIBAT8QUTJjDlf/xAAdEAEAAwEAAgMAAAAAAAAAAAABABEhMUFRYYHB/9oACAEBAAE/EHp1he8lPVa8FRNgXbZaAcmITg6t3t+sIURHdK+4gDDT4AiIDUw8rr+EUrLCf//Z","aspectRatio":0.8928571428571429,"src":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/2244e/jari-noppa.jpg","srcSet":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/86e11/jari-noppa.jpg 100w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/f836f/jari-noppa.jpg 200w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/2244e/jari-noppa.jpg 400w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/4fe8c/jari-noppa.jpg 600w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/14b42/jari-noppa.jpg 800w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/ffaa5/jari-noppa.jpg 3309w","srcWebp":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/1f5c5/jari-noppa.webp","srcSetWebp":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/d1f52/jari-noppa.webp 100w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/61e93/jari-noppa.webp 200w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/1f5c5/jari-noppa.webp 400w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/ad85c/jari-noppa.webp 600w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/58556/jari-noppa.webp 800w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/5dbdd/jari-noppa.webp 3309w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAACBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAEb+O8X2Zn/xAAaEAACAwEBAAAAAAAAAAAAAAAAAQITMhES/9oACAEBAAEFAr+Frb9slpkM/wD/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAACAQUAAAAAAAAAAAAAAAAAARADIVFhcv/aAAgBAQAGPwJrBp3hlLmP/8QAHBAAAwACAwEAAAAAAAAAAAAAAAERMaEhYXGR/9oACAEBAAE/IW7xaqLwlLiCT6dGjfRkeA//2gAMAwEAAgADAAAAEIv/AP/EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/EGf/xAAWEQADAAAAAAAAAAAAAAAAAAABEDH/2gAIAQIBAT8QEX//xAAdEAEAAgICAwAAAAAAAAAAAAABACERMRDwUWGB/9oACAEBAAE/EAliICaYyfcTcwYCyjcvbx0vid/2cT//2Q==","aspectRatio":2.162629757785467,"src":"/static/550e1ecd5b93f6744f822efd88d40a78/ea7dd/img_20260228_145552_cropped_3.jpg","srcSet":"/static/550e1ecd5b93f6744f822efd88d40a78/53485/img_20260228_145552_cropped_3.jpg 625w,\n/static/550e1ecd5b93f6744f822efd88d40a78/f7dca/img_20260228_145552_cropped_3.jpg 1250w,\n/static/550e1ecd5b93f6744f822efd88d40a78/ea7dd/img_20260228_145552_cropped_3.jpg 2500w,\n/static/550e1ecd5b93f6744f822efd88d40a78/b6e9c/img_20260228_145552_cropped_3.jpg 3707w","srcWebp":"/static/550e1ecd5b93f6744f822efd88d40a78/dc072/img_20260228_145552_cropped_3.webp","srcSetWebp":"/static/550e1ecd5b93f6744f822efd88d40a78/a12ce/img_20260228_145552_cropped_3.webp 625w,\n/static/550e1ecd5b93f6744f822efd88d40a78/4d702/img_20260228_145552_cropped_3.webp 1250w,\n/static/550e1ecd5b93f6744f822efd88d40a78/dc072/img_20260228_145552_cropped_3.webp 2500w,\n/static/550e1ecd5b93f6744f822efd88d40a78/3a393/img_20260228_145552_cropped_3.webp 3707w","sizes":"(max-width: 2500px) 100vw, 2500px"}}},"image2":null,"content":"Kuten edellisessä blogissani kuvasin, hallituksen tärkeä tehtävä on tukea yrityksen johtoa strategian luonnissa ja toteutuksessa sekä varmistaa, että toimet ovat linjassa omistajastrategian kanssa. Strategiatyössä hallituksen rooli ei tietenkään lopu tähän.\n\nHallituksen puheenjohtajana tarjoan osaamistani ja pitkää liiketoimintojen johdon kokemustani Tickingbotin operatiivisen johtamisen tueksi, sekoittamatta kuitenkaan hallituksen puheenjohtajan roolia suoraan operatiiviseen johtamiseen. Tämä onkin tärkeä asia kasvavissa yrityksissä. Pelkkä kontrollointi ei tietenkään riitä. Hyvän hallintotavan ja strategisen johtamisen mallin toteutuminen onnistuu kehittämällä prosesseja, ennakointia ja johtamista yhdessä hyvin toimivan johdon kanssa.\n\n### Sparrauskulttuurissa tieto ja tuki virtaa päivittäiseen tekemiseen\n\nTickingbot Oy:ssä meillä on hallituksen puheenjohtajan ja johdon välillä hyvä sparrauskulttuuri. Erityisesti kasvustrategiaa toteutettaessa ja uutta liiketoimintaa käynnistettäessä on varmistettava, että askeleet ovat suunnitellun mukaisia. Käymme paljon avointa dialogia toimitusjohtajan Matleena Piesalan kanssa, mikä tukee päivittäistä toiminnan johtamista. Tärkeää on tietenkin tukea toimitusjohtajan lisäksi muutakin johtoa ja koko liiketoimintaa.\n\nKehitämme, mutta myös haastamme itseämme jatkuvasti, varmistaaksemme toimimisen kuten strategiassa on määritelty. Teemme sitoutuneesti työtä hyvän asiakaskokemuksen kehittämiseksi. Emme tyydy vain hyvään asiakastyytyväisyyteen, vaan tavoitteemme on tuottaa asiakkaillemme hyvä kokonaisvaltainen asiakaskokemus.\n\nAjankohtaisena teemana Tickingbotilla on myös aiemmin mainittu uuden liiketoiminnan innovatiivinen kehittäminen, kun laajennamme palveluvalikoimaamme datapalveluilla. Datapalveluiden liiketoiminnan johtaja Jari Jokinen on vienyt kehitystä ansiokkaasti eteenpäin. Uuden palvelun kehittämiseen hallitus tarjoaa tukensa ja sparraamme Jokisen kanssa aktiivisesti. Datapalveluiden kehitys on hyvässä, suunnitellussa vauhdissa. Meidän pitkäjänteisyys näkyy ja se on ihan hyvä juttu. Toteutimme dataliiketoiminnan osalta kattavan ja laadukkaan **[](https://tickingbot.fi/fi/tiedolla-johtaminen)[tiedolla johtamisen selvityksen](https://tickingbot.fi/fi/tiedolla-johtaminen)[](https://tickingbot.fi/fi/tiedolla-johtaminen)**, joka auttaa meitä kehittämään palvelua asiakaslähtöisesti. \n\nSparraus ja riittävä ajatusten vaihto ovat tärkeitä kaiken kokoisissa yrityksissä, mutta korostuu varmasti pienissä ja keskisuurissa yrityksissä, joissa operatiivisella tasolla ei ole vielä käytettävissä kaikkea tarvittavaa osaamista tai resursseja. Strategia ei toteudu vain hallituksen kokouksissa asioista keskustelemalla. Vaaditaan hallituksen ja erityisesti hallituksen puheenjohtajan läsnäoloa. Sparraavan kulttuurin kehittäminen vaatii tietenkin myös halua ottaa tukea vastaan, olla avoin ja ymmärtää, että meillä on yhteinen tavoite. \n\n### Onnistuakseen on pelattava yhteiseen maaliin\n\nMeillä Tickingbotilla on hyvä yhteinen ja kannustava tapa varmistaa, että strategiset tavoitteemme toteutuvat ja etenemme kohti määriteltyä visiota. Ajatusten vaihto, yhteiset työpajat ja kaiken kaikkiaan avoin keskustelukulttuuri ovat merkittävässä roolissa. Hyvällä strategisella johtamisella, johon liittyy avoimuus ja sparrauskulttuuri, olemme varmistamassa laadukkaan tekemisen, hyvän asiakaskokemuksen ja tietenkin kannattavan liiketoiminnan.\n\nSinulle lukija, toivon menestystä kevään päätöksiin. Jos tiedolla johtaminen kiinnostaa, suosittelen lämpimästi tutustumaan myös aiemmin mainittuun selvitykseen, jonka voit tilata maksuttomasti täältä: **[Tiedolla johtamisen selvitys](https://tickingbot.fi/report-request/)[](https://tickingbot.fi/report-request/)**\n\nJari Noppa\\\nTickingbot Oy, hallituksen puheenjohtaja","content2":null,"recommendations":[{"slug":"hallitus"},{"slug":"kasvun-esteet-piilossa-datassa"},{"slug":"tiedolla-johtaminen"},{"slug":"embedded-world"}]}},{"fields":{"slug":"/lehdistotiedote-selvitys-suomalaisten-organisaatioiden-datakyvykkyydesta/"},"frontmatter":{"language":"fi","title":"LEHDISTÖTIEDOTE","date":"05 March 2026","slug":"Lehdistotiedote-selvitys-suomalaisten-organisaatioiden-datakyvykkyydesta","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAACdElEQVQ4y42UTUhUURTH733zZh5NDc6gmTHYBy7sWyjLIAhmUUEtBCOwIovErBDKZIqxqJQamvItZpTcREiEIBNB0UpokbRo0SIqalGL3BRRi8TIKOz2v87/0fPa1Bz48c67797zdc95QvwRiwQM3fvmiSxBL0lioJJ6DdhA/STYbRqNgK1gJzgBDoC9IMfoesAEUKATDIN34DT4AdaaBjeBLzzwC1wC18E30Mz1JGgEK+lAkVO0EfSno2tVBt6APNe66MQ7XOnb38m1cTAJNpu19kJ9Cp5TP8hDu8B78IEOH4I2ftvI90dgnhmhlgfgBXXt9QlYBuIgS1ax5vXGhYX+dpM6rcW+8G0+zfbw3m06K6l11oCPYA94Bm6B+eAraAIJ8BlMgdfMZI5IX/rrWadW8Jb6AJ8pXsgoS6PbJ1osMu+m6sBP0AJe8WK8VrkIpkE792rDW8zIbOIVtx6LCs11VBaM9IELNHgE3KT+mM/t/5wzR4hFMwej1bioQDObX8txsJx6Bxhk8zv+8w0cpxs6ChRx6TaENlou1iE3d9CaSVtLuVPohIWkqLQz7CGmNzIcE4l0mVT3mnaogdq4yjlI0bJS3PeJt93N83N6sIMb70o9v8FQ1zUh7txv3aeSV92pkb7MdH9VWJ2x9WTIQ3R6zBjHWZKmwW6pe88KjF3GTOcRnZvNfc+fTym3IqQmojpN2UiDNcaUzZLDnOMxbH6pZ3Wowq5Lh8Xk7YbVKhePqB5HZFcU2iFJ57WlTIftbcjEbOFWhavPorF7gyLRj7UlYUd/1Ib2c2qKijQ8WZmIsK4sEOIcXnp1cXXfhIMy8J/f+m+pB5gzjc6AWAAAAABJRU5ErkJggg==","aspectRatio":1,"src":"/static/9190c666ce6a2cca6e98d7d021d836ba/497c6/tickingbot_logo1_rgb.png","srcSet":"/static/9190c666ce6a2cca6e98d7d021d836ba/65e33/tickingbot_logo1_rgb.png 100w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/69585/tickingbot_logo1_rgb.png 200w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/497c6/tickingbot_logo1_rgb.png 400w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/2a4de/tickingbot_logo1_rgb.png 600w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/d8815/tickingbot_logo1_rgb.png 750w","srcWebp":"/static/9190c666ce6a2cca6e98d7d021d836ba/1f5c5/tickingbot_logo1_rgb.webp","srcSetWebp":"/static/9190c666ce6a2cca6e98d7d021d836ba/d1f52/tickingbot_logo1_rgb.webp 100w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/61e93/tickingbot_logo1_rgb.webp 200w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/1f5c5/tickingbot_logo1_rgb.webp 400w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/ad85c/tickingbot_logo1_rgb.webp 600w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/e557c/tickingbot_logo1_rgb.webp 750w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAACdElEQVQ4y42UTUhUURTH733zZh5NDc6gmTHYBy7sWyjLIAhmUUEtBCOwIovErBDKZIqxqJQamvItZpTcREiEIBNB0UpokbRo0SIqalGL3BRRi8TIKOz2v87/0fPa1Bz48c67797zdc95QvwRiwQM3fvmiSxBL0lioJJ6DdhA/STYbRqNgK1gJzgBDoC9IMfoesAEUKATDIN34DT4AdaaBjeBLzzwC1wC18E30Mz1JGgEK+lAkVO0EfSno2tVBt6APNe66MQ7XOnb38m1cTAJNpu19kJ9Cp5TP8hDu8B78IEOH4I2ftvI90dgnhmhlgfgBXXt9QlYBuIgS1ax5vXGhYX+dpM6rcW+8G0+zfbw3m06K6l11oCPYA94Bm6B+eAraAIJ8BlMgdfMZI5IX/rrWadW8Jb6AJ8pXsgoS6PbJ1osMu+m6sBP0AJe8WK8VrkIpkE792rDW8zIbOIVtx6LCs11VBaM9IELNHgE3KT+mM/t/5wzR4hFMwej1bioQDObX8txsJx6Bxhk8zv+8w0cpxs6ChRx6TaENlou1iE3d9CaSVtLuVPohIWkqLQz7CGmNzIcE4l0mVT3mnaogdq4yjlI0bJS3PeJt93N83N6sIMb70o9v8FQ1zUh7txv3aeSV92pkb7MdH9VWJ2x9WTIQ3R6zBjHWZKmwW6pe88KjF3GTOcRnZvNfc+fTym3IqQmojpN2UiDNcaUzZLDnOMxbH6pZ3Wowq5Lh8Xk7YbVKhePqB5HZFcU2iFJ57WlTIftbcjEbOFWhavPorF7gyLRj7UlYUd/1Ib2c2qKijQ8WZmIsK4sEOIcXnp1cXXfhIMy8J/f+m+pB5gzjc6AWAAAAABJRU5ErkJggg==","aspectRatio":1,"src":"/static/9190c666ce6a2cca6e98d7d021d836ba/d8815/tickingbot_logo1_rgb.png","srcSet":"/static/9190c666ce6a2cca6e98d7d021d836ba/d5653/tickingbot_logo1_rgb.png 625w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/d8815/tickingbot_logo1_rgb.png 750w","srcWebp":"/static/9190c666ce6a2cca6e98d7d021d836ba/e557c/tickingbot_logo1_rgb.webp","srcSetWebp":"/static/9190c666ce6a2cca6e98d7d021d836ba/a12ce/tickingbot_logo1_rgb.webp 625w,\n/static/9190c666ce6a2cca6e98d7d021d836ba/e557c/tickingbot_logo1_rgb.webp 750w","sizes":"(max-width: 750px) 100vw, 750px"}}},"image2":null,"content":"Julkaisuvapaa heti\n\n**Selvitys: Suomalaisten organisaatioiden datakyvykkyys laahaa**\n\nVaikka tekoäly nähdään suomalaisissa organisaatioissa strategisena mahdollisuutena, käytännön toteutus ontuu. Tickingbot Oy:n tuore selvitys 24 suomalaisesta organisaatiosta paljastaa tiedolla johtamisen kipukohdat. \n\n**Organisaatiot, jotka eivät saa dataansa kuntoon nyt, jäävät jälkeen kilpailijoistaan**\n\nTekoälyratkaisujen hyödyntäminen Suomessa on yhä varovaista ja yksittäisten kokeilujen varassa. Suurin este kehitykselle ei ole teknologia, vaan epäselvät vastuut, pirstaleiset järjestelmät ja datakulttuurin puute, jotka estävät todellisten liiketoimintahyötyjen saavuttamisen. Tekoäly ei korjaa heikkoa dataa eikä puutteellista johtamista.\n\n**Selvityksessä ilmenneet viisi suurinta pullonkaulaa suomalaisissa organisaatioissa:**\n\n* Tiedolla johtamisen tahtotilan puute ja irralliset datahankkeet\n* Datan omistajuus ja epäselvät vastuut \n* Heikko datan laatu, kun standardointi, määrittelyt ja ydintietojen hallinta puuttuvat.\n* Pirstaleiset järjestelmät ja Excel-riippuvuus\n* Datakulttuurin ja muutosjohtamisen haasteet \n\nRakentamaton datakulttuuri heijastuu kaikkeen tiedolla johtamiseen. On mahdotonta johtaa tiedolla, jonka luotettavuus, yhtenäisyys ja saatavuus vaihtelee. Tutkimuksen mukaan yrityksissä tunnistetaan oireita, mutta niiden juurisyyt jäävät usein selvittämättä. \n\n**Datakyvykkyyden juurtuminen on kulttuurin muutos, ei hetkellinen projekti**\n\nSuomalaisissa organisaatioissa tietoturvariskit, osaamisvajeet ja datan laaduttomuus haastavat tekoälyn hyödyntämistä. Tekoälyä käytetään jo yleisesti tekstien generointiin, käännöksiin ja asiakaspalvelun automatisointiin, mutta todelliset voittajat ovat panostaneet datakulttuurin luomiseen ja nauttivat tekoälyn moninkertaisista hyödyistä. Näissä organisaatioissa tuotanto on itseohjautuvaa, skenaarioita testataan digitaalisilla kaksosilla ja prosesseja optimoidaan ennustavalla analytiikalla.\n\nVaikka keskustelu usein keskittyy teknologiaan, Tickingbotin selvitys osoittaa, että datalähtöisen toiminnan kehittämisessä ratkaisevaa on johtaminen, kulttuuri ja osaaminen. Yleistä 80/20-periaatetta soveltaen voi sanoa, että valtaosa haasteista syntyy ihmisistä ja johtamisesta, ei teknologiasta.\n\n*“Kun johto näyttää esimerkkiä ja data on osa arjen päätöksentekoa, organisaatiot muuttuvat nopeasti. Teknologia tulee vasta sen jälkeen.”* – Jari Jokinen, Head of Data Business, Tickingbot Oy. \n\nDatakyvykkyyden rakentaminen onkin ennen kaikkea johtamiskysymys, joka lähtee selkeästä tahtotilasta ja sitoutuneesta johdosta. Yksittäisten hankkeiden sijaan tulisi keskittyä rakentamaan kestävää datakyvykkyyttä, joka aidosti tukee liiketoimintaa ja juurtuu organisaation arkeen.\n\n**Lataa koko raportti**\n\nMarraskuussa 2025 valmistunut loppuraportti “Tiedolla johtaminen, datan hallinta ja tekoälyn hyödyntäminen – Loppuraportti 2025” on saatavilla osoitteessa <https://tickingbot.fi/report-request/> \n\n**Lisätiedot**\n\nJari Jokinen\\\nHead of Data Business\\\nTickingbot Oy\n\nPuh. 0400 488 989\n\n[jari.jokinen@tickingbot.fi ](mailto:jari.jokinen@tickingbot.fi)\n\n[www.tickingbot.fi](http://www.tickingbot.fi) \n\n**Tickingbot Oy**\n\nDatapalveluihin, sulautettuun ohjelmistokehitykseen ja ohjelmistotestaukseen erikoistunut tamperelaisyritys.","content2":null,"recommendations":null}},{"fields":{"slug":"/tiedolla-johtaminen/"},"frontmatter":{"language":"fi","title":"Tekoäly ei korjaa huonoa dataa, eikä huonoa johtamista","date":"17 February 2026","slug":"tiedolla-johtaminen","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQCBf/EABQBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAY89aMYgn//EABsQAQEAAQUAAAAAAAAAAAAAAAIBEQMSFDEy/9oACAEBAAEFAiMkHer3NM4EnLvr/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAgEFAAAAAAAAAAAAAAAAAAEREBIxQXH/2gAIAQEABj8CbkimC3Q+n//EABoQAQEBAAMBAAAAAAAAAAAAAAERACFRsTH/2gAIAQEAAT8htcTfdQmER04BgD3CQJ443Aekb//aAAwDAQACAAMAAAAQa8//xAAXEQADAQAAAAAAAAAAAAAAAAABEBEh/9oACAEDAQE/EKMX/8QAFxEAAwEAAAAAAAAAAAAAAAAAARARIf/aAAgBAgEBPxCHV//EAB4QAQEAAQMFAAAAAAAAAAAAAAERACFRcTFBYYGh/9oACAEBAAE/EB0gdAmrO+2MHoFbhntEK+MGpCoH1vlkwIByUwwehHA5/9k=","aspectRatio":1.5384615384615385,"src":"/static/e10b785962ed6d66f4de9ac616b98e75/2244e/jouni_jari.jpg","srcSet":"/static/e10b785962ed6d66f4de9ac616b98e75/86e11/jouni_jari.jpg 100w,\n/static/e10b785962ed6d66f4de9ac616b98e75/f836f/jouni_jari.jpg 200w,\n/static/e10b785962ed6d66f4de9ac616b98e75/2244e/jouni_jari.jpg 400w,\n/static/e10b785962ed6d66f4de9ac616b98e75/4fe8c/jouni_jari.jpg 600w,\n/static/e10b785962ed6d66f4de9ac616b98e75/14b42/jouni_jari.jpg 800w,\n/static/e10b785962ed6d66f4de9ac616b98e75/6e33c/jouni_jari.jpg 3476w","srcWebp":"/static/e10b785962ed6d66f4de9ac616b98e75/1f5c5/jouni_jari.webp","srcSetWebp":"/static/e10b785962ed6d66f4de9ac616b98e75/d1f52/jouni_jari.webp 100w,\n/static/e10b785962ed6d66f4de9ac616b98e75/61e93/jouni_jari.webp 200w,\n/static/e10b785962ed6d66f4de9ac616b98e75/1f5c5/jouni_jari.webp 400w,\n/static/e10b785962ed6d66f4de9ac616b98e75/ad85c/jouni_jari.webp 600w,\n/static/e10b785962ed6d66f4de9ac616b98e75/58556/jouni_jari.webp 800w,\n/static/e10b785962ed6d66f4de9ac616b98e75/0ccc4/jouni_jari.webp 3476w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMCAQT/xAAYAQACAwAAAAAAAAAAAAAAAAAAAgEDBP/aAAwDAQACEAMQAAAB8E59TRllKz2NTMB//8QAGBAAAwEBAAAAAAAAAAAAAAAAAQIQABH/2gAIAQEAAQUCxncerWctP//EABcRAQADAAAAAAAAAAAAAAAAAAIAEBL/2gAIAQMBAT8BTmr/AP/EABURAQEAAAAAAAAAAAAAAAAAAAEg/9oACAECAQE/AQj/xAAYEAADAQEAAAAAAAAAAAAAAAABECEgQf/aAAgBAQAGPwLFBDvF/8QAHBAAAgICAwAAAAAAAAAAAAAAAAERIRAxQXGh/9oACAEBAAE/Id7Z28JKjwXBMjdkTRLRLjH/2gAMAwEAAgADAAAAEDvPfP/EABgRAAMBAQAAAAAAAAAAAAAAAAABERAx/9oACAEDAQE/EH2IsfXn/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EAj/AP/EAB0QAQADAAEFAAAAAAAAAAAAAAEAESFREDFBYXH/2gAIAQEAAT8Q8rDjMgyxsW5Y3Krb8qenEsNlNDcZa7T2g5ACEoHT/9k=","aspectRatio":1,"src":"/static/91afed5678621047c85b9b7af26758a0/4973d/organisaatiokartoitus.jpg","srcSet":"/static/91afed5678621047c85b9b7af26758a0/53485/organisaatiokartoitus.jpg 625w,\n/static/91afed5678621047c85b9b7af26758a0/4973d/organisaatiokartoitus.jpg 1201w","srcWebp":"/static/91afed5678621047c85b9b7af26758a0/0c6f9/organisaatiokartoitus.webp","srcSetWebp":"/static/91afed5678621047c85b9b7af26758a0/a12ce/organisaatiokartoitus.webp 625w,\n/static/91afed5678621047c85b9b7af26758a0/0c6f9/organisaatiokartoitus.webp 1201w","sizes":"(max-width: 1201px) 100vw, 1201px"}}},"image2":null,"content":"Tickingbotin syksyllä 2025 toteuttama kartoitus 24 suomalaisen organisaation parissa paljastaa, että digitalisaation ja tekoälyn aikakaudella monet kamppailevat edelleen perusasioiden kanssa. Teknologia ei ole ongelma, ihmiset ja rakenteet ovat. \n\n### Strategia paperilla, kaaos arjessa\n\nUseimmissa organisaatioissa data on tunnistettu strategiseksi mahdollisuudeksi, mutta käytännön toteutus on hajanaista ja riippuvaista yksittäisistä henkilöistä. Excel-tiedostot elävät omaa elämäänsä asiantuntijoiden koneilla, järjestelmät eivät keskustele keskenään, ja kukaan ei oikeastaan omista dataa. \n\nIlman yhteisiä prosesseja ja vastuuhenkilöitä datan kerääminen jää helposti sivutyöksi, josta on seurauksena huono laatu ja epäluotettavuus analyysien pohjana. \n\n### Viisi pullonkaulaa\n\n* Tahtotilan puute: Organisaatiot eivät ole määritelleet selkeästi, mitä tietoa ne tarvitsevat ja miksi.\n* Epäselvät vastuut; datan omistajuus on epäselvä, mikä johtaa päällekkäisyyksiin ja epäyhtenäiseen raportointiin. \n* Laatuongelmat: määrittelyt puuttuvat ja manuaalinen työ vie aikaa. \n* Tekninen velka: Pirstaleiset järjestelmät, Excel-riippuvuus ja yhteentoimivuuden puute. \n* Kulttuurijarru: Henkilöstö kokee datan kirjaamisen lisätyönä, tietoa pidetään vallan lähteenä, ja päätökset tehdään tunteella tiedon sijaan. \n\n### Tekoäly ei pelasta, jos perusta puuttuu\n\nTekoäly nähdään erityisesti rutiinitehtävien nopeuttajana ja apuna tiedonhakuun, mutta huolta aiheuttavat tietoturva, juridiset rajoitteet ja eettiset riskit. Osa organisaatioista raportoi konkreettisia tehokkuushyötyjä chatboteista, käännöstyökaluista ja generatiivisista ratkaisuista. Toisaalla tekoälyä kokeilevat pääasiassa yksittäiset työntekijät sähköpostien generointiin, oikolukuun ja transkriptioon ilman yhteistä koordinaatiota. \n\n### Muutos alkaa johdosta\n\nMuutosjohtaminen nousee keskeiseksi menestystekijäksi. Onnistuneet organisaatiot nimeävät vastuut, investoivat koulutukseen ja juurruttavat uudet käytänteet osaksi arkea. Johtoryhmän sitoutuminen tarkoittaa datan aktiivista hyödyntämistä omassa päätöksenteossa, resurssien osoittamista kehitystyöhön ja onnistumisten näkyväksi tekemistä. \n\n### Mitä tehdä?\n\nTeknologia ei estä datan hyödyntämistä vaan organisaatioiden sisäinen toimintatapa, vastuutus ja osaaminen. Ratkaisun avaimet: \n\n* Aloita tahtotilasta: määrittele, mitä tietoa tarvitset, miksi ja mistä sen saat\n* Nimeä omistajat: tee datan hallinnasta jonkun työtä, älä kaikkien sivutyötä \n* Pilotoi rohkeasti: valitse vähäriskisiä käyttötapauksia ja mittaa tulokset \n* Kouluta käytännössä: investoi \"vierihoidon\" tukimalleihin \n* Juhli onnistumisia: tee hyödyistä näkyviä ja jaettavia \n\nDatalähtöisen toiminnan kehittäminen ei ole teknologiakysymys; se on johtamisen, kulttuurin ja osaamisen kehittämisen haaste. Organisaatiot, jotka tämän ymmärtävät, ovat jo matkalla eteenpäin.\n\n### Tilaa maksuton raportti ja varaa esittely\n\nOta yhteyttä, jos organisaatiosi haluaa: \n\n* kehittää tiedolla johtamista \n* ymmärtää oman (ja verrokkien) datakypsyyden nykytilan \n* tunnistaa konkreettiset seuraavat askeleet \n* saada sparrausta data- ja AI-kehittämiseen \n\nKäymme löydökset läpi juuri teidän tilanteenne huomioon ottaen. Järjestämme räätälöityjä tilaisuuksia johdolle ja tiimeille, ja voimme tulla esim. strategia-/kehityspäiväänne kertomaan selvityksen tuloksista. \n\n**T﻿ilaa raportti täältä:** <https://tickingbot.fi/report-request/>","content2":null,"recommendations":[{"slug":"kasvun-esteet-piilossa-datassa"},{"slug":"hallitus"},{"slug":"libwebsockets"},{"slug":"ajosimulaattori"}]}},{"fields":{"slug":"/libwebsockets/"},"frontmatter":{"language":"fi","title":"Kun bugi ei ollutkaan omassa koodissa – harvinainen havainto koodikirjastosta","date":"16 December 2025","slug":"libwebsockets","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAa24t8pQtnIjYH//xAAbEAACAwADAAAAAAAAAAAAAAACEQABEgMhMf/aAAgBAQABBQLYjVGxfZaK0hgvXF5P/8QAFREBAQAAAAAAAAAAAAAAAAAAASD/2gAIAQMBAT8BI//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABwQAAEFAAMAAAAAAAAAAAAAAAEAAhASIRFRgf/aAAgBAQAGPwIK1cjGcINHsHpGP//EABsQAAIDAQEBAAAAAAAAAAAAAAABESFBUXGR/9oACAEBAAE/IWrU8pinSLVjkxUyO8KQlL66a/SwmmDRe36JSpP/2gAMAwEAAgADAAAAEK/H/v/EABcRAAMBAAAAAAAAAAAAAAAAAAERIDH/2gAIAQMBAT8QY7H/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAdEAEBAAICAwEAAAAAAAAAAAABEQAhMWFBkaHR/9oACAEBAAE/EAo3Qlp7yVEKNU6jlgAF4yNWk8Mb7NLstdvzHb9sOjXYCblX7inU8quzDHhd5//Z","aspectRatio":0.9090909090909091,"src":"/static/499eed3cc33c3ace12620c2c771ad7c5/2244e/ethernet_switch_crop.jpg","srcSet":"/static/499eed3cc33c3ace12620c2c771ad7c5/86e11/ethernet_switch_crop.jpg 100w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/f836f/ethernet_switch_crop.jpg 200w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/2244e/ethernet_switch_crop.jpg 400w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/4fe8c/ethernet_switch_crop.jpg 600w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/14b42/ethernet_switch_crop.jpg 800w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/245ed/ethernet_switch_crop.jpg 2115w","srcWebp":"/static/499eed3cc33c3ace12620c2c771ad7c5/1f5c5/ethernet_switch_crop.webp","srcSetWebp":"/static/499eed3cc33c3ace12620c2c771ad7c5/d1f52/ethernet_switch_crop.webp 100w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/61e93/ethernet_switch_crop.webp 200w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/1f5c5/ethernet_switch_crop.webp 400w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/ad85c/ethernet_switch_crop.webp 600w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/58556/ethernet_switch_crop.webp 800w,\n/static/499eed3cc33c3ace12620c2c771ad7c5/ebb08/ethernet_switch_crop.webp 2115w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAA7DAAAOwwHHb6hkAAABZ0lEQVQoz1WQzW7bMBCE9f4vkkNvPeQVEiCXBm4sSzJli6IokRRlUb9xZHi6pJEWPXxY7pKYnWEUJwyH7ISEeH3b4YU4FRXYWYCLBr/3KXYfCY45h257DNMnxvn6HxMxr1cs6xei932BXSKwzwR+PL/h6ecrDkcZZgemEB9rxKxBetJg3KKQDrwe/lIQoulpmYPtZ0RlfQGXHUw3Iztr/PrIwSuNLC+RMo4zb+Am2n69k4sbxmULvRv/4V1P8yfdk0NlHFihoO2A1nZgLEeapsiyDHEcI02ScJayQlmWyHOGrutwv99xu23ELbBtjxo1JJhzTYIjtCHB/AwhBLTWsNbCGIOmaUJvtKFqwvxyucC5nnDo+0edZ4pca4dS2mC7Vha8rKCUCiJKabRti2VZwuNvpmnCOI4YhiHgxTzruiLyUTkJdvShihwWvIKgaN6llDLE9OJV9VjkZ7763jvzIn7hMi8Ue8MfKK0Kkx/Eh+IAAAAASUVORK5CYII=","aspectRatio":2.9342723004694835,"src":"/static/aeb832d0ac33ccbb4d166e89af9dfc4b/fb92e/libwebsockets_2.png","srcSet":"/static/aeb832d0ac33ccbb4d166e89af9dfc4b/d5653/libwebsockets_2.png 625w,\n/static/aeb832d0ac33ccbb4d166e89af9dfc4b/fb92e/libwebsockets_2.png 1184w","srcWebp":"/static/aeb832d0ac33ccbb4d166e89af9dfc4b/d8912/libwebsockets_2.webp","srcSetWebp":"/static/aeb832d0ac33ccbb4d166e89af9dfc4b/a12ce/libwebsockets_2.webp 625w,\n/static/aeb832d0ac33ccbb4d166e89af9dfc4b/d8912/libwebsockets_2.webp 1184w","sizes":"(max-width: 1184px) 100vw, 1184px"}}},"image2":null,"content":"L﻿ukuaika 5-8 minuuttia.\n\nKeväällä 2025 asiakkaan sulautettua Linuxia käyttävässä projektissa koin harvinaisen tilanteen, jossa bugit eivät olleetkaan kirjoittamassani koodissa vaan kolmannen osapuolen kirjastossa, libwebsocketsissa. Versiossa 4.3.3, joka on otettu projektin v4.3-stable -haarasta löytyi ensin yksi, mutta pian myös toinen bugi, jotka aiheuttivat päänvaivaa. Myöhemmin kyseiseen haaraan on tehty useita muutoksia. Lyhyehköissä koodinpätkissä näkyy jo aina niin ihastuttavia yhden kirjaimen muuttujia, joista osan merkitys vaihtuu kesken kaiken.  Tämä kokemus antoi arvokkaan oppitunnin siitä, että on hyvä pysyä hereillä ja tutkia haasteita avoimella mielellä.\n\n## Mikä on libwebsockets? \n\nLibwebsockets on avoimen lähdekoodin kirjasto, joka on alun alkaen nimensä mukaisesti ajateltu käytettäväksi websockettien palvelinpuolen toteuttamiseen. Kirjaston laajuuden ansioista sillä voidaan kuitenkin toteuttaa myös koko http-palvelin. Projektissa, jonka parissa tuolloin työskentelin oli tehty juuri niin. \n\nLibwebsocketsin avulla hoidettiin staattiset web-sivut ja rajapinta AJAX:lle (REST API). Tällä kertaa olimme toteuttamassa CGI-skriptejä ensimmäistä kertaa kirjaston avulla. CGI (Common Gateway Interface) -skriptejä käytetään muun muassa dynaamisten web-sivujen luomiseen. Ne toimivat hyvin yksinkertaisesti: kun selaimelta tulee pyyntö, palvelin käynnistää uuden prosessin, jossa skripti (esim. bash- tai Python-skripti) suoritetaan ja tuon prosessin tulosteet välitetään takaisin selaimelle. Skriptille voidaan kirjoittaa esimerkiksi, selaimelta POST -pyynnöstä  tulevaa dataa. \n\nLibwebsockets on ikään kuin framework. Siinä ohjelma tarjoaa libwebsocketsille tapahtumakäsittelijän ja toteuttaa callback-funktion, jossa halutut toiminnot voidaan suorittaa sekä tarvittaessa kutsua jälleen libwebsocketsin funktioita. Oman koodin callback-funktio saa myös tiedon siitä, miksi sitä on kutsuttu. Mahdollisia syitä on kymmeniä ja syyn perusteella valitaan oikea toiminta. Syyt on listattu lws_callback_reasons -enumeraatiossa. Kokonaisuutena libwebsocketsin oppimiskynnys on korkea ja sen dokumentaatio on niukka, mutta myös hyviä esimerkkejä on saatavilla. \n\n## Ensimmäinen bugi: CGI-skriptin datan käsittely\n\nSeikkailu tosiaan alkoi sillä, että CGI-skriptit, jotka saivat vain vähän dataa selaimelta toimivat, mutta ne, joille lähetettiin enemmän dataa, eivät toimineet lainkaan. Skriptin suoritus keskeytyi, ja selain sai virhekoodin. \n\nLuonnollisesti aluksi keskityin etsimään vikaa omasta koodista, sillä siellähän ne yleensä ovat. Ensin asetin tulosteen, jolla näin millä syyllä libwebsockets kutsuu callback-funktiotani. Eräs callback-funktiolle annettu kutsun syy oli LWS_CALLBACK_CGI_TERMINATED. \n\nNäytti siltä, että datan lähettäminen keskeytyy ja päättyy jonkinlaiseen virhetilanteeseen ja selaimelle vastataan virhekoodilla. Lisäkokeet osoittivat, että skripti kuoli ennenaikaisesti ennen kuin kaikki lähetetty data oli vastaanotettu.\n\n### Debuggaus ja ongelman paikantaminen\n\nSeuraavaksi asetin breakpointin käsittelemään kutsusyytä LWS_CALLBACK_CGI_STDIN_DATA (jota käytetään datan kirjoittamiseen skriptin prosessille). Tarkoitukseni oli vain jatkaa suoritusta joka pysähdyksen jälkeen, kunnes jotain menisi eri tavalla. Hämmästyksekseni skripti menikin loppuun asti saaden kaiken datan. Tämä viittasi ajoitusongelmaan.\n\nTuossa haarassa, kuten monessa muussakin haarassa, kutsutaan, hieman hölmösti nimettyä, libwebsocketsin funktiota: lws_callback_http_dummy(). Funktion pitäisi tilanteesta riippuen suorittaa varsinaisia toimenpiteitä. Testasin vielä niin, että hidastin toimintaa lisäämällä sleepin ennen funktion kutsumista. Skripti toimi edelleen.\n\nNyt alkoi vaikuttaa siltä, että vika ei ollutkaan tällä kertaa omassa koodissa. Tein debug-käännöksen libwebsocketsista ja aloin tarkastella, mitä tapahtuu ennen kuin omaa callback -funktiota kutsutaan syyllä: LWS_CALLBACK_CGI_TERMINATED. \n\nOngelma paikallistui libwebsocketsin koodiin tarkemmin lws_callback_http_dummy()-funktioon ja seuraavaan riviin:\n\n```\nn = (int)write(n, args->data, (unsigned int)args->len);\n```\n\nVirhetilanteessa POSIX write() -funktio palauttaa -1:n ja asettaa errno -muuttujan vastaamaan tapahtunutta virhettä. Debuggerilla havaitsin, että paluuarvo oli -1 ja errno oli asetettu arvoon EAGAIN. Tässä vaiheessa oli jo ilmeistä missä vika piilee. \n\nEAGAIN tarkoittaa, että asynkronisessa kommunikaatiossa vastaanottopää ei ole valmis vastaanottamaan ja tulisi yrittää myöhemmin uudelleen. Kirjaston koodi ei tarkistanut errno-muuttujaa, jättäen huomiotta tämän varsin odotettavissa olevan asynkronissessa kommunikaatiossa sattuvan tilanteen.\n\n## Pikainen korjaustoimenpide\n\nMyönnettäköön, ettei korjaukseni tähän kuitenkaan ollut kovin kaunis. Koska en halunnut käyttää enempää aikaa libwebsocketsin rakenteeseen, en tehnyt korjausta oikealla tavalla, tarkastamalla errno -muuttujaa ja järjestämällä niin, että olisi tarvittaessa voitu yrittää myöhemmin uudelleen. Sen sijaan päädyin ratkaisuun, jossa odotetaan, että prosessi on valmis vastaanottamaan dataa. Tämä osaltaan vesittää asynkronisen kommunikoinnin idean, mutta tässä tapauksessa se ei ollut kovin vakavaa, sillä aikakriittisempi toiminta on joka tapauksessa eri säikeessä. \n\nLisäsin ennen ongelmariviä seuraavan koodinpätkän, käyttäen select()-funktiota odottamaan korkeintaan 100 millisekuntia:\n\n```\nfd_set fds;\nFD_ZERO(&fds);\nFD_SET(n, &fds);\n\nstruct timeval timeout = {.tv_sec = 0, .tv_usec = 1e5};\n\nif(select(n + 1, NULL, &fds, NULL, &timeout) <= 0)\n\nreturn -1;\n```\n\nJos prosessi ei ole valmiina määräajan puitteissa, palautetaan -1, kuten siinäkin tapauksessa, jossa tapahtuisi sama virhe kuin aiemmin. Kaiketi tuota select() -funktiotakaan ei pitäisi enää käyttää, mutta käytin silti.\n\n## Pian ilmeni toinen bugi\n\nKorjauksen kanssa pystyimme elämään jonkin aikaa onnellisena, kunnes alkoi tulla segfaulteja. Kun libwebsockets oli jo valmiiksi käännetty debug-symboleilla, segfault oli helppo paikallistaa sen sisään debuggerilla. \n\nSegfault tuli tällä kerralla cgi-server.c -tiedostossa rivillä:\n\n```\nmemmove(start + m, start, (unsigned int)n);\n```\n\nmissä esiintyvä m saa arvonsa näin:\n\n```\nm = lws_snprintf(chdr, LWS_HTTP_CHUNK_HDR_SIZE - 3,\n\n                     \"%X\\x0d\\x0a\", n);\n```\n\nn saa arvonsa näin:\n\n```\nn = (int)read(n, start, sizeof(buf) - LWS_PRE);\n```\n\nja funktion alussa on asetettu näin:\n\n```\nunsigned char buf\\[LWS_PRE + 4096], *start = &buf\\[LWS_PRE]\n```\n\nSegfault johtui siitä, että memmove()-funktiolla yritettiin kopioida dataa buf-taulukon määritellyn rajan yli. On nähtävissä, että näin tapahtuu, jos\n\n```\nn > sizeof(buf) – m – (start - buf)\n```\n\nNähdään, että m ≤ LWS_HTTP_CHUNK_HDR_SIZE – 3 ja start = buf + LWS_PRE.\n\nToisin sanoen ongelmia tulee, jos\n\n```\nn > sizeof(buf) – LWS_HTTP_CHUNK_HDR_SIZE – 3 - LWS_PRE\n```\n\n**Korjaus:** \n\nNythän n voi olla sizeof(buf) - LWS_PRE, eli korjaus on muuttaa rivi\n\n```\nn = (int)read(n, start, sizeof(buf) - LWS_PRE);\n```\n\nriviksi:\n\n```\nn = (int)read(n, start, sizeof(buf) - LWS_PRE - LWS_HTTP_CHUNK_HDR_SIZE - 3);\n```\n\nRatkaisuni tuntui hieman rumalta lähinnä tuon yhden literaalivakion vuoksi. Myöhemmin tämä bugi korjattiin myös libwebsocketsin kehittäjien toimesta muuttamalla rivi seuraavaksi.\n\n```\nn = (int)read(n, start, sizeof(buf) - LWS_PRE - 16);\n```\n\nEnsimmäistä bugia ei kuitenkaan ole vielä tämän blogin kirjoitushetkellä korjattu.\n\n## Joskus on sukellettava syvälle omaan ja muiden koodiin, jotta syy löytyy\n\nTarinan opetus lienee se, että vaikka useimmiten bugin syy löytyy omasta koodista, niin näin ei aina ole. Tämä kokemus muistuttaa, että joissakin harvinaisissa tapauksissa myös kirjastokoodissa voi olla vikaa. Kehittäjän on oltava valmis sukeltamaan syvälle myös kirjastokoodiin, kun tavanomaiset debuggausmenetelmät eivät tuota tulosta.\n\nM﻿arko Saarinen","content2":null,"recommendations":[{"slug":"ajosimulaattori"},{"slug":"3-d-tulostin"},{"slug":"oma-golfsimulaattori"},{"slug":"embedded-world"}]}},{"fields":{"slug":"/kasvun-esteet-piilossa-datassa/"},"frontmatter":{"language":"fi","title":"Kasvun esteet piilossa datassa – tunnistatko nämä 5 merkkiä? ","date":"26 November 2025","slug":"kasvun-esteet-piilossa-datassa","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAUCAwT/xAAVAQEBAAAAAAAAAAAAAAAAAAABAP/aAAwDAQACEAMQAAABl9HtGY0TNYaUC//EABwQAAIBBQEAAAAAAAAAAAAAAAABIwIDBBARMf/aAAgBAQABBQIdD4L284tZKgP/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAaEAACAgMAAAAAAAAAAAAAAAAAARARAiEx/9oACAEBAAY/Ai4Qt9ixZR//xAAcEAEAAwACAwAAAAAAAAAAAAABABEhEDFRgZH/2gAIAQEAAT8hcgMGvMqU90HsKs3gUS2mzHgXT94//9oADAMBAAIAAwAAABCHDzz/xAAVEQEBAAAAAAAAAAAAAAAAAAABIP/aAAgBAwEBPxABFj//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8QV2ZP/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFRYeH/2gAIAQEAAT8QYTFVoCcsptMGOowiLQcdjzbhG8L+R7O9zT1BbJCAqqQbB8z/2Q==","aspectRatio":0.9259259259259259,"src":"/static/095ffc53bcce5b8ac0ca9606d2a39692/2244e/jari_jokinen_iso_cropped.jpg","srcSet":"/static/095ffc53bcce5b8ac0ca9606d2a39692/86e11/jari_jokinen_iso_cropped.jpg 100w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/f836f/jari_jokinen_iso_cropped.jpg 200w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/2244e/jari_jokinen_iso_cropped.jpg 400w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/4fe8c/jari_jokinen_iso_cropped.jpg 600w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/14b42/jari_jokinen_iso_cropped.jpg 800w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/83c2b/jari_jokinen_iso_cropped.jpg 3221w","srcWebp":"/static/095ffc53bcce5b8ac0ca9606d2a39692/1f5c5/jari_jokinen_iso_cropped.webp","srcSetWebp":"/static/095ffc53bcce5b8ac0ca9606d2a39692/d1f52/jari_jokinen_iso_cropped.webp 100w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/61e93/jari_jokinen_iso_cropped.webp 200w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/1f5c5/jari_jokinen_iso_cropped.webp 400w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/ad85c/jari_jokinen_iso_cropped.webp 600w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/58556/jari_jokinen_iso_cropped.webp 800w,\n/static/095ffc53bcce5b8ac0ca9606d2a39692/9899e/jari_jokinen_iso_cropped.webp 3221w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQCA//EABUBAQEAAAAAAAAAAAAAAAAAAAAD/9oADAMBAAIQAxAAAAHCnpWcCwf/xAAYEAADAQEAAAAAAAAAAAAAAAAAAQISE//aAAgBAQABBQJZEPmnMoyjMn//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAZEAADAAMAAAAAAAAAAAAAAAAAATERITL/2gAIAQEABj8C1kfRGQhEf//EABsQAQADAQADAAAAAAAAAAAAAAEAESExQXGB/9oACAEBAAE/IbjVfUAOkncg0He9hzIp8NizrfJ//9oADAMBAAIAAwAAABBED//EABYRAQEBAAAAAAAAAAAAAAAAAAARAf/aAAgBAwEBPxCrj//EABYRAQEBAAAAAAAAAAAAAAAAAAARAf/aAAgBAgEBPxCJr//EABwQAQACAwADAAAAAAAAAAAAAAEAESExQVGh8P/aAAgBAQABPxCqUCwTf6odXQpUy5znpGQl0EbgAq+4oUB2a3L055Qz/9k=","aspectRatio":1.7806267806267806,"src":"/static/b30462f2fe9c64669679337c81d21bd1/87c61/img-20250111-wa0000.jpg","srcSet":"/static/b30462f2fe9c64669679337c81d21bd1/53485/img-20250111-wa0000.jpg 625w,\n/static/b30462f2fe9c64669679337c81d21bd1/f7dca/img-20250111-wa0000.jpg 1250w,\n/static/b30462f2fe9c64669679337c81d21bd1/87c61/img-20250111-wa0000.jpg 1599w","srcWebp":"/static/b30462f2fe9c64669679337c81d21bd1/3657e/img-20250111-wa0000.webp","srcSetWebp":"/static/b30462f2fe9c64669679337c81d21bd1/a12ce/img-20250111-wa0000.webp 625w,\n/static/b30462f2fe9c64669679337c81d21bd1/4d702/img-20250111-wa0000.webp 1250w,\n/static/b30462f2fe9c64669679337c81d21bd1/3657e/img-20250111-wa0000.webp 1599w","sizes":"(max-width: 1599px) 100vw, 1599px"}}},"image2":null,"content":"Moni yritys investoi kasvuun uusien tuotteiden, markkinoinnin ja myynnin kehittämisen kautta. Silti todelliset kasvun jarrut voivat piileskellä yllättävän lähellä: huonosti hallitussa datassa. Kun tieto on hajallaan, virheellistä tai epäselvää, päätöksenteko hidastuu ja asiakkaiden luottamus horjuu. \n\nTunnistatko yrityksesi tilanteesta seuraavat merkit? \n\n### 1. Tiedot eri paikoissa eivät täsmää\n\nPäätöksentekoon käytetään ristiriitaisia lukuja, mikä aiheuttaa epävarmuutta. Jokaisella on ”se oma luottoraportti”, mutta kukaan ei tiedä tarkalleen, miten tiedot sinne päätyvät. Kun raportit poikkeavat toisistaan, syntyy arvailua: mikä on totuus? Esimerkiksi, paljonko myynti Sveitsiin viime vuonna todella oli, ja kuinka kannattava uusi tuoteperhe oikeasti on? \n\n### 2. Raportteja tehdään käsin ja hallitsemattomasti\n\nKun data ei virtaa sujuvasti järjestelmistä, raportointiin kuluu liikaa aikaa. Raportoinnin helppous voi kääntyä itseään vastaan: uusia raportteja syntyy loputtomasti, mutta kukaan ei tiedä, mitä pitäisi käyttää ja milloin. Vanhoja, epävarmoja raportteja jää elämään, koska kukaan ei uskalla koskea niihin. \n\n### 3. Datan omistajuus on epäselvää\n\nKuka vastaa tiedon oikeellisuudesta ja ajantasaisuudesta? Usein keskeiset asiat on nimetty vastuuhenkilöille, mutta pienemmät – usein liiketoiminnan kannalta tärkeät – tiedot jäävät ”pöytien väliin”. Esimerkiksi tuoteperheiden vastuuhenkilöt ovat selvillä, mutta yhteisesti käytetty referenssidata, kuten GTIN-koodit, saattaa jäädä ilman selkeää omistajaa. \n\n### 4. Asiakastiedot ovat puutteellisia\n\nMyynti, markkinointi ja asiakaspalvelu joutuvat arvailemaan tai paikkaamaan tietoja lennossa. Osoitteet, yhteystiedot ja tunnistetiedot saattavat olla eri muodoissa, jolloin asiakkuudet monistuvat. Seurauksena on viivästyneitä tilauksia ja väärin ohjautuvia toimituksia. \n\n### 5. Datan laatu nousee esiin vasta kriisin hetkellä\n\nMonessa yrityksessä ongelmat huomataan vasta, kun ne aiheuttavat myöhästymisiä, virheitä tai lisäkuluja. Rahavuodot herättävät, mutta liian myöhään. Datan kuntoon laittaminen kriisin jälkeen on aina kalliimpaa kuin ennakoiva korjaaminen. \n\n### Miten nämä esteet poistetaan? \n\nHyvä uutinen on, että datan hallinnan parantaminen ei aina vaadi suuria ja kalliita projekteja. Jo kohdennettu arviointi ja oikeiden periaatteiden käyttöönotto voivat vapauttaa kasvun edellytykset ja palauttaa luottamuksen päätöksentekoon. \n\n### Onko yrityksenne data kasvun mahdollistaja vai jarru? \nJos tunnistit yrityksestäsi näitä merkkejä, ota yhteyttä minuun jari.jokinen@tickingbot.fi, +358 400 488 989 – autamme kartoittamaan datan esteet kasvun tieltä.\n\nJ﻿ari Jokinen","content2":null,"recommendations":[{"slug":"hallitus"},{"slug":"ajosimulaattori"},{"slug":"libwebsockets"},{"slug":"tiedolla-johtaminen"}]}},{"fields":{"slug":"/hallitus/"},"frontmatter":{"language":"fi","title":"Kun hallitus toimii hyvin, koko yritys menestyy","date":"30 October 2025","slug":"hallitus","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAUDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABrZc+Q03GSPsaJgL/xAAcEAACAgIDAAAAAAAAAAAAAAABAwIEABESEyH/2gAIAQEAAQUCPgjPZx9jqMplWC0sixLk+4zbd5//xAAVEQEBAAAAAAAAAAAAAAAAAAAgIf/aAAgBAwEBPwGD/8QAFhEAAwAAAAAAAAAAAAAAAAAAAREg/9oACAECAQE/AUY//8QAHBAAAQUAAwAAAAAAAAAAAAAAAAECEBESITFB/9oACAEBAAY/Aiu4zVqbU5tBxnxsf//EABwQAAIBBQEAAAAAAAAAAAAAAAERACExQVFxEP/aAAgBAQABPyE2kS8uvBoOB3tKEcG40MaUajggRBgSuf/aAAwDAQACAAMAAAAQ+wi//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxAcOx7P/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQAQETH/2gAIAQIBAT8QUTJjDlf/xAAdEAEAAwEAAgMAAAAAAAAAAAABABEhMUFRYYHB/9oACAEBAAE/EHp1he8lPVa8FRNgXbZaAcmITg6t3t+sIURHdK+4gDDT4AiIDUw8rr+EUrLCf//Z","aspectRatio":0.8928571428571429,"src":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/2244e/jari-noppa.jpg","srcSet":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/86e11/jari-noppa.jpg 100w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/f836f/jari-noppa.jpg 200w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/2244e/jari-noppa.jpg 400w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/4fe8c/jari-noppa.jpg 600w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/14b42/jari-noppa.jpg 800w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/ffaa5/jari-noppa.jpg 3309w","srcWebp":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/1f5c5/jari-noppa.webp","srcSetWebp":"/static/14b4a08c2f18a1b60d3a7416f9b59e9e/d1f52/jari-noppa.webp 100w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/61e93/jari-noppa.webp 200w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/1f5c5/jari-noppa.webp 400w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/ad85c/jari-noppa.webp 600w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/58556/jari-noppa.webp 800w,\n/static/14b4a08c2f18a1b60d3a7416f9b59e9e/5dbdd/jari-noppa.webp 3309w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAbNSNHCA/8QAGhAAAgIDAAAAAAAAAAAAAAAAABMBAxEhIv/aAAgBAQABBQJo3I0mvuK9Kk//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAwEBPwGI/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqv/EABkQAAIDAQAAAAAAAAAAAAAAAAAxEBGBof/aAAgBAQAGPwK+QjBjP//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExEEGx8f/aAAgBAQABPyHBbaPqFQhcWdoq87rcUr44P//aAAwDAQACAAMAAAAQcA//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/EA//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8QttP/xAAbEAEAAwEAAwAAAAAAAAAAAAABABEhQTHR8f/aAAgBAQABPxAKhOihhKVPfsUpk7C3sDN9S5Cug+QRsxVP/9k=","aspectRatio":1.2966804979253113,"src":"/static/347f7379dd60111dcaf3b685dbfa7d31/6b3e7/20230612_122053_cropped.jpg","srcSet":"/static/347f7379dd60111dcaf3b685dbfa7d31/53485/20230612_122053_cropped.jpg 625w,\n/static/347f7379dd60111dcaf3b685dbfa7d31/f7dca/20230612_122053_cropped.jpg 1250w,\n/static/347f7379dd60111dcaf3b685dbfa7d31/6b3e7/20230612_122053_cropped.jpg 2109w","srcWebp":"/static/347f7379dd60111dcaf3b685dbfa7d31/7b661/20230612_122053_cropped.webp","srcSetWebp":"/static/347f7379dd60111dcaf3b685dbfa7d31/a12ce/20230612_122053_cropped.webp 625w,\n/static/347f7379dd60111dcaf3b685dbfa7d31/4d702/20230612_122053_cropped.webp 1250w,\n/static/347f7379dd60111dcaf3b685dbfa7d31/7b661/20230612_122053_cropped.webp 2109w","sizes":"(max-width: 2109px) 100vw, 2109px"}}},"image2":null,"content":"Hallituksen rooli toimia omistajien tahtotilan toteuttajana ja toisaalta yrityksen johdon tukena edellyttää, että hallituksessa on oikeanlaista osaamista yrityksen tilanne, omistajien tahtotila, omistajastrategia ja liiketoimintastrategia huomioon ottaen. Tästä mekin Tickingbotilla olemme lähteneet liikkeelle. Uskomme, että hyvä hallitustyöskentely mahdollistaa omistajien tahtotilan toteuttamisen. \n\n### Hallitus haluaa varmistaa, että yrityksen johto istuu kuskin paikalla ja vie toimintaamme suunnitelmallisesti eteenpäin\n\nHallituksen tärkeä tehtävä on tukea yrityksen johtoa strategian luonnissa ja toteutuksessa sekä varmistaa, että toimet ovat linjassa omistajastrategian kanssa. Reilu vuosi sitten minulle uskottiin Tickingbotin hallituksen puheenjohtajan tehtävä. Aloitimme kehittämällä hallitustyöskentelyn rutiineja ja selkeyttämällä toimintatapoja. Tarkensimme omistaja- ja liiketoimintastrategiaa varmistaaksemme, että meillä kaikilla, niin omistajilla, hallituksessa kuin yrityksen johdossakin, olisi yhteinen käsitys, minne olemme menossa ja millä keinoin. Yksi strategiassa ja kulttuurissa näkyvä toimintamme lähtökohta on hyvä työntekijäkokemus, joka auttaa varmistamaan hyvän asiakaskokemuksen. Hyvät ja pitkät asiakassuhteet luovat pohjan kannattavalle liiketoiminnalle ja strategiamme mukaisen kannattavan kasvun toteuttamiselle.\n\nTiedämme, millaista osaamista tarvitsemme niin hallituksessa kuin yrityksen operatiivisessa toiminnassakin. Haluamme myös varmistaa, että hallitus tuottaa lisäarvoa enemmän kokonaisuutena kuin kukin voisi tuoda yksittäin osaamisellaan.  \n\nKun perusasiat hallituksessa toimii, raportit syntyvät pienellä työllä, eikä tilannekatsauksissa mene liikaa aikaa. Näin ehdimme katsoa enemmän tulevaisuuteen ja tarttua mahdollisuuksiin. Näin istumme tukevasti kuskin paikalla yritystä johdettaessa. Suunnittelemme, seuraamme ja kehitämme toimintaa systemaattisesti kohti tavoitteita. Työn tulokset näkyvät jo konkreettisina muutoksina. Puheenjohtajana oloni aikana olemme tehneet jo kaksi isoa, tulevaisuutta rakentavaa siirtoa: nimittäneet uuden toimitusjohtajan, Matleena Piesalan (joulukuussa 2024), sekä vahvistaneet datapalveluiden liiketoimintaamme palkkaamalla uuden henkilön kehittämään ja johtamaan datapalvelut liiketoimintaa.\n\nDatapalvelut täydentävät palveluvalikoimaamme, jossa tunnetuimmat palveluimme ovat olleet sulautetut järjestelmät ja testaus. Strategiassamme haluamme varmistaa, että päätöksentekoa ohjaa asiakkaan tarpeiden ymmärtäminen. Digitalisaation jatkuva kehittyminen, tekoälyn tuleminen osaksi liiketoimintoja ja oikean tiedon saatavuus liiketoimintapäätösten tueksi, ovat luoneet tilanteen, jossa moni etsii apua tiedolla johtamisen haasteisiin. Reagoimme tähän tunnistettuun tarpeeseen ja lähdimme kehittämään palveluitamme vastaamaan kasvavaan asiakastarpeeseen. Rekrytoimme Tickingbotin datapalveluiden johtajaksi Jari Jokisen, kokeneen liiketoiminnan vetäjän, joka on ottanut vastuun tämän kasvavan alueen kehittämisestä. Datapalvelut yhdessä sulautettujen järjestelmien liiketoiminnan kanssa tarjoavat asiakkaillemme uudenlaisen kilpailuetua kehittävän palvelukokonaisuuden. \n\n### Tulevaisuutta rakentava hallitus\n\nHyvällä hallitustyöllä olemme saaneet liiketoimintaa edistäviä asioita liikkeelle. Kun nykytilasta on koko ajan hyvä kuva, on mahdollista keskittyä enemmän tulevaisuuteen. Hallituksena tarkoituksemme on tuoda näkemystä nimenomaan alan tulevaisuudesta ja auttaa johtoa navigoimaan oikeita reittejä strategisiin tavoitteisiin. Haluamme ymmärtää eri skenaarioiden vaikutukset toimintaamme. Tämä on taito, jota haluamme vaalia ja kehittää Tickingbotissa. Pyrimme tekemään oikeita päätöksiä vaikuttaaksemme mahdollisimman ennakoivasti. Uskomme, että tulevaisuuteen tähtäävät toimintatapamme vahvistavat asemaamme kilpailussa ja mahdollistavat innovatiiviset ratkaisut alan muuttuviin tarpeisiin.\n\nPerusasiat ovat kunnossa, suunta selkeä ja olemme selvästi ”kuskin paikalla” liiketoimintaa johdettaessa. Tästä on hyvä jatkaa!\n\nJari Noppa\\\nhallituksen puheenjohtaja","content2":null,"recommendations":[{"slug":"oma-golfsimulaattori"},{"slug":"3-d-tulostin"},{"slug":"kasvun-esteet-piilossa-datassa"},{"slug":"tiedolla-johtaminen"}]}},{"fields":{"slug":"/ajosimulaattori/"},"frontmatter":{"language":"fi","title":"Vauhdin hurmaa itse rakennetulla ajosimulaattorilla","date":"30 September 2025","slug":"ajosimulaattori","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAASABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMFAQT/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/2gAMAwEAAhADEAAAAZ1zOm9qYawE0xNf/8QAGhABAQADAQEAAAAAAAAAAAAAAgEAAxIRMf/aAAgBAQABBQLvuoa/BTZArhHdGtPNpmQnPmf/xAAVEQEBAAAAAAAAAAAAAAAAAAAQAf/aAAgBAwEBPwEp/8QAFREBAQAAAAAAAAAAAAAAAAAAEAH/2gAIAQIBAT8BIf/EACAQAAEDAwUBAAAAAAAAAAAAAAEAITESQVECAxARIjL/2gAIAQEABj8CkjbGLoU6qTZ16ABEovFuCfp5ygwUBDrC/8QAHhABAAICAQUAAAAAAAAAAAAAAQARITFBUWGRocH/2gAIAQEAAT8ho2aVwZy600v6iCwqHeUDyo1LQDSjqZXMpJtlnrUsfKIEYHAn/9oADAMBAAIAAwAAABBbKED/xAAZEQABBQAAAAAAAAAAAAAAAAAAARARMVH/2gAIAQMBAT8QJXCzf//EABkRAAEFAAAAAAAAAAAAAAAAAAAQESExUf/aAAgBAgEBPxByNKJ//8QAHBABAQACAgMAAAAAAAAAAAAAAREAITFBUXGh/9oACAEBAAE/EIRhUdHe+gy2qhtt2xVpzhczZIR3lTG84OfBg9MKRHjQLWkL8yugNoLiiM/XCPDECBn/2Q==","aspectRatio":1.1235955056179776,"src":"/static/958c1f2a4dd8c66a2242931601cd60c7/2244e/ratti.jpg","srcSet":"/static/958c1f2a4dd8c66a2242931601cd60c7/86e11/ratti.jpg 100w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/f836f/ratti.jpg 200w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/2244e/ratti.jpg 400w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/4fe8c/ratti.jpg 600w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/14b42/ratti.jpg 800w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/7ca2d/ratti.jpg 2647w","srcWebp":"/static/958c1f2a4dd8c66a2242931601cd60c7/1f5c5/ratti.webp","srcSetWebp":"/static/958c1f2a4dd8c66a2242931601cd60c7/d1f52/ratti.webp 100w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/61e93/ratti.webp 200w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/1f5c5/ratti.webp 400w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/ad85c/ratti.webp 600w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/58556/ratti.webp 800w,\n/static/958c1f2a4dd8c66a2242931601cd60c7/552e8/ratti.webp 2647w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHJUlEPGB//xAAaEAADAQADAAAAAAAAAAAAAAABAgMRAAQU/9oACAEBAAEFAjV1f0HAp7JXW416ZCqpL//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABoQAQACAwEAAAAAAAAAAAAAAAEAAhFBUQP/2gAIAQEABj8CWkrxrH0jt5iNdQMk/8QAHRAAAgIBBQAAAAAAAAAAAAAAAREAITEQQWGR8P/aAAgBAQABPyEjCHcwasGYZBoQQbmgHinEpXkaP7//2gAMAwEAAgADAAAAECTf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAEDAQE/EEyxv//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxARbb//xAAdEAEBAAICAwEAAAAAAAAAAAABEQAhMWFBUXGh/9oACAEBAAE/ELwXU0P3IMQBmDa2d6+ZAC015AN5BUArVSc1gD3iaecgJedw7xRghUTdXef/2Q==","aspectRatio":1.2807377049180328,"src":"/static/72e6158dcffb868511fa32ba7b0143af/ea7dd/simulaattori.jpg","srcSet":"/static/72e6158dcffb868511fa32ba7b0143af/53485/simulaattori.jpg 625w,\n/static/72e6158dcffb868511fa32ba7b0143af/f7dca/simulaattori.jpg 1250w,\n/static/72e6158dcffb868511fa32ba7b0143af/ea7dd/simulaattori.jpg 2500w,\n/static/72e6158dcffb868511fa32ba7b0143af/c7a0e/simulaattori.jpg 3750w,\n/static/72e6158dcffb868511fa32ba7b0143af/b3098/simulaattori.jpg 3793w","srcWebp":"/static/72e6158dcffb868511fa32ba7b0143af/dc072/simulaattori.webp","srcSetWebp":"/static/72e6158dcffb868511fa32ba7b0143af/a12ce/simulaattori.webp 625w,\n/static/72e6158dcffb868511fa32ba7b0143af/4d702/simulaattori.webp 1250w,\n/static/72e6158dcffb868511fa32ba7b0143af/dc072/simulaattori.webp 2500w,\n/static/72e6158dcffb868511fa32ba7b0143af/8deb6/simulaattori.webp 3750w,\n/static/72e6158dcffb868511fa32ba7b0143af/1a4e5/simulaattori.webp 3793w","sizes":"(max-width: 2500px) 100vw, 2500px"}}},"image2":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAD/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwAB/9oADAMBAAIQAxAAAAEKVZGiIll//8QAGhAAAgMBAQAAAAAAAAAAAAAAAAMBAhIEEf/aAAgBAQABBQKedxVPhEF16MsqQ0//xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIS/9oACAEDAQE/Ac4FuS//xAAWEQEBAQAAAAAAAAAAAAAAAAAAEgH/2gAIAQIBAT8BpWv/xAAeEAACAQMFAAAAAAAAAAAAAAAAARECEiEiMTJxgv/aAAgBAQAGPwLiLc1LJcqZ9EtQuzJ//8QAGxABAAICAwAAAAAAAAAAAAAAAQARITFBUbH/2gAIAQEAAT8h7BJdCW8lhggjl3doihDwVLVs5n//2gAMAwEAAgADAAAAEKTP/8QAFhEBAQEAAAAAAAAAAAAAAAAAEQEA/9oACAEDAQE/EASaxpv/xAAVEQEBAAAAAAAAAAAAAAAAAAAREP/aAAgBAgEBPxBkf//EABwQAQADAQADAQAAAAAAAAAAAAEAESExQVFxof/aAAgBAQABPxBCi53Tf2EMiaFKu7UoVHsZZ4iI1ldX8CDCxhlJaU2A5yf/2Q==","aspectRatio":1.3333333333333333,"src":"/static/1525f1918f346e2f60e92a437e2dbdeb/47498/20250909_120948_labeled_v2.jpg","srcSet":"/static/1525f1918f346e2f60e92a437e2dbdeb/9dc27/20250909_120948_labeled_v2.jpg 300w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/4fe8c/20250909_120948_labeled_v2.jpg 600w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/47498/20250909_120948_labeled_v2.jpg 1200w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/52258/20250909_120948_labeled_v2.jpg 1800w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/50587/20250909_120948_labeled_v2.jpg 2400w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/d2452/20250909_120948_labeled_v2.jpg 4000w","srcWebp":"/static/1525f1918f346e2f60e92a437e2dbdeb/99238/20250909_120948_labeled_v2.webp","srcSetWebp":"/static/1525f1918f346e2f60e92a437e2dbdeb/403a4/20250909_120948_labeled_v2.webp 300w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/ad85c/20250909_120948_labeled_v2.webp 600w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/99238/20250909_120948_labeled_v2.webp 1200w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/685a2/20250909_120948_labeled_v2.webp 1800w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/f1e40/20250909_120948_labeled_v2.webp 2400w,\n/static/1525f1918f346e2f60e92a437e2dbdeb/3a911/20250909_120948_labeled_v2.webp 4000w","sizes":"(max-width: 1200px) 100vw, 1200px"}}},"content":"Tickingbotin ohjelmistokehittäjä Juho Kokkosen kotona on parhaillaan käynnissä mielenkiintoinen harrasteprojekti, nimittäin oman ajosimulaattorin rakentaminen. Kysyimme Juholta, mitä ajosimulaattorin rakentaminen vaatii ja mistä ajatus lähti liikenteeseen.\n\n## Teknisen osaamisen taustalla monipuolinen ura\n\nOhjelmointi on ollut osa Juhon elämää jo 12-vuotiaasta lähtien, jolloin hän aloitti ohjelmoinnin harrastamisen. Silti hänen polkunsa ohjelmistokehittäjäksi ei ollut se perinteinen. Tie vei lopulta tietotekniikan opintoihin yliopistoon saakka, mutta opintojen aikaan Juho päätti kokeilla jotain aivan muuta. Uusi suunta löytyi kellosepän opinnoista ja pian hän työskenteli jo luksuskellojen parissa Saksassa. Sittemmin työura vei Iso-Britanniaan luottotarkistusjärjestelmien kehittämisen pariin, ja lopulta takaisin Suomeen teknisen konsultoinnin äärelle. Tickingbotilla Juho on työskennellyt jo lähes kuuden vuoden ajan erilaisissa sulautettujen laitteiden ohjelmistokehitysprojekteissa.\n\nMielenkiintoisen uran myötä Juho tuokin projekteihin aivan erityistä laaja-alaisuutta. Aito mielenkiinto ratkaisuja kohtaan näkyy Juhon kohdalla niin työ- kuin harrasteprojekteissa. \n\n## Oman ajosimulaattorin rakentaminen\n\nKipinä ajosimulaattorilla pelaamiseen syntyi Juhon lasten innostuttua autoista. Juho osti kokeiluun pelin, ratin ja polkimet, mutta nopeasti hän halusi peliltä enemmän. Hän vertaili muiden harrastajien sekä kaupallisia että itse rakennettuja simulaattoreita. Oman ajosimulaattorin kehittäminen kiehtoi Juhoa ja hän päätti tarttua haasteeseen.  \n\nKomponentteja Juho hankki käytettynä Tori.fi:stä, ja niiden ohjaamiseen hän yhdisti avoimen lähdekoodin ratkaisuja, kuten OpenFFBoard ja ODrive. Ajosimulaattorin sydämenä toimii teollinen servomoottori, jolla ratin liike ja ajotuntuma syntyvät. Jarrupolkimeen on lisätty voima-anturi, jolloin poljin toimii painamiskovuuteen perustuen. Kehitystyöllä Juho tavoittelee ajosimulaattorin pelaajalle aitoa ajotuntumaa. ","content2":"## Ongelmanratkaisua ja uusia teknologioita\n\n\r\nProjektin alkuun pääsyä haastoi moottorin enkooderin suljettu EnDat-protokolla. Avoimen lähdekoodin projektit eivät sitä suoraan tukeneet ja protokollan yksityiskohdista vapaasti saatavilla olevaa tietoa oli niukasti. Sinnikäs selvitystyö tuotti kuitenkin tulosta niin, että Juho sai moottorin toimimaan yhdessä ODrive-moottoriohjaimen kanssa. Käytännössä tämä vaati sekä rauta- että softa-tason muutoksia. Moottoriohjaimen ja enkooderin väliin tuli itse piirretty adapteri-pcb mahdollistamaan protokollan vaatiman RS-485 kommunikaation. Ohjaimen firmware puolestaan sai tarvittavan tuen EnDat-protokollalle. Erityisen mielenkiintoiseksi hän kokee juuri elektroniikan yhdistämisen. \n\n\r\n\r\n“Projektissa oli myös sellaisia osa-alueita, joita työssä ei ole vielä tullut vastaan. Esimerkiksi eri protokollien selvittäminen ja elektroniikan puoli toivat paljon uutta osaamista”, Juho kertoo. \n\n\r\n\r\nRakennusprosessi on sisältänyt runsaasti tutkimusta, suunnittelua ja elektroniikan parissa pähkäilyä. Työkalupakkiin kertyy harrastuksen myötä jatkuvasti uusia teknologioita. \r\n\n## Kehitystyö jatkuu\n\n\r\nJuhon ajosimulaattoriprojekti jatkuu yhä uusien kehitysideoiden syntyessä. Suunnitelmistaan Juho mainitsee käsijarrun ja vaihdekepin lisäämisen sekä pelin tilanteisiin reagoivan turvavöiden kiristystoiminnon kehittämisen. Vauhdin hurmaan lisäefektiä hän haaveilee lisäävänsä tuulisimulaattorilla, joka puhaltaisi ilmavirtaa pelaajan kasvoille pelin käänteiden mukaisesti. Loppusilauksen ajosimulaattori saa VR-laseilla. Kehitettävää löytyy Juhon mukaan jatkuvasti, mutta se onkin harrastuksen suola. \n\n\r\n\r\nJuho haluaa samalla rohkaista muitakin tarttumaan vastaavanlaisiin projekteihin: “Ei muuta kuin rohkeasti mukaan. Netistä löytyy valtavasti tietoa ja yhteisöjä, joissa harrastajat auttavat toisiaan. Ei haittaa, vaikka ei olisi valmiiksi softakehittäjä. Ratkaisut voi sovittaa omaan osaamiseen. Pääasia on kiinnostus ja halua oppia.”\n\n\r\n\r\nTickingbotilla olemme ylpeitä asiantuntijoidemme halusta viedä osaamistaan eteenpäin myös vapaa-ajalla. Juhon ajosimulaattoriprojekti on hieno esimerkki siitä, kuinka uteliaisuus, rohkeus kokeilla uutta ja aito tekemisen ilo saavat aikaan jotain konkreettista.\r\n","recommendations":[{"slug":"oma-golfsimulaattori"},{"slug":"3-d-tulostin"},{"slug":"libwebsockets"},{"slug":"embedded-world"}]}},{"fields":{"slug":"/3-d-tulostin/"},"frontmatter":{"language":"fi","title":"3D-tulostin tuo luovuutta ongelmanratkaisuun","date":"16 June 2025","slug":"3-d-tulostin","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAdABQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAMEBgEF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAABXxSEaAiLmKTTednbysa//8QAGxABAAMBAAMAAAAAAAAAAAAAAgABAxIEETL/2gAIAQEAAQUCu1drsjv1NlY0WqR60U2z5h+sObCNKaeMagzJP//EABcRAAMBAAAAAAAAAAAAAAAAAAABEBH/2gAIAQMBAT8BZl//xAAYEQACAwAAAAAAAAAAAAAAAAAAAQIQEf/aAAgBAgEBPwGJqE6//8QAHhAAAQMEAwAAAAAAAAAAAAAAAAECERIhMVEQMmH/2gAIAQEABj8C7LI19WTAojdEspj0SV4vsuVNsQiH/8QAGxABAAMBAQEBAAAAAAAAAAAAAQARITFhcUH/2gAIAQEAAT8heLBfhb8rZbDogFm6RBOLlS4p8EyPyix9ha9+oJRE9hdjR5K8J//aAAwDAQACAAMAAAAQfDUB/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAQ/9oACAEDAQE/EIKTP//EABcRAQEBAQAAAAAAAAAAAAAAAAEAEVH/2gAIAQIBAT8QBk6XS0b/xAAcEAEAAwADAQEAAAAAAAAAAAABABEhMUFhUZH/2gAIAQEAAT8QrwFnQfkZhxOhlkPNzGBcqrTRH5LF14zRPZVBTTct151FQFizaC/rrLGdvvHoNDgdE8PULmYoW9IDruW9tn//2Q==","aspectRatio":0.684931506849315,"src":"/static/54309348d9eb9aff830910b6313e5bae/2244e/prusa_rajattu.jpg","srcSet":"/static/54309348d9eb9aff830910b6313e5bae/86e11/prusa_rajattu.jpg 100w,\n/static/54309348d9eb9aff830910b6313e5bae/f836f/prusa_rajattu.jpg 200w,\n/static/54309348d9eb9aff830910b6313e5bae/2244e/prusa_rajattu.jpg 400w,\n/static/54309348d9eb9aff830910b6313e5bae/4fe8c/prusa_rajattu.jpg 600w,\n/static/54309348d9eb9aff830910b6313e5bae/14b42/prusa_rajattu.jpg 800w,\n/static/54309348d9eb9aff830910b6313e5bae/447fe/prusa_rajattu.jpg 2652w","srcWebp":"/static/54309348d9eb9aff830910b6313e5bae/1f5c5/prusa_rajattu.webp","srcSetWebp":"/static/54309348d9eb9aff830910b6313e5bae/d1f52/prusa_rajattu.webp 100w,\n/static/54309348d9eb9aff830910b6313e5bae/61e93/prusa_rajattu.webp 200w,\n/static/54309348d9eb9aff830910b6313e5bae/1f5c5/prusa_rajattu.webp 400w,\n/static/54309348d9eb9aff830910b6313e5bae/ad85c/prusa_rajattu.webp 600w,\n/static/54309348d9eb9aff830910b6313e5bae/58556/prusa_rajattu.webp 800w,\n/static/54309348d9eb9aff830910b6313e5bae/ca8cc/prusa_rajattu.webp 2652w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBAH/xAAXAQEAAwAAAAAAAAAAAAAAAAACAAED/9oADAMBAAIQAxAAAAG1m1B9WMlTMVwBn//EABwQAQABBAMAAAAAAAAAAAAAAAISAAEDEQQQE//aAAgBAQABBQJZCLy31yNFJeYrIZ2OWJupL//EABgRAQADAQAAAAAAAAAAAAAAAAEAAhBh/9oACAEDAQE/ATuVqMZ//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8BKf/EAB8QAAIABQUAAAAAAAAAAAAAAAABAhAREiEDMTJRgf/aAAgBAQAGPwLIqeyV2xpOFYlQhVvEb7P/xAAbEAADAQADAQAAAAAAAAAAAAAAAREhMUFhcf/aAAgBAQABPyFAVjv1DRnKNs+iKr1k58MrUmiGt34Lsn9ERUrg/9oADAMBAAIAAwAAABDDN8P/xAAYEQEAAwEAAAAAAAAAAAAAAAABABARMf/aAAgBAwEBPxBdabGkAOT/xAAYEQEBAAMAAAAAAAAAAAAAAAABABARQf/aAAgBAgEBPxBOGFFu/8QAHBABAQEBAQEAAwAAAAAAAAAAAREhADFhQVFx/9oACAEBAAE/EK1FpngzOBuSqFq5k+XkUzlNKQcbDmiZpNEeYHXZczkHmER9PnSjDFSp/L4/eTP4BJrp+vvPCNKbMO//2Q==","aspectRatio":0.9218289085545722,"src":"/static/526470511c25a2536acc7e869a57d3c2/10d63/tulosteet_pieni_rajattu.jpg","srcSet":"/static/526470511c25a2536acc7e869a57d3c2/53485/tulosteet_pieni_rajattu.jpg 625w,\n/static/526470511c25a2536acc7e869a57d3c2/10d63/tulosteet_pieni_rajattu.jpg 1080w","srcWebp":"/static/526470511c25a2536acc7e869a57d3c2/54d25/tulosteet_pieni_rajattu.webp","srcSetWebp":"/static/526470511c25a2536acc7e869a57d3c2/a12ce/tulosteet_pieni_rajattu.webp 625w,\n/static/526470511c25a2536acc7e869a57d3c2/54d25/tulosteet_pieni_rajattu.webp 1080w","sizes":"(max-width: 1080px) 100vw, 1080px"}}},"image2":null,"content":"“Tähän tarvittaisiin sellainen…” alkaa kehittäjälle tuttu lausahdus. Meillä Tickingbotilla siihen vastataan nykyään myös fyysisillä ratkaisuilla, sillä 3D-tulostin on saapunut taloon. Alun perin asiakasprojektin tarpeisiin hankittu tulostin on laajentunut koko henkilöstön käyttöön ja kasvanut todelliseksi ideoiden mahdollistajaksi. Tuukka avasi meille ajatusta 3D-tulostimen hankinnan taustalla ja kertoi uuden teknologian vastaanotosta Tickingbotilla.\n\n### Kuinka tulostinta käytetään Tickingbotilla?\n\n\n3D-tulostin mahdollistaa tarkkojen ja räätälöityjen osien valmistamisen, mikä nopeuttaa asiakasprojektien edistymistä. 3D-tulostin on tullut osaksi ratkaisujen rakentamista. Eräässä projektissa tuskailimme piirilevyn juotostyössä muotin liikkumisen kanssa. Ongelma ratkaistiin suunnittelemalla ja tulostamalla pidike, jonka avulla pintaliitoskomponentit voidaan kohdentaa tarkasti. Ratkaisu vähensi merkittävästi virheitä juotostyössä. Vastaavanlaisille oivalluksille on tilaa ohjelmistokehittäjän arjessa, ja kannustammekin henkilöstöämme kokeilemaan 3D-tulostamisen mahdollisuuksia.\n\nTickingbotin henkilöstö voi vapaasti käyttää 3D-tulostinta työprojektien lisäksi omiin projekteihin. 3D-tulostuksella voidaan luoda pieniä ja suuria ratkaisuja myös aivan arkisiin tilanteisiin. Kyse on ennen kaikkea luovuudesta ja oivalluksista.\n\n“Se, mitä 3D-tulostuksessa aina tulostetaan eniten, on jutut, jotka helpottavat 3D-tulostamista” Tuukka naurahtaa. Hän on esimerkiksi jatkokehittänyt vihanneskuivurista 3D-tulostusfilamenttirullalle telineen, joka sopivasti sekä kuivaa materiaalin että syöttää sen helposti tulostimelle. Prosessien helpottaminen onkin yksi 3D-tulostimen kirkkaimmista hyödyistä, kun tarvittava osa voidaan suunnitella ja toteuttaa nopeasti. \n\n3D-tulostin pystyy toteuttamaan hyvin pieniäkin malleja, joista tähän mennessä pienin toteutus on työntekijämme toteuttama golfpallon merkkausnasta, joita golfissa käytetään lyöntikohdan merkitsemiseen greenillä. Kyseessä on vain parin sentin mittainen hakanen, mutta pelin kannalta tärkeä merkki! \n\n### Kevätpäivillä nähtiin Tickingbot 3D-tulostuskilpailu tuotoksia \n\nKevätpäivien 3D-tulostuskilpailu antoi kipinän myös niille, jotka eivät vielä olleet uskaltautuneet laitteen äärelle. Kilpailutyössä piti näkyä Tickingbotin graafisia elementtejä, ja sitä varten tilattiin filamentteja kolmessa värissä. Kilpailutyön sai ideoida vapaasti, sillä tärkeintä oli kekseliäisyys ja rohkeus kokeilla. Voitto napsahti 35 palan palapelille, jossa yhdistettiin kolmea väriä, vaikka tulostimessamme on vain kaksi suutinta. Haaste ratkaistiin tekemällä 34 palaa kaksivärisinä ja yksittäinen kolmivärinen pala liimattiin kasaan.\n\nKilpailu toimi onnistuneena lähtölaukauksena, sillä nyt 3D-tulostus Slack-kanavalle jaetaan aktiivisesti uusia ideoita sekä toteutuksia. Toisen keksimä ratkaisu voi olla hyödyllinen myös muille, ja parhaimmillaan ideat jalostuvat yhteistyössä eteenpäin.\n\n\n### Oivallukset muovautuvat osaamiseksi \n\n3D-tulostaminen ei ole vain napin painamista. Se vaatii suunnittelua, hahmottamista ja epäonnistumisen sietoa. Tickingbotilla uskotaan, ettei tällaiset taidot jää vain printterin ääreen, vaan kulkeutuvat asiakasprojekteihin ja ongelmanratkaisutaitoihin.\n\n“Näemme, että olemme vasta 3D-tulostuksen alkupisteessä. Tulevaisuus näyttää, kuinka laajasti sitä voimme hyödyntää. Tarjoamme työntekijöillemme alusta alkaen mahdollisuuden oppia uusia teknologioita. 3D tulostamisen tulevaisuus syntyy rohkealla kokeilulla ja oivalluksilla.” Tuukka summaa.\n\nValmistaudumme siihen, että 3D-tulostuksesta tulee luonnollinen osa tulevaisuuden työtä. Mitä enemmän 3D-tulostaa sitä enemmän myös taidot ja ajattelu kehittyvät. Kun teknologia sulautuu ajan myötä osaksi arkea, meillä on valmiudet ottaa siitä kaikki irti.","content2":"## Tulevaisuuden mahdollisuuksia\n3D-tulostamisen kehitys jatkuu nopeasti, ja uudet materiaalit sekä tekniikat avaavat jatkuvasti uusia mahdollisuuksia. Tickingbotilla olemme valmiita hyödyntämään näitä innovaatioita asiakasprojekteissamme ja sisäisessä kehitystyössämme.","recommendations":[{"slug":"oma-golfsimulaattori"},{"slug":"ajosimulaattori"},{"slug":"hallitus"},{"slug":"libwebsockets"}]}},{"fields":{"slug":"/oma-golfsimulaattori/"},"frontmatter":{"language":"fi","title":"Oma golfsimulaattori – kun työntekijän idea muuttuu yhteiseksi eduksi ","date":"01 June 2025","slug":"oma-golfsimulaattori","cardImage":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAC4iAAAuIgGq4t2SAAAEYklEQVQ4yyWT20/TdxjGf6iUtmAphVJKC8hxoEgHKFI5yZkW5KCAyCJQEChQWmhBEMpQVo5SWg4ydIY5NyeKbCC66O6WmV15MZMlS3azZBe729/w2c/t4sn3m7zJJ897eISK0jNUlZ3FXJZNTWkWl8rP0lJppKuuhKHWaqb7rnLPM8af79/yx88v2Jyb5NMxG/b+dro6mrjaUkNDbTHm8hzKi7MQzFUFVJsKqa0uoKW+hI7GKrqayuioz8dyuQB7Vx0rt1wcPN5m5+EDludnGXM56LW00NpYSVNtIc2XSrnSbKK1rQmhvNxIRcV5akRgoTGD1IRoDGl6jFmJmC4YaL9cylBXI267BfdgJ0O9HdgdgwwMDmLru47N7cG1cB/n4gPcW89EYMU5yityqa7O41RaLIIQgCwoCHWogmRdNOfSk+hqKcfZfwX77CrTz39l8vXfeN78w/rOO7y771nZ+42ZRz/x2e47hEqTEZM5j9q6InLOpBAkkXBcLkcTpkSjDCMpLoaB4W6GxvtwbR/ifAuO3b9Y2fmFxa9fM333PlNb2zhmPXTPTCA01F+gpiYfs/kcWYZ4JMcCCZHJCFcoCAsOIUanwerqoX+kG8edFWzPfmdiY4dRzzROzwzj/g36J0exjo3QNtKLUFtXgElURVE2bUUZyIOlSCVBKIKDCZbK0GjC6R3uoP+GlcGZUVyzU4zdnmB0doKRhUkm1+YYWZpieP4mjgXRYc3F8xgLsok/mYurx0FpzlkCAgIIEYGyIClqdRjt9lZ63L3Y51wsP/yWL3/4jtU9P779NdZffY7v1V28hxvMP/ciVF/M4+PMVHEZAsUXGjiVcpojIjBY/j8wIjIM69x1Jr5y43l6h6W9u2y89LG+78N/uCXqHquifAebYs2PUGU2ctqQjFympLXJSqYh9z/4cXF+H1qP0mtwrtqwOMXT+eIGa2/W2DhcwX/gxfu9D9+hD68IX9pbYWFXdFgiJiTlo1hUymgu1XWSknSKo0eOoAj5AJQQpdXQ3FZFaYkB61Qnvh83Wd1fxvdoBv8rP3fE/9zuHDNPZrj92INQJkYtv9CARh1B3uk00amMwKMSJIFSjoqvVC5Fp1eTmKClqOwM/Z4e3F47n5jyuNbXxOKhl1vPPEx88ynjD6cQcsV0ZGafJFarJjNei0waSGioBG20nPT0UHJzVeTkqEjPUBITr0AVGUJCspbsjBRSTyRQ11zJ1YHLWNwd9M5bESIig4mPU1KamUhxnth2cxRt13TYB/SMjcbhvpnI7alkpieScDpEQEMUaQYFCYkatJFqTuhj0USoCFcpiBdjK1QW6CgzxpFv1DFsyWFltRL/PRNrm4Vs+DNZ955kcTaZW+5EJscTuDkaj20gmoqqCJRhclRh4ShVSqTHJRwLOoZQX5xKv8XI0rKZp9ut7D1tZ/9lFwevO3nyopHNB/lsrWeyMJvE+JieAZsWS6caa7eOGL0470AZMrmMGG2ECA/hX6hnesrVFJUFAAAAAElFTkSuQmCC","aspectRatio":1.2345679012345678,"src":"/static/a395211217852285ccbed0ef1f7a46ac/497c6/kuva1.png","srcSet":"/static/a395211217852285ccbed0ef1f7a46ac/65e33/kuva1.png 100w,\n/static/a395211217852285ccbed0ef1f7a46ac/69585/kuva1.png 200w,\n/static/a395211217852285ccbed0ef1f7a46ac/497c6/kuva1.png 400w,\n/static/a395211217852285ccbed0ef1f7a46ac/2a4de/kuva1.png 600w,\n/static/a395211217852285ccbed0ef1f7a46ac/ee604/kuva1.png 800w,\n/static/a395211217852285ccbed0ef1f7a46ac/7d87e/kuva1.png 3516w","srcWebp":"/static/a395211217852285ccbed0ef1f7a46ac/1f5c5/kuva1.webp","srcSetWebp":"/static/a395211217852285ccbed0ef1f7a46ac/d1f52/kuva1.webp 100w,\n/static/a395211217852285ccbed0ef1f7a46ac/61e93/kuva1.webp 200w,\n/static/a395211217852285ccbed0ef1f7a46ac/1f5c5/kuva1.webp 400w,\n/static/a395211217852285ccbed0ef1f7a46ac/ad85c/kuva1.webp 600w,\n/static/a395211217852285ccbed0ef1f7a46ac/58556/kuva1.webp 800w,\n/static/a395211217852285ccbed0ef1f7a46ac/0facc/kuva1.webp 3516w","sizes":"(max-width: 400px) 100vw, 400px"}}},"image":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAC4iAAAuIgGq4t2SAAADw0lEQVQ4yyWTaVNbZRiGM5Zs58BJSILshYkTEAiQghSEVjpTR6Eism+lSFhk3wmUfQtLEpYSCZvUZZxKBRmgA+469Rf4xQ/+AL/pjD/h8gU/PHPeM++891zP/dyPSqvRIUsykZFh2O2J3MnNpKAgn5KSQmqqy2h1NtDX3cFQfzddrY/48FEFdY211DWUivt7vPdOFtkp8YQZQ9Drg1FpNXo0ar34kQm3WMjKTOPdBwWUVNVQ2dBCfYeL1rEVuue3aBpx0zLhpXXWR9vEKM1d5VQ+LCLXYSM8NARJUlDpNTJGJRSDwYQ2SENx9xLNn/9B75e/M3DxN72X/9B39hcjP/5Lx/Gf9Dy9pNfjoWvGRcdkK4N+F9WNxdyMiSRYMqKSdMHioBAiK8SEmal0NtM858M5PkmX/xk93oB4PE3/8hKTuzsM+6bome+iTYh1zH3E0O4wzYOlWK1RSHrlSlBGr5Ewm80UpFuFXyW0L3bidDnpnO1kwDfI0hdutl9ssfvDHrs/ifp1n9XzdTzHHlx7Ezj73seWEI0sC0KdGIopNpGojHyyc+4zM+1i7miJqWcLrJz5WL/c5JOX+zz9bZedn3fY+2WP/Ze7rIq7lVMPo5/O0iQIExKFoHRNKCEpZnQhZl7RmSiurmX72wCblwEC3++wdRFg/zshduFn/eQJ/hcBnpz7BZ0P9+Eq9QMtVFbdES2HoxODVcnCw6uWdVqJIJWG0qpylg8XhEdNTB1M4jldY+N8k9WTNTzfbOA928IjhBePfMw+X6N1cYjmtmKSEmLQ6UIEoVbmqrQiOpJWoaLyIe3jjdS2l3G/MBf3cy/rwr+1Uz/eE0F2ssXysZ+FwzXm/I/pC4zROV9FqkMIqoP/9/CKUHMtaKCktJrC0rvczXeQcztZRKRXiHgFofDsyMPCV0u4v/YyejCHs6WM/LdzaRx+gN0RifqG/iqHItSitGrdddsJ8TcxWowYTQoRMWHE2qKx2q0k3UokJeN1UsT3Vm4qWfcyyMtLJzY8nGT7a8TcfFUI6sSmqLWoRaDVNzTIgtZhi+DNHAvlH8RRV22lpiqeoqJo3soPJ81hIt6mYIkQgzSIlQ3RYw41iAwbMBstGEWWVUFCyGSSMBoFYZCOxgobi9NJzIwn43U78C2msbJgxz2TwvRYEgN9VpoaY8WuR4uYWYiLUkRc9CiKQlRYJKp0u4H6mgjy80w4rLGMDDjwLmay6cnis51cDraz2fv4NtsbWazM2xl/bKOvJ47+nnh6OuNxltl5IzWOUEVG1gbzH1R9G2Gbna3MAAAAAElFTkSuQmCC","aspectRatio":1.4671361502347418,"src":"/static/5ada87bbbffa2f56eef13cf99c41aaf1/3cea3/kuva2.png","srcSet":"/static/5ada87bbbffa2f56eef13cf99c41aaf1/d5653/kuva2.png 625w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/bfb51/kuva2.png 1250w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/3cea3/kuva2.png 2500w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/b4074/kuva2.png 3649w","srcWebp":"/static/5ada87bbbffa2f56eef13cf99c41aaf1/dc072/kuva2.webp","srcSetWebp":"/static/5ada87bbbffa2f56eef13cf99c41aaf1/a12ce/kuva2.webp 625w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/4d702/kuva2.webp 1250w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/dc072/kuva2.webp 2500w,\n/static/5ada87bbbffa2f56eef13cf99c41aaf1/fe876/kuva2.webp 3649w","sizes":"(max-width: 2500px) 100vw, 2500px"}}},"image2":null,"content":"Oma golfsimulaattori – kun työntekijän idea muuttuu yhteiseksi eduksi  *“Tännehän voisi rakentaa vaikka golfsimulaattorin!”* -lausahdus uuden hallin tiloissa ei jäänyt vitsiksi. Nyt Tickingbotin toimiston läheisyydessä harjoitellaan draiveja ja hiotaan lyöntitekniikkaa ympäri vuoden! Golf yhdistää henkilöstöämme, ja puolivahingossa syntyi henkilöstöetu, joka lähti aidosti työntekijältämme.  \n\n## Harrastustoimintaa yhdessä\n\nKuinka tähän päädyttiin? Palataan vuoteen 2020, kun meidän Tuukka innostui golfista. Tuukan innostus golfia kohtaan tarttui myös Heikkiin, joka löysi vanhan intohimonsa uudelleen. Kesien kenttäpelien ohella kaksikko harjoitteli eri golfsimulaattoreissa, ja totesi simulaattorit hauskaksi tavaksi harjoitella myös talvella. Vuonna 2021, kun Tickingbotille saatiin käyttöön uusi, yllättävän tilava halli, nousi pintaan poikkeuksellinen idea.\\\n\\\n*“Siinä me vähän puoliksi vitsillä heitettiin, että tännehän voisi rakentaa vaikka golfsimulaattorin”*, Heikki muistelee. Tuukka innostui ideasta nopeasti, ja pian alkoikin itse rakentaminen.  \n\n## Kekseliäisyyttä ja tiimityötä\n\nRakentaminen itsessään vaati kekseliäisyyttä ja käsityötä, kun tila simulaattorille rakennettiin seiniä myöten itse. Projektissa olivat mukana erityisesti Heikki, Tuukka ja Juho, mutta apukäsiä löytyi aina tarvittaessa, kuten katon ja seinien pystyttämiseen.\\\n\\\n*“Ei meistä kukaan ollut oikea rakentaja, mutta hyvällä tiimityöllä kaikki saatiin kasaan”*, Heikki kertoo. Nyt hallissa komeilee oma golfsimulaattori, josta nauttii rakentajien lisäksi myös yrityksen uudemmat tekijät. \n\n## Golfia työpäivän jälkeen\n\nGolfsimulaattorista on tullut muun muassa Jounille tärkeä harjoittelupaikka. *“Aloitin golfin samana kesänä, kun aloitin Tickingbotilla. Siitä asti olen ollut aktiivinen simulaattorin käyttäjä”*, Jouni kertoo.\\\n\\\nSimulaattorin käyttö on mahdollistanut säännöllisen harjoittelun myös talvikuukausina, ja tekniikkaa voi kehittää ilman kenttäolosuhteiden paineita. Jouni on huomannut toistojen vaikutuksen, joka näkyy suoraan kentällä.\\\nJouni ja Heikki toteavat yhteen ääneen, kuinka mukavaa on aloittaa kesäkausi, kun talvella on tullut harjoiteltua. Golfsimulaattorilla harjoittelu on hyödyllistä, mutta ennen kaikkea se tuo arkeen energiaa ja yhteisöllisyyttä työkavereiden kesken. \n\n## Haluamme tarjota työntekijöillemme aitoja etuja\n\nGolfsimulaattori on erinomainen esimerkki siitä, kuinka työntekijöiden omat ideat ja kiinnostuksen kohteet voivat kasvaa yhteiseksi hyödyksi, kun yrityskulttuuri tukee oma aloitteisuutta ja harrastuneisuutta.\\\n*“Me ollaan aika joustavia tällaisissa jutuissa. Pienessä yrityksessä pystytään kuuntelemaan aidosti, mitä ihmiset haluavat”*, Heikki tuumaa.\\\n\\\nTickingbotilla työsuhde-edut on pyritty järjestämään niin, että ne toisivat työntekijöille aitoa arvoa arkeen. Tarjoamme työntekijöillemme liikunta-, kulttuuri- ja hyvinvointiedut, laadukkaan työterveyden sekä vapaa-ajan vakuutuksen. Näiden lisäksi olemme ottaneet käyttöön “etubuffan”, josta työntekijä voi valita itselleen sopivimman edun lounas-, pyörä- tai työmatkaetuna tai vaihtoehtoisesti kahtena ylimääräisenä vapaapäivänä vuodessa. Meillä jokaisella on myös vapaus valita omat työvälineensä Mac vai Linux – päätät itse. \n\n## Meillä on tilaa harrastuksille ja ideoille\n\nTickingbotilla tehdään usein etätöitä, joten juuri harrastuneisuus on tarjonnut mahdollisuuden tutustua paremmin työkavereihin. Porukasta löytyy pelikavereita golfin lisäksi vaikka lautapeli iltaan. Uusimmat ideat sinkoilevat tällä hetkellä äskettäin hankitun 3D-tulostimen ympärillä, jota työntekijämme saavat käyttää vapaasti.\\\n\\\nGolfsimulaattori onkin vain yksi esimerkki siitä, mitä voidaan rakentaa yhdessä. Kun idea saa tuulta alleen, Tickingbotin yhteisö kyllä tarttuu siihen.","content2":"","recommendations":[{"slug":"3-d-tulostin"},{"slug":"ajosimulaattori"},{"slug":"hallitus"},{"slug":"kasvun-esteet-piilossa-datassa"}]}}]},"index":{"frontmatter":{"services":{"list":[{"title":"Datapalvelut"},{"title":"Sulautetut järjestelmät"},{"title":"Ohjelmistokehitys"},{"title":"Testauskonsultointi"}]},"jobs":{"list":[{"position":"datakonsultti"},{"position":"Business Developer (DATA)"},{"position":"SW test automation engineer"},{"position":"Software developer"},{"position":"Embedded Software Engineer (Senior)"}]}}},"settings":{"childMdx":{"frontmatter":{"companyname":"Tickingbot Oy","sitename":"tickingbot.fi","address":"Visiokatu 4, 33720 Tampere","address2":"","phone":"+358 50 366 1849","linkedin":"https://www.linkedin.com/company/tickingbot/","email":"info@tickingbot.fi"}}},"site":{"siteMetadata":{"title":"Embedded Software & Testing. Consultancy. - Tickingbot","description":"Tickingbot Oy, Embedded software, Software testing, Consulting, Test automation, Sulautetut järjestelmät, Ohjelmistotestaus, Konsultointi, Testiautomaatio.","author":"Tickingbot Oy","image":"/social-img.png","siteUrl":"https://www.tickingbot.fi"}}},"pageContext":{"id":"bdd65ef8-4207-51d7-9ebb-9097c90b3380","slug":"/fi/embedded-world/","language":"fi","languages":["fi","en"],"translation":{"code":"fi","title":"Suomi","nav":[{"title":"ETUSIVU","url":"/fi/#home"},{"title":"PALVELUT","url":"/fi/#services"},{"title":"TYÖPAIKAT","url":"/fi/#jobs"},{"title":"ASIAKKAAT","url":"/fi/#references"},{"title":"BLOGI","url":"/fi/#blogs"},{"title":"YHTEYSTIEDOT","url":"/fi/#contact"}],"formContact":{"email":"Sähköposti","message":"Kirjoita viesti tähän","name":"Nimi","subject":"Aihe","submit":"Lähetä","messageSent":"Viestisi on lähetetty!","close":"Sulje"},"formJob":{"firstName":"Etunimi","lastName":"Sukunimi","email":"Sähköposti","phone":"Puhelinnumero","linkedin":"LinkedIn","cv":"CV (Pdf)","upload":"Lataa pdf-tiedosto (max. 15 Mb)","message":"Kirjoita hakemuksesi tähän","findLabel":"Kuinka löysit meidät?","find":[{"name":"Kaverin kautta"},{"name":"Google"},{"name":"LinkedIn"},{"name":"Duunitori.fi"},{"name":"TE-palvelut.fi"},{"name":"Eures"},{"name":"Muu"}],"accept":"Hyväksyn Tickingbotin","privacy":"Tietosuojakäytännön","applyNow":"Lähetä"},"jobPosition":{"location":"Paikkakunta","readMore":"Lue lisää","updated":"Päivitetty","type":"Työsuhde"},"services":{"moreInformation":" Lisätietoja antaa ","ourExpert":"Erityisasiantuntijamme aiheesta on"},"popUpJob":{"yourApplication":"Kiitos hakemuksestasi. Olemme sinuun yhteydessä pian!","close":"Sulje"},"popUpReport":{"thankYou":"Kiitos tilauksesta! Olemme vastaanottaneet tietosi ja otamme yhteyttä yhden arkipäivän sisällä sopiaksemme selvityksen esittelyn halutessasi.","close":"Palaa etusivulle"},"formReport":{"name":"Nimi","email":"Sähköposti","phone":"Puhelinnumero","organization":"Organisaation nimi","role":"Rooli / tehtävä","challenge":"Organisaatiomme suurin haaste datan hyödyntämisessä","marketingConsent":"Haluan vastaanottaa Tickingbotin mainosmateriaalia","accept":"Hyväksyn Tickingbotin","privacy":"Tietosuojakäytännön","submitButton":"Tilaa maksuton selvitys"},"popupCookies":{"message":"Evästeiden avulla parempia palveluita. Käytämme evästeitä, jotta sivustomme toimii oikein ja sisältömme ovat sinulle osuvampia. Voit antaa suostumuksesi painamalla ”Hyväksy kaikki evästeet” tai tutustua tarkemmin evästeiden käyttöön ja hallinnoida valintojasi evästeasetuksista.","accept":" Hyväksy kaikki evästeet","acceptBasic":" Vain välttämättömät","settings":"Evästeasetukset"},"popupContactForm":{"title":"Yhteystiedot","message":"Auta meitä auttamaan sinua","description":"Etsitkö ketteriä osaajia vaativiin tehtäviin? Tarjoamme esimerkiksi sulautettujen järjestelmien, ohjelmistokehityksen, testaamisen ja data-arkkitehtuurin osaajia projekteihin. Jos etsit parhaillaan uutta työpaikkaa, tutustuisimme mielellämme sinuun tarkemmin. Mitä sitten tarvitsetkin, anna meidän auttaa – jätä yhteystietosi, niin otamme yhteyttä!","firstName":"Etunimi","lastName":"Sukunimi","phone":"Puhelinnumero","email":"Sähköpostiosoite","help":"Kuinka voimme auttaa sinua?","submit":"Lähetä"},"page404":{"title":"Sivua ei löydetty","text":"Sivua ei löydetty..."},"blogs":{"share":"JAA","more":"LISÄÄ LUETTAVAA"},"footer":{"privacy":"Tietosuojakäytäntö"}},"templateKey":"templates/blog"}},"staticQueryHashes":["2255782316"]}