Located in Bangalore, India, Mahaswami Software Private Limited. offers software development and consultancy services to different companies and organizations. We specialize in web application development, corporate cash management solutions, trade services solutions, custody solutions, supply chain solutions, multi factor authentication and smart card / contact less tokens integration on the application security domain.
Our mission is: to deliver the best possible reliable software solutions to help our clients improve IT efficiency and business profitability.
Our core team has a combined experience of 70+ man years. Our team has worked with customers which includes multi-national banks across several countries, telecom companies and technology companies. They haved lived for significant period of time in many parts of the world across three continents (particularly spent a lot of time in the USA). They are very quick to adjust to people of different cultures and get going.
Our team composition have people with diverse set of skills including application architecture, data modelling, development, testing, application development and systems administration
We follow several practices large and small that fit well with our people and project at hand. Here is the list with some highlights.
- Use the right tool/language for the job
- Development environment is not tied to one programming language
- Our developers are skilled at multiple programming languages
- Even for work done in all Java delivery case, we make good use other language and tools internally for development.
- Ruby and tools in ruby for testing
- Ruby and tools for maintaining db schema.
- Ruby for test data generation.
- Several other tools in different languages.
- We Use multiple programming paradigms
- Functional programming
- Meta programming
- Domain Specific Languages (DSL)
- Object Oriented Programming
- Database practices
- Incremental changes to the schema
- Versioning database (rollback / roll forward features)
- Testing data (verifying setup data)
- Testing interaction with the data (triggers, stored procedures, etc.)
- Use source control for schema structure and data
- Developers should be able to check out and run a simple script which builds a development database for them
- Developers pairing with DBAs and vise versa
- Realizing that DBA is a different role, but not necessarily a different position
- Doing better database practices all around
- Test driven development
- Design user interfaces first
- Iterative development
- Just do the right amount of design (avoid over designing)
- Established open source contributors in the projects/libraries we use.
- several years of experience in evaluating and using open source software.
- Quite familiar with nuances of various open source licenses.
- Application security (particularly web application security)
- Our team members are aware of potential application security issues.
- Have knowledge of defensive practices against such issues.
- Testing includes such issues as well.
- Our past applications have been successfully vetted by professional security orgs employed by banks.
- Application scalability
- Our team folks are aware of SQL related bottlenecks
- Testing includes looking for scalability issues as well.
- Our developers have good knowledge of EAI integration tools gained from experience using them in the past.
- One of them is a contributor himself to a EAI tools.
- More on Testing
- Our developers are well disciplined about unit testing and generally we have a code coverage of over 90%.
- We have a home grown customizations and assembly of a set tools
- They help us automate full stack integration testing.
- They are good for testing AJAX, DHTML, widgets as well.
- We use them for smoke testing.
- Use the best of the breed development ecosystem - our recommended stack includes:
- Netbeans (We are quite used to Eclipse as well) as multi language development IDE.
- Subversion (Version control system)
- Trac (Wiki for documentation and issue tracker)
- Hudson & CruiseControl (for Continuous Integration)
- Maven 2 (and others for Release Management)