Being a startup CTO in Stuttgart responsible for evaluating applicants and developing developers to engineers
In Germany — and particularly in Stuttgart — we are very proud of our engineering capabilities and this relates to many different areas. As far as I can say, most of the people relate engineering skills to hardware products.
Now, being CTO of a young tech company I have to answer two very important questions every single day:
- What makes a good software engineer?
- What can I do myself to find and develop the best engineers for LASERHUB?
I will try to answer both of these questions and why I believe they are so important.
What makes a good software engineer?
First of all, I do not talk about software development — I carefully chose the term of a software engineer. Here’s my line of thinking: developers write code in various languages, on various platforms, for various audiences and they achieve results relatively easy.
Engineers in contrast handcraft code with more then NLOC (number lines of code) in mind. There’s more behind building software. I often compare software engineering with usual architecture. Building a house can be achieved by lots of people | building a house lasting 50, 85 or even 200 years is sth. special.
This post can be related to this post on hackernoon and will be more concrete on the specific skill set of an engineer. Besides that, I do not believe that using one term over the other has an implication on culture — as statet by some of the interviewees in the article.
Now, what makes a good software engineer (from my personal experience)? Here are some of the skills, I want to bring to the table. I will not argue that everyone needs to perfect every single skill in the list. I want to foremost increase awareness for all these types of professional skills relevant for assessing and guiding my team to become better engineers every day.
- Tool / Framework Awareness
- Tool / Framework Proficiency
- Language tool chain
- Reading and working within other developers’ code
- Database handling end-to-end
- Code design (patterns)
- Attention to detail (or finding bugs)
- Creative solution design
- TDD + Testing in general
- DevOps tool chain
- From req to tec (requirements analysis)
- App design / architecture
- Answering the Triple-R questions (re-use, re-factor, re-build)
- Having a sense of business, knowing the context and following an entrepreneurial mindest
Easy to notice that there is some web engineering focus behind some of them. This list is not exhaustive, but might be a good start. What do you think?
What can I do myself to build a best-in-class team of engineers for LASERHUB?
Besides planing, building and running the best digital platform for sheet metal parts, I believe that enabling your development (oh sorry) engineering team is one of my key responsibilites. There are several goals, why these actitivies are key success factors, especially for a startup.
Let’s put this in a rather causal chain: Good engineers produce better maintainable code | better, maintainable code relieves all the team (including me) of having to deal with to-be-refactored-code | having more time enables all the team to better think about requirements, app design, testing, CI/CD and reviewing code | seeing more good code makes engineers learnings from each other (and happy) | knowing more results in better code and so on.
Now, at LASERHUB we currently (at the time of this article) are a team of 1 FTE (full-time engineer, me), 2 working students (both 0,5 FTE) and 2 freelancers (0,25–0,5 FTE). While searching for new talents (yes — we are hiring!), I talk to many, many developers with quite a different level and attitude towards software engineering. You can imagine, that being a startup CTO does not fully allow you to care about team developement. Anyway, I truly believe that this will differentiate LASERHUB in the feature. Having the best engineering team to build the best products for our industry.
Therefore, I need start to make my team better:
We lately hosted a small hackathon — which was more of a day-long workshop. Topic: our API. Result: Target picture for API structure, resource models and ORM | besides having a great time discussing with each other and learning from each other.
Next, I wanna start having a structured discussion with all team members on a regular basis. My plan is to first raise awareness among all my engineers about where they stand (from a skill perspective), where they excel or lack behind and how they can do the next step. Following a “strength oriented culture of leading” — I will then define measures which both sides believe are worth diving into.
I plan to use a Typeform for that which is regularly send out and updated. I will most probably use it for skill assessments during all ongoing interview efforts as well. In case this is successful, I will surely let you know.
Last but not least, I put great efforts in evolving our platform and company to a developer friendly one. This is all related to LASERHUB’s purpose, product management, testing, DevOps, Tech Stack, remote work, other Perks, team and CULTURE. @ Developers: What else do you need?
Now, my list is neither exhaustive nor bullet-proof correct. It is probably more of an externalization of my personal believes in good software engineers. I definetely forgot very important and obvious things, I probalby did not explain parts of them enough and I might be wrong with some of them. If so, give me a hint and I will take your propositions into account right away.