Here, I provide an overview about my life as a passionate Software Craftsman:
Here is some additional information about my work:
Management Summary
The passionate software craftsman Steven Schwenke has 15 years of experience in several roles of software development, mainly in the automotive industry. Technologically, he focuses on Java and AWS. Steven is a speaker, blogger, YouTuber and book author. Working in IT is Stevens vocation, which is why he is actively involved in many community activities.
General Information
π- Born in 1985
- Living in Salzgitter, Niedersachsen, Germany
- Married, two children
- Languages: German (native, C2), English (fluent, C1)
Primary Strengths
πMy primary strengths are the combination of what I am capable of doing and what I would like to do:
- Inspire people for a given, clearly defined mission statement that fits my personal mission statement and thereby building a powerful team
- Share knowledge and experience via talks and workshops that are tailored to the situation of the audience and orchestrated to fit the organizations goals
- Review, analyze and structure processes, code and software architectures and support the implementation of an improved version
Secondary Strengths
πAlthough I am capable of doing the following tasks, as can be expected of a software craftsman with my experience, they are not the most efficient way of utilizing my strengths:
- Quick, hardcore programming, using the most recent technologies: Because of my focus on technical lead roles, I would need some time to get into the details of a new technology. I would rather support a team of developers in using new technologies, improving their methods and become a powerful team.
- Focusing solely on one aspect of software development like just business domain or just technical architecture: I successfully supported a number of customers in converting their abstract business vision into agile stories and technical tasks. While this is a very important task, my strengths lie in the combination and synergies of the various tasks of software craftsmanship.
Work Experience
πI have worked in the following customer projects. If you are interested in my private side projects, please visit my projects overview.
Writing offers
I supported a diverse team of developers, designers, architects and management in writing offers for new projects and pitch them to the customer.
This further improved my writing skills that I am developing for years by writing my blog posts and books. Also, I learned how to extract most important aspects from the customers documents.
AWS Partner Management
In a team of four, I worked toward acquiring one of the AWS competencies.
Developing on the AWS platform for some years, I got the chance to gain more understanding of the AWS strategy, partner management and documentation about processes and methods.
Development Products Dashboard (Greenfield Product)
Java 11, React, Spring Boot, Maven, Junit 5, ArchUnit, AWS (ECR, ECS, Lambda, Aurora, S3)
After conceptualizing the product vision of an internal dashboard for software development projects and pitching it successfully to the top management, I lead a team of six developers in implementing the product. I lead both the technical development as well as the progression of the domain logic.
This was the first project where I took on the role of product owner, which taught me a lot about creating a roadmap from a first vision to a deployment-ready product. Part of this task was to communicate my ideas to several stakeholders like the development team and the management.
Developer, Architect, Technical Team Lead, Product Owner
Vehicle Modification Tracking System (Greenfield)
Java 11, React, Spring Boot, Maven, Junit 5, ArchUnit, AWS (ECR, ECS, Lambda, Aurora, S3)
Besides my customer projects, I was involved in writing offers to win new projects. After (again) winning one, I was tasked to set up a development team to implement the software system. Starting from the architecture I laid out in the offer, I lead the team of eight developers, leading to a very successful go-live not only for the targeted department, but also for other departments that were interested in the system later on.
One of the most important decisions I made quite early in this project was to transfer my task of setting up the AWS environment to a young colleague who wanted to learn more about AWS. Although I was looking forward to get some hands-on with this topic myself, the project benefited from this decision because I could focus on methods and processes. Being the main reviewer of the infrastructure code, I was at least passively involved in this detail.
Developer, Architect, Technical Team Lead
Business Consulting Company Strategy
Being generally interested in the business side of software development and having strong analytical and structural thinking qualified me for a non-development project. I joined a team of six business consultants in supporting a new customer in the automotive industry, implementing some big changes in their organization.
Although I was not the main consultant, I was in direct contact with many of the customers key roles, interviewing them and supporting building the overall picture.
Business Consulting
Vehicle Configuration (Greenfield)
Java 8 - 12, Angular 7 - 8, Spring Boot 2, Spring MVC, Spring Security, Spring Data, Spring HATEOAS, Axon 4, Pivotal Cloudfoundry, Continuous Deployment via ConcourseCI and Atlassian Bamboo, JUnit 5, ArchUnit, Java Test Containers, Maven, Docker
Over many years, I supported a team of nine to twelve developers in creating multiple modules for a new vehicle configuration system. Besides other colleagues, I was responsible for the technical design and implementation of the modules.
Many of my dearest memories of this time are the uncounted pair programming sessions and architectural discussions with experienced architects. In addition, I learned a lot about how to automate the deployment of our systems.
Developer, Architect, Technical Team Lead
Idea Management System (Greenfield Product)
Java 8, Angular 6, Spring MVC, JUnit 5, Maven
Leading a team of four young software craftsmen still in their apprenticeship, I was responsible for the technical design, implementation and timely delivery of a new internal idea management product.
Having worked with colleagues ranging from young apprentices to experienced architects, it was a great time working with coworkers still at the beginning of their career. At the end of the project, I was told that my team colleagues benefited from the many little discussions, pair programming sessions and code reviews we had. Again I realized that working in the IT industry for a couple of years builds up a lot of knowledge, even if you don't realize it.
Developer, Architect, Technical Team Lead
JavaFX Framework Development
JavaFX
Besides my other projects, I was involved in the development of a JavaFX based framework that was used in a number of projects.
Although I was not a main developer of the framework, I learned a lot about the communication involved in getting all the projects on board that used the framework.
Developer, Architect
Planning Tool for Global Vehicle Production (Greenfield)
Java 8, JavaFX, Spring MVC 4.2, Spring Data 1.9, Hibernate 4.3, Liquibase 3.4, HSQLDB 2.3, Oracle 11g DB, Tomcat 8 Server, Continuous Deployment via Atlassian Stack (JIRA, Bamboo, Stash), Degraph 0.1.2, JUnit 4, JUnit 5, Maven
After gathering much knowledge in the business domain of the customers planning systems, I lead a team of seven developers in creating a completely new software system for this task. In tight cooperation with the customer, we developed a new approach to the problem. I took responsibility for the technical design and the implementation of the system.
As this was the first team lead role for me, my daily work shifted towards reviews, pair programming, planning and moderating decision processes and communication with several stakeholders. The challenge of managing so many different tasks in parallel increased my interest in self management and productivity. Executing many one-on-ones with my team members over two years, I saw the importance of what is known as "soft skills". However, I tend to call it "catalyst skills" because they can be the key to a successful team.
Developer, Architect, Technical Team Lead, partially Scrum Master
Planning Tool for Global Vehicle Production (Legacy)
Java 6, Java 7, Java Swing Rich Client, Websphere, Ant, Maven
While completely rewriting the former project, I learned a lot about how to deal with legacy code that is less structured and untested. I used this experience in supporting a team of four to add features to an even older codebase, partially modernizing it.
I studied new methods about how to deal with old codebases such a the Mikado Method and the Golden Record Pattern and began teaching about those in workshops like legacy code retreats.
Developer with supporting architectural tasks
Controlling Tool Module
Java 7, Java 8, Spring MVC, JavaFX, Oracle database, Hibernate, Java Swing, Maven
After a brief onboarding, I took the lead in developing one of the modules of the controlling tool I worked in for the last six months. In close kooperation with the customer, I developed features as a full stack developer while coordinating with other teams to ensure a smooth integration.
The main challenge was a complete rewrite of the application from Java Swing to JavaFX. Even years later, I was known as someone who actually enjoyed working in a legacy codebase because of all the possibilities to enhance it while keeping it running.
Developer
Controlling Tool
Java 6, Spring MVC, Oracle database, Hibernate, Java Swing, Ant
After joining a new company, I supported a team of ten developers who worked on an internal management software comprised of a number of modules, built on a common framework.
Because the development team was located on-site, I learned a lot about agile processes in direct contact with the customer.
Developer
Logistics Calculation Tool
Java, Java Script, Spring MVC, Oracle database, Hibernate, ExtJS 3, ExtJS 4
As my first real project, I joined a team of four developers to develop a logistics calculation tool for a big German car manufacturer.
In my first real software development project, I learned a lot about the work of a development team that was also responsible for deploying the application on-site. On the technical side, I deepening my knowledge in Java, learned Java Script and the frontend framework ExtJS.
Developer
Employers
πSteven Schwenke Solutions (Freelancer)
msg systems ag
LINEAS Informationstechnik GmbH
Volkswagen AG (Internship)
Sirenen - Bewusste Sicherheit (Freelancer)
Education
πMaster of Computer Science
Abitur (Equivalent to A-Levels/High School Diploma)
Work Preferences
πMy working environment should fit to a small but important set of preferences:
- To maintain my high productivity levels, I prefer using an Apple computer, such as a MacBook.
- While occasional travel is manageable, a remote-first work arrangement is essential for me to support my family.
- Flexible working hours enable me to focus optimally during my peak concentration times.