Vinny Carpenter

Profile

Senior Software Engineer at Artisan Partners
Investment Management | Greater Milwaukee Area, US

Summary

I am Technical Developer/Architect/Geek with more than 15 years of experience in the field of software development, engineering, architecture and technical leadership. I have worked in Education, Manufacturing, Financial Services and Investments Management industries with large global multi-national companies to small entrepreneurial companies. Passionate about software development using agile methodologies that deliver nimble solutions that allow the business to be nimble. Love designing systems that are massively scalable, distributed, highly-available systems that meet the needs of the business.
Specialties: Java and Web development in the Financial Services, Manufacturing and Education industries.

Experience

  • Dec 2006 - Present
    Senior Software Architect / Artisan Partners
    I spend most of my time at work in the areas of software development, architecture and strategy. The goal is to always create value for the business and that is what I try to do every single day. Plus have a ton of fun, but that goes without saying. :)
  • Jan 2005 - Present
    Lead Architect / Wells Fargo Advantage Funds
    I spend most of my time dealing with architectural and security issues with plenty of work and personal play-time going into discovering the latest tool, framework, etc that will allow us to work faster, smarter and deliver better results. A lot of my time is also spent fire-fighting issues and coming up with solutions to interesting problems :)
  • Aug 1999 - Present
    Enterprise Architect / Strong
  • 1997 - Present
    Webmster / Quad/Graphics
  • 1993 - Present
    Webmaster / Marquette University

Education

  • 1987 - 1992
    Marquette University
    BS in Biomedical Engineering

Additional Information

Websites:
Interests:
software development, architecture, design

Latest checkin

  • @Panera Bread (2095 North Calhoun Road)
    20 hours ago in Brookfield, WI

Badges

Checkin history

Friends

Posts

July 09, 01:54 PM


Taken at Disney Store (International Mall)

Permalink | Leave a comment  »

July 08, 07:49 PM


Taken at Miami Beach Marina

Permalink | Leave a comment  »

February 10, 11:27 AM

There is nothing simple about speech, and there is nothing simple about speech delay — starting with the challenge of diagnos

Permalink | Leave a comment  »

February 09, 08:28 PM

Nasuni's virtual NAS file server runs on VMware and connects to cloud platforms, adding encryption and several features to improve performance

Permalink | Leave a comment  »

February 09, 08:27 PM

By many measures, Microsoft is simply too big. The bigness is in the gut, like a middle-aged man who drinks too much beer and eats too many classic potato chips. In computing years, Microsoft most certainly is a middle-aged company. So is Apple, which by comparison is leaner and healthier. What's up with Microsoft's gut?

Based on communications with current and former employees, Microsoft's midriff problem is one of middling middle management. The number of middle mangers swelled over the last decade, and they also are the employees making key management decisions, which includes who gets laid off or fired and where the remaining people work. What manager will fire himself or herself? (Before continuing, let me be clear that only former Microsoft employees will be quoted, and anonymously at that. Current employees would only communicate with me on background, for concern of risking their jobs).

One former employee, whom I'll call Boris, had this to say about how last year's layoffs affected him and his former team: "Out of a starting staff of nearly 20, four remained, all managers. I'm not sure what they manage." Who made the decisions about whom to layoff? Another former Microsoft employee whom I'll refer to as Fred said that a "dramatic increase in middle management, and the fat cutting the muscle, is right on target."

I don't have figures on how many middle managers Microsoft now employs. But various former, and even some current, employees say that their number of "reports" -- meaning people they report to -- has increased by five to seven managers above them during 2000. Typically that works out to double or more the layers of middle management over the decade.

"When I started at MSFT in 1996, there were six people between me and [Microsoft cofounder] Bill Gates," Boris said. "In 2009, there were 13 people between me and [Microsoft CEO] Steve Ballmer." Fred said, "the number of managers between me and the CEO went from six to 10," during the last decade. Another long-time Microsoftie, whom I'll call Barry, saw his reports go from six to 12.

Microsoft's swelling workforce gives some hint of the midriff, middle management problem. In June 2000, at the end of fiscal 2001, Microsoft employed 39,100. At the end of fiscal 2010, even after 5,000 layoffs, Microsoft employed 93,000.

'All Praise the Holy Reorg'

Microsoft manages middle management by way of seemingly perennial reorganizations. Every former or existing Microsoft employee I communicated with for this post and the accompanying "Microsoft Confession" series harshly criticized the reorganizations.

"How many reorgs have ever benefited anyone except the folks on top?" asked a former employee I'll call Jack. "The people that need to be cut at MS are the managers that don't support their teams and only support their own careers. I've watched countless super visionary managers get bogged in politics and leave."

Another former employee, whom I'll call Amanda quipped: "All praise the holy reorg, which is an approximately annual religious festival in certain sects, I mean divisions, of Microsoft." Recent reorganizations -- those publicly disclosed or uncovered over the last 12 months -- include desktop operating system, developer tool, entertainment, mobile device, search and server organizations, among others. This year's reorg affecting Microsoft's TV products came with the departure of Enrique Rodriguez, a corporate vice president.

Bill Veghte is one of Microsoft's highest-profile executive departures steaming from reorganization. Microsoft announced Veghte's departure on January 14, after he failed to find a new position following the summer 2009 reorg that put Steven Sinfosky in charge of the Windows & Windows Live group. Weeks later, Microsoft acknowledged the departure of Mike Nash, like Veghte a 19-plus year veteran. At the end of 2009, Microsoft also lost Chris Liddell, as chief financial officer. The point: Microsoft is shedding top-level managers all while middle-manager ranks add bulge to the organizational structure.

The reorganizations can be looked at another way -- as reflecting ineffective management processes that Microsoft tries to resolve by changing which groups report to which groups or to whom. In theory, Microsoft's five business groups -- Business, Entertainment & Devices, Online Services, Server & Tools and Windows & Windows Live -- should be small enough to be nimbler than a company employing more than 90,000. But there are mitigating factors, such as reporting hierarchies that cut across different groups and supporting organizations, like marketing and services, that have responsibilities affecting all five Microsoft divisions. In many ways, Microsoft's organizational structure is best described as a middle schooler's messy room (also a Windows Plus! Pack for Kids theme).

Incentives that Discourage Risk, Innovation

Related to gut-bulging middle management: some HR review and compensation processes discourage many employees from taking the kinds of risks necessary for Microsoft to regain its competitive edge and, quite frankly, to innovate in truly meaningful ways. Microsoft's definition of innovation, for most of its product groups, is anything that preserves the status quo -- meaning extending Office and Windows and increasingly server software like SharePoint and Windows Server. Risk is a dirty word for many employees looking to advance at Microsoft.

A former employee whom I'll call Rodriguez said of the HR review process: "Microsoft has become too 'scorecard' heavy and highly litigated to the point it kills an employee's spirit of free thinking and creativity, since everything a person does is closely judged by management." Among the former Microsofties I communicated with over the last couple of months, Rodriguez was the harshest critic of Microsoft's review process, which he observed is going on right now; fiscal year ends on June 30 and reviews occur midway.

Several former and existing employees tried to explain Microsoft's seemingly complicated review and compensation process. People are hired at a certain level and can advance up levels, which have corresponding salary ranges. During reviews process, employees are graded with such designations as 'exceed,' 'achieved' and 'underperformed' commitment ratings. These are based on numerous criteria, which include management assessment of performance and achieving goals set during the previous review process. Other criteria include "contribution rankings." Problem: These criteria sometimes work cross-purposes to performance. Fred explained:

Processes became more bureaucratic and individuals were less empowered to take action. In fact, oftentimes the incentive structure encouraged individual contributors not to do the right thing, but just to do what they committed to in their review the year prior. In other words, if you committed to include Feature A in Windows, and halfway through the year you realized that was a bad thing for Windows and Microsoft customers, the incentive structure actively discouraged you from trying to kill the feature, because then you wouldn't have achieved your commitments.

Barry also made similar complaints about the "decentives" to doing a good job. "The metrics are too complex," he said. "We were evaluated also on a client's satisfaction with our work." The client could range from a reporter for Microsofties working in PR to developers for employees doing product development or for anyone to other groups within Microsoft.

Several current and former employees wanting to do better or escape from stifling management situations would request transfers. However, many managers wanted to keep their staff in part "because it would reflect badly on them," Barry said.

"I was put in 'performance detention' due to wanting to expand to another part of the company and ended up in the 'crapper' list," said another former employee, whom I'll call Mickey.

What About those 5,800 Layoffs?

Last year's layoffs surprised many Microsoft employees. There are looming questions about whether or not Microsoft dismissed the right employees. From Friday through Monday, I posted four stories from former employees laid off in 2009. Each story reveals something about the layoff process and the middling middle management problems. Posted as Microsoft Confessions:

These four stories and others I received but didn't publish raise questions about whether Microsoft laid off the right people, whether certain groups were targeted and whether more middle managers should have been axed. Perhaps the most visible of the surprising layoffs: Don Dodge, who within two weeks of being let go was hired by Google.

Based on former and current Microsoft employee stories, five trends can be seen in Microsoft's layoff of 5,800 employees during 2009. Laid-off employees tended to be:

  • High salaried
  • With the company eight or more years
  • Older -- many in their late 30s or early 40s
  • At a status of what Microsoft calls "long at level"
  • In positions later refilled by younger, lower-salaried people
  • In positions the former Microsoftie resumed as a non-employee contractor

Several former employees proactively contacted me about these six similarities, but not all people used all six. Mickey said he was:

1. Over 40

2. Worked at MS for almost 11 years, industry almost 28

3.  Pretty high salary

4.   Senior guy but brought in underleveled

Barry, who had worked as a manager, clearly understood employee evaluations and he concurred about the six similarities. I should point out that in fairness to Microsoft, I've seen this pattern elsewhere, including journalism. Older and/or higher-salaried employees are laid off and either replaced by someone younger who is paid much less or the original employee returns on a freelance basis. For Microsoft, the returnee would a contractor. Barry is someone whom Microsoft laid off and took back as contractor doing essentially the same job as before.

Barry insinuated there was some age discrimination in the layoffs, but other former Microsoftie's disagreed. Former employee Randolph (not his real name, of course) noted that four of the people he was laid off with were ages 36 to 59, with two of them being 50 or over. "Suspicious, perhaps, but just as likely a consequence of the team demographics," he said. Two of the people remaining on the team were 48 and 51. The ages were provided with Randolph's severance package. However, "the fact that they gave me the paper in the first place suggests they are sensitive to the implication of age discrimination."

Then there is "long at level," which refers to employees who have stayed in the same position or designated organizational and pay level for a long time. Presumably a long-and-level employee lacks ambition to outperform. But for a smaller product or services group, where an employee shows expertise, there may be nowhere to go but out. Other employees stay in organizations where moving up or out is discouraged or even penalized by the manager. I know of current Microsoft employees who change positions every few years simply to avoid being perceived as long at level.

In conclusion, no company's organizational structure is perfect, because too many people put their personal ambitions before the company they work for. But companies can encourage mismanagement by the organizational structure, corporate culture and review and compensation processes. Based on my communications with dozens of former and current Microsoft employees over the last couple months, Microsoft needs to streamline its management processes, empower small groups to act like startups, reward risk-taking innovation and sharply reduce the number of middle managers.

Update: Mini-Microsoft's blog and especially the comments can offer broader perspective on this post's topic. While I purposely didn't read Mini's blog when researching and writing this post (I typically avoid outside influences when writing), several of my sources sent some of the comments they had posted to the blog. Mini has an active following of current Microsoft employees. I'll resume reading now that I've finished here.

Permalink | Leave a comment  »

Posts

May 16, 10:41 PM



Links for May 11th through May 16th


May 10, 08:52 PM



Links for May 5th through May 10th


May 04, 08:53 PM



Links for April 30th through May 4th


April 29, 08:42 PM

  • InfoQ: Decisions, Decisions – Dan North engages the audience into a discussion about the tradeoffs involved in making decisions regarding the team composition, development style, architecture, and deployment solutions.
  • Google has lost control of Android – Only a miraculous Google I/O developer conference can take back Android, but challenges remain. Big ones. Google's problem: Two partners are overwhelming successful, while the majority limp along, and one hurts the entire Android ecosystem. Apple is now the least of concerns. Putting Amazon and Samsung in their place is more important.
  • Touch4j – A simple to use Java API for Sencha Touch 2.0 now with PhoneGap, Charts and Map integration! – Touch4j – A simple to use Java API for Sencha Touch 2.0 now with PhoneGap, Charts and Map integration!
  • Tessell is a GWT application framework that follows a Model View Presenter architecture – Tessell is a GWT application framework that follows a Model View Presenter architecture & requires less boilerplate (10x less LOC than hand-coded MVP)
  • Developing a GWT TodoMVC application – It is worth noting that one of the greatest strengths of GWT is not that it means you don’t have to understand JavaScript. Rather, it is that you are developing using a strongly-typed language. As a result, when one of the TodoMVC project reviewers asked for name changes, and other refactoring tasks, I was able to make these changes with complete confidence via the Eclipse refactoring tools.
  • What is Model View Presenter (MVP) in GWT Application? – The MVP pattern is extremely useful when building large, web-based applications with GWT. Not only does it help make code more readable, and subsequently more maintainable, it also makes it much easier to implement new features, optimizations, and automated testing
  • Meteor – A new way to build apps. – Meteor is a set of new technologies for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started.
  • Spring Data JPA Tutorial Part Seven: Pagination | Petri Kainulainen – The previous part of my Spring Data JPA tutorial described how you can sort query results with Spring Data JPA. This blog entry will describe how you can paginate the query results by using Spring Data JPA. In order to demonstrate the pagination support of Spring Data JPA, I will add two new requirements for my example application:
  • GWT Highcharts – A comprehensive API enabling the use of Highcharts within a GWT application. – GWT Highcharts is a freely available open source library that provides an elegant and feature complete approach for including Highcharts and Highstock visualizations within a GWT application using pure Java code (including GWT widget libraries, such as SmartGWT or Ext GWT.)



Links for April 27th through April 29th


April 26, 09:05 PM



Links for April 21st through April 26th


April 21, 11:28 PM



Links for April 16th through April 21st


April 16, 05:23 PM

  • Tuning JVM for a VM – Lessons Learned, Directly from VMware – This talk will present a lot of the innovation, practical insight, and lessons learned gained from the last year by a senior engineer from VMware who recently developed a Java "ballooning" solution called Elastic Memory for Java (EM4J)
  • SQL? NoSQL? NewSQL? What’s a Java developer to do? – YouTube – We will compare and contrast each database's data model and Java API using NoSQL and NewSQL versions of a use case from the book POJOs in Action. We will learn about the benefits and drawbacks of using NoSQL and NewSQL databases.
  • Arquillian · No more mocks. No more container lifecycle and deployment hassles. Just real tests! – Mocks can be tactical, but more often than not, they are used to make code work outside of a real environment. Arquillian let's you ditch the mocks and write real tests. That's because Arquillian brings your test to the runtime, giving you access to container resources, meaningful feedback and insight about how the code really works.
  • A Baseline for Front-End Developers – Adventures in JavaScript Development – There’s a new set of baseline skills required in order to be successful as a front-end developer, and developers who don’t meet this baseline are going to start feeling more and more left behind as those who are sharing their knowledge start to assume that certain things go without saying.
  • Firebase – A scalable real-time backend for your website – Firebase is a cloud service that automatically synchronizes data between clients and with our cloud servers. It frees developers from worrying about how their data will be communicated and stored, and allows them to focus on their own application logic
  • WordPress completely dominates top 100 blogs – We just completed a study and found that WordPress is in use by 49% of the top 100 blogs in the world. This is an increase from the 32% we recorded three years ago.
  • Amazon CloudWatch Monitoring Scripts for Linux – Amazon CloudWatch – The Amazon CloudWatch Monitoring Scripts for Linux are sample Perl scripts that demonstrate how to produce and consume Amazon CloudWatch custom metrics. The scripts comprise a fully functional example that reports memory, swap, and disk space utilization metrics for an Amazon Elastic Compute Cloud (Amazon EC2) Linux instance
  • MongoDB Hadoop Connector Announced – The core feature of the Connector is to provide the ability to read MongoDB data into Hadoop MapReduce jobs, as well as writing the results of MapReduce jobs out to MongoDB



Links for April 10th through April 12th


April 10, 06:44 PM



Links for April 8th through April 10th


April 07, 11:33 PM



Links for April 5th through April 7th


April 05, 09:23 PM



Links for March 30th through April 4th


March 30, 12:03 PM



Links for March 20th through March 30th


March 20, 07:22 PM



Links for March 6th through March 20th


March 05, 10:08 PM



Links for February 24th through March 5th


February 24, 04:01 PM



Links for February 19th through February 24th


February 19, 09:47 PM

  • Groklaw – Oracle Drops Final Claim in Patent ’476 and Google Moves to Strike Portions of 3rd Oracle Damages Report ~pj – I feel very much the same about Oracle's patents, and I have from the start wondered if any of them are valid, let alone worth millions in damages. So, to me, the risk has been very much on Oracle's side, that it might lose all its patents in this case.
  • The Great Web Framework Shootout | Curia – Welcome to the great web framework shootout. On this page you will find benchmark results comparing the performance of a few of the most popular F/OSS web frameworks in use today.
  • Online Text to Speech | ReadSpeaker – Get a spoken version of your online content so that your users can listen to what you have to say.
  • The NoSQL movement – How to think about choosing a database. – For years, the relational default has kept developers from understanding their real back-end requirements. The NoSQL movement has given us the opportunity to explore what we really require from our databases, and to find out what we already knew: there is no one-size-fits-all solution.
  • Agile Succeeds Three Times More Often | Mike Cohn’s Blog – The agile process is the universal remedy for software development project failure. Software applications developed through the agile process have three times the success rate of the traditional waterfall method and a much lower percentage of time and cost overruns
  • How to Analyze Java Thread Dumps | CUBRID Blog – Here I will explain what threads are in Java, their types, how they are created, how to manage them, how you can dump threads from a running application, and finally how you can analyze them and determine the bottleneck or blocking threads. This article is a result of long experience in Java application debugging.
  • MIT OpenCourseWare | Economics – Principles of Microeconomics – Principles of Microeconomics is an introductory undergraduate course that teaches the fundamentals of microeconomics. This course introduces microeconomic concepts and analysis, supply and demand analysis, theories of the firm and individual behavior, competition and monopoly, and welfare economics
  • Jease – The Java CMS with Ease – Jease is an Open Source Content-Management-System which is driven by the power of Java. Jease means "Java with Ease", so Jease promises to keep simple things simple and the hard things (j)easy.
  • GroupBy in MongoDB – Operations in the New Aggregation Framework – In version 2.1, MongoDB is introducing a new aggregation framework that will make it much easier to obtain the kind of results SQL group-by is used for, without having to write custom JavaScript.
  • InfoQ: Mobile HTML5 Design and Development, with David Kaneda – David talks about the unique challenges facing developers building mobile HTML5 apps, especially on WebKit. He also outlines the recent developments on this field and how they empower a whole new genre of applications.
  • Xcode, GCC, and Homebrew – This is an incredible day for the Homebrew community. You can now setup a complete OS X develop environment with a single 171.7 MB package download. It's official. It's legal. It'll be maintained.



Links for February 17th through February 19th


February 12, 12:40 PM

  • InfoQ: Mobile HTML5 – Scott Davis explains how to prepare a website for mobile devices from small tweaks –smaller screen sizes, portrait/landscape- to using HTML5’s local storage, application cache, and remote data.
  • InfoQ: How to Stop Writing Next Year’s Unsustainable Piece of Code – Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
  • InfoQ: All things Hadoop – In this interview Ted Dunning talk about Hadoop, its current usage and its future. He explains the reasons for Hadoop's success and make recommendations on how to start using it.
  • rap mobile – Secure Mobile Apps. Native Performance. Multi-Platforms. – RAP mobile provides a powerful widget toolkit that renders native iOS and Android widgets. It provides a proven technology stack with SWT, JFace and OSGi. You can write your application entirely in Java, re-use existing code and benefit from first-class IDE tools without the need for cross-compiling.
  • Are You a Zen Coder or Distraction-Junkie? – The key to true productivity and efficiency is to focus 100% on the one thing you are doing at the moment, and then to completely switch and do something else. There shouldn’t be any blurry transitions from one thing to the next.
  • High performance libraries in Java | Vanilla #Java – There is an increasing number of libraries which are described as high performance and have benchmarks to back that claim up. Here is a selection that I am aware of.
  • InfoQ: Have Your Cake and Eat It Too: Meta-Programming Techniques for Java – Howard Lewis Ship discusses how to add extend class functionality at runtime via meta-programming for Java using Tapestry Plastic.
  • InfoQ: SQL Server Unit Testing with tSQLt – tSQLt is a free, open-source framework for unit testing in SQL Server. By writing tSQLt test cases, developers can create fake tables and views based on production data, then compare expected versus actual results in testing. Tests are written in T-SQL, so they can be created directly in SQL Server Management Studio.
  • InfoQ: Identity Management with Spring Security – David Syer discusses identity management, SSO, security standards –SAML, OpenID, OAuth, SCIM, JWT-, how Spring Security can fit in, and demoing IdM as a service.
  • Flexing NoSQL: MongoDB in review | InfoWorld – MongoDB shines with broad programming language support, SQL-like queries, and out-of-the-box scaling
  • GUI Architectures essay from Martin Fowler – In this essay I want to explore a number of interesting architectures and describe my interpretation of their most interesting features. My hope is that this will provide a context for understanding the patterns that I describe.



Links for February 11th through February 12th


February 09, 07:59 PM



Links for February 1st through February 9th


January 31, 11:11 PM

  • InfoQ: The Rise of OAuth – Craig Walls talks about securing the modern web and how OAuth can help with that, showing how to secure and consume resources with OAuth.
  • This guide introduces you to Spring Data Neo4j – This guide introduces you to Spring Data Neo4j, using the fast, powerful and scalable graph database Neo4j to enjoy the benefits of having good relationships in your data.
  • Google Guava EventBus – an easy and elegant way for your publisher – subscriber use cases | Tomasz Dziurko – Google Guava in version number 10 introduced new package eventbus with a few very interesting classes to deal with listener (or publisher – subscriber) use case. Below I present my short introduction to EventBus class and its family.
  • The Elegant Ruby Web Framework – Padrino Ruby Web Framework – Padrino is a ruby framework built upon the Sinatra web library. Sinatra is a DSL for creating simple web applications in Ruby. Padrino was created to make it fun and easy to code more advanced web applications while still adhering to the spirit that makes Sinatra great!
  • InfoQ: The Open Group Releases Standards for SOA Architects, Cloud Service Providers – The Open Group recently published three standards that aid organizations that are building infrastructure-as-a-service offerings and service oriented architectures. In addition to releasing the Service Oriented Architecture Reference Architecture (SOA RA) and Service Oriented Cloud Computing Infrastructure Framework (SOCCI), the Open Group also updated their Open Group Service Integration Maturity Model (OSIMM). In concert, these standards provide expert advice in the form of best practices, questionnaires, and templates for SOA and cloud-scale infrastructure architecture.
  • MongoDB for Analytics // MongoTips by John Nunemaker – Just over a month ago, I presented on storing stats in MongoDB at MongoChi 2011. 10Gen posted the video recently, so I thought I would share it here.
  • paperplanes. A Tour of Amazon’s DynamoDB – Sorted range keys, conditional updates, atomic counters, structured data and multi-valued data types, fetching and updating single attributes, strong consistency, and no explicit way to handle and resolve conflicts other than conditions. A lot of features DynamoDB has to offer remind me of everything that's great about wide column stores like Cassandra, but even more so of HBase
  • Announcing Sencha Designer 2 Beta | Blog | Sencha – We’re thrilled to announce that Sencha Designer 2 Beta is available for download! Designer 2 makes it easier than ever to build desktop and mobile applications using Ext JS and Sencha Touch.
  • The Five Stages of Hosting (Pinboard Blog) – I thought it might be fun to write up five common options for hosting a web business, ranked in decreasing order of 'cloudiness'. People who aren't interested in this kind of minutia would be wise to pull the rip cord right here.
  • Q&A: An Introduction to the Scala Programming Language — Enterprise Systems – We explore what the Scala programming language can do for your organization with the language’s inventor.



Links for January 27th through January 31st


January 27, 08:26 PM



Links for January 22nd through January 27th


January 21, 11:54 AM



Links for January 15th through January 21st


Watching

Hereafter
Released in 2010

History

Queue

Instant queue

Latest checkin

  • @Panera Bread (2095 North Calhoun Road)
    20 hours ago in Brookfield, WI

Badges

Checkin history

Friends

I am a geek that lives in Brookfield – WI (Milwaukee), making my living as an architect/developer, spending all my time with Java, J2EE, Linux, gadgets, mobile devices, open source and the art of software development. In my spare time, when I am not in front of my computers, I spend every other minute with my other loves: My wife and daughter, books, music, guitars, gadgets, and Formula-1 racing.

abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz