45
Life as Software Engineer Dr. Jeyakesavan Veerasamy University of Texas at Dallas [email protected] [email protected]

Life as Software Engineer

  • Upload
    keisha

  • View
    58

  • Download
    0

Embed Size (px)

DESCRIPTION

Life as Software Engineer. Dr. Jeyakesavan Veerasamy University of Texas at Dallas [email protected] [email protected]. Agenda. Introduce myself Software Engineer: Good & Bad Software: Then & Now SW development environment options SW Efficiency – does it matter? Latest buzz - PowerPoint PPT Presentation

Citation preview

Page 1: Life as Software Engineer

Life as Software Engineer

Dr. Jeyakesavan VeerasamyUniversity of Texas at Dallas

[email protected]@gmail.com

Page 2: Life as Software Engineer

Agenda

• Introduce myself

• Software Engineer: Good & Bad• Software: Then & Now • SW development environment options• SW Efficiency – does it matter?• Latest buzz• Trends in CS education• Open Q&A

Page 3: Life as Software Engineer

Dr. V. Jeyakesavan: Academia, Industry & Personal

• Dad was a school teacher• B.E. (ECE) in CEG Guindy, Anna University –

1986-90• UNIX System Software Engineer, HCL Limited,

Chennai, 1990-91• MS Computer Science, University of Texas at

Dallas (UTD), 1991-94

Page 4: Life as Software Engineer

Dr. V. Jeyakesavan: Academia, Industry & Personal …

• Telecom Software Engineer, Northern Telecom, Dallas, 1994-97

• Ph.D. Computer Science (part-time), University of Texas at Dallas (UTD), 1994-99

• Technical Lead, Samsung Telecom, 1997-2010• Got married in 1998• Adjunct Faculty, UTD CS department, 1999-2002• Online Adjunct Faculty in several online

universities from 2000

Page 5: Life as Software Engineer

Dr. V. Jeyakesavan: Academia, Industry & Personal …

• Adjunct Faculty, Southern Methodist University, 2010

• Sr. Lecturer (full-time), UTD Computer Science, 2010-present

• 2 daughters: Nila (8) and Chinmayee (4)• Passionate about teaching – happy to share

ideas to improve teaching quality in colleges

Page 6: Life as Software Engineer

Dr. V. Jeyakesavan: Summary

• 18 years experience as Software Engineer• 12 years of teaching experience

Page 7: Life as Software Engineer

“Software Engineer” career

• Great pay!• All about logical thinking!• Consistently one of the

best jobs !• Focus on technical stuff• Stay out of politics!

• Tight deadlines• Continuous learning• Logical errors• Documentation (painful?)

Page 8: Life as Software Engineer

“Software Engineer” career

• Technical ladder vs. Management ladder• Development vs. Test vs. Project management• work in big company vs. startup

Page 9: Life as Software Engineer

Complexity of software projects: historical snippets

• Ad-hoc development model• Waterfall model – slow & unpredictable– heavy documentation effort– cost overruns & missed deadlines

Page 10: Life as Software Engineer

My experience with huge SW projects(Waterfall model)

• Period of instability• collisons during merge• product delays• Is it good enough to release?

Page 11: Life as Software Engineer

Documentation: little vs heavy

Page 12: Life as Software Engineer

flowchart vs. pseudocode

Page 13: Life as Software Engineer

Version control system

• Enables development by a team of designers

Page 14: Life as Software Engineer

Agile process

Page 15: Life as Software Engineer

Agile methods

• Limited documentation• Better tracking of current status• Frequent releases• Continuous interaction with the customer• Several refinements: XP, SCRUM, …

Page 16: Life as Software Engineer

A typical industry project in 1990

C standard library Home-grown library

New code

Page 17: Life as Software Engineer

Same industry project NOW

C++/Java standard library

Home-grown library

Open source components

Commercial libraries for industry segmentIDE modules

New code

Follow-up Q: Any disadvantages?

Page 18: Life as Software Engineer

More Questions

• Expert programmer: what does it mean?• Future projects: No code? Just integration? • Knowledge of Java/C++/… down the drain?

Page 19: Life as Software Engineer

Application Specific Programming

M1 M2 M3

Intrepreter

Mn

script script script……

Page 20: Life as Software Engineer

Visual Programming

• Use of visual tools for development, process and testing

Page 21: Life as Software Engineer

Testing

• 100% testing possible?• 100% testing: is it needed?• Code coverage tools• Automated sanity testing

Page 22: Life as Software Engineer

Software efficiency: Do we really care?

• Goal is to make software work & meet deadline for most industry projects.

• Game console: Algorithm takes longer to run requires higher-end CPU to keep realism higher price product fails amid competition

• Web-server: Algorithm takes longer to run (consider 5 seconds vs. 20 seconds) tests web-users’ patience & requires more web server capacity.

• Daily data crunching: What if it takes >1 day?

Page 23: Life as Software Engineer

Data crunching pseudocode

• initial setup• loop– read one tuple– open db connection– send request to db– get response from db– some processing– close db

• post-processing

Page 24: Life as Software Engineer

Data crunching pseudocode

• initial setup• loop– read one tuple– open db connection– send request to db– get response from db– do some processing– close db

• post-processing

• Equation for running time = c1. n + d1

• Time complexity is O(n)

Page 25: Life as Software Engineer

Data crunching pseudocode

• initial setup• open db connection• loop– read one tuple– send request to db– get response from db– do some processing

• close db• post-processing

Page 26: Life as Software Engineer

Data crunching pseudocode

• initial setup• open db connection• loop– read one tuple– send request to db– get response from db– some processing

• close db• post-processing

• Equation for running time = c2. n + d2

• Time complexity is still O(n), but the constants are different.

• c2 < c1

• d2> d1

Page 27: Life as Software Engineer

Concepts: BHCA capacity

• Busy Hour Call Attempts• 1 Million BHCA central processor should

spend < 2.5 milli-second per call (assuming 70% load)

• Managing BHCA is a “system engineering” activity, done in every software release.

• Per-call measurements & optimization

Page 28: Life as Software Engineer

Capacity issues

• 2 types of nodes: – control nodes – transaction processing – CPU load

can vary a lot (>60% load is a concern). Use watch-dog timers that automatically reset the node if 100% sustained CPU load is seen.

– traffic nodes – actual traffic processing – can safely operate at 90% CPU load

• Power of Trending

Page 29: Life as Software Engineer

Handling Overload

• Overload can occur during mega-events or new years day

• Similar to “Denial of Service” attack• Need to shed call requests with minimal

effort.• Goal is to handle as many requests as possible

in reliable manner.

Page 30: Life as Software Engineer

Redundancy

• Is it for hardware or software?• Control nodes: Active/Standby redundancy • Traffic nodes: N+1 redundancy• Load sharing algorithm?• Round-robin or load-balancing• Leaky bucket?

Page 31: Life as Software Engineer

Interesting SW bugs

• Look at the following code:if (sector_id = 1)

…Send call setup message to ALPHA

• Lab tested the code in alpha sector. • What happens when this code is applied to

field?

Page 32: Life as Software Engineer

Blocking printf()

• Debug port used for logs• printf() was used to output messages – cannot

use break points due to timers• CDMA works based on GPS time• Timing drift is not good for soft handoffs

handoff failures• More time spent in printf() less time in

actual call processing less capacity

Page 33: Life as Software Engineer

Working with limited pipe

• There are two types of messages over the air:– Acknowledgement required– No ack required

• I changed neighbor information message type to improve soft handoff success.

• Resulted in more handoff failures, since actual handoff processing related messages could not get through.

Page 34: Life as Software Engineer

BSC crashes

• Unexpectedly long message or spurious content from mobiles causes buffer overrun

• Fixed size stack was used in OS – more local variables added over time.

Page 35: Life as Software Engineer

Summary: Trends in SW development

• Code less & integrate more…• More use of commercial components/libraries• More use of open-source projects• Small team & complex projects• More acceptance of “Agile process”• More automated test cases• Focus on Game development & smart-phone

applications

Page 36: Life as Software Engineer

Summary: Software career

• Software will continue to be growth area• Requires you to manage your time wisely to

maintain quality of life• More exciting things yet to come.• Put your brain and passion to work!• Do not get scared by all the jargons/terms – basics

are simple beneath the complex terms!• Try to enjoy the job & live a balanced life. • Keep emotions away from the job.

Page 37: Life as Software Engineer

University of Texas at Dallas

• Erik Jonsson School of Engineering and Computer Science

• Surrounded by 1000s of companies in Dallas-Fort Worth metroplex

• Students can get internships right after 2 semesters and continue studies in parallel.

• Most graduate students “graduate debt-free”!• We have well-ranked management school too.

Page 38: Life as Software Engineer

Dallas-Ft. Worth metroplex

Page 39: Life as Software Engineer

Indian connection!

• More than >50% CS faculty are Indian.• Around 60% of graduate students are Indian.• Management school is named after an Indian:

Naveen Jindal School of Management!

Page 40: Life as Software Engineer

40 ________________________________________________________________________ Department of Computer Science Jonsson School of Engineering and Computer Science

CS Department: Highlights

• The UTD CS dept started as a small program within the Mathematical Sciences in the 70s

• One of the largest CS dept’s in the US today• 55 faculty members• 120+ Research and Teaching Assistants • 15 Staff members including 4 Tech. Support• 1500+ Students (130 Ph.D. +700 MS +720 BS)• Full range of programs in CS, SE and TE:

-- BS, MS and Ph.D.

Page 41: Life as Software Engineer

41 ________________________________________________________________________ Department of Computer Science Jonsson School of Engineering and Computer Science

CS Department: Research Centers/Institutes

Cyber Security and Emergency Preparedness Institute (DFEPI) (Exec. Director: Dr. Doug Harris) - Cyber Security Research Center (Director: Dr. Thuraisingham)

Embedded Software Center (ESC) (Director: Dr. Farokh Bastani)

Human Language Technology Research Institute (HLTRI) (Director: Dr. Sanda Harabagiu)

Page 42: Life as Software Engineer

42 ________________________________________________________________________ Department of Computer Science Jonsson School of Engineering and Computer Science

CS Department: Accomplishments

• Ranked 29th in UC Irvine’s publications ranking of CS graduate programs

• Ranked 24th worldwide in UC Irvine’s publications ranking of SE graduate programs

• 8 of our faculty hold Young Investigator awards• Top 5 producer of CS degrees• Placed 14th worldwide in ACM Programming

Competition (just behind MIT & CalTech in US)

Page 43: Life as Software Engineer

43 ________________________________________________________________________ Department of Computer Science Jonsson School of Engineering and Computer Science

CS Department: Distinguished Faculty

• Over 55 memberships on editorial boards of computer science journals

• Research expenditure over $16 million in last two years

• Published 250+ papers last year• Involved in numerous leading technical

conferences as conference chairs or program committee chairs/members

Page 44: Life as Software Engineer

Questions & Answers

Page 45: Life as Software Engineer

Thanks for attending!

Dr. Jeyakesavan [email protected] [email protected]