Software Development Engineer Green Hills Software, Inc.
Green Hills Software, Inc is a world-renowned, market leading provider of high-performance software tools for developers of embedded systems. Green Hills produces real-time operating systems (INTEGRITY and velOSity), an integrated software development environment (MULTI), optimizing compilers, and debugging hardware for use in embedded system development.
Green Hills Software was founded in 1982, is privately held, has been profitable since its inception, and is growing at an average rate of 30 per year. Green Hills Software is now the world's 2 RTOS company. Based in Santa Barbara, California, Green Hills offers its employees challenging technical careers in one of the finest year-round climates in the world.
With about 250 employees, Green Hills Software is small enough to allow individuals to be noticed and recognized for their contributions, but big enough to be the leader in its market.
A software engineer has complete engineering responsibility for one or more major components of the Green Hills product line. For an experienced programmer this is a satisfying position in which you have personal responsibility for creating a tool used by thousands of programmers around the world. Our engineers are involved in Language Front Ends, Code Generators, Real Time Operating Systems, our MULTI Development Environment, our Secure Workstation, our Time Machine Debugger and Target Systems.
Here are the groups for which we are hiring:
Compiler Group: Create, update, and maintain a language front end or a target architecture backend for the highly-optimizing family of Green Hills compilers. A compiler engineer might work on new language extensions, specific cutting-edge optimizations for the latest chips to hit the market, or on general optimizations that will benefit our entire product line. An ideal candidate understands low level micro architecture designs and is comfortable working with assembly code, yet can also develop tools written in high level languages.
MULTI Development Environment: Create, upgrade and maintain a component of the MULTI development environment, such as the debugger, the editor, the builder, the configuration manager, the profiling system, the version control system, or one of several other components yet to hit the market.
Target Connections Group: Extend the MULTI debugger and development environment to support new targets and new debugging concepts. You will gain in-depth knowledge of new microprocessors, CPU boards, in-circuit emulators and/or real-time operating systems and make the necessary changes so that the MULTI debugger can download programs, set breakpoints, single step, collect profiling information, and debug multiple processes. You will also be responsible for adding new and unannounced features to MULTI. Projects in this area require one to be willing to solve some of the knottiest problems in real time development.
Hardware Products: As a member of the Hardware Products team, you will have the opportunity to design at the forefront of embedded technology to create world-class products. The work is hands-on, and geared for performance and reliability. Proficiencies in high-speed circuit design, software, HDLs, even PCB layout and soldering are needed regularly, plus the tenacity to see a project through from concept to high-performance completion. Knowledge of EMI compliance issues and thermal management are a plus.
INTEGRITY Real-time Operating System: Create, upgrade and maintain components of the INTEGRITY memory protected real-time operating system, such as device drivers, board support packages, networking stacks, other native application code, ports of third-party application code, or even the kernel itself. You will have the opportunity to work on one of the fastest growing products in the embedded industry, as well as the opportunity to make INTEGRITY work with bleeding-edge hardware. Projects in this area require familiarity with interfacing directly to hardware and with multi-threaded programming.
Time Machine Debugger: Create, maintain and extend a component of TimeMachine, the world's first debugger that can fully debug backwards through time. Engineers in the TimeMachine group work on ways to help programmers solve the most difficult challenges and bugs they face by extending our existing tools or inventing new ways to visualize and understand software. Built on top of trace data, TimeMachine provides unique views into software that developers have only dreamed of. The work is fast-paced and innovative and there are always unique challenges to solve as well as opportunities to work on both high- and low-level software.
Requirements and Qualifications
Strong programming skills in C/C required
Must be working toward or possess a BS/MS (CS, ECE, Math) or have 5 yrs experience in the embedded software industry
A GPA of 3.25 or greater is required
Should feel comfortable with the idea of personally creating a fairly complex 25,000 line application in about a year
Must be willing and able to work independently and with little supervision
Should be innovative and passionate about coding
Should be excited to take on new challenges
||Santa Barbara, CA |