About Pathbreak Technologies

Pathbreak Technologies is a one-man technical consultancy under which I, Karthik Shiraly, am providing these services:

Software Architecture, Design & Technology consulting services Custom Software Development services Web Application Development / Consulting services
Scalability & Performance engineering services Cloud Application Development / Consulting services Scientific Software Development services for science R&D labs, academic institutions, scientists, researchers, medical professionals & academicians

I am a hands-on Technical Consultant and freelance Software Developer, with 14+ years of professional experience as a software engineer and many more years as a hobby programmer.

I work with companies, startups and entrepreneurs to bring their Enterprise Software, Desktop Software, SaaS and Web application ideas to reality, by architecting and implementing them.

I have a generalist and polyglot outlook, with wide interests in diverse industries and a passion to learn and build deep expertise in multiple technologies and all aspects of software engineering.
I enjoy ideating, researching, prototyping, architecting, and developing software products and solutions.
These qualities make me a perfect fit for companies, startups and entrepreneurs who are looking for a technically strong and competent person who can translate their ideas to reality.

Why choose Pathbreak Technologies

Key differentiators and value additions

14+ years professional experience

...as a software engineer - 6 years in salaried jobs, and last 8+ years as a software consultant and architect.

Deep insights in multiple technologies  [see the list]

...gained by countless years of experimentation and knowledge gathering, and driven by a strong self-driven passion for all technologies in the software industry.

Emphasis on achieving business goals of clients & keeping the big picture in mind

New technologies and buzzwords can be seductive, but I see them as just tools to achieve specific goals, and believe that their use should be decided by what value they add to your business goals.

Hands-on Architect

I love developing products in the trenches along with a team. No ivory towers here.

Generalizing Specialist / Polyglot developer

I specialize in Java/JavaEE systems, but am also a constant learner and have skills in multiple programming languages, technologies, system administration, and end-to-end development. That means I can be an all-round technically competent engineer who understands your stacks from top to bottom, and can become a problem solver at any level of the stack. Read here and here what value a generalizing specialist can bring to your team.

Scalability & Performance expertise

...gained by thorough experimentation, deliberate practice, and performance analysis of
  • web server solutions (apache web server, Tomcat, nginx, lighttpd)
  • application server solutions (Jboss, Glassfish)
  • search server solutions (Solr, Lucene)
  • middleware & messaging solutions
  • caching and proxying solutions (Squid, Memcached, Redis, HAProxy, Varnish)
  • relational database s (Mysql, Postgresql)
  • nosql solutions(Couchdb, Mongodb)
  • big data analytics (Hadoop)

Right attitude for delivering amazing products and user experiences

If you have worked in the software industry or hired software professionals before, it must have struck you at some point - either due to its presence or its absence - that the right attitude among engineers is what determines quality of the product and quality of the user experience to a great extent. Knowledge and experience may deliver a working product, but it's only the attitude that wins you delighted customers. Below are the components of the right attitude I possess:

Passion

I love what I do, and I have a strong passion for ideating, implementing new ideas in different industrties, using the most appropriate technologies, developing amazing software products, and discovering new knowledge. That's why the systems I deliver have high quality and usability.

Attention to detail

Software users and site visitors are attracted by the quality of the user experience, which is in turn determined by attention to detail. A great user experience often requires us to go beyond what is easily achievable, in favour of something that is more intuitive and feels good for a user, but may be more difficult to implement.

Skills

Core Technical Skills and Specializations

Skill Net Experience

Java Web technologies & frameworks

Servlets/JSP Apache Tomcat Apache Struts JSF Spring MVC

4 years

Scalable architectures & solutions

High scalability solutions Apache httpd nginx lightTPD Database scaling NoSQL solutions Caching / memcached / Redis Web+Application Server monitoring+tuning tools / collectd / nagios Data+log analytics / Hadoop

1.5 years

Search technologies

Apache Solr Apache Lucene Hibernate Search

2 years

JavaEE & Enterprise Technologies

EJB JMS & MQ middleware JPA & Hibernate Spring JBoss Glassfish

5 years

Java

Core Java Swing client apps Java frameworks

7 years

Additional Expert skills

PHP

PHP ecosystem Wordpress deployments and plugins Apache web server deployments

3 years

Amazon Web Services

Architectures Deployments Custom tools

1 year

Javascript / jQuery

3 years

HTML / CSS / SCSS

3 years

Working knowledge skills

These are languages and technologies which I have worked with in the past and can recognize where they should ideally fit in an architecture, but am no longer actively programming or learning them.

C / C++ / VC++ / MFC / VB / x86 assembly

4 years

Software Engineering skills

Understanding business goals and constraints Requirement analysis Architecture evaluation Technology analysis
Cost benefit analysis Domain analysis Usability and UX analysis Enterprise integration strategies
Prototyping Iterative development Continuous integration Strong emphasis on testability and test automation
Testing and monitoring on virtualized / physical testbeds User feedback strategies

Team & soft skills

Consulting mindset
driven by curiousity and need to understand in depth, attracted to solving hard problems, good listener, trustworthy advisor for your business goals, ability to communicate technical issues to business stakeholders
Excellent verbal and written English
Respect and consideration for others' views
Passionate and self motivated

Domains and Horizontals

Domains and Horizontals I have worked in:

Domains

Telecommunications
Stock
Analysis
Financial
Services
Medical
Research
Geographical
Mapping

Horizontals

Content Management systems
Document Management systems
Search and Data Mining
Human Resources and Recruitment systems

Resumé

Goal Build deep technical expertise in multiple technologies and domains,
and use that expertise to create path-breaking software products in multiple domains.
Since July 2008
(3+ yrs)
Freelance Technical Architect / Software Developer
Pathbreak Technologies
  • Developing and consulting on Java and JavaEE based systems and web applications for customers in India and abroad
  • Building core competencies in cloud architectures, high scalability techniques and big data technologies
  • Developed following customer projects and personal projects:
    • A video profiles recruitment web application solution for a Bangalore based HR consultancy customer, using JavaEE+Solr+AWS
    • A stock technical analysis system for a UK startup, using java
    • A GIS users and licenses management system for an Israeli startup, using java
    • A custom programming language compiler for a US customer, using java
August 2004 -
July 2008
(4 yrs)
Technical Leader
Nokia Siemens Networks

What are NMS & EMS?

In mobile and fixed line telecom networks, voice and data are routed through powerful switches , routers and other "network elements".

These network elements are configured, and monitored for problems and performance, using Element Management Systems (EMSes).

Large networks involve several EMSes, all of which can be managed centrally using Network Management Systems (NMSes).

EMSes and NMSes consist of several client server software systems which communicate with network elements using many standard or proprietary networking protocols.

Availability and fault tolerance are the dominant metrics that drive their architecture. "5 9s" level (=99.999%) of availability are common requirements.

  • Worked on Network and Element Management System (NMS / EMS) applications for mobile and fixed line networks.
  • Domain knowledge in Fault management, Configuration management, and Performance Management areas of telecom networks.
  • Projects and roles in NSN:
    • Technical & Design lead, and co-developer, for all Performance Management server and client applications in the NSN @dvantage Commander EMS.
      Tasks included analysis of NE behaviours, enhancing java based performance management components to monitor their performance, and mentoring team members on technical aspects.
    • Analysis lead and co-developer for Cicso GGSN Configuration Management application in the NSN Switch Commander EMS.
      Tasks included analysis of Cisco GGSN IOS commands and developing java based client server system to allow operators to configure it
    • Co-developer for a prototype MTOSI-compliant web service adaptor for Switch Commander EMS Fault Management layer
    • Analysis lead and co-developer for the Network Topology Map Fault management application in the NSN NetManager NMS.
      Tasks included enhancing the c++ based topology map application to support requested customer enhancements and support new network elements.
    • Analysis lead and co-developer for the Alarm Display Fault management application in the NSN Switch Commander EMS.
      Tasks included enhancing the c++ based alarm display application to support requested customer enhancements and support new network elements.
    • Developer in Telnet Performer Configuration Management server team in the NSN Switch Commander EMS.
      Tasks included enhancing the c++ based telnet performer server to support customer change requests.
August 2002 -
June 2004
(~2 yrs)
Software Engineer
Imagine India Software
  • Worked on financial optimization libraries using VC++/MFC, java and VB.
Education Bachelor of Engineering (Mechanical), PESIT, VTU University, Bangalore (2002 batch)
MES Junior College, Bangalore
VVS Sardar Patel High School, Bangalore

Client Testimonials

I have a perfect 10 rating in the online freelancing marketplace. Some customer testimonials:

"very talented developer with excellent skills in architecture design, complex charting, web applications etc. and gives very high importance towards creating a clear, efficient and easy to understand code . I very strong recommend this worker."

"Professional, smart, dedicated and committed to the success of the project."

"Very good work and worker is very proficient."

"Attention to detail. Covering all angles of project. Documentation. All of it simply outstanding. Highly recommended."

Hiring model and Rates

Hiring model I prefer working on a contract basis (part time or full time, depending on complexity of project), rather than a permanent position (unless your company itself is a contractor and can involve me in wide range of projects).
Location I'm based in Bangalore, India.
I can work from home,
or from your premises in Bangalore or any other city in India,
or on site in other countries, if you can provide the necessary visa formalities like sponsorship letters.
Rates Project rate depends on complexity and tasks required for your project. Contact me with a summary of your project, expected tenure, work location and other details. We can discuss what you have in mind and gauge the complexity and project scope. I can then give an initial stage-wise cost estimate based on the scope.
Payment Monthly payments
[preferably via an escrow service like vworker . Read this to understand why hiring and paying contractors via an escrow service like vworker is advantageous to customers, by facilitating trust and on time delivery]

Work ethics

  • Work hard to meet project goals
  • Self motivated
  • Go the distance for a project - if it's worth doing, it's worth doing right. Adhoc compromises can boomerang.
  • Passion for knowledge and understanding
  • Honesty - about cost & time estimates and project status.
  • Respect for others' opinions

Am I suitable for your project?

Below is a list of work that I may reject, along with possible reasons for rejecting them, to help you decide whether I am a good fit for your project.
You're always welcome to Contact Me without hesitation if you need any information or clarification.

Nature of work/project Assessment
Just website designing (examples: product promotional sites, portfolio sites, etc)

I'm not a website designer. I'm an end-to-end web application / portal developer with core skills in server side technologies. If the project is more about having a good looking website, and does not involve any server side logic, then I'm not suitable. What you really need is a professional website designer.

Even in web applications with server side logic, UI and usability are absolutely crucial. For an end user, the UI is the application! If UI or usability are bad, a user will judge the entire application negatively, regardless of what miracles it can do behind the scenes. While I am well versed in usability principles, HTML and CSS, my UI and front end designing capabilities (layouts, graphics, logos, colors, images, typography, etc) are rather mediocre (though I do try constantly improving). I've put up a gallery of products and projects I've developed. They - along with this very site pathbreak.com - will give you an idea of my UI designing capabilities and aesthetic sense. If they are good enough for your project, then I can probably handle the UI myself. If not, I can collaborate with a professional designer of your choice, or try and find a good one myself.

Social networking sites, daily deals sites I don't provide any services for these sites.
Certain kinds of desktop applications or desktop utilities

If the core of your idea/project is a desktop application or desktop utility with not much complex backend processing, then I may probably reject it, unless I find it interesting.

If a desktop client is just one of the components in a complex larger architecture, and usability is more important than looks, then I may usually handle it myself. If looks are important or UI is extensive, then the best way would be to collaborate with UI specialist coders who handle the front end while I take care of overall architecture/design and server side processing. The UI specialist coders can be preferably somebody you choose and trust, or alternatively, somebody I choose and trust.

RIA (Rich Internet Application) desktop technologies like Flash, Flex, Silverlight, JavaFX, Mobile and Tablet applications (Android, iPhone, iPad, etc) I simply don't have any working knowledge or experience in these, yet. You will need a specialist for these. However, if these front end applications are a part of a larger system, I can handle the overall architecture/design, server side architecture and components, and integration strategies with these front end technologies.
Freelance trainer I don't give trainings as of now. However, if training and knowledge transfer to project teams is required as part of a larger development project or consultation work, I'll be glad to provide them.
Development using languages or technologies in which I don't have working knowledge

If my work involves creating a software architecture or high level design, I work as a hands-on architect. What that means is, I don't incorporate any language or technology in an architecture if I don't have sufficient working knowledge in it myself. I stick to this rule strictly, because compromising with it can lead to ivory tower architectures that looks good on paper, but may have serious feasibility problems when they hit implementation phases. That may inturn result in deadline extensions, budget overruns, problems in architectural quality attributes like stability / reliability, code hacks, and stressed teams. I don't want to do software engineering that way at all.

I do invest time in learning new languages, but it's always a work in progress. Working knowledge proficiency in a language and language ecosystem takes time (atleast 1 to 3 months in my experience). If I'm not proficient in a language (check my Skills page for latest proficiency levels), I'm probably not suitable (however, do contact me and check; perhaps I may feel differently based on prevailing circumstances).

On the other hand, technologies and frameworks which are language agnostic or related to languages I already know, are not difficult to gain proficiency in. I can usually come upto speed on any such technologies in a short time (1-7 days) if your project needs them. I have my own virtual machine and cloud based labs where I can experiment and learn anything. Proprietary or commercial technologies may however be a problem. In any case, please contact me to get an opinion.