Software engineer & Trainer
I am Simon
I'm a visionary for software engineering and a pragmatist in writing code. I love teaching how I build stuff with the click-clacks of my keyboard because I'm talented in explaining. If a culture of conveying know-how to team mates prevails, even complex software projects will succeed.
Contact me and we can discuss your challenge and how I could be helpful to tackle it:
Learn with me
Learn programming with a set of courses I compile for your needs and your prior knowledge. While you are taking the courses I'm ready to help you with specific questions the course creators left open and are not available to answer. My usual choices to start to learn programming are:
- Python 3, if you have a scientific background and your goal is to automate parts of your work flow or you want to use any type of machine learning.
- Golang, if you want to learn programming from scratch, or your intention is to become a versatile developer capable to build modular systems of any scale.
- TypeScript & React, if you are or want to become a frontend developer that ties together functionality from any ready-to-use backend/SaaS out there. Of course we also have to use (as little as possible) of HTML/CSS for markup and styling. To keep that mess under control I currently favor styled components for styling react components using tailwindcss as your CSS framework.
Custom advanced coding support & code reviews
I advise you with your current project or professional work. When we solved potential NDA questions, we directly jump into your code together, I give you a hand to solve your most challenging problems or help you through the parts most difficult to grasp. From there I support you by
- code reviews for critical PRs
- pair programming sessions
- my direct contributions for fundamental architectorial changes, refactorings or new integrations of libraries we decided to integrate
Grow with me
Architecture for your purpose
I help you finding the right choices for your tech stack. Carefully evaluated, honestly judged we will find the best fit for your needs. If it happens that tech decided on does not belong to my core specialities, I might adapt it quickly or I will recommend you somebody from my network that is able to support you even quicker.
Train your team
You have chosen your tech and tools but your team is not efficient yet? Or they are efficient delivering code but as a team they are not effective to reach your business goal? In my experience, proper training can double or triple the effectivness. This is mainly achieved by developers becoming more confortable with their craft. They become more focused, take initiative and ownership for the parts they know best. And last but not least, they will have more fun to build and get that thing done!
Establish engineering standards
For larger software products, a minimal set of engineering standards are inevitable. As a code base grows, developers will spend more time reading code. Coding standards ensure code is written in a consistent style, which sole purpose is to make code easier to read. The "rules" are best defined together with the team and are validated before they get applied to the greater part of your code base. Once established, the standards get enforced by linters and the like as part of your CI/CD.
Count on me
Boost your team
Delivering on my own is easy but limited by my finite time. That's why I prefer collaborations where I work closely with a team and empower them in a few months to do fine without me or having me just as an occacional reviewer or last resort for difficult decisions. I achieve this by coaching team members individually, exemplifying a culture of humble learning and teaching. I never capture knowledge, I share it openly until team members are perfectly ready to take over my lead. I ensure this by
- helping to find consensus of fundamental tech choices
- writing excellent documentation for technical design decisions and established engineering standards
- using tutorial style docs & even videos to provide a seemless onboarding experience for new team joiners
If any of my services got your interest, contact me and we can discuss your challenge and how I could be helpful to tackle it:
I'm currently building up my company, evaluating the legal structure. This includes the idea to found a cooperative with cool volks I know and trust. I believe today's challenges of digitalizing whole sectors require very dynamic and diverse teams and continous education.