Software
UDVIKLING

SOFTWAREUDVIKLING

TechPeople har siden virksomhedens grundlæggelse i 2010 deltaget i adskillige softwareprojekter, herunder både hardcore embedded softwareudvikling og softwareudvikling på Windows, Linux, servere, smartphones og tablets.

Vores konsulenter har typisk mellem 10 og 25 års erfaring inden for udvikling –

hvilket betyder, at der praktisk talt ikke er noget område eller teknisk område, som vi ikke har kendskab til. Hvis vores kunder skulle have brug for en helt speciel kompetence, som vi mangler erfaring med i vores nuværende pulje af konsulenter, vil vi gøre vores yderste for at finde den rette profil i Danmark eller i udlandet.

  • Platform

  • Ansøgning

  • DSP

  • Kommunikation

  • Værktøj

  • Proces og metode

PLATFORM

Vi er ofte involveret i projekter, hvor vi starter med et tomt stykke papir og udarbejder en robust arkitektur, der matcher de krav, der er fastlagt for projektet. Der skal træffes en række valg om platformen med hensyn til CPU/MCU, operativsystem og f.eks. muligheden for at kunne opdatere produktet fra afstand.

Vi adskiller altid produktets logiske kode fra den hardwarenære del via et abstraktionslag, hvilket sikrer, at udskiftning af hardwarekomponenter vil have minimal indvirkning på fremtidige softwareændringer.

Board bring-up
  • Bootloader (U-Boot)
  • Toolchain
  • HW Debugger (Lauterbach / J-Tag)
  • BSP
OS
  • FreeRTOS / Mbed OS
  • eCos
  • Linux (Yocto / Buildroot / Android / …)
  • Windows, Windows CE/Embedded

Driver

  • SPI
  • I2C
  • UART
  • ADC
  • Display / E-ink
  • LWIP

CPU/ MCU

  • Arm M/7/9/11
  • 80×86/8051
  • Atmel AVR
  • PIC
  • TI MSP430

MØD EN AF VORES KONSULENTER

Ole Larsen

Alsidig softwareudvikler

 

Med over 20 års erfaring er Ole Larsen er alsidig softwareudvikler med særligt fokus på embeddede løsninger. Han har arbejdet som konsulent i TechPeople siden 2015 og før dette hos Kontron Technology, global markedsleder inden for komponenter til embeddede teknologier.

LÆS MERE

LÆS MERE OM OLE

I Kontrons danske afdeling designede han bl.a. et embedded motherboard (x86) til industrielt brug. Opgaven omfattede hele processen, fra bring-up og manufacturing test til kundeproblemer og tilpasninger. Hos Kontron var BIOS udvikling det primære arbejde, men der var også opgaver med CPLD/FPGA som LPC/FWH/SPI flash emulator, LVDS patten tester. Desuden designede Ole et Application Programming Interface til support for special features på Embedded motherboard, på både DOS, Windows og Linux.

Oles kernekompetencerne spænder vidt, bl.a. programmering af BIOS (AMI/Phoenix), Windows, DOS, Linux, device driver og Bare-Metal. Han er stærk i programmeringssprogene C, C++ og ASM (x86/8051/ARM/6510) og har kendskab til VHDL.

Som konsulent hos TechPeople har han bl.a. arbejdet med at videreudvikle protokolkode til trådløse sensornetværk på assembler-niveau, software til styring af håndsæt og debugging. Han har også designet en gateway til et instrument til temperaturkalibrering for Ametek i Allerød. 

Oles interesse for computere startede, da han fik sin første Commodore 64 og Bare-Metal programmering kan føres tilbage dertil. Debugging og Reverse Engineering er også en passion og IDA fra hex-rays er et favoritprogram.

APPLIKATION

I de fleste produkter vi udvikler indgår en eller anden form for interaktion med brugeren. Det kan være alt fra en enkelt knap og en lysdiode til et avanceret grafisk brugerinterface med touch betjening og endda haptisk feedback.

Nogle produkter, bl.a. inden for for medicinsk behandling, anvender ofte en Windows eller en Linux maskine som frontend til den embeddede platform. Her lægges meget af applikationens logik og interaktion med brugerne gennem et GUI værktøj som QT eller MFC/WPF.    

Vi har desuden mange kunder, som tilbyder Apps der kommunikerer med produktet. Det har givet os stor erfaring med både native IOS og Android udvikling eller gennem frameworks som Xamarin samt en kombination heraf. 

MMI / GUI

  • MFC / WPF
  • wxWidgets
  • Android
  • QT

Databehandling

  • Algoritmeudvikling
  • Dataopsamling
  • Styring og regulering
  • Dataanalyse
  • Data logning

Mobil & Frontend

  • IOS / Android
  • Xamarin / Cordova / PhoneGap
  • HTML / CSS
  • AngularJS
  • Bootstrap
  • UX Design

DSP

Vi har mange kunder, der arbejder med avanceret signalbehandling, bl.a. inden for audio og video. På dette kompetenceområde findes der ikke ret mange konsulenter i Danmark. Derfor har vi gennem tiden haft stor succes med at hente udenlandske konsulenter hertil i kortere eller længere perioder. Ud over at hjælpe med bolig har vi en fast procedure for at give vores udenlandske konsulenter ekstra opmærksomhed, så de trives mens de er på besøg.

Anvendelsesområder

  • Talegenkendelse
  • Audio processering
  • Video processering
  • Image processering
  • Fingerprint
  • Kryptering

Signalanalyse

  • Filter design
  • Kvantisering
  • Equalisering
  • Latency reduktion
  • Parallelisering, load balance
  • Vektorizing
  • Kompression
  • Encryption
  • Frekvensanalyse
  • Algoritme-optimering
  • Fixed-point, floating-point, SIMD

Mobil & Frontend

  • Conexant, TI, Analog Devices
  • Intel, AMD, ARM CPU
  • AMD, Nvidia, Intel GPU
  • Freescale, Microchip, Atmel

KOMMUNIKATION

Vi kommer sjældent udenom kommunikation i en eller anden grad. Igennem mange år har vi opsamlet kompetencer i protokoller, lige fra nogle, der næsten ikke anvendes mere til nutidens mest anvendte. Udvikler vi for industrien har den sine foretrukne protokoller. Tilsvarende har consumer-produkterne deres egne favoritter. 

Inden for IoT-området anvendes der ofte mange forskellige kommunikationsprotokoller, hele vejen fra en simpel batteri-baseret sensor og helt op til en avanceret cloud-løsning. Her er vi efterhånden blevet specialister.

Wired

  • USB
  • TCP/IP
  • CAN / CANOpen
  • Modbus
  • Profibus
  • POWERLINK

Wireless

  • Bluetooth / BLE
  • GSM / GPRS
  • NFC / RFID
  • WIFI
  • DECT
  • GPS

Mesh netværk

  • Neocortec
  • Zigbee
  • Z-Wave

IoT

  • Azure
  • Google Cloud
  • AWS
  • IBM Node-RED
  • MQTT
  • JSON / XML
  • Security

TOOLS

Vi bliver mødt af mange forskellige udviklingsmiljøer ude hos vores kunder. Vi mestrer de fleste programmeringssprog og det i kombination med forskellige versionskontrolsystemer og værktøjer i øvrigt. Vi kan de fleste og resten lærer vi hurtigt.

Vi finder de nødvendige specialister, for eksempel én, der kan afvikle algoritmer på grafikkort, eller en specialist fra Malaysia med erfaring i applikationsudvikling på AWS Cloud.

Kort fortalt – vi sætter en ære i at finde nålen i høstakken. 

IDE – udviklingsmiljø

  • Eclipse
  • Visual Studio
  • Visual Code
  • Borland
  • LabView
  • IAR

Versionkontrol

  • Git
  • GitLab
  • Github
  • SW review (Gerrit/Review Board)
  • SVN
  • TFS

Sprog

  • C
  • C++ (89/11/14)
  • C#
  • Java
  • Python / Perl
  • Assembler
  • Javascript
  • NodeJS
  • Matlab / Octave
  • Make / CMake
  • OpenGL

PROCES & METODE

Vi arbejder både i projekter, der følger en vandfaldsmodel såvel som i agile projekter i mange afskygninger.

Vi vil meget gerne arbejde med testdrevet udvikling. Men ligesom alt andet vi gør, så arbejder vi sådan som vores kunder ønsker vi skal gøre. Vi kan anbefale løsninger, metoder og processer, men vi er ikke religiøse omkring det. Det er vores kunder, der bestemmer.

Agile

  • SCRUM / Scrummaster
  • Kanban
  • SAFe
  • TDD / Unittest
  • Jira
  • Version One
  • eXtreme programming
  • User stories

DevOps

  • Continuous Integration
  • Continuous delivery
  • Docker
  • Jenkins

Metoder

  • UML / SysML
  • Multithreaded programmering
  • Realtids programmering
  • Designpatterns
  • Algoritmer
  • Use cases
  • Software arkitektur
  • Machine learning / AI
  • Reguleringsteknik