470 likes | 702 Views
Life as Software Engineer. Dr. Jeyakesavan Veerasamy University of Texas at Dallas jeyv@utdallas.edu jeyak7@gmail.com. Agenda. Introduce myself Software Engineer: Good & Bad Software: Then & Now SW development environment options SW Efficiency – does it matter? Latest buzz
E N D
Life as Software Engineer Dr. Jeyakesavan Veerasamy University of Texas at Dallas jeyv@utdallas.edu jeyak7@gmail.com
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
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
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
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
Dr. V. Jeyakesavan: Summary • 18 years experience as Software Engineer • 12 years of teaching experience
“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?)
“Software Engineer” career • Technical ladder vs. Management ladder • Development vs. Test vs. Project management • work in big company vs. startup
Complexity of software projects: historical snippets • Ad-hoc development model • Waterfall model • slow & unpredictable • heavy documentation effort • cost overruns & missed deadlines
My experience with huge SW projects(Waterfall model) • Period of instability • collisons during merge • product delays • Is it good enough to release?
Version control system • Enables development by a team of designers
Agile methods • Limited documentation • Better tracking of current status • Frequent releases • Continuous interaction with the customer • Several refinements: XP, SCRUM, …
A typical industry project in 1990 New code C standard library Home-grown library
Same industry project NOW New code Home-grown library Commercial libraries for industry segment IDE modules Open source components C++/Java standard library Follow-up Q: Any disadvantages?
More Questions • Expert programmer: what does it mean? • Future projects: No code? Just integration? • Knowledge of Java/C++/… down the drain?
Application Specific Programming script script script … Intrepreter M1 M2 M3 Mn …
Visual Programming • Use of visual tools for development, process and testing
Testing • 100% testing possible? • 100% testing: is it needed? • Code coverage tools • Automated sanity testing
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?
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
Data crunching pseudocode • Equation for running time = c1. n + d1 • Time complexity is O(n) • initial setup • loop • read one tuple • open db connection • send request to db • get response from db • do some processing • close db • post-processing
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
Data crunching pseudocode • Equation for running time = c2. n + d2 • Time complexity is still O(n), but the constants are different. • c2 < c1 • d2> d1 • initial setup • open db connection • loop • read one tuple • send request to db • get response from db • some processing • close db • post-processing
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
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
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.
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? …
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?
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
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.
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.
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
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.
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.
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!
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. ________________________________________________________________________ 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) ________________________________________________________________________ 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) ________________________________________________________________________ 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 ________________________________________________________________________ Department of Computer Science Jonsson School of Engineering and Computer Science
Thanks for attending! Dr. Jeyakesavan Veerasamy jeyak7@gmail.com jeyv@utdallas.edu