I am normally writing a long time on a post. But for this one I try to make it short…
Do you guys can share experiences with self-employment on the topic language engineering?
I ask for finding inspiration… I know Federico does a great job or also Lars Vogel (vogella.com)… but that might be thought as already too advanced…
I could also imagine one could freelance and maintain own language-engineering-related plugins like for vscode…
(bah I am looking for too long on this post, SENT…)
It’s not always easy to be self-employed and focus exclusively on language engineering. It depends a lot on your network even more than usual because everyone is aware of needing a Java dev, but not everyone knows language engineering (and/or model-driven development, under the MD* acronym for here on) or that they need a specialist engineer to be doing that. In my experience, “sneaking in” doesn’t really work: either a gig is SLE/MD*-related from the get-go, or it won’t become SLE/MD*-related at any time.
Of course, it helps to have an online presence so people can get to know you as a language engineer: blogs, GitHub repos, plugins, etc. Going to conferences could work, provided you select which ones you go to: the more academically-oriented ones are very nice, but are unlikely to grow your network in industry - you know, where people actually have money to hire you as a consultant.
- Get in contact with companies that are actively hiring language engineers - most of these would prefer someone on a fixed contract, but since language engineers are rare, they might be open to filling a position temporarily with a consultant. You could start by having a look at the other posts in this category (“Business & Jobs”).
- Paid courses/workshops - takes quite an investment time-wise, but can pay off handsomely although probably very irregularly.
Almost forgot: if you don’t know JetBrains’ MPS already, get to know it If you already do: advertise that (e.g., Sergej Koščejev is doing a marvelous job there), and get better at it.
About (or at least!) half of all SLE jobs in industry seem to be MPS-specific.
I worked as a freelance engineer from 2015 to 2020 in Germany (I understand you are also based in Germany).
I mainly tried to work on projects related to language design/engineering, but as Meinte already pointed out, it is not so easy to keep busy just serving this field. This is probably not what you want to hear, but you need to be really lucky to find a customer that is looking for an individual to help with a language-engineering-related task. Either a company already does MD*-related stuff, which means they will likely look for a new employee, or, these projects are somewhat experimental and therefore considered higher risk. For that matter, it only makes sense for a company to approach a consulting company like itemis over a freelancing individual. Another reason is that these projects tend to be or become big if successful, and they involve training in-house staff as well as building prototypes / POCs, which is a lot of work for an individual.
I personally think that it is hardly possible to build a freelancing career solely on language engineering as your field of expertise.
Something that might be only true for Germany is that the whole recruiter-system we have here makes things much worse, cause recruiters usually have no clue what their customers need and what they are talking about. I had interactions with tons of recruiters during my freelance years, and the only remotely positive ones were with British and US recruiters, 100% of my interactions with German recruiters were terrible. This makes it even harder to approach companies pro-actively, pitching MD*-related ideas to them.
I cannot speak from experience wrt. maintaining plugins. Do you mean as open-source projects, or products you would want to sell?
I like language engineering, but if I am honest to myself, it think I cannot focus on that one topic…
I once looked into Jetbrains MPS, I also have two books about it (which were not soo helpful, as I thought they were…). I would like to learn more, especially about the parts where you have to address Java modules… as far as I remember it was hard for me to find out how to visualize graphs…
About the plugin development I got a hint from a friend to implement an integration of a tool into any environment. The company behind the tool could pay you. Very abstract ^^…