Job Description
This Sr. Software Engineer will lead overall software development for the company and its initial product line. In this role, the successful candidate will have ownership of defining the agile software development process used by the company with emphasis on 2 week cycles for improving the code base that is reliable as built when used by a non-expert. Best practices for code documentation will be defined and implemented under your guidance. Since the people you work with and autonomy are the most important part of a job, the Senior Software Engineer will hand-pick the implementation team and their product will be his/her responsibility.
As projects within the company evolve, so will the technical focus of the Senior Software Engineer. Initially, the individual will design the core software architecture to realize Allied Communications’ quality of service (QoS) solutions based on existing algorithms for improving data flow from end users and machine to machine (M2M) on LTE and legacy 2G/3G cellular systems. The Sr. Software Engineer will code a presentation-ready demonstration of the concepts, in part via hands-on coding and in part via supervision of the programming team consisting of a Software Engineer and Associate Software Engineer. The Sr. Software Engineer will implement an efficient approach for code reuse that enables the original demonstration GUI and code base that adapts to many different end-user applications ranging from an Android handset to a smart grid or LTE modem on a consumer appliance.
This individual is expected to have a broad background in software development, including both application-layer software development using standard SDKs, particularly in the mobile arena (e.g. Android, iOS SDKs), in addition to experience doing lower-level software development in the embedded/OS area.
Responsibilities:
Define the foundational software architecture for products
Significant hands-on coding
Manage version control of software development
Re-engineer early-stage research code to allow for flexibility, stability, and scalability while preserving existing functionality
Gather requirements, design, code, test and implement according to design specifications
Oversee software version control across product line
Collaborate with architects and business development on design decisions and direction implementing customer functional requirements
Work closely with Director of Engineering to provide timely and accurate communication of status of project and technical hurdles
Implement mechanism to leverage efficient code reuse
Take lead role in identification of implementation problems and suggest solutions
Work with Director of Engineering and other senior staff to mentor junior developers
Provide significant input into hiring of technical staff
Desired Skills & Experience
Required Skills:
Earned Masters in Computer Engineering, Computer Science, or related field
>3 years experience in industry standard software development practice such as Scrum and Agile Development and version control systems such as Git
Detailed understanding of OSI and TCP/IP layered architecture and routing protocols
Understanding of cellular network architectures, protocols, and technologies
Significant experience with object oriented software development especially C++ and Java
Socket programing, threading
Embedded and/or system-level programming
Hands-on hardware software integration, proof-of-concept development
Demonstrated understanding of commercial use of open source software license such as BSD, GPL
Self-directed learner
Takes personal ownership of their work
Preferred Skills:
Experience in App development cycle on Android and iOS devices
Familiarity with modeling and simulation packages such as OPNET, NS-2, NS-3, and MATLAB
Experience with core cellular networking equipment, including both the 3G and 4G data network core systems
Experience with emerging mobile research topics, including applications of software-defined and cognitive radio
Invention and publication experience, such as conference/journal publications and/or patent applications or invention disclosures
Company Description
Allied Communications is a venture-backed, well capitalized startup company focusing on enabling the next generation of cellular wireless communications. We commercialize early stage research out of Universities and Federal Labs around developing enabling technologies for next-generation mobile networks. We are a small, nimble start up and this position is part of our first ramp up. As early employees of the company, the successful candidate will have an opportunity to help shape the culture of the future organization. We give employees the autonomy to roll their sleeves up in a casual environment to build something real and have a say in technical decisions. Our culture is one of technical innovation, hands-on, self-directed learning, collaboration, and strong work ethic.
To apply, please email your resume to Kathryn.graves (at) alliedminds.com
Related
Who is Conversa Solutions:
Conversa Solutions is an engineering, research and software development company which specializes in the cellular industry. Conversa Solutions has been in business since early 2008 and our management team is completely comprised of former (and current) software developers with over 30 years of industry experience. Our customers include OEMs like Motorola, HTC and Samsung and wireless carriers like MetroPCS, Cricket and Iusacell. When OEMs want to customize existing mobile devices for smaller carriers they outsource this task to us. We reverse engineer the device and modify its base software to add or remove features, branding and other customizations. Do you like work that is intellectually challenging and diverse? Do you think ethical hacking and reverse engineering are skills every programmer should have? Would you be doing something like this as a hobby and think the idea of getting to play with phones all day is a great way to make a living?
Job Description:
The Mobile Device Software Engineer is assigned a reverse engineering or development project or projects based on current project queue and/or prior experience and knowledge.
The primary job function is the development of software / hardware solutions for the customization, or alteration of cellular devices for use on CDMA or GSM networks. We are a research and development company that works in the cellular industry. Network Operators (wireless carriers) and other distributors / refurbishment companies come to us when they are unable to build or find a solution to a particular software or hardware problem. This often involves research into the inner workings of the phone software and hardware to develop a solution that can be deployed by our production and operations staff or packaged into a software solution for use by our customers. We encourage the “hacker” mentality in our company, not in the malicious sense, but in the inquisitive and creative sense. In most cases there is no documentation available for the devices we work on, so we must rely on our experience and creativity to find a solution. Imagine getting paid to play with cell phones! Work is project oriented with set goals and requirements, and all equipment is provided by Conversa Solutions.
Required Skills:
Linux systems administration, Linux/Android development or Linux/Android Security Research.
Proficiency in at least one unmanaged version of C (C, C++) and C#. Also as needed the ability to program in Python or other similarly based scripting languages.
Basic understanding of embedded systems, memory types (NAND vs. NOR) and the concept of how software is loaded to such systems (Flashing, JTAG, etc.).
Proficiency in modifying files or images with a Hex Editor.
Understanding of image or file headers and how to parse them.
Ideal Candidate Skills:
Basic Understanding of CDMA & GSM networks, which parameters apply to each and how to customize settings for a specific carrier/network operator.
Understanding of assembly language (ARM a plus) and reverse engineering concepts such as:
Use of IDA on binary files
Reverse Engineering of unknown binary formats
Understanding of serial and USB communications.
Strong reverse engineering skills and a desire to further enhance those skills.
Other Responsibilities:
Support the IT/System Administration team in the rollout and deployment and installation of projects and processes
Support the operations/production teams during project life cycle from a training and technical support perspective
Support Conversa Solutions infrastructure and systems. This will include occasional out-of-hours work.
Relocation Requirements:
Candidate must be willing to relocate to Michigan area.
Please send resumes to trevor(at)conversasolutions(dot)com.
Job Description
The Software Engineer will work in a team of software developers under the supervision of the Director of Engineering and Senior Software Engineer. This position seeks someone with broad software development experience, but specifically seeks candidates who are strong in the embedded and system software development area in Linux-based environments. The software engineer will work within a 2 week agile development cycle to create high quality, reliable demonstration systems of the company products that relies on efficiency code reuse strategies.
As projects within the company evolve, so will the technical focus of the software engineering team. Initially, the individual selected for this position will focus on realizing Allied Communications’ quality of service (QoS) solutions. Specific areas of work may include mobile device system program (e.g. Android Linux system and kernel development, embedded mobile device operating system development, etc) and Linux-based traffic router system development.
Responsibilities:
Assisting in defining system requirements
Collaborating with other software engineers on system architecture
Coding detailed designs
Unit testing of code
System testing
Develop documentation
Follow version control protocols
System-level programming on Android platform
System-level programming on embedded devices
System-level programming on Linux server devices
Provide timely and accurate communication of status of project and technical hurdles
Mentor junior software engineers
Handle other duties as assigned
Desired Skills & Experience
Required Qualifications:
Earned Bachelors in Computer Engineering, Computer Science or equivalent
2 years + experience in software development lifecycle including agile development processes
Hands-on system-level development on the Android platform
Hands on development in iOS platform
System-level programming on Linux
Demonstrated knowledge of cellular data QoS
Solid experience with version control and bug tracking
Self-directed learner
Takes personal ownership of their work
Preferred Qualifications:
Invention and publication experience, such as conference/journal publications and/or patent applications or invention disclosures
Familiarity with modeling and simulation packages such as OPNET, NS-2, NS-3, and MATLAB
Company Description
Allied Communications is a venture-backed, well capitalized startup company focusing on enabling the next generation of cellular wireless communications. We commercialize early stage research out of Universities and Federal Labs around developing enabling technologies for next-generation mobile networks. We are a small, nimble start up and this position is part of our first ramp up. As early employees of the company, the successful candidate will have an opportunity to help shape the culture of the future organization. We give employees the autonomy to roll their sleeves up in a casual environment to build something real and have a say in technical decisions. Our culture is one of technical innovation, hands-on, self-directed learning, collaboration, and strong work ethic.
Role summary
Canonical's Mir team is developing and delivering the next generation display server that will support linux devices across multiple form factors. This is an engineering technical lead position with both technical & line management responsibilities . Your ability to lead a distributed team, encourage others to work to the highest standards to deliver quality software on schedule and to communicate effectively with both the Mir team lead and external stakeholders will make you a valued member of this talented team of developers.
Key responsibilities and accountabilities
Own & guide the technical architecture & implementation of Mir
Ensure a functioning and performing Mir is being delivered into the ubuntu archive
Ensure the team is following good engineering practices, performing appropriate testing
Monitor and help ensure bug tracking and code merge proposal remain moving
Train and mentor developers
Be able to report on feature development progress in detail
Provide input on priority planning and scoping estimates
Allocate responsibilities & tasks to individual team members
Participate in private and public meetings to help drive the strategic direction of Mir
Work with other teams in Canonical throughout the software lifecycle to deliver high quality systems to production
Take part in the review and specification of requirements, designs and transfer to production
Participate in development "sprints", often involving international travel
Required skills and experience
Expertise in mobile graphics stacks
Strong experience in desktop graphics stacks
Strong grasp of working with Linux desktop and server technologies
Ability to design and develop code in C++
Experience in delivering to and helping to launch consumer products such as laptops, tablets, mobile phones
Strong English language communication skills, especially in online environments such as mailing lists and IRC
Ability to be productive in a globally distributed team through self*-discipline and self-*motivation, delivering according to a schedule
Desirable skills and experience
Experience with OpenGL
Experience with OpenGLES
Experience with window management
Experience with Android's graphics stack
Experience with the Xorg graphics stack
To apply, visit Canonical's job listing.
Role Summary
Canonical leads the development of Ubuntu. If you’re inspired by the idea of shaping the daily software experience of millions of users, on a variety of devices, want to see your skills and talents make a meaningful difference in the world, and you believe in craftsmanship in everything you do, then read on.
Canonical is seeking a talented, productive and friendly C++ developer, to work in the Display Server development team. You will be developing a technology that is set to replace X.org and will be the foundation for the work on newer form factors.
You consider the singleton as an anti-pattern, but still appreciate the gang of four book and know that knowledge of patterns is a tool, not the target of design. If you are also familiar with the names Sutter, Josuttis, Alexandrescu and Meyers then you may well fit the mould we are looking for.
Key Responsibilities
Take responsibility for engineering delivery to spec and to plan
Design and implement Display Server features
Use test-driven development, ensure code test coverage, add tests for untested code
Create tools and monitor metrics to validate the robustness and performance of features during the development cycle
Design API’s for third-party developers, or other contributors to your application
Manage code branches for features and contributions from third party developers
Provide reviews of code for other team members and contributors
Participate to the release process, by preparing feature releases on a regular cadence
Prioritize and fix bugs in your components or applications, based on management goals
Take proactive steps to ensure the quality of code for which you are responsible
Required Skills and Experience
Excellent C++ programming skills with extensive and diverse experience of client side software development
Knowledge of CMake
Experience with the SOLID design principles
Experience designing for performance and robustness requirements
Experience of API and application architecture design
Experience with Linux as a development platform: editors, compilers, conventions
Experience with OpenGL
Desirable Skills and Experience:
Experience working in distributed teams and of collaborating with remote developers, by IRC, telephone and email
Knowledge of Ubuntu packaging and release processes (dpkg, PPAs etc)
Working experience with desktop toolkits: Qt/QML and GTK+
Familiarity with higher level languages like Python, Javascript or Java
ARM and embedded development experience
Experience with iOS and Android development
Open source and community development experience, with identifiable work and contributions to one or more open source projects.
To apply, please visit Canonical's job listing.
Descartes (TSX: DSG) (Nasdaq: DSGX) is a global leader in providing on-demand, software-as-a-service solutions focused on improving the productivity, performance and security of logistics-intensive businesses. Descartes' B2B network, the Global Logistics Network, integrates more than 35,000 trading partners to our cloud-based Logistics Technology Platform to unite their businesses in commerce. Customers use our modular, software-as-a-service solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in the world's largest, collaborative multi-modal logistics community. Our headquarters are in Waterloo, Ontario, Canada and we have offices and partners around the world. Learn more at www.descartes.com.
POSITION SUMMARY
Reporting to the Director, Wireless Network Services, the Mobile Device Software Developer will be a key member of the telematics mobile development team whose primary responsibility will be the development, enhancement and maintenance of Descartes mobile solutions. The candidate will work in a fast-paced work environment focused on delivering critical features involving leading-edge web technologies.
RESPONSIBILITIES
Your responsibilities will be situated in the following domains:
Articulate product vision to Engineering and take lead in entire cycle of product development/design.
Collaborate with QA/E2E QA team to ensure quality of the product. Provide use case and other sufficient documents for this purpose.
Design, test and integrate new software products to control and/or support related products.
Create, revise and maintain design/technical documentation.
Responsible for developing, applying and maintaining quality standards.
Establish and maintain effective working relationships at all levels.
Provide ongoing support for existing production applications.
Maximize productivity and efficiency to meet challenging work goals.
QUALIFICATIONS
University degree in Computer Science/Engineering or Software Engineering.
Minimum of 5+ years of software development experience with C/C++.
Minimum of 3+ years of software development experience with Java.
Strong experience with C/C++ and ability to facilitate debugging low-level kernel and driver code.
Knowledge related to telematics hardware - automotive grade processors, analog/digital sensors, etc.
Experience in developing applications involving multithreading, GPS and socket communications are mandatory.
Strong experience in writing functional specification and design documents from product requirements.
Must have excellent communication skills.
Strong problem solving skills.
Experience or knowledge in porting Linux to telematics hardware.
Working knowledge and internal design understanding of device drivers in the Linux environment.
Operational knowledge related to HDMI/VGA drivers in the Linux environment.
Experience in porting Android to embedded or other hardware systems would be an asset.
Experience in development and understanding of Android life cycle and ecosphere would be an asset.
LOCATION
Waterloo, Ontario
OFFER
We offer a flexible and casual work environment, as well as mentorship and on-the-job training to support your personal growth. You will have an opportunity to contribute new ideas and we welcome your fresh perspective.
APPLICATION INSTRUCTIONS
Please submit your resume, and a covering letter describing why you are a unique fit for this position, to jobsna (at) descartes (dot) com citing “Mobile Device Software Developer” in the subject of your message. We thank all applicants for their interest in Descartes; however only those candidates selected for an interview will be contacted. Agency calls will not be accepted.