When technology grows up

About three years ago – at the end 2008/beginning of 2009 – I started tinkering with the first ideas for Taulia.  We decided to run on a technology stack based on Groovy and Grails.  Grails was widely unknown and had just entered 1.1-beta a little while ago.  Anybody who I told about Grails immediately said ‘Oh yeah I heard of Rails’ – meaning Ruby on Rails of course.  The Grails framework and Groovy language were far from being mainstream but there was the huge benefit and productivity boost of not wasting time with boiler-plate code and boiler-plate thoughts.  And even though the Grails source-code needed to be a steady source of knowledge and helped to debug the framework itself to understand why certain things worked and others didn’t it was worth the investment of learning and biting through the first plateaus of the learning curve.  Grails and Groovy lent themselves very well for building the first prototypes of what was to become the Taulia platform and our SAP connector.

Fast forward to 2012: We are still coding in Groovy and Grails at Taulia.  We are writing lots of code in Groovy and some in Java.  There are multiple Grails applications in our platform - besides other building blocks that are using different Java-based frameworks.  There also is Gradle sprinkled over everything to do our builds and automations.  It seems that we are reaching a tipping point regarding that technology stack.  Groovy has been in the top 40 of the tiobe index for some time and in the last months I see more people writing us about our job opportunities (yes, shameless plug) mentioning that they love coding with Groovy and Grails than ever before.  I don’t know if it is the Grails 2.0 release or if there are just enough people who have played with the stack over the past one or two years to reach that tipping point.  Fact is that I see many companies using and promoting this great language and framework and that real products have been and are being built with them.  Especially Europe seems to have caught on to the Grails-fever but I also get great feedback from US and Asia-based companies and people.  (Anybody at the Grails group care to share some Analytics on website traffic?)

It is great that the framework is getting the recognition it deserves and that the team behind it is still pushing forward and is releasing new features and improvements with a steady pace.  Groovy is evolving as well and has helped us a lot writing clean, concise, testable and maintainable code.  I am looking forward to more growth of the community and the increasing relevance around the technology.

I for my part am happy that our investment in Groovy and Grails continues to pay off and share the excitement of so many out there.  Happy hacking!

You have to start – and keep on going!

I read the news of the last days and immediately shared The Startup Curve with a fellow entrepreneur.  From there I also re-read about the ‘Trough of Sorrow‘ and one learning, which always resonates with me: You won’t be successful by simply starting something.  You also have to keep on going, grow, nurture and continue being in the driver’s seat.

Of course, just moving doesn’t get you there – you also have to pick a direction.  Like treading water keeps you afloat but doesn’t get you closer to treasure island.  And when you get there you still have to dig out that treasure chest and carry it back home to share it with your loved ones.  The difficult part is to know when to speed up, when to change course and at which point to rest for a minute and prepare the next part of the journey.  I am also guilty of getting distracted by new possibilities too easily and am reminding myself constantly that without focus and direction one will never get to the goal.

But one thing is for sure: You have to start – and keep on going.

gelf4j 0.9.6 released

I release gelf4j 0.9.6 on github. Thanks mdai843 for the timestamp fix.

This release of the appender works with graylog2 0.9.6 and will not work with prior versions.

In the future I will keep the versioning in sync with the graylog2 server versions to quickly being able to determine the compatibility between appender and graylog2 server.

Enjoy.

Public graylog2 instance upgraded to v0.9.6

Finally I got around to upgrade the public Graylog2 instance at http://public-graylog2.taulia.com to Graylog2 v 0.9.6.

This means the instance is using elastic search as the message storage backend, the analytics shell and has many other new features.

Two default users are still: admin and user. Both with password graylog2. 

Enjoy.

Learn to code. Please do.

What would you do if you want to cycle across the country but never learned how to ride a bike? What would you do if you want to learn new things but don’t know how to read? What would you do if you want to build an software startup but don’t know how to code?

It is amazing how many people want to do software startups (especially here in the bay area) without having any idea about how the actual product is being built.

She is coding her dream-application

They have great ideas and plans but don’t know anything about how to design, engineer and code applications.

There are three solutions:

  • Learn how to program
  • Find somebody who can program, who you can excite enough to drop whatever they are doing and convince them to bring your idea to life
  • Forget about your idea and do something else

My advice to anybody who can’t program and asks me about how to start a software startup – Learn to code! If you don’t want to do that – forget it and join an existing startup.

It takes a ridiculous amount of effort to find smart engineers and to convince them to work on your idea – believe me… been there, done that. And it is especially hard if you are a non-technical person. Think about all that energy that is being wasted by business folks, creatives, bizdev people, finance specialists and others hunting down co-founder after co-founder to work on their prototypes and ideas. Think about what that energy could be used for if it would be channeled into an area of their expertise. Looking for a technical co-founder every time you want to start something new is not really a scalable approach unless you have tons of money or another unique attribute that attracts super-engineers like moths (most people don’t have that feature).

Building (web)apps is not rocket-science anymore. Everybody can build a basic prototype with rudimentary coding skills and the help of frameworks like Grails, Ruby on RailsCakePHP or by using plugins and hacking together a WordPress or Joomla app. The same holds true for mobile apps. There are simple frameworks and the UI tools are often wizards you can use with your mouse. Sometimes you won’t even have to code a prototype but can literary hack it together with a hosted wordpress, google forms, google maps or other simple to embed elements. If there is an easy way to build yourself a prototype that somewhat proves your concept I am sure you will find it. And once you have prove-points it is much easier to find a technical girl or guy to help you build the real product.

Of course not everybody is a computer scientist with skills to invent and implement crazy algorithms and software models. But you don’t have to do that to build a prototype of a (web)app. All you need is basic coding knowledge, online tutorials for the framework of your choice and trust in yourself. Expand your knowledge. Reuse newly gained experiences over and over again and invest your energy in something that leads to a repeatably usable skill rather than hunting down the next best software engineer every time you have a new idea to prove.

And if you don’t want to learn how to code, then leverage your existing skills and join a company where you can immediately add value by applying your knowledge. And maybe, if you are nice to your fellow engineers there, you will learn some programming along the way for the next time when you want to implement another one of your great ideas from scratch.

Image credit

Entrepreneurs and their Tattoos

Are we as rebellious as we think? Do we show it? Who is inked in the silicon valley and in the entrepreneur community around the globe? What is the driver for entrepreneurs to get tattooed? How do tattoos influence our daily work with customers, employees, partners and investors? Is anybody willing to talk about their tattoos and let them be photographed? These are a couple of questions I don’t have answers to – yet.

Entrepreneurs also work when mommy is not watching

The only way to get to those answers is to ask the entrepreneurs directly. For that reason I am starting a new project – ‘Entrepreneurs and their Tattoos’ (working title). The ambition is to create a series of interviews and photographs of entrepreneurs in the SF bay area, US and anywhere else, combine them in a coffee table book and document their stories and of course – their tattoos. This is not to make money but rather to start an introspection of the entrepreneur culture to learn more about this very personal aspect of our fellow hackers, designers, visionaries and builders.

I am starting with setting up connections and preparing interview questions and interviews, as well as collecting any related material. If you know anybody who should be part of this, I would love to hear from you!

Recycling my internet trash

In order to keep the internet as trash-free as possible I consolidated three different sites into this one. My tech-blog at softwareinsane.com,  my ‘personal’ site at pstehlik.com and the rarely maintained blog about startup and entrepreneurship related topics at thinkoutsidethebubble.net are now all hosted on pstehlik.com.

I don’t like unmaintained old sites because there are too many of them on the interwebs. However, I also don’t want to destroy content I wrote and pages that seem to help some people. For that reason I imported my blogger content into this WordPress blog and my former blog-entries are permanently redirecting to this site. I hope they will prove useful every now and then.

It will be interesting to see if search-engines pick the links up accordingly. Right now I get 8-50 uniques a day on softwareinsane.com, about 2-5 a day on thinkoutsidethebubble.net and maybe 3 people a week interested in my personal site. If the math turns out to be correct there will be around 10-55 people a day on this new blog.

At the very least a consolidated blog will make maintenance easier for me. I am categorizing all my new posts so they can be found under coding, design, ops, startup and technology. My personal details are now on the about page.

Image credit wasabicube.

The influence of our environment on our work

Today an old friend of mine posted a link to the STIKNORD blog on tumblr. If you have any interest in (nordic) aesthetics, design or landscapes I highly recommend you look at it. I just went through all the posts, added some to pinterest and am reminded how much nature, culture and history influence our decisions and our work. We all are getting influenced from the beginning of our lives and express ourselves in our work after having many experiences and learning steadily throughout our days. I am all too rarely consciously using this background when making decisions or creating new things and I am thankful for projects like STIKNORD to remind me that there is a reason for every decision we make.

The first post on the STIKNORD blog:

Dear Reader

In an attempt to define the aesthetic essence of the Nordic countries and Scandinavia in particular we as Industrial Designers often find ourselves trying to define and understand the distinct feel and spirit surrounding us in our everyday lives. As Danish Designers we feel obligated to follow the traditions of former great Scandinavian designers and architects by grasping the soul of our native country and channel it through our work.

The idea behind this blog was to produce a digital mood board to be used as a part of an on going project at Kolding School of Design. By building a collection of texts and imagery dedicated to the aesthetics of the North, we want to ease the often repetitive, time and money consuming process of constructing tactile inspirational material for each and every project.

As much as we hope that you will benefit from this blog, we encourage everyone to participate in developing this collection by sending us pictures, links, sketches, texts, colours etc.

Please do so at:

stiknordblog@gmail.com

Enjoy

 

Image source: STIKNORD

A few words about perfection

I like perfection. I have the urge to take things to a level of perfection that other people don’t understand very often. And even if they understand it, most of them don’t practice this themselves. Of course you rarely get to “the full 100%”, and in most cases you shouldn’t because the last couple of percent-points are the most expensive. But working towards an adequate level of perfection is something I would recommend to everybody. An adequate level of perfection has a highly positive impact on the things you do and the bottom-line of your job, company and, may I say, life in general.

Let’s take the napkin in a restaurant for an example. At a fast-food burger joint the customer expects paper napkins in the to-go bag. At a restaurant the customer expects a paper or cloth napkin to be placed on the table. In the higher class restaurants the restaurant staff will place the thick-clothed napkin on your lap for you. Finding the adequate level of perfection usually boils down to: The more you or the customer pays and the more important something is the higher the expected level of perfection.

Let’s apply this to some startup related topics.

Code
The first prototype has to work but the code doesn’t have to be crazy pretty and perfect (and ‘pretty’ can mean many things). The adequate level of perfection is achieved when you can prove that the product you are building can be built and that you can use the prototype as a baseline for the real deal.
When building a high-throughput, highly secure or highly regulated system the adequate level of perfection is a very different one. The code doesn’t only have to work but also has to fulfill all the other requirements that you impose on it.
One important thing: Even though your adequate level of perfection is lower in the prototype-phase this doesn’t mean you shouldn’t look and think ahead. Usually your prototype will morph into the real product and you don’t want to rebuild everything but evolve towards your minimum viable product gracefully and with quality.

Raising Money
When pitching your product to angels or VCs the quality of your content and presentation has to meet a certain quality requirement. Adequate perfection is no less than 100% when raising money. The first impression counts and even though many VCs say “Let’s talk in half a year when you have ” – you usually don’t get a second chance. Your final pitch, your deck, the intro and your demo have to be well-groomed and excellent. You start with a lower level of perfection when working on your pitch, try out a couple of different angles and find out what resonates with your audience but once you get to your prime VC candidates you have to nail it with perfection.

Hiring
Once you are past the initial founding team of co-founders and founding engineers you have to establish a hiring process that makes sure you hire adequately perfect people. If your business is a tech-startup you should hire A-players in different forms or fashions to build the A-team. If you are looking to build a repeatable and franchiseable business then you have to define a process to hire people who can do the job and at least fulfill the requirements for the single positions (you still would want to get the real good ones though). The level of perfection here is to define a process that serves you sufficiently to identify, hire and retain the talent you need. You need to do things like engaging with the community: Host meetups, start meetups, be active in forums and user-groups, on LinkedIn go to tech-events and have your in-house recruiter/HR person be one of the first hires. She can then actively call potential employees, write them and really be an in-house head-hunter. The best people are not looking for jobs.

Job Search 
The application process has a similar perfection level as raising money. Your resume, background, publicly available information, blog etc have to be well maintained and representative of who you are and what the value is that you can add to a startup. If you are an engineer, product guy/girl, marketer or have any other profession and are looking for a job it is likely that you will send your resume out and want to be invited for interviews. But that is just the last step to get picked up by really a great company. Make sure your profile at LinkedIn is up to date. Write a blog, tweet and show that you are engaging in the community of your interest (assuming that your job will be in your area of interest). Did you present at a user-group recently? Are the video or the slides on your blog or is your last blog-entry from 3 years ago?When you are applying at your dream-company, look through your network to find out who could introduce you. Make sure that your resume is showing who you are, is error-free(!) and you send it in PDF format. Also here the first impression counts.

Working with others
The worst thing to have is a bad co-worker. No matter in which position you are in a startup, doing the best possible work – all the time – does make difference. There are so many mediocre contributors that slow down development of our ideas and companies without even knowing it. One of the patterns I have seen the most is declaring a piece of work as finished but having the wrong level of perfection. When finishing your work always ask yourself if your peers, bosses or reports will perceive your work as a positive impact on the team. Will they appreciate your work? What are you doing to positively contribute to the bottom-line? Are you giving the best you can or are just doing “the job you are asked to do”? Think about where you are in the curve of talent. And most importantly be true to yourself about how much perfection you can and want to deliver. There is only one thing worse than a bad co-worker. A bad co-worker who thinks they are doing a perfect job.

These are just a couple of examples where you can apply an adequate level of perfection. How far you go is ultimately up to you but I rarely saw anybody going the extra mile without being rewarded for it. Of course the most difficult part is to determine what level of perfection is adequate in your specific scenario.

In any case I hope you do things a bit more perfect in the future and even if it is to just raise the bar you had set yourself.

PDF render webservice in 60 lines of Groovy with Ratpack

As I wanted to give Ratpack (Sinatra for Groovy) a try, I just wrote a PDF rendering web-service – in about 60 lines of code.  It is called pdfRat, is self running and immediately usable via browser or any other HTTP client you may use.  You can find pdfRat on github.

Ratpack uses jetty to run the app and is completely self-contained.  To have the PDF rendering web-service up and running in about a minute, clone it from github and run gradle run from the main directory.

The only local dependency is gradle 1.0-m4.  All code-dependencies are in the repo or resolved for you by gradle.  Open http://localhost:5000 in your browser after starting the app to see details on how to use it.

Overall it took me about 2 hours to get this working, having never used the gradle application plugin or Ratpack before.  The biggest effort was to find the best way to have a ‘clone and run’ experience (ended up with application plugin), writing the README.md (github markup…) and cleaning up the code at the end.

I hope it will be as easy to create a gradle target to create a deployable war file for this app so you could run it in any container.  But that is a task for a different time.

Picture credit: etsy

Page 1 of 612345»...Last »