Personal & contact information
- Name
- Tim Seckinger
- Nationality
- German (EU citizenship)
- Languages
- English (fluent)
- German (native)
- seckinger.tim@gmail.com
- GitHub
- jeysal
- Other links
- https://jeys.al
Keywords
You're in a rush, into buzzwords, or searching for something specific? What follows is a list of some of the things I am familiar with that spring to mind. Otherwise, I talk more about my main focus areas down at the bottom.
- Main interests
- Web technologies
- Testing
- Tooling & DX
- Compilers & static analysis
- Build systems
- Testing types
- Integration
- Unit
- UI
- End-to-end (e2e)
- Visual
- TDD
- Property-based
- Programming paradigms
- Functional
- Functional & Reactive
- Declarative
- Imperative
- Object-oriented
- Languages
- Primary:
- TypeScript
- JavaScript
- HTML
- CSS
Also used:- Rust
- Java
- ReScript
- Flow
- Groovy
- Golang
- C++
- C
- Bash
- Tools
- In-depth knowledge:
- Jest
- Babel
- Node.js & most of the JS ecosystem
- Git
- Vim
- Linux
Other:- Various cloud providers
- various CI/CD
- Gradle
- macOS
- Libraries
- Small selection:
- React
- Angular
- Cycle.js
- Emotion (CSS-in-JS)
- RxJS
- Express
- Spring
- Databases
- Neo4j
- MongoDB
- various SQL-based
- ORMs
- In-browser storage (offline-first)
Experience & education
- 2023-01 -RemoteTech Lead at PLAYT.net, building a multiplayer casual games platform in full-stack TypeScript for a late seed-stage startup.
- 2021-06 - 2022-08Remote
- 2019-10 - 2021-06London, UK / RemoteSoftware Engineer at YLD, specializing in React, Node.js, and other technologies in the JavaScript ecosystem. Architecting and leading development on a React component library and frontend for the ASAP Initiative. Helping migrate BBC Good Food to a React/Next.js frontend. Giving training in JavaScript, TypeScript, React, and testing topics.
- 2019-01 - 2021-05RemoteJest core contributor in spare time, maintenance and advancement of a popular open-source JavaScript testing platform.
- 2018-10 - 2019-09DTM/CGN/BER, DESoftware Engineer at adesso SE, full-stack TypeScript web development in a customer project using Scrum methodology. Architecting the frontend, managing developer tooling, and coaching developers without JavaScript experience.
- 2017-07 - 2018-09Dortmund, DEPart-time working student Software Engineer at adesso SE, agile product development of an IoT and data visualization platform.
- 2014-09 - 2018-12Dortmund, DEStudent at Fachhochschule Dortmund University of Applied Sciences and Arts.Awarded Bachelor of Science in Software Engineering (orig. "Softwaretechnik")Final grade 1.2 (scale 1.0 best to 4.0 worst)Thesis title: Compile-time abstraction of JavaScript mocking libraries powering a domain-specific language for interaction testing
- 2014-08 - 2017-06Dortmund, DEVocational education at adesso SE with parallel studies, development of Java backends and JavaScript frontends for internal web applications.
- - 2014-06Wetter, DESecondary education, concluded with Abitur (German high school degree).Average grade 1.6 (equiv. A in US / UK, scale 1.0 best to 4.0 worst)
Skills & specialties
Frontend engineering
While I've also done full-stack development, the majority of my work for many years now has been in frontend engineering. I enjoy the focus to detail that building user interfaces requires and the complexity that the asynchronous nature of UI brings with it.
I specialize in creating highly scalable and consistent frontend architectures in a small but skilled team, often from a green field, evolving abstractions as the need arises. I pursue structural solutions that leave no room for individual error in order to ensure scalability and avoid inconsistencies such as stale cache data or dead hyperlinks.
Taking a systematic approach to CSS, I treat it as code that has maintainability requirements not unlike JavaScript code, helping achieve consistent styling and layouting. I agree with a lot of the principles that Heydon Pickering outlines in the book Every Layout, but at the same time appreciate the power of CSS-in-JS when it comes to deduplicating everything from design tokens to entire grid layout templates.
Testing
I have extensive experience in software testing, applied to frontend testing and to testing various other kinds of codebases. Comprehensive and high-quality automated tests enable developers to work on a codebase with high confidence and velocity. To achieve this, tests must not only be sensitive (detect bugs with high reliability), but also specific (not fail due to changes that are not bugs). This is called resilient (as opposed to brittle) testing and is much harder to achieve, but it allows comprehensive testing while also keeping the codebase easy to refactor without failing tests reporting many false positives.
I am familiar with more specialized forms of testing, for example property-based testing, and know when and how to apply them in everyday tasks. I have coached teams in improving their standard of testing, as I have in other topics.
Through contributing to Jest, I have seen the various ways people use testing frameworks in the wild. I know about testing framework internals both specific to Jest and in general and can build infrastructure for advanced and large-scale testing setups. I am knowledgeable in testing complicated infrastructure code such as a testing framework itself.
I've sometimes appeared on podcasts talking about testing, such as expect(Exception) and German-language Working Draft.
Developer tooling
In addition to Jest, I have deep knowledge in and contributed to other crucical developer tools in the JS ecosystem, such as Babel, and extensive broad JS ecosystem knowledge accumulated over many years.
In most projects, I've taken responsibility for the setup of the developer tooling, configuring and extending it according to the specific needs of the team. I have set up multiple monorepos for codebases of different sizes.
I have experience with the highly asynchronous workflows used to solutionize on difficult technical challenges in open source work, RFC and proposal processes, and managing work efficiently with these long feedback cycles.