I am a developer striving for advanced automation in programming, using a new methodology called MWD (Micro-wise-Development). This automation aims to integrate deterministic approaches based on conventional programming with dynamic approaches powered by AI.
Currently, I dedicate most of my time and resources to my core projects as an independent developer, while also holding a working student position in the Data Science field on a temporary basis.
MWD is an innovative development methodology that I believe will be widely adopted by professional developers in the future. As the creator and an early adopter of MWD, I am confident in the efficiency gains it can bring to diverse development environments. If you are interested in introducing MWD into your organization or exploring its business potential, please contact me at sisung.kim1@gmail.com.
Micro-wise-Development (MWD) is an innovative methodology where every software feature is modularized into its smallest functional units, each independently managed in its own repository. From small utilities for personal use to sophisticated and high-dimensional features for many users, all code is broken down into micro-sized components for development.
I apply this methodology to over 100 repositories I maintain and dozens of PyPI packages. MWD encourages individual developers to actively publish small modules, and all of my packages are managed under the namespace "crimson" to prevent conflicts and maintain consistent branding within the community.
Currently, documentation is omitted for most of my repositories based on strategic reasons:
- Not all modules are intended for official release
- Documentation is supplementary to the core implementation
- Traditional documentation limits flexibility for module modifications and extensions
- The goal is to achieve complete automation of documentation, avoiding temporary manual efforts
Instead, newer Python modules include an example
folder, which serves both as documentation and as a test suite through nbval.
Alternatively, the File-Loader module offers a creative approach. All my modules are composed of just a few scripts. The structure generated in the flatten_module folder by [control.ipynb] can be completely explained by a chatbot like Sonnet. These scripts make extensive documentation unnecessary since they are easily understood with chatbot assistance.
My development work is driven by real needs. Although the AutoDocs system is in progress, I don't have an immediate necessity to document all my modules for myself as the primary developer. However, if there is demand, I can adjust the development priorities accordingly, so feel free to reach out if interested.
In order to surpass the limits of traditional development practices, I challenge many conventions, leading to experimental efforts aimed at improving the development environment:
-
IntelliType: An initial approach to enhance Python's type hinting system. This approach particularly challenges the traditional documentation methods for arguments that are often duplicated across various places without being explicitly bound.
-
Types: The experimental lab to explore innovative type hinting ideas and annotations in their smallest forms.
-
AutoPydantic: A tool that automatically converts function specifications into Pydantic models. Initially developed for runtime type checking, it has evolved into a powerful analysis tool.
-
ExecutableTypes: A specialized type system in enhancing AI model development by enabling dynamic validation of tensor shapes through type hints. It effectively conveys the value of making complex models more comprehensible, without requiring deep analysis.
To enhance the development environment and eventually provide services for end users, I am focusing on developing VSCode and Chrome extensions. Practicing MWD requires frequent environment setups, and the TypeScript ecosystem, compared to Python, involves a more complex set of configurations. To eliminate the inefficiencies of re-implementing functions from Python to TypeScript and to leverage VSCode's extension-driven development convenience in Python, I am pursuing the integration of both languages:
-
ITSNB: An experimental project to implement an efficient experimentation/development environment in TypeScript similar to Python's .ipynb files. Currently, the TypeScript ecosystem lacks an equivalent research and development environment.
-
PY-TS-Types: A foundational module automating type mapping between Python and TypeScript, serving as a cornerstone for their integration.
-
Storybook: A framework I am actively using. The Controls feature, in particular, is expected to play a crucial role in auto-generating interactive documentation pages for Python modules following the Python-TypeScript integration.
-
RunVscode: An initial experimental project for programmatically controlling VSCode extensions. Though currently in a legacy state, the documentation page generated using Storybook provides an early example of creating a documentation page using Storybook.