Careers
Job Description
Senior Software Engineer
As a Senior Software engineer, you will have responsibility for the software design of new products. You will work with product development and definition and come up with the best software architecture for the product, then oversee the development of the software. Although you will be a leader, you are not just a manager--mostly here we lead by example. You’ll have a private office, and we strive to keep distractions to a minimum, so you can be free to do the brilliant work that we need.
Most of our software serves as command and control code for our video conversion products. The software is responsible for translating the user intent and making sure that all the hardware bits are set up right (trickier than it sounds). You will need to be able to visualize a complex system and understand how its parts work together. We also plan on developing control systems in the future that send commands to devices over TCP/IP messaging, and GUIs for control of devices from a PC.
Personal Requirements
1. Self-starter - Demonstrated history of looking for problems to solve and solving them.
2. Good communicator - Communicates ideas well, speaks up when he or she has a better way of doing things, gives and takes constructive criticism well.
3. Accurate estimator - Ability to estimate how long development tasks will take.
4. Capable leader - Demonstrated history of coaching junior engineers and helping them be useful contributors to large projects.
5. A Closer - History of bringing projects to a close, creating a shippable product, and getting the job done.
Skill Requirements
1. Embedded processor systems - boot loaders, device drivers, in field upgrade, intra PCB communications protocols, etc.
2. C/C++ - all our code is programmed in C or C++. He or she must have experience completing projects using these languages.
3. TCP/IP networking - sockets programming, SNMP agent, and HTTP server development are all very useful.
4. Processor architectures - Xilinx Microblaze, Microchip PIC, and SHARC DSP are the three processor architectures that we currently use. Experience developing for any of these platforms is a big help.
5. Very high level languages - We use Python wherever we can, but Perl and Ruby experience are also good.
6. Software architecture - Can you organize a large programming problem into logical groups, and remove redundancy from the system?
7. Unit testing - We need people who can subdivide software into testable units. Experience with unit testing frameworks (CppUnit, CxxUnit, etc) is a plus.
8. Familiarity with video concepts is a big plus - analog and digital, color spaces, compression, raster structure.
9. Xilinx FPGA development a big plus - Having worked with the Microblaze FPGA synthesized processor is also very helpful.
10. Linux operating system - Having ported Linux to different hardware platforms and written Linux device drivers is extremely useful.
Start Date
ASAP
Benefits
We offer group health insurance for employees and dependents, a 401(k) with matching contributions, a generous company holiday schedule, and a relaxed and friendly atmosphere. We also support and promote our employees pursuing graduate coursework at the University of Illinois, Urbana-Champaign.
Contact
Thank you for considering a career with Cobalt Digital. To apply, please send your resume to Human Resources at hr@cobaltdigital.com.