1. Reservations Gateway Inc.Reservations Gateway Inc.
YOUR LINK to e-TRAVEL SOLUTIONSYOUR LINK to e-TRAVEL SOLUTIONS
July 2014
So you want to beSo you want to be
a Software Engineera Software Engineer
““You can not climb the ladder of successYou can not climb the ladder of success
With your hands in your pocket... ”With your hands in your pocket... ”
Indika Maligaspe
by Arnold Schwarzeneggerby Arnold Schwarzenegger
2. Intro...Intro...
October 2013
Indika Maligaspe
K. Indika Maligaspe
Chief Technology Officer – RezGateway Inc.
Developer, Designer, Engineer, Architect , Trainer
Specialized in JEE, Web Services , Agile , Software Engineering etc...
Over 15 years if experience in IT / Web Technologies
http://www.linkedin.com/profile/view?id=201732082&trk=nav_responsive_tab_profile
3. What we will coverWhat we will cover
July 2014
What is Software EngineeringWhat is Software Engineering
Views of Software EngineeringViews of Software Engineering
What's needed for todays Software EngineerWhat's needed for todays Software Engineer
Indika Maligaspe
4. What is Software EngineeringWhat is Software Engineering
July 2014
Software EngineeringSoftware Engineering
– is the study and application of engineering to the design,
development, and maintenance of software - Wikipedia
EngineeringEngineering
– is the application of scientific, economic, social, and practical
knowledge in order to invent, design, build, maintain, and
improve structures, machines, devices, systems, materials and
processes. - Wikipedia
Indika Maligaspe
5. Views of Software EngineeringViews of Software Engineering
July 2014
General View- Software EngineeringGeneral View- Software Engineering
– is to code , develop software with the language and tools defined
to create a working piece of software.
My View- Software EngineeringMy View- Software Engineering
– is the practice of building and maintaining software with
customer or market value in mind by using the most suitable
methodologies , standard, tools, designs, technologies and
management
Indika Maligaspe
6. How much do we codeHow much do we code
July 2014
On an average we code only about 5% of our working day other 95%On an average we code only about 5% of our working day other 95%
we arewe are
– Reading code (understanding other people's code)
– Testing
– Understanding Requirements
– Communicating with colleagues
– Building and Releasing
– Problem Solving (Analyzing and Designing)
Knowing a language, knowing how to code, having a
college degree does not make you an Engineer...
Indika Maligaspe
7. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
TechnologyTechnology
Not all people do all things But...Not all people do all things But...
Lack of awareness is bad and leads to isolated decisions WhichLack of awareness is bad and leads to isolated decisions Which
leads toleads to
– unseasonal requirements
– over engineered systems
– half baked solutions
– maintenance nightmares
Indika Maligaspe
8. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Software Engineering practicesSoftware Engineering practices
– Why are we doing software - To meet a client's need?
– Keep it simple (KISS)
– Know that you only write once but others will consume
what you produce (coding standards / clear coding..)
– Be open to the future
– Plan ahead for re-use
– Think and then act (not the other way around)
– Design principles and practices – (SOLID / OOD ...)
(http://www.slideshare.net/indikaMaligaspe/writing-quality-software
,http://www.slideshare.net/indikaMaligaspe/software-engineering-principles-
29010733)
– What is out there in the industry ( TDD , XP , Secure
coding, Performance based coding etc...)
– Version control , version and release strategy (Jenkins
Puppet / Git, SVN, CVS ...
Indika Maligaspe
9. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Technology – Some questions to askTechnology – Some questions to ask
What is related to current work, likeWhat is related to current work, like
– Language (Java / HTML / JQuery / PL-SQL ...)
– IDE (Do we really know eclipse ?)
– Database
– Middle ware
– Web tier (Apache / Tomcat / Jetty ...)
– Test tools
Indika Maligaspe
10. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Technology – Some questions to askTechnology – Some questions to ask
What is related to current project / product likeWhat is related to current project / product like
– How / where are the systems deployed?
Infrastructure - clustered / geographically
distributed / in the cloud / mobile platforms ...
– How / where do we store data in production?
DBMS / Caching / NoSQL / ORM ...
– How / where do we host our system
hosting vendors, limitations, performance / logs ...
– How do we build our system, what are the tools?
Jenkins / ANT / Maven ...
Indika Maligaspe
11. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Technology – Some questions to askTechnology – Some questions to ask
• What are used in other projects and whyWhat are used in other projects and why
– Memcache-d or REDIS or HADOOP ?
– Java or Python or .Net ?
– PostgreSQL / MySQL / Oracle / Cassandra / flat files?
• What is out there -What is out there - Not to use them, but to know about them,
try them out and be ready
Indika Maligaspe
12. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Tools –Tools – Do we really know them?Do we really know them?
– Current tools used (IDE / Nagios / Ant / Maven / JProfiler /
Firebug / DbAnalyzer ....)
– Tools which are out there
– How to build tools that you do not have but need
Try new tools, learn about tools, how to use existing tools (even
when you do not need to use them like IDE tools, profiling tools,
static analysis tools etc..)
Indika Maligaspe
13. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Soft skillsSoft skills
– Communication -Communication -
Not just with code but with co-workers, managers, business
people, clients
– Planning and Estimation –Planning and Estimation –
What you know and what you don't know?
– Mentoring and Guiding -Mentoring and Guiding -
You are not going to do the same thing always, so train ,
monitor and groom
Indika Maligaspe
14. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Discipline - while planning, coding, versioning, releasing ...Discipline - while planning, coding, versioning, releasing ...
– is difference between a cowboy and an seasoned engineer
– is "controlled behavior resulting from training , study and
practice"
– Indiscipline is Caused by lack of focus, laziness and the view that
you are doing a job and not as an art.
Indika Maligaspe
15. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
AttitudeAttitude
– Desire to solve problems and see through to the end
– Always learning and ready grow
• How do you get knowledge
– Read, Study, Leverage User Groups
– Participate in the community (Apache / stackoverflow /
stackexchange/javaranch/ PyCon / Macsheble)
– Collaborate with colleagues
Indika Maligaspe
16. What's needed for todays Software EngineerWhat's needed for todays Software Engineer
July 2014
Contribute –Contribute – The best way to feel good about yourself
– Blogs
– Train/Coach
– Participate in the community (Apache / stackoverflow /
stackexchange/javaranch/ PyCon / Macsheble)
Indika Maligaspe
17. July 2014
Indika Maligaspe
Thank You
Reservations Gateway Inc.Reservations Gateway Inc.
YOUR LINK to e-TRAVEL SOLUTIONSYOUR LINK to e-TRAVEL SOLUTIONS
Reservations Gateway Inc.
Reservations Gateway Inc.
11654 Plaza America Drive , Unit 645
Reston, Virginia 20190-4700
USA
703 286 5331
703 433 0146
info@rezgateway.com
www.rezgateway.com
Tel :
Fax :
Email :
Web :