1 / 23

A life in Engineering

A life in Engineering. Miranda Technologies Chris Pringle. Agenda. Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the Real World Software Management People Skills Finding your job!. Introduction. About me 2+2 CRTS Degree Career History

azriel
Download Presentation

A life in Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A life in Engineering Miranda Technologies Chris Pringle

  2. Agenda • Introduction • About Miranda • My Role • Real Time Systems • Crashing Nightmares • Software Design in the Real World • Software Management • People Skills • Finding your job!

  3. Introduction • About me • 2+2 CRTS Degree • Career History • RWE NPower • Hewlett Packard • Miranda Technologies

  4. About Miranda • Product Ranges • Master Control & Branding • Facility Monitoring & Control • Signal Processing and Distribution • Multi Image Display Processors • Routing Switchers • Playout Servers • Production and Post-Production Interfaces

  5. My role at Miranda • Presmaster Control System • Configuration tools • Router driver • Imagestore / Intuition • Kernel & Drivers • Audio • Clip Playback • IS750 Hardware Bring-up • New design • R&D Responsibilities • Configuration Management System • R&D Servers • R&D Racks

  6. Real Time Systems • What are they? • Hard real time • Operation depends on correctness and time constraints • Soft real time • As above, but some toleration of lateness

  7. Real Time Linux/Windows? • What constitutes a Real Time O/S? • Deterministic response times • Low interrupt latency • Preemptible kernel • Scheduler (FIFO) • And more… (Priority inversion resolution, deadlock detection etc.)

  8. Real Time Linux/Windows? • Are Linux and Windows Real Time? • Can they be made Real Time? • MontaVista Linux • FSMLabs RTLinux • Windows CE • VXWorks • BUT – they none of them guarantee determinism • Remember – If you’re in R&D – the ‘R’ is important!!!

  9. IS750 / Presmaster Demo

  10. Crashing nightmares • What do you do when? • System runs okay for 99.9% of the time • System hangs after 3 weeks • No log entries • Imagestore 300 Nightmare • Simple CPU change

  11. Fault finding • Look for the source • Is it in kernel or user space? Is it firmware or hardware? • List the possibilities – no matter how improbable! • Think about what may be aggravating the problem • Try and make the problem worse • Is there more than one problem? • Get pointers/help • Use your colleagues! • Internet

  12. Fault Finding • Reproduce it • Kernel/JTAG debugger • Logic analyser / FPGA scope tools • Isolate the problem in software • If necessary, isolate the problem in hardware • Learn when it’s time to change your approach

  13. What was it? • Imagestore 300: • outb(0x80, 0x80); • outb(0x30, 0x30); • Incorrectly configured south bridge (BIOS bug)

  14. Programming Real Time Systems • Make effective use of drivers/interrupts • Top and bottom halves • FIFO Scheduler • Don’t poll or sleep; Use interrupts • CPU vs I/O bound • Get your priorities sorted • Process affinity • Plan and experiment • Hardware Settings • Wrongly set BIOS settings can RUIN your performance!

  15. Software Development in the Real World • Build on your skills – Research! • Learn when to compromise • The most elegant solution isn’t always the right one • Accept you’re sometimes wrong!

  16. Software Management • Configuration Management • Issue Tracking • The dreaded “D” word! • Project Plan & Resources • Code Reviews

  17. People Skills • Dealing with? • Product Development / Sales • Senior Managers • Support • Peers • Your immediate manager/supervisor • External vendors/suppliers

  18. Dealing with People • Management • Be respectful, but fight your corner • Cover yourself • A good programmer is a team player • Learning to deal with awkward people • Accept it when you’re wrong! • Don’t make recommendations to management if you’re not sure!

  19. Communication • Team Meetings • Code Reviews • Email / Documentation • Log book! • What would happen if someone in your team left?

  20. Finding your job! • Know what you want • Produce a good CV • The Interview • 2 way process • Don’t lie/blag – for the most part it’s transparent! • Be honest and upfront with your skill set • Sell yourself – but don’t be arrogant • Look for ways to enhance your skills • Look for a challenge!

  21. A job with Miranda • Miranda is recruiting! • Software engineers for embedded systems • Software engineers for desktop tools • Hardware/Firmware engineers • QA/RnD Test engineers • Send your CV

  22. Q&A

  23. Chris PringleSoftware EngineerEmbedded Systems GroupMiranda Technologies Ltd.chris.pringle@miranda.com

More Related