Aus der Werkzeugkiste, Teil 2, Golo @ heise Developer, June 24th, 2016
Brückenschlag, Golo @ heise Developer, March 11th, 2016
Analyse: Was SQL Server für Linux für Microsoft bedeutet, Golo @ heise Developer, March 8th, 2016
Ich kenne was, was Du nicht kennst: Highland, Golo @ heise Developer, February 22nd, 2016
We have written more than 250 articles for IT magazines, and we have given more than 150 talks at conferences, including 11 keynotes. Do you want us to speak at yours?
Founder, CTO and managing partner of the native web. Loves JavaScript, Node.js, Lisp, apples and raspberries. Favors Unix and the shell. Spreads knowledge.
Frontend architect and UI minimalist. Loves animating things on a screen and tinkering with the latest web tech. Addicted to coffee and music.
Full-stack developer, Linux geek and automation addicted. Loves JavaScript, Go, science, and labradors. Has a master's degree in biology.
Managing partner of the native web and Intuity. Loves the internet of things and 'bull's-eye grilled onion & garlic showdown'. Think big and start small.
In technology, the only constant is change. For us, that's nothing to worry about. To the contrary, we look forward to tomorrow, and openly welcome all the interesting and exciting things the new day will bring.
We believe that having the chance to learn and to evolve every day is a valuable privilege that we are very thankful for. Having a deep desire for knowledge, we take hard problems as welcome challenges, not vice versa.
To be open means to regularly question and throw away yesterday's work, and to acknowledge your faults. In our team, we help each other to have the courage that is required for that.
Since we want to deliver elegant yet simple solutions of high quality for complex problems, we care about details with love: things are done when they are done, and we give them the time they need to mature.
Getting things conceptually right means finding answers at a lower level. That's why we question things over and over again. This way we want to get to well-thought answers that are composable and sustainable.
Discovering and developing things works better if you're not alone. Hence we pair for everything and always talk about what we think. We are deeply convinced that one and one makes more than just two.
Since everybody is deeply rooted somewhere, we want you to live wherever you want. Although we have various offices, any place with a cozy desk, a cellular network and web access is fine. On earth and beyond.
We believe that listening to each other helps to build sympathy and trust. This very same principle we apply to technology. Hence we favor following open standards over proprietary vendor-specific engineering.
Last but not least, spreading knowledge is a core value for us. As we've said we look optimistic into the future and love to learn. If you do, too, and if you share our culture, we'd love to welcome you.
Regardless of whether you are creating an enterprise web product or the next cloud application, you need a modern and sustainable architecture.
We help you set up your architectural strategy and define specific tactical steps that are individually tailored to your team's skills.
For us, the 3-tier architecture is not the end of the story. In fact, it's just the beginning. And there is way more to be told: Micro services, SOA, CQRS, SEDA & co.
Having awesome technology at hand is one thing, being able to master it is another. For us, this means becoming a committed full-stack JavaScript engineer who is able to think outside the box, too.
Hence, we teach JavaScript and Node.js, and also related technologies such as Git and Docker, to name a few.
We guide you from scratch to deep-dive, and also assist with specific problems. Since we have 10+ years of .NET experience, too, we are also specialists for migration.
Quality is a key factor for software to fulfill its functional and non-functional requirements. Hence we help you to drive your code to perfection.
We perform code reviews and act as your co-pilot in pair programming. We teach testing and TDD, and assist you in creating and implementing coding styleguides.
If the challenge is adopting a mindset for quality, our interdisciplinary team is happy to help you with proven guerilla tactics.
Honesty is the best policy. That's why we listen closely and carefully. We want to know who you are and what your challenges are made of.
We don't tell you what works for us, but what will work for you. We do this even if it's the uncomfortable truth that nobody likes to hear.
For us, feedback and criticism have to be constructive. This is our foundation to build trustful and therefore enduring relationships.
Software is not an end in itself. Instead, it gets written to solve an actual problem at hand. Unfortunately, there's a linguistic gap between business and development.
In other words, the languages in the problem and in the solution space are mutually exclusive. With us, things are entirely different.
Your business, your code, one language. This is our first directive. We enable you to model your business and code it in no time.
We don't suggest methodology X. Instead, we suggest to grasp what being agile means at its core and then to use whatever is right for the job.
Anyway, we are strongly opinionated how development should take place, and we are proud of our culture that is based on four core values.
Evolution. Elegance. Communication. Trust. That's us. And if you want to, we can help to make that yours, too. Just ask.
For us, quality and love for details are core values. Hence we deeply care about our code and the surrounding build process.
The heart of our build process is tourism, a convenience wrapper around Grunt, that allows us to easily configure code analysis, unit tests and anything else we need for development. Using eslint-config-es, our code analysis rules are also available standalone.
For testing we primarily rely on Mocha with a number of custom extensions: assertthat provides a syntax for fluent assertions, isolated encapsulates file-system based tests, and nodeenv controls environment variables.
Web applications are accessible by anyone, anywhere and anytime. That's why security is absolutely essential to us.
crypto2 is our base module that provides everything we need with respect to encryption, hashes and message digests. It enhances Node.js's integrated crypto module.
To identify users, we favor claims-based authentication over traditional approaches. Hence we have written limes, a middleware for Express and Socket.io.
Additionally, we use shaker to hash and verify passwords in a cryptographically secure way.
Since the dawn of single-page applications, the web has ultimately become real-time.
We believe that, from time to time, using a technology that has worked for decades is better than catching the next hype. Hence instead of using web sockets we rely on pure HTTP.
json-lines is a module for Express to push data to a client, be it Node.js or a browser. As its name suggests we use the JSON Lines format. json-lines-client is a client for json-lines that works with Node.js and the browser.
As foundation we have written http-browserify-2, a drop-in replacement for http-browserify that makes use of the streams2 API.
Any application, from CLI to cloud, needs to get a few basic things done. We have written a few modules that help with these tasks.
We believe that even CLI applications can be beautiful, hence we have created buntstift. In addition, to make them more fault-tolerant, we use findsuggestions.
For cloud applications, we have written flaschenpost, an opinionated logger that respects the Twelve-Factor App principles. Finally, there's processenv that parses environment variables.
Handling errors is a critical part for any application. Hence we have created a few modules to detect and work with errors.
First, since having custom error types is quite useful, we have created defekt. It reduces creation of custom error types to calling out their name.
To sensibly use custom error types you have to detect error cases. This means validating user data with formats as well as verifying function calls with ensurethat.
In addition to all the aforementioned modules, there are a few more that we have created.
To remote control Docker there are crew and tutum. To connect to RabbitMQ there's hase. To store blobs there's datendepot. For P2P networking there's p2p.
We could also talk about draht, an application event bus, or our evented timer called timer2, or… - but then we would never get to an end.
So, to learn more, visit us on GitHub. And don't be shy: issues and pull requests are highly welcome.
the native web GmbH
Hauptstraße 8
79359 Riegel am Kaiserstuhl
Germany
Managing partners are Susanna Roden, Stefan Brandys and Golo Roden
Phone +49 177 3373175
Mail [email protected]
Twitter @thenativeweb
GitHub thenativeweb
IBAN DE78 6001 0070 0946 4157 06
BIC PBNKDEFF
Registry court is Freiburg im Breisgau, Germany
Commercial register HRB 709303
German VAT no. DE 287 040 877
Registered office is Riegel am Kaiserstuhl, Germany
Responsible for content in accordance with § 55 section 2 RStV is the native web GmbH, address as above
© Copyright 2012-2016 the native web GmbH. All rights reserved.