Matthias Spiller
Software developer and consultant
Experience
Software developer and consultant
CLADE GmbH
- Analyzed the existing CAN communication between microcontrollers
- Examined the sensors used and the collected measurements
- Planned the CAN messages to transmit the measurements
- Iteratively adapted the microcontroller code to the new CAN messages
- Cross-compiled from x64 to arm64
Software developer and consultant
confidential
- Parsed C# code with Roslyn
- Dynamically extended C# code with new methods, classes, properties and fields
- Generated C# code as mocks
- In-memory compilation of C# projects with error analysis
- Delivered functionality via Web API (REST)
- Revised a prototype to make it production-ready
- Reduced technical debt through architectural refactoring and creating unit tests
Software developer and consultant
CLADE GmbH
- Code and architecture reviews
- Acted as a sparring partner for software development and architecture questions
- Analyzed bus system communication
- Automated testing of embedded code
Software analyst and developer
CLADE GmbH
- Analyzed crash dumps and memory leaks on embedded Linux, memory profiling
- Performed runtime analysis with debugger, valgrind and ThreadSanitizer on a single-board computer running embedded Linux
- Analyzed bus system communication
- Debugged embedded code, sensor and actuator logic of a microprocessor
- Fixed issues in memory management and multithreading in C++ and C#
- Documented findings, solutions and best practices to prevent issues
Software developer, test developer
Vector Informatik GmbH
- Analyzed the ASAM interface definition and existing code
- Implemented the ASAM XIL interface in C#
- Connected existing C++ code via an RPC interface
- Implemented functionality in C++
- Mapped ASAM commands at the bus system level
- Created development-supporting and automated tests with CAPL and NUnit
Software Developer, Hardware Developer
Fari Software GmbH
- Circuit design
- Developing embedded software
- Connecting to an electronic piano via USB to receive and send MIDI messages
- Mirroring the electronic piano keys for left-handed players
Software Developer, Test Developer
Vector Informatik GmbH
- Analyzing existing code
- Drafting a concept to convert the existing generator
- Creating test units with vTESTstudio and CAPL at the bus system level
- Simulating LIN control units with CANoe
- Developing the new generator in C++ and C#
- Performing development tests
Software Developer, Hardware Developer
Fari Software GmbH
- Developing a prototype for a wireless color sensor
- Circuit design
- Creating the embedded software
- Polling the sensors and sending data via Bluetooth Low Energy (BLE)
- Building a desktop application to communicate with the module
Software Developer, DevOps Developer
Vector Informatik GmbH
- Configuring Conan as a package manager
- Creating Conan packages for tools and libraries
- Integrating Conan into CMake and Visual Studio projects
- Converting Visual Studio projects from MSBuild to CMake
- Building CI/CD pipelines in GitHub Actions for Conan packages and uploading to Artifactory
- Creating base images for CI/CD pipelines
Software Developer, Language Developer
Vector Informatik GmbH
- Specifying the DSL
- Designing and implementing the DSL with Xtext and Xtend
- Creating a VSCode extension via the Language Server Protocol
- Generating C#, C++ and C code from the DSL for control software
- Generating HTML documentation from the DSL
- Setting up a CI/CD pipeline to automate generation from the DSL
- Live querying JIRA via REST to validate the DSL against requirements
- Extending the DSL data model with information from protobuf files
Software Developer
Advantest Europe GmbH
- Automatic generation of a Python wrapper for existing C++ code
- Embedding the Python interpreter using pybind11
- Performance analysis and improvement by avoiding too many IPC calls
- Uploading and executing a Python script on the server
- Connecting a Java API to the Python interpreter
Software Developer, DevOps Developer
Vector Informatik GmbH
- Creating a tool with C# and WPF for test configuration of smart charging protocols
- Building an installer for the tool
- Setting up an automated build and deployment pipeline
- Simulating a charging station and the vehicle with CANoe
Software Developer
NELA Brüder Neumeister GmbH
- Designing, developing, and verifying algorithms for visual analysis of test objects
- Image processing and feature extraction in 2D and 3D images
- Pattern recognition
- Creating test programs to assess the quality of specimens
- Commissioning the test programs at the customer's site
- Integrating OPC UA for communication with machine controllers
Software Developer, DevOps Developer
flexis AG
- Creating and maintaining Python libraries for data analysis
- Porting C++ code to Python
- Migrating from Python 2 to Python 3
- Architecting and developing a data processing pipeline using PostgreSQL with microservices
- Deploying and operating in a managed cloud environment
- Integrating data sources via REST, MQTT, OPC UA, and ZeroMQ
- Integrating data sources and sinks via SQL
- Creating a Python library for communication with a proprietary relational database
- Converting Visual Studio projects to CMake
- Integrating vcpkg as a package manager
Software Developer
TetraTec Instruments GmbH
- Adopting data models from an existing MSSQL database
- Automatically generating the API from the existing data model
- Creating reports from the database using LaTeX
Software Developer, Test Developer
Vector Informatik GmbH
- Analyze customer requirements for the Diagnostic-over-IP framework
- Implement the framework using CAPL in vTESTstudio
- Create a panel to parameterize the framework
- Create tests based on customer specifications
- Simulate ECU, gateway, and tester with CANoe
Software Developer
Aquilius Research GmbH
- Analyze customer requirements and bug reports
- Implement features and bug fixes
- Automated unit tests
- Analyze crash dumps and memory leaks
- Performance measurements and improvements
Software Developer
TetraTec Instruments GmbH
- Specification, design, implementation, and testing of control software for a compressed air test bench
- Control external hardware
- Implement test sequences
- Create a UI with WinForms
- Commission the software on the test bench
Software Developer
Vector Informatik GmbH
- Specification, design, implementation, and testing of software projects for vehicle simulation and testing as part of the CANoe, CANalyzer, TAE, and vTESTstudio products
- Software development and architecture with C++ and C# on Windows
- Migration from 32-bit to 64-bit and from Windows to Linux
- Focus on vehicle diagnostics and bus-level testing
- Simulation and testing of ECUs at the bus system level
- Analyze crash dumps and memory leaks
- Evaluate and introduce JIRA as a company-wide issue-tracking system
- Develop an add-on for JIRA to support internal processes
Software Developer
Advantest Europe GmbH
- Responsible for the central control flow of the IC tester software, the customer-facing APIs, and their data generation
- Software development and architecture with C++ on Linux
- Model-driven development and documentation with UML
- Development of a (D)COM-like component framework
- Technical lead for a team of up to 7 engineers
- Evaluate and introduce new tools and technologies
- Provide technical guidance and coaching to engineers
- Project planning and execution, including creating schedules
- Close collaboration with R&D teams in China and the USA
- Design and implementation of an executable and debuggable domain-specific language
- Crash analysis and performance optimization
- Static code analysis
Summary
Matthias Spiller is a senior software developer with over 19 years of experience in developing, maintaining and modernizing technical software systems – mainly in embedded, automotive and industrial environments. He helps companies get unstable or outdated systems back under control: through thorough debugging, targeted performance optimization, legacy code modernization and setting up test and CI/CD infrastructures.
His technical strength lies in analyzing complex C++, C# and Python codebases, often on Linux or Windows with CAN, LIN, Ethernet or other bus systems. In addition to implementing new features, he also takes on cross-cutting tasks: architecture consulting, interface design, DSL development (Xtext) or refactoring to reduce technical debt.
Typical fields of application are embedded devices, controllers, diagnostic tools, data pipelines or simulation environments – even where documentation is missing or systems have passed through many hands. He operates through his GmbH, prefers to work remotely and is available on-site for project phases.
Skills
Programming Languages And Databases
- Postgresql
- Mysql
- Mssql
- Sqlite
- C++
- C
- Python
- C#
- .Net
- Cli
- Redis
- Sqlalchemy
- Entity Framework
- Capl
- Xtend
- Java
- Vb.net
- Bash
- Batch
- Groovy
Products, Standards, Libraries
- Xtext
- Git
- Github
- Gitlab
- Bitbucket
- Canoe
- Canalyzer
- Vteststudio
- Vcdl
- Cdd
- Odx
- Uds
- Diagnostics
- Can
- Lin
- Ethernet
- Ipv4
- Tcp
- Udp
- Wireshark
- Mqtt
- Opc Ua
- Rest
- Swagger
- Postman
- Csv
- Json
- Xml
- Protobuf
- Unit Testing
- Roslyn
- Dependency Injection
- Valgrind
- Vtune
- Threadsanitizer
- I2c
- Spi
- Jenkins
- Github Actions
- Bamboo
- Devops
- Opencv
- Boost
- Pandas
- Numpy
- Msbuild
- Cmake
- Wpf
- Qt
- Winforms
- Mfc
- Jira
- Confluence
- Conan
- Vcpkg
- Nuget
- Maven
- Gradle
- Docker
- Kubernetes
- Openshift
- Terraform
- Azure
Languages
Education
University of Freiburg
Diploma in Computer Science, focus: pattern recognition, image processing, computer vision; minor: Physics · Computer Science · Freiburg im Breisgau, Germany
Wendalinum Grammar School
High School Diploma · Sankt Wendel, Germany
Certifications & licenses
AUTOSAR Workshop
Blockchain - security without a trust center
CAN bus basics
Introduction to quantum computing
Quantum information and cryptography
Quantum Computing with Qiskit
ECU testing with CANoe and vTESTstudio
Profile
Frequently asked questions
Do you have questions? Here you can find further information.
Where is Matthias based?
What languages does Matthias speak?
How many years of experience does Matthias have?
What roles would Matthias be best suited for?
What is Matthias's latest experience?
What companies has Matthias worked for in recent years?
Which industries is Matthias most experienced in?
Which business areas is Matthias most experienced in?
Which industries has Matthias worked in recently?
Which business areas has Matthias worked in recently?
What is Matthias's education?
Does Matthias have any certificates?
What is the availability of Matthias?
What is the rate of Matthias?
How to hire Matthias?
Average rates for similar positions
Rates are based on recent contracts and do not include FRATCH margin.
Similar Freelancers
Discover other experts with similar qualifications and experience
Experts recently working on similar projects
Freelancers with hands-on experience in comparable project as a Software developer and consultant
Nearby freelancers
Professionals working in or nearby Böblingen, Germany