Sebastian Nilsson
Engineer, software developer, inventor, entrepreneur
Email: me at sebastiannilsson dot com or go to the contact page for more means of getting in touch.
Competences:
- Programming (Swift, Javascript/Typescript, C, Matlab, Simulink, Python).
- Databases
- Circuit board (PCB) design and electronics in general
- Mechanical CAD
- Prototype design
- Wireless communication
- Sensors, signal processing, filtering and data collection
- Automated testing, automated building of software and continues integration (CI) mainly with Jenkins
Education
- M.sc.. in System, control and mechatronics, Chalmers University of technology, Gothenburg. See completion letter including grades.
- Bachelor in Automation and Mechatronics, Chalmers University of technology, Gothenburg
- ABB Industrial upper secondary school, Västerås, 3300 points with 19,3 in avarage.
Patents
A control arrangement
A new way of automatically calibrating errors during joystick maneuvers with boats.
A method for operating a marine vessel comprising a plurality of propulsion units
WO2018086714A1, US11072409B2, CN110177741B, EP3538433B1, JP6831459B2
Describes a method for applying propulsion in multiple driveline installations for boats.
Boat maneuvering control method for boat and boat maneuvering control system for boat
US10775808B2, EP3170735B1, US10296014B2
Describes an autonomous operation mode for a certain kind of position and heading control.
Boat and heading control method
Describes an autonomous operation mode for fishing boats.
Watercraft control method and watercraft control system
US10549834B2, EP3173324B1, US10202182B2, JP2017094945A
Describes an autonomous control method for boats.
Work experience
Software engineer at Cpac Systems AB, (remote)
January 2022 - currently: Software development for Volvo Construction Equipment and their Efficient Load Out product suite. Efficient Load Out is a digital solution which connects machine operators, truck drivers and site managers in real-time to maximize the profitability and sustainability of mass excavation projects. I have been working exclusively in native Swift programming handling low-level network communication between vehicles, and high-level GUI programming.
Partner and software engineer at Paylando AB (part-time)
January 2022 - currently: Paylando sell solutions for unmanned and cashless payments. I'm mainly responsible for the payment system backend and making sure everything runs smoothly. Technologies include a tech-stack of C#, .net, Azure functions for the payment processing. Typescript and React is used for the frontend and customer facing aspects.
Software engineer at Volvo Penta, Gold Coast, Australia
Projects at Volvo Penta Australia
January 2018 - January 2022: Market support with a specialty in troubleshooting and correcting the Volvo Penta Electronics Vessel Control system. Support is done either during the build at the OEM (Riviera, Maritimo or Palm Beach), or on the field. I am usually only involved when an issue can't be resolved by the Volvo Penta Center/Dealer, so the job includes a fair amount of travel in the Oceania region.
2020-2021: Software development for Volvo Construction Equipment Sitemap and Connected Loadout. All code in Swift and native for iOS. The basic functionality of the apps is to show the location of people and equipment at a construction site, but the app also assists in material handling.
January 2018 - 2020: Mobile app software development for Volvo Penta Easy Connect. All code written in Xamarin C# for crossplatform support (iOS and Android). The app shows vessel and engine data on Volvo Penta powered boats. More info about the app on the official webpage and youtube.
Mid 2018: I implemented Over-the-air updates via Bluetooth LE (4.0) on Volvo Penta EasyConnect. This allows the user to update the Volvo Penta hardware from their mobile phone app.
Software Design Engineer at CPAC Systems AB, Gothenburg
June 2014 - January 2018
Mainly working with marine control electronics (Volvo Penta Electronic Vessel Control and Yamaha Helm Master).
Projects at CPAC Systems
Late 2016 - January 2018: Developing a new product. I am working both with high level app development for iOS and Android, as well as low-level embedded programming. The app development is done using Xamarin C#, and the embedded programming mostly consists of C writing and RTOS configurations.
Late 2016 - January 2018: Automated build environment. I automated a large portion of the build environment for CPACs marine segment. Software releases used to take a day to build, package, refactor, document and archive. With the help of python scripts and Jenkins Continues integration (CI), the same job can now be done in about 30 minutes. Releases are then sent to be automatically tested in HIL rigs.
Late 2016: Prototyping new application features for Volvo Penta. Consisted of system engineering, software programming, simulating boat tests and performing real boat tests in the end of the project.
Mid 2016: During boat tests I spent too much time analyzing CAN bus log files so I made a tool in Python to automatically generate test reports with log files as input. For example I could feed the script data from a day of testing and in a matter of minutes it would produce plots containing the interesting parts of the data, (like position of the boat on a map based on GPS data, or RPM changes over time). Of course being able to plot data is nothing new, but what the tool does is automate report writing and evaluation of boat tests.
Mid 2015 - Late 2016: System design, control theory and writing embedded C code for outboard boats involving autonomous functions. I was part of the team developing control algorithms for continuously adjusting drive angles and propulsion forces to move the boat in a desired way.
Mid 2015 - Late 2016: Boat simulator for testing marine control software. Since most of the software needs to be tested in boats I made a simple boat simulator for testing software early in the development. I ended up using the Unity3D engine for generating computer graphics, C# code for vehicle dynamic simulations and python scripts for intefacing between the hardware (CAN network) and the simulation. The boat simulator is not overly complex but it helped me test control theory ideas and code before doing a proper boat test.
Mid 2016: Patentability work. I am inventor in a patent pending innovation for Volvo's portfolio, and I am also co-inventor on two pending patents with Yamaha. All three patents are filed but not yet public documents.
Mid 2014: Writing embedded C code for gateways and interfaces. One example is a dongle that makes third party autopilots communicate with the steering control unit in a boat. Another example is a dongle to interface between a NMEA2000 bus (external bus used mostly for connecting sensors) and the internal proprietary bus in the vessel control system.
June 2014 - Late 2014: Writing software and configuring hardware for automatic testing of Electronic Control Units. Basically connecting the essential control units for running a boat to the same system, and writing automatic test cases that perform hardware-in-the-loop (HIL) tests.
Late 2014: I made a tool that generates CAN network signal databases for the complete marine vessel control system. A excel-sheet is used as input where signal and CAN frame declarations are declared and linked. As soon as this excel file is pushed to the central version control (SVN), a Python-script will generate multiple CAN database files in various formats based on the excel file. Proved to be a quite valueable tool.
Early 2014: I made a desktop application tool that parses thousands of maintenance reports (generated when Volvo diagnostic tool is connected). Parsed reports are put in a searchable database, and with the tool we could make data driven decisions on which faults to improve upon.
January 2014 - June 2014 (not including lead time at the university): My project partner and I made a proof of concept system for a remote control to be able to drive a truck, from outside of the truck. The project included investigating wireless technology, safety aspects, designing and building PCBs, designing and building mechanics for the remote control device, systemizing the whole system and writing embedded code. Simulink was used to glue it all together. More information.
Treplex (Self employed)
2007 - 2014
Private enterprise with Treplex. I started with design, but with time moved myself closer to assignments in programming and database development. Over the years I made over 20 websites and custom web applications. A few of the highlights were developing the kiaindex.se application for gathering traffic data from Sweden's largest websites. Other highlights were building advanced eCommerce websites and two official chamber of commerce websites.
Miseto AB
April 2011 - August 2012
It started with an idea for better web analytics tool and together with two other people we started and ran Miseto. Experiences that I got as an entrepreneur includes how to run a startup, priority conflicts and the importance of early positive cash flow. As an employee, I was responsible for database- and web development and learned a lot about how to build database-driven services.
Other engineering projects
Formula Student
My most valuable project experience during Chalmers was as a Project Engineer at Chalmers Formula Student where I was responsible primarly for the design and manufacture of the electrical system of the new car that Chalmers is competing with in Formula Student. The following year, I joined a management course to be one of the leaders that helped the new team to achieve the same success as we did.
Self-balancing robots and other projects
Whenever I have the time I usually try to do small engineering projects, either on my own or in a small team. Most of those projects are published in my blog.
Languages
Swedish: Mother tongue.
English: Fluent in speaking and writing. IELTS Band score 8/9.
https://takeielts.britishcouncil.org/find-out-about-results/understand-your-ielts-scores
Programming languages
- Low level programming (C, some C++, Arduino, assembly)
- High level programming (Java, C#, .netcore, .net, Javascript)
- Script (Python, PHP, Matlab)
- Model-based design in Simulink
- Web (HTML, CSS, PHP, Javascript)
Software
- I am comfortable in OSX, Windows, Linux (Ubuntu)
- Matlab, Simulink
- Catia, SolidWorks
- Eagle PCB, Altium Designer, Kicad
- I can work with the important Adobe products for image- and photo editing.
- Git, SVN, and version control in general.