
Benjamin Vettier
Verified Expert in Engineering
Software Developer
Grenoble, France
Toptal member since March 18, 2021
Having more than twenty years of experience in software development, Benjamin went from junior developer to tech lead and software architect while always keeping some coding tasks to keep in touch with “concrete” deliverables. His main asset is a perfect command of object-oriented programming and domain modeling, combined with a desire to understand and address user needs.
Portfolio
Experience
- C# - 10 years
- .NET - 10 years
- Java - 9 years
- Windows Presentation Foundation (WPF) - 4 years
- REST - 3 years
- JavaScript - 2 years
- Swift 5 - 1 year
- Python - 1 year
Availability
Preferred Environment
IntelliJ IDEA, Apache Maven, MacOS
The most amazing...
...service I've designed and helped develop was a service using constraint-based models to help electricians design switchboards.
Work Experience
Senior Software Engineer
Halias Technologies
- Participated in rewriting an existing application with a mobile-first approach with Vue.js 3 and Vuex as part of a team.
- Investigated different ways to support offline mode on mobile Android and iOS devices and implemented the solution selected by the team.
- Wrote code, submitted merge requests, performed code reviews, and participated in sprint meetings.
Senior Software Engineer
Halias Technologies
- Designed and developed REST APIs allowing users to compute costs and earnings for solar panel installations. These APIs were implemented as a Java Spring Boot application.
- Developed and designed REST APIs to generate PDF files from HTML templates, injecting values from a solar panel installation simulation. PDF rendition is performed by Puppeteer, and the API is implemented as a small Node.js application.
- Participated in the development of the front-end application based on the Vue.js framework.
Developer
Self-employed
- Developed a native iOS application that runs offline quizzes for students in Swift using the SwiftUI language.
- Created a tool to convert quizzes in Moodle XML format to an internal structure, more appropriate for offline use.
- Built a parser and interpreter for an algebraic formula in Swift, using the parser generator ANTLR.
Developer
Self-employed
- Designed and developed an inference engine in Java that computes possible solutions for constraint models. The engine is exposed by two REST APIs for authoring and execution.
- Implemented a pure JavaScript-based web app to use the authoring API to design constraint models.
- Made implementation of a Vue.js-based web app to use the authoring API to design constraint models and execute the models.
- Implemented a SwiftUI-based native iOS app to use the authoring API to design constraint models.
Freelance Software Architect
Schneider Electric
- Designed and implemented an inference engine in Java to let the team model the space of valid associations of some products.
- Designed a REST API for designing an electrical switchboard, in collaboration with the architecture team.
- Leveraged my knowledge of the domain by working with the project owner to formalize and prioritize user stories.
- Acted as the point of contact for the offshore client team to offer support and provide answers, either technical or domain-related.
- Took part in all Agile ceremonies, including daily standup meetings and sprint planning meetings.
- Designed and implemented in Java a REST API representing an electrical distribution project, stored in a MySQL database.
Freelance Senior C# Developer
Schneider Electric
- Developed a WPF-based Windows application with a generic architecture to support various ranges of controllers in the Schneider product catalog.
- Designed user interfaces and execution flow to smooth the differences between the commissioning procedures required by targeted hardware.
- Implemented some specific low-level features to support hardware protocol like EnOcean.
Freelance Software Architect
Schneider Electric
- Designed, documented, and validated object models through UML artifacts such as class diagrams and sequence diagrams.
- Reviewed business requirements and translated them into technical solutions.
- Implemented parts of the application in C#, especially the domain-related algorithms.
- Participated in the definition of a format for describing an electrical distribution project, used by many applications in Schneider.
- Led the development team, composed of 4-6 developers and one tester.
Freelance Functional Analyst
Schneider Electric
- Delivered a formal, consistent set of use cases and a domain model to support them as UML artifacts.
- Interviewed domain experts and marketing team members to capture the requirements and fully understand the domain entities and workflow.
- Developed prototypes to explore potential technical solutions.
Freelance Software Architect
Schneider Electric
- Designed a set of technical and domain-related components to be used as a starter kit for new applications.
- Performed peer reviews and validations of artifacts, such as requirements, UML specification, and code, produced by the team.
- Took part in the development of some components in C# and Windows Forms.
- Provided guidelines to other teams on object design and coding rules.
Experience
API for Electrical Switchboard Design
I was the architect and also a developer in a team of five developers. My role was to define the technical solution to the business requirements and to provide the domain model and main algorithms. The implementation was Java-based, using the Spring Framework. The team followed an Agile methodology, and we delivered a new version to our internal client every two weeks.
Windows Application for Electrical Switchboard Design
I was the architect and tech lead of a team of 8-10 developers. My role was to design a technical solution to address the functional and non-functional requirements, document and validate that solution, and oversee its implementation by the development team. I also helped with some coding tasks when needed. This project allowed me to work on many aspects of the project, from functional analysis and software design to coding and testing, with a touch of team management and planning.
The technical environment was Microsoft C# using the Windows Presentation Framework (WPF) for the user interface; we used Visual Studio and Team Foundation Server for the version control system.
Foundations for Migration of Application Portfolio
I served as the architect and tech lead of the project, in charge of capturing the requirements, both business and technical, that could be shared between several applications that were previously developed independently. After these requirements were agreed upon, my role was to design a solution and oversee the actual development of the components in C# and Windows Forms for the user interface. I led the development team, composed of 4-6 developers and one tester. The development lifecycle followed the V-Model, and the organization was working to obtain CMMI Level 3 certification.
Education
Master's Degree in Computer Science
Grenoble National School of Computer Science and Applied Mathematics (Ensimag) - Grenoble, France
Skills
Libraries/APIs
REST APIs, Vue, Windows Forms (WinForms), Vuex, Puppeteer, Node.js
Tools
IntelliJ IDEA, Visual Studio, Git, ANTLR 4, Xcode, Apache Maven, PyCharm, Jenkins
Languages
Java, C#, XML, Swift 5, JavaScript, SQL, Swift, Python, UML, C++, Java 15, HTML, CSS, Lua
Frameworks
Windows Presentation Foundation (WPF), .NET, Spring, SwiftUI, Tailwind CSS, Ionic, Spring Boot, Spring Security
Paradigms
Functional Analysis, REST, Design Patterns, Agile, Scrum
Platforms
MacOS, iOS
Storage
MySQL, Databases, Spring Data
Other
Software Design, Back-end, Software Engineering, Relational Database Design, Algorithms, APIs, UML Diagrams, Complexity Theory, Web Development, Full-stack, Front-end
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring