I would agree but I am adding the people that pay for the coders work into this equation ("managers"), and they need function in time. Some (most?) of them seem to consider the design decisions the coders problem. It's in the coders interest to make the code easily expandable, integrable, reusable, readable, to make the coders life easier, to allow them to easily meet the business goals.
Of course every programmer would like to make the best design, but sometimes there's no time for it, and that's when slow/fast/experiensed characteristics come into play
You say "usually", so I assume googling forums for similar design decisions and having internal discussion within myself can count, without having a crowd of fellow programmers physically beside you? If you're capable to hold such an internal reflection, then basically you can "google for experience"
Sborex, the low code platform | Java Camel+JSSE developer | Remote via Upwork
A team (currently headquartered in Russia) developing a low code platform with a graphical flowchart engine for defining and executing Apache Camel routes seeks an experienced Java developer with Apache Camel knowledge. The requirements are as follows:
- Apache Camel.
- JSSE (the security)
- Having good experience with relational databases is also wanted.
- Experience with docker/kubernetes, including invoking them from Camel will be much appreciated.
- Knowing BPMN (activiti/flowable/camunda/jbpm) and SIP aren't required but would be helpful.
- We don't use Spring/Boot, your knowledge of it would only be helpful as a source of useful patterns.
In Camel, it would be good if you were familiar with components like Jetty, Netty, websockets, SIP, LDAP, Docker etc.
My native speaking language is Russian and I can speak English, but I better understand the American accent (I think).
Your task will be to create different processes within the platform and in parallel to learn the java codebase to be able to add the missing features and fix bugs. I, the initial author, will always be around to navigate you through the code.
I was developing a way to easily configure the CRM app we had on my previous job, and eventually came up with my own BPMN execution engine that started to look like just a low code platform for anything.
This is an example how a customer record for a CRM app can be configured visually. It's both the record manipulation and a conversation script in one, just for demo purposes.
I have an ad blocker in my mind that filters out any commercially looking or sounding message. not only it works on websites but in the streets for billboards, during voice phone calls and face to face conversations.
the ugly ad that violates most of the ad traditions is more likely to be followed by me. (especially if it lacks the call to action part. I hate calls to action. especially when it's me who's going to pay)
How is it even working? How a city is going to tax a company registered in, say, Delaware? What if every municipality in the world decide to tax every company created everywhere?
The article mentions another city where it's working - Portland, afair. How's it possible?
I wrote a visual flowchart execution engine with multiple machine protocol connectors. You can also hang a web page here and there on the diagram to provide the means of interaction with human users.
The demo app contains a proto-CRM and a quick implementation of a SIP server. It runs on Java 8+.
Please tell me what you think about this thing. Are there any services or apps that you would draw with such a tool once it's ready?
=============
I was exploring the existing visual process design toolkits like BPMN execution engines for my work (fintech), but I quickly learned that they weren't working as I was expecting.
They were aiming on orchestrating the workflows as business processes, without focus on real-time execution. For integration purposes a developer would need to embed and configure some different tool along with the process engine.
So I started coding, implementing the engine from scratch, redefining slightly the meaning of BPMN elements to my understanding:
- Message Event became an Apache Camel endpoint consumer or producer - basically waiting or issuing an external system call via some API. The user, with an Apache's extensive component list and their docs as a cheat sheet [1] would define the app's integration points: reading files, listening to restful requests ans so on.
- User Task instead of being just an input form became a full blown web page or page fragment. The user is presented with the process-bound data in a legible form to make a decision and to complete the user task.
- I added web page templates to the processes themselves. Now you may design a complex web page with dynamical parts that are represented by the currently waiting process User Tasks page fragments.
- The "multi-instance" elements will work with long streams sequentially splitting them in chunks;
- Some other less obvious things were made like the "stream parallelizer" to direct the stream bytes to different consumers simultaneously. The process, for example, will be able to send audio to the user and in parallel to the speech recognition software (and then to the user in a form of text).
Hey, nice grid. Please consider multiple column sort / grouping. It will suddenly make it like analytics tool... And if add some statistical functions... Maybe too much for client side, but who knows