ServerUploaderDeveloperApplication

I, Miriam España Acebal, apply for upload rights for package(s) of the Server set.

Name

Miriam España Acebal

Launchpad Page

~mirespace

Wiki Page

https://wiki.ubuntu.com/MiriamEspanaAcebal

I am applying because:

  • I would like to contribute to Ubuntu more efficiently by reducing the burden on my sponsors and, therefore, eliminating delays in getting my work sponsored.
  • I want to publicly validate my knowledge and experience on the Server distro side.
  • This is the first step in my journey to become core-dev.

Who I am

I'm a Distro Software Engineer (a.k.a. packaging staff) at Canonical Public Cloud Team (a.k.a. CPC), but when I joined Canonical two and a half years ago, I started at the Server Team. I am attached to the Azure Cloud, so I'm on the front line of dealing with packaging work that involves Microsoft software, like .NET or the Azure CLI, but not exclusively.

I can split my career between research and company work.

On the company side, before Canonical, I worked for AT&T Cybersecurity Business Unit on a distro of tools for network security monitoring and threat detection over Debian 8. I drove the transition of the appliance to Debian 9, adapting, upgrading or replacing packages, keeping all the services (or creating new ones) and the system itself under SysV and keeping the discovery of the network cards with the eth prefix due to business requirements. Also, the ISO compilation was on my own by scripting and attaching it to the project's Jenkins and Packer server, apart from a factory VM on an ESXi farm where we ran the tests and the upgrading paths. This is where I was first confronted with packaging work, but without guidance and outside of Debian conventions.

Prior to that, I worked as a Linux Systems Engineer for a Human Resources company whose main objective was to develop a SAP product, and all the infrastructure was again on ESXi farms with SuSE based VM (SLES11 and 12) with the storage on NetApp. My main tasks there were python/ruby/shell scripting, as we used Puppet as IaC for VM provisioning, alongside my role as administrator/maintainer of the company's Gitlab instance.

On the research side, it was my goal after I finished my University studies (Bachelor's degree + Master's degree as a Computer Science Engineer from the University of Granada -Spain- ) to remain at the University as a researcher and professor, so I started as an intern in the University of Granada's Information Technology Services in a Tier 1 help-desk position focusing in attending issues under Novell Netware OS and Windows NT (3.1/2000) and Windows XP.

I moved later to support the Atmospheric Physics Research Group, as they had a research project based on the use of a Mesoescale Metherological Model for creating weather forecasts and climate projections, called MM5 and developed on FORTRAN and C at Pennsylvania State University and compiled using PGI and IFC for FORTAN. They had the source code for the model and the fresh PCs without OS installed: I chose CentOS here. This was my first extensive building work ( a hello to dotnet!). The building was progressing well, so I had time to help the predoctoral researcher with my Geographical Information Systems (GIS) knowledge and started to learn about massive atmospheric data recollection and applications. Then, the principal researcher on the project approached me and told me, "Hey, why aren't you pursuing a PhD? You will need it if you want to belong to the University in the future as a researcher". She encouraged me to find a thesis director in the IT Faculty and to use the Atmospheric group resources for my investigation. I enrolled in a Research Master on Software Development with a mixture of subjects in Atmospheric Physics, GIS and CAD at the University of Granada. My Phd. thesis was oriented to weather forecast data in 3D touchable GIS systems.

At that point began my wanderings between different University Departments and Research Groups: from Atmospheric Physics to Computer Graphics (LiDAR data and 3D Laser scanning of antiques), punctual cooperations with Medieval Archeology (as a teacher, more GIS -Quantum GIS- and Linux 101 with Mandriva), a year of unpaid work at Computer Graphics again with the promises of a 4-year research contract after that... They changed their minds, I couldn't finish the Phd. and I returned to the Tier 1 Help Desk, but for The Virgen de las Nieves Hospital in Granada.

While there, I was interviewed in-situ (not Skype yet, my friends!) for a contract at Fondazione Edmund Mach, Trento (Italy), to work under Markus Neteler's (GRASS creator) Team, but I didn't get it. At least I was happy to know him. On the return flight home, a voice message was left on my phone: I had been selected for a 4-year contract on... Psychological Neuroscience. I enrolled in a Research Master again, this time the Master in Behavioral and Cognitive Neuroscience at the University of Granada. My Phd. thesis was about brain dynamics and frequency bands in visuospatial attention tasks, but I also spent a lot of time tasked with improving the IT knowledge and resources (software tools ad-hoc) for the department. In order to obtain International distinction for my thesis, I carried out a research stay as a Visiting Researcher at the ICM CENIR MEG-EEG group in Paris (France), where I spent the most valuable time of my research path in all senses. I could have finished my thesis there, but my thesis director disagreed. Returning to Spain, the contract was about to expire, and history wanted to repeat itself with promises, but I had learned my lesson... and then life happened.

Sometimes you wonder if you made good or bad decisions ("Miriam, you could be a doctor, twice in fact!"), but in the end, those decisions lead you to where you are now, and I am very very happy to be here, and as you can see, I have little fear of getting into uncharted territory for me.

My Ubuntu story

The first distro I installed was a SuSE 4.0, split into 4 DVD/CDs that came with TechLinux magazine. I remember spending 5 days in an "Xtreme Installation" process with my college buddies, breaking the system several times by manually partitioning/formatting the HD and "fun" stuff like that (e.g. reinstalling Windows 95 in dual boot mode, as we still needed it for other subjects). In the "Operating Systems I" course, we used the Solaris OS, since the faculty servers were Sun workstations. One day, in the copyshop, there were a lot of free CDs of a new distro called Ubuntu, and a friend told me "Grab a CD! It's amazing... It almost installs itself! And it's super easy to use, and has a friendly desktop, not like freakin' Slackware" ... and he was right :). I can say that Ubuntu made me not hate Linux at that time.

As I commented, I went through many different distros before ending up professionally with Debian. It was late in the office, after a considerable effort on a release day, when people in the team were thinking about their dream job ... and someone told me "Miriam, I see you on Ubuntu ..." and I answered "Come on, that's impossible" ... and here I am :).

My involvement

Examples of my work / Things I'm proud of

On my road to becoming a Server-Dev, I have been doing the following things which I'm proud of:

Distro Packaging

Wiki/Manuals

I've edited and made contributions to following pages...

  • Ubuntu Explaining timers for unattended-upgrades at Discourse

    Ubuntu Ubuntu Maintainers Handbook - it's used in Server Team onboarding mainly, but also in other teams- :

Bug triage/Comments

I've been interacting in this list of bugs on launchpad. Most of them as part of the work for the BugHouseKeeping task that is done on the Server Team. Some of them worth mentioning are:

Others

Areas of work

  • Server Set package:
    • I was moved quickly enough from Server Team to CPC Team to have a main focused area of work there, but statistically, it seems I worked unintentionally more on postfix and dnsmasq.
  • BugHousekeeping initiative:

    • I enjoy revisiting old bugs ("the lost causes") to look for solutions that maybe are already in the upper Ubuntu series, as the fix was already upstream released or we didn't have the time to dedicate to it before due to work constraints (resources/time mainly). Sometimes you make happy to a user that didn't count on that nowadays. An example of working in this way is the gpsd package.
  • Synthetizing processes:
    • I cannot do this often, but I appreciate having a quick guide (not too much reading!) to follow a process due to my continuous context changes. For that reason, I introduced the checklists in the Ubuntu Maintainers Handbook, and I want to do more in this sense.
  • Things that I like:
    • I like to fix FTBFS and fix/work with services.
  • dotnet packages:
    • Packaging dotnet6 and dotnet7 in Ubuntu as New packages not existent on Debian has been my main task for a while, for which Foundations Team supported me after the impossible-to-thank-enough first hard review made by Sergio Durigan Junior on Server Team. I'm involved with upstream (as official distro maintainer at Canonical), but I finished the hand-off to the new .NET team under the Toolchain Squad on Foundations Team last year.

Things I could do better

* Timeboxing: Calm down would be the first thing I should improve for this, allowing me:

  • to measure my item works better and finalise them straightforwardly without silly errors (e.g. typos, blank spaces).
  • to avoid switching context.

* Communicate better:

  • Speak up more clearly for help or advice or volunteer for something, without thinking that I'm importuning someone or stealing a task from someone (because it is not my place of belonging/not being the right experienced person). I sometimes expose extensively my problem/blocker asking at the end "if someone knows something about it that could help me on this, I would appreciate it", like begging for it, instead of "I need help on this "title of the thing", this is a post-stand-up topic that I would like to discuss later" (but then I must not think that I'm stealing time to the team in this way!").
  • Be more active on irc channels/MM general/Discourse.
  • Share knowledge in the teams' tech talks.

* Looking for things to work on: Choosing a bug is not always easy for me, but I'm getting better at not getting led away by the following:

  • "Is this bug worth it?" (a.k.a "Is this bug a good candidate for being SRUed"?)
  • "This package is usually driven/monitored by <a person>, don't bother him/her"

  • "Have I got enough experience to tackle it?"

And there is always room for technical improvement.

Plans for the future

General

The main idea of me having upload rights is to make CPC a more consistent team on the Distro side, being able to be a direct contact inside the team for complex questions or requests that need advice or acknowledgement from the ubuntu-devel community and directly helping with the usual tasks of a (server-for-now)packager-dev person: reviewing, changing, creating, uploading and sponsoring packages.

I'm already helping others in my team with packaging advice or pre-reviews for MPs, and I also recently got a ping from outside the team for sponsoring openssh because I was (at that moment) the latest one that upgraded the package: these are examples of me not being able to help enough because I cannot sponsor packages.

Bug triage is not a very frequent thing in the CPC; I mean, if we think about how it happens in the Server team. This is due to the nature of the users the CPC serves (so the tasks don't come in the same way). I have mixed feelings about this.

But, my overall goal is not only to be useful in CPC but also within the Ubuntu developer community: I know I'm not ready for it yet, but this is the first step. We have a lot of bottlenecks in our distro-processes related to packaging because we are short of human resources and I would like to pitch in when the time comes.

What I like least in Ubuntu

I know that, as a company, we are putting a lot of effort into the documentation and that there is a real improvement. On the Distro side, we rely a lot on the Debian documentation, which, well, is what it is. The "Ubuntu Maintainers Handbook" initiative is a good one, and the Ubuntu Packaging Guide is currently undergoing a major overhaul... Will it be enough to eliminate some feelings of disorder, loss and incompleteness? Not only for packaging, even for processes? Many very specific cases are not documented anywhere or accepted as documented because they are discussed in a bug thread or irclog. I know this is mainly due to the lack of time we have, the fast-paced environment and the nature of Ubuntu itself, but it still feels like a transfer of ancient knowledge from master to padawan which makes you feel super cool when you have it, but makes things very difficult (especially in the beginning, but then it can happen again). I am aware that we are making efforts to avoid this with the documentation itself, talks, 1:n knowledge transfer sessions. I'd like to contribute to this, and I'm already doing it within my team... the next step would be to do it more broadly.


Comments

If you'd like to comment, but are not the applicant or a sponsor, do it here. Don't forget to sign with @SIG@.


Endorsements

Bryce Harrington

General Feedback

I've worked with Miriam on the Canonical Server Team. She's been a pleasure to work with and is diligent at following up on suggestions to make sure her work is done with good care. I particularly appreciate her work on drafting documentation on team processes.

Specific Experiences of Working Together

As one of her first projects after joining Canonical, Miriam developed a thorough set of autopkgtests for logwatch, leveraging test case work done in recent SRUs for that package. These tests dealt with logs from a variety of other source packages beyond logwatch, including the kernel, apparmor, sshd, and su. Since her timezone and mine don't overlap very much, she was resourceful in also seeking out advice from other packagers for questions. She took all our feedback in stride and used it to incrementally improve the scripts to the point of readiness for my sponsorship of the Ubuntu upload. Logwatch was pretty severely lacking in testing previously, so she's achieved a very welcome improvement for the package.

I also sponsored an SRU for monitoring-plugins, to correct an issue introduced in a prior SRU of mine. This was a bit of a challenge because it required not only fixing the newly reported issue but doing so in a way that did not regress the previous fix, and hopefully would not introduce any other regressions. She also took into account upstream's views in developing the new fix, to potentially come up with a more universally acceptable solution. To support this work she developed a very thorough set of paint-by-numbers SRU test cases to demonstrate the fix's behavior in known use cases.

Areas of Improvement

You're building a great resume of work towards your objective of applying for Server Dev PPU; you've got good breadth of exposure to the required packaging skills and are focused on growing your depth and confidence levels in those skills. I'd particularly encourage growing depth in bug triaging and MP reviews. I think you're at a good point where you can start asking for endorsements as you continue doing more merges, SRUs, et al.

While maybe not required for PPU, I'd also suggest getting some exposure on +1 maintenance. For example you could ask to shadow someone in your timezone for a day during their +1 rotation for a day; this can be a great way to learn a lot of details about how the archive works.

Towards your future goal of CoreDev, I would encourage seeking out packaging opportunities beyond the server team. The Merge-o-Matic page can be quite helpful here. Keep in mind many packages outside server will not be using git-ubuntu for merges, so this will be an opportunity to learn alternative merge techniques.

CoreDev applicants are also required to have sponsorship endorsements outside their immediate team. To that end, even as you work on your PPU application, try to seek out reviewers outside our team who can sponsor your work, so you can request their endorsements later.

-- bryce 2022-02-04 23:09:20

Sergio Durigan Junior

General Feedback

I have worked with Miriam on the Canonical Server Team. I can only say good things about her work posture: always pleasant to work with, always looking to learn something new and improve her skills, and not shy about asking something when she feels blocked, which is a great quality. Particularly, I was positively impressed by the amount of work she did on bringing .NET to Ubuntu.

Specific Experiences of Working Together

I had the opportunity of being a kind of "unnoficial mentor" for Miriam when she started contributing to Ubuntu, and I feel happy when I look back and see how much she has progressed. Her first uploads were, as expected, simple and aimed at giving her an opportunity to learn the ropes. She has always been very keen on learning and understanding how the packaging process works in general, as well as doing any adjustments that were necessary to get her Merge Proposals in the correct shape for sponsoring.

After a few months continually working on improving her packaging skills, she was tasked with packaging .NET for Ubuntu. When I heard that I felt a bit concerned for her well being, especially because I knew how much work was involved in doing the package (I witnessed a colleague going through the same ordeal back when I worked at Red Hat). I helped her by doing an in-depth review of the initial package that she had put together, which allowed me to get an even better assessment of her skills. As mentioned above, I was happy to see how much she had progressed.

I strongly believe Miriam is ready to be granted upload rights for Server packages.

Areas of Improvement

I think Bryce covered pretty much everything that I had to say in this section: having more experience triaging bugs, doing MP reviews, doing more uploads for packages that are in universe, helping with +1... These are all very useful activities suggestions of tasks to do in order to keep improving for your CoreDev application.

Most of all, keep laughing and don't lose your kindness! :-D

-- sergiodj 2023-07-14 17:36:00


As a sponsor, just copy the template below, fill it out and add it to this section.


Christian Ehrhardt

General feedback

I've known Miriam since she joined Canonical and helped with early mentoring up to today still being regularly in sync with her to coordinate between her CPC efforts and the Server team. She is careful, sometimes to the extend of being unsure - which on the positive side helps to speak up and ask before breaking the world. That combined with her now many years used to our processes and helping with bugs, merges and anything else gives me good confidence that she will do well.

Specific Experiences of working together

In regard to sponsoring I only had a bunch, but those were getting better over time as I saw her growing.

Furthermore I see a lot of work when she helps the server team or on cases that I see with my MIR hat, also there the recent contributions have been quite well worked out. It is not her fault that some, like dotnet as insanely complex and others like dkim/dmarc include too many packages. Especially for that it is done well.

She recently started to cover the DPDK MRE uploads and that works good as well - thank you.

Areas of Improvement

Going forward I keep assigning her tasks related to a future core-dev application, more complex merges. If we have one a transition maybe and more. As long as her CPC duties allow her to spend enough time I'm confident that she will get there.

And we have to admit the list here is quite impressive for "just a package set application".


TEMPLATE

== <SPONSORS NAME> ==
=== General feedback ===
## Please fill us in on your shared experience. (How many packages did you sponsor? How would you judge the quality? How would you describe the improvements? Do you trust the applicant?)

=== Specific Experiences of working together ===
''Please add good examples of your work together, but also cases that could have handled better.''
## Full list of sponsored packages can be generated here:
##  https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi
=== Areas of Improvement ===


CategoryPerPackageUploaderApplication

MiriamEspanaAcebal/ServerUploaderDeveloperApplication (last edited 2024-02-23 11:52:26 by mirespace)