1. Windows + Linux Software Development Engineer

oatmealbrothersSoftware and s/w Development

Nov 18, 2013 (3 years and 10 months ago)

98 views



For all the positions, we would strongly prefer individuals with B or M degrees and a good academic
record (70+% average).



1.
Windows
+
Linux
Software Development Engineer


Responsibilities:

Work as part of a team to design, develop, debug, test and
support software for a Software
Development Kit (SDK).


The ideal candidate will have the following experience and skills:

Master's or Bachelor's degree in Electronics Engineering, Computer Engineering or Computer
Science with at least two years of relevan
t work experience. Proficient in structured and object
oriented programming (C/C++) and scripting languages (e.g. bash, Bourne shell, Python). Extensive
experience with development and debugging on both the Windows and Linux platform is required
(Visual St
udio, GCC/G++, revision control systems, build systems, troubleshooting, debugging and
profiling tools). Experience with multi
-
threaded programming is also desired. Strong oral and written
communication skills are required.



2.
Silicon
Simulation Software

Development Engineer


Responsibilities:

Work as part of a team to design, develop, debug, test and support silicon simulation software for a
Software Development Kit (SDK).


The ideal candidate will have the following experience and skills:

Master's or Ba
chelor's degree in Electronics Engineering, Computer Engineering or Computer
Science with at least two years of relevant work experience. Proficient in structured and object
oriented programming (C/C++) and scripting languages (e.g. bash, Bourne shell, Pyt
hon). Experience
with development and debugging on the Linux platform is required (GCC/G++, revision control
systems, build systems, troubleshooting, debugging and profiling tools). Verilog or VHDL experience
is a prerequisite.

Experience with multi
-
thread
ed programming is also desired. Strong oral and written
communication skills are required.



3.
Compiler
Software Development Engineer
:


Responsibilities:

Work as part of a team to design, develop, debug, test and support compilers, assemblers, linkers
and

simulators for a Software Development Kit (SDK).


The ideal candidate will have the following experience and skills:

. Master's or Bachelor's degree in Electronics Engineering, Computer Engineering or Computer
Science with at least two years of relevant
work experience.

. Proficient in structured and object oriented programming (C/C++) and scripting languages (e.g.
bash, Bourne shell, Python).

. Extensive experience with development and debugging on a Linux platform is required (GCC/G++,
revision control
systems, build systems, troubleshooting, debugging and profiling tools) . Experience
with development and debugging on a Windows platform is desired . Experience with multi
-
threaded programming is desired. Extensive experience with development of compilers

is required.
Experience with development of assemblers and linkers is desired. Extensive experience with
designing and optimizing software to meet specified performance goals is required . Experience with
Edison Design Group or LLVM front ends is desired
. Exposure to hybrid computing (reconfigurable
logic combined with

processing) and heterogeneous processors is advantageous . Assembly language programming
experience is advantageous . Ability to work in multi
-
disciplined team environment is required .
Str
ong oral and written communication skills are required.



4.
Embedded
Networking Software Engineer:


Responsibilities:

Work as part of a team to design, develop, debug, test and support high
-
performance networking
software.


The ideal candidate will have t
he following experience and skills:

. Master's or Bachelor's degree in Electronics Engineering, Computer Engineering or Computer
Science with at least two years of relevant work experience.

. Proficient in embedded programming (C/C++) and scripting languag
es (e.g.

bash, Bourne shell, Python).

. Experience with IXP/NFP software development (C/assembler) is desired .

Extensive experience with development and debugging on a Linux platform is required (GCC/G++,
revision control systems, build systems, troublesh
ooting, debugging and profiling tools) . Experience
with embedded systems and embedded software development is required . Experience with multi
-
threaded programming is desired . Knowledge of major network protocols such as TCP, IP, HTTP,
Ethernet, ARP, ICM
P, UDP as well as typical network device operations such as parsing, classifying,
filtering and forwarding traffic is desired . Knowledge w.r.t. implementation of network protocols
and device driver/network stack internals for Linux and/or other embedded o
perating systems is
desired . Knowledge of virtualization technologies (e.g.

hypervisors, IOV) is desired . Extensive experience with designing and optimizing software to meet
specified performance goals is required .

Experience with network security proto
cols (e.g., IPsec) is desired .

Knowledge of network switching and routing including network design,

L2 bridging, STP, L3 routing and dynamic protocols is desired . Assembly language programming
experience is advantageous . Ability to work in multi
-
discipl
ined team environment is required .
Strong oral and written communication skills are required.