Diego Dagum · linkedin.com

About

With over a year of experience as a Firmware Engineer at Axon, I focus on developing…

Activity

8K followers

Experience & Education

View Diego’s full experience

See their title, tenure and more.

or

Publications

  • Cross-platform C++ library project template

    GitHub (Open Source repo)

    A cookiecutter-based project template to easily create cross-platform C++ library projects.

    Among its features:
    * Android and iOS sample apps that integrate the cross-platform library stencil.
    * Unit test integration via Catch/2 with a canary test built-in.
    * Lint style checking via Cppcheck.
    * API documentation generation via Doxygen.

    See publication

  • Bitset Iterator (C++ library)

    GitHub (Open Source repo)

    A longtime needed iterator for C++ STL std::bitset<N>.

    An STL std::bitset could be seen as a set of integers. For example, consider an instance of std::bitset<8> like 0b01001011. Such instance can be seen as the set of integers { 0, 1, 3, 6 } corresponding to all its set bits. Yet, why not, it could be also seen as the set of integers { 2, 4, 5, 7 }; these are the indices of all unset bits.

    Using std::bitset to model a set of integers could be a matter of convenience…

    A longtime needed iterator for C++ STL std::bitset<N>.

    An STL std::bitset could be seen as a set of integers. For example, consider an instance of std::bitset<8> like 0b01001011. Such instance can be seen as the set of integers { 0, 1, 3, 6 } corresponding to all its set bits. Yet, why not, it could be also seen as the set of integers { 2, 4, 5, 7 }; these are the indices of all unset bits.

    Using std::bitset to model a set of integers could be a matter of convenience given its compact runtime footprint. Also, the ability to load it from, unload it to an unsigned number.

    Unfortunately, for those scenarios where std::bitset is a smart choice to represent sets of integers, the type provides no iterators. There's no convenience way to retrieve just the bits that are on (or, conversely, the ones off) other than just visit all bits and test their statuses.

    This header-only template library closes such gap.

    See publication

  • C++ In the Post-PC Era

    Youtube

    Smartphones and tablets made personal computing more personal than ever. This post-PC era, with its new platforms and technologies, disrupted how developers design, build and deliver software. Moreover the fact the traditional PC renewal / replacement cycle is now longer confirms the notion that attention has shifted to the new form factors.

    What role do C++ and C++ developers play in this new scenario?

    In this talk, Diego reviews aspects that make C++ unique for ARM-based…

    Smartphones and tablets made personal computing more personal than ever. This post-PC era, with its new platforms and technologies, disrupted how developers design, build and deliver software. Moreover the fact the traditional PC renewal / replacement cycle is now longer confirms the notion that attention has shifted to the new form factors.

    What role do C++ and C++ developers play in this new scenario?

    In this talk, Diego reviews aspects that make C++ unique for ARM-based development, together with the many challenges and overlooked costs that C++ developers face when jumping in. Diego shows how the leading platforms enable C++ through technologies and tools. He also discusses the state-of-the art in cross-platform approaches with their pros and cons.

    You'll leave this talk with a panorama of the many ways to use C++ in the post-PC world, what's already achieved and what still needs to be done.

    See publication

  • New Age C++

    Visual Studio Magazine

    This is a column I wrote during 2012 and 2013, to divulge the evolution of C++ in its version C++11, aimed for Java and .NET developers who are looking to incorporate unmanaged code to their projects, given the uncontested performance benefits that native code delivers.

    See publication

  • Architecting for Highly Available, Scalable, and Reliable Mission-Critical Applications

    Software Engineering Institute (Carnegie Mellon University)

    Mission-critical applications are vital for the normal flow of operations in any organization. This range of applications is characterized by a series of attributes, such as scalability, fault-tolerance, resiliency, and performance. While it’s pretty easy to get any of these attributes in isolation, meeting all them together is not a straightforward process. It typically happens that, when applying techniques intended to maximize—let’s say—scalability, performance might be eroded; performance…

    Mission-critical applications are vital for the normal flow of operations in any organization. This range of applications is characterized by a series of attributes, such as scalability, fault-tolerance, resiliency, and performance. While it’s pretty easy to get any of these attributes in isolation, meeting all them together is not a straightforward process. It typically happens that, when applying techniques intended to maximize—let’s say—scalability, performance might be eroded; performance enhancement may cut graceful degradation capabilities, and so forth. This session explores all those tradeoffs, offering effective guidance to deal with mission-critical attributes altogether. After attending this session, the attendee will be able to identify those friction points, applying integral techniques in order to maximize the fulfillment of those attributes at once. This session also offers health checking techniques for diagnostics, to guarantee that quality-of-service agreements are being fulfilled.

    See publication

Courses

Honors & Awards

  • Google DevFest Hackathon

    Seattle Google Developer Group (GDG

    Together with other partners I met in the venue, I won the Google TV Hackathon (whose prize was a Google TV player).
    We did an Android application for Google TV that allowed to share fragments of YouTube videos (from-to, fragments, not entire videos) between Twitter followers.
    While we couldn't code it at the venue, the ultimate idea of this application was to arrange playlists of YouTube fragments, shareable to followers.

Languages

Recommendations received

Other similar profiles

Explore top content on LinkedIn

Find curated posts and insights for relevant topics all in one place.

View top content

Add new skills with these courses

Read the original on linkedin.com ↗