1. 31

This is the weekly thread to discuss what you have done recently and are working on this week.

Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.

  1.  

  2. 18

    Contract ends tomorrow. Have spent the last couple weeks having to develop a budget and proposal in order to keep my job as part of an open tender. But have no idea how long it will take to get a decision on my proposal but think it’s possibly time to move on, which is hard as I really believe in what I am working on and it makes a difference. There’s no one to carry on the work past tomorrow. Around 14 countries will suddenly find themselves using an outbreak and health monitoring system that no one is steering, developing or supporting. And when the amazon credits run out, they’ll find themselves with no system. With no funding for additional devs and support I feel like I’ve had a gun to my head all this time because I cant say no as there’s no one else to do the work and it’s such critical work. Four years, the last two of which I’ve spent begging for more support and resources.

    Im just so tired. A few things over the last couple months have made it abundantly clear I’m not considered part of the “team” as well. I’ve been feeling pretty bummed out about it all. Getting introduced as “this is Jeff, I guess he kind of sort of works for us” when you’ve been putting in 12-14 hour days 7 days a week for a year stings a bit.

    So this week is sort of a come to jeebus week I guess. Figuring out what I’m going to do next. If anyone’s looking for a dev with experience across platforms in python, rust, c/c++, js, qt, aws management and a slew of other things. Drop me a line.

    1. 5

      Good luck buddy. Sure you did well and at the end of the day there’s limit to what you can and what you should do to protect the product of the place you work in. Be it medicine, be it military, be it anything critical you want to think of. I feel you and identify with you of having put all my time, power and care in a critical product and having it being abandoned, under resourced and myself taken away from it being the only one who worked for it since the beginning. Kind of the first baby project I’ve had. Hope you improve. Take your time to rest, do hobbies and things you like and do some thinking. No rush

      1. 5

        Take your time to rest, do hobbies and things you like and do some thinking. No rush

        I strongly second that if it’s possible. Clear one’s head a bit. Get in a better state of mind. Then, make the next move with higher odds of success. Maybe less stress, too.

      2. 2

        Hey, keep up! :)

        And remember: don’t get so tired next time! That’s when this kind of apathy hits in and make you feel sheet.

        Probably you are a very skilled developer. And probably there are companies which can honor it in a 9-5 fashion. It’s just matter of time to find each other.

        P.S. As European I find funny but in this case worrying the work culture overseas. I guess the world will be better when everyone will have to work less and spend the rest of the time with more soul lifting adventures.

        1. 2

          As Jan Neruda have said:

          Kdo chvíli stál, již stojí opodál - den žádný dvakrát se již nenarodí, čin dvakrát neuzraje.

          Who stood for a while, now stands afar - no day is twice born, no deed is twice ripe.

          Not even in Europe.

          1. 2

            I’m actually in Europe. I worked a lot less hard than this when I used to live in Canada.

            1. 1

              I find funny but in this case worrying the work culture overseas. I guess the world will be better when everyone will have to work less and spend the rest of the time with more soul lifting adventures.

              For some of us, the work is the soul lifting adventure. Work is great, and we have never been more free of menial work than we are today.

            2. 1

              would you say the situation of the client countries is a consequence of contracting out their health monitoring infrastructure?

              1. 1

                It’s a consequence of them not having the funding, infrastructure to support having their own health monitoring infrastructure and the options out there being pretty slim in any case, or extremely restrictive. We dont charge for the system. We just set them up in an account and it’s basically free for them forever. We pay for the onboarding, config, infrastructure, development, support, etc… all they have to buy is phones and laptops. It wasn’t a for profit situation. When an outbreak or emergency happens it’s faster for me to run up an instance of our app in our infra and onboard them into it than to fly halfway across the world to install and set up in someone else’s infra or try to do it remotely. The hoops to jump through just delay critical reporting and analysis that needs to happen immediately.

                1. 1

                  “And when the amazon credits run out, they’ll find themselves with no system.”

                  So is this Amazon offering a limited amount of credits to run the infrastructure for free, then they have to pay when the credits run out?

                  1. 1

                    Amazon has many, many programs that let you get AWS credits - sometimes quite large amounts.

                    1. 1

                      not sure what you’re getting at. you’re saying my interpretation was correct?

                      1. 1

                        Yes.

                    2. 1

                      No unfortunately. Prior to the credits I was paying for the infrastructure out of my own pay packet. That started getting expensive enough that I was starting to have to decide between sending my kids to nursery or shutting down / descaling infrastructure. So, I basically went begging. Amazon ponied up credits to keep the system running for quite a while in exchange for the possibility of doing a case study / white paper later on. But it took some time to get it all settled. I will never have anything bad to say about amazon at this point. The people I dealt with were awesome and understood the situation the project was in. It was bad enough at the time that I would hug Jeff Bezos if I ever met him, even though he probably has no idea about the project.

                      There’s no billing sub-system or anything like that. The best case scenario is a company wins the tender and carries on keeping the lights on. But there’s no billing arrangement as it’s all free to the countries / orgs that use it. Something will have to change in order for the project to survive, the org that “owns” it isn’t really set up to manage these kinds of projects.

                      Couple all that with the fact that the system was only ever supposed to be used for emergencies. But when we deploy it, the countries want to keep using it well past the end of the emergency. One of them has over 2500 users reporting weekly into the system.

                      I’m still providing limited support to these countries for a while. Not out of contractual obligation but because I want to. The people we support work tirelessly day in and and day out in sometimes pretty hostile places. Just at this point I’m no longer being paid to do it.

                      1. 1

                        Couple all that with the fact that the system was only ever supposed to be used for emergencies. But when we deploy it, the countries want to keep using it well past the end of the emergency.

                        This seems like the profit angle right here. After all, in an emergency “you’ll” spin it up for free, they should be paying for it if outside an emergency. Especially when the cost is essentially keeping your family in a good financial situation, and the AWS credits.

                        I think you’ve written about this project elsewhere on here. For your own sake, I hope you either get a better financial package or move on to different work. I respect what you do and wish you the best.

              2. 8

                For the next two days, I’m gainfully unemployed, and then on Wednesday I’m starting a new job writing Kotlin for a small nonprofit, which will be a pretty big shift from my past few years of professional experience mostly writing CRUD apps in Java for large for-profits. Today has been mostly relaxing with a few household chores thrown in; tomorrow I think will be bootstrapping my knowledge of Kotlin (which I’ve never used before), with a few household chores thrown in.

                In the spirit of giving and receiving advice, I’d like to offer: even if you’re happy with your current job, it’s worth it to look periodically at openings. I was happy with my previous job, but I’m far more excited about my next one. And I’d like to ask: what do people recommend when starting a new job? Little rituals, ways of making introductions or reigning in anxiety? I don’t have any plans more concrete than showing up, getting my laptop set up, and trying not to make an ass of myself in front of anyone who doesn’t know me yet.

                1. 4

                  How does one find a job at a non-profit, any tips? I think it would be a good job for the soul. Good luck with your new start :)

                  1. 5

                    Thanks! In my case, it was “know people who are there, and apply”. The application process was not meaningfully distinguishable from that at the for-profit companies I’ve applied to. Based on what I’ve seen so far, I think my advice would be to find organizations you like and then check their job listings, like you would do with a for-profit entity.

                  2. 3

                    I have a plant and a keyboard that follow me from desk to desk when I change jobs, I find having a little bit of familiar desk detritus makes a new place feel less imposing!

                    1. 2

                      My keyboard and mouse will come on Thursday; I like to scope out my workspace before I haul them in. I have a goofy funko pop Vivec who watches over my desk, but I should get an office plant. My jade tree at home has a bunch of seedlings I could repot.

                    2. 2

                      Altruism. Congratulations!

                      I’m planning to do the same. To find a non-profit where my design and development skills would be more useful than now, when they serve profit. Right, website selling ads.

                      Any tips where to look at? Thanks :)

                    3. 8

                      I’m back to getting paid to program in C, the language of loooooove. Yay!

                      1. 3

                        I think getting paid to write C is probably the highlight of my current job. Isn’t it the best?

                        1. 1

                          How can I get in that love boat? (As in I’ve read THE book, and made trivial personal things, so how does one make the jump?)

                          1. 1

                            For me, it was making lots and lots of trivial things for years, then in jobs here and there finding opportunities to do small projects in C. Then I went for a job where C expertise was the main thing, and my combined experience paid off.

                      2. 6

                        I always have this emotional feeling of “standing on the shoulders of giants” when it comes to the exploitation development world, so I decided to take it a little bit by the reins and do something outside of my normal types of projects; I picked a architecture that hasn’t had a lot of adoption yet, and started documenting my learning experience step-by-step without using external resources except those provided by the ISA.

                        What I’ve come up with so far is a small-ish series that breaks things from no-knowledge to writing full shellcode payloads with RISC-V, and I published yesterday night: https://hosakacorp.net/p/riscv-asm.html

                        This is very ongoing and is more me documenting how I learn something than necessarily helpful for the broader community. But, I’m also using this as an oppurtunity to contribute payloads to Metasploit and continue documentation past just “what is this”. I think it would be extremely interesting to go from no knowledge of an ISA, to payload creation, to porting an OS.

                        I also want to share this with lobste.rs, but I was thinking I should probably wait until it’s more done.

                        1. 4

                          Rust + Actix backend and ReasonML + ReasonReact frontend for a record expungement app.

                          1. 4

                            I have a C++ project I’m working on. Exposing the interface to python so I can use Jupyter notebooks. Much easier than expected! The rest of the week will involve working more on the project, but it’s nice to know I can expose parts of it to Jupyter so I can do RAD work.

                            1. 2

                              Cython or ctypes?

                            2. 4

                              Hoping to release this project to a wider audience, even if it doesn’t find a big useful purpose, been fun to think about what a performant, nice Ansible alternative could look like. https://pitcrew.io/

                              1. 4
                                • campus event registration site using Authorize.net goes live 04/30 with credit card processing. Developed it over last 7-8 weeks.
                                1. 3

                                  I’ll be messing with this project I have for creating static-content websites by pulling content from mp3 websites: https://github.com/frigginglorious/Hugo-Mp3-Preprocessor

                                  The end goal being to set up a service so that someone can create and share a mix of MP3s, or a musician can publish music with a nice interface by doing nothing more than uploading a zip file of mp3s (as long as those mp3s are properly tagged with the standard ID3 metadata.)

                                  Also have to finish production on an EP for a project I’ve been working on. Rough mix audio/video below.

                                  https://vimeo.com/328509309

                                  1. 3

                                    I had my appendix removed in a surgery two weeks ago. On that time I stayed home, did not work, mostly rested. Didn’t even read anything technical as I wasn’t able to cope with anything that is mildly brain exhausting.

                                    This week I’m returning to work, also trying to regain my lost motivation from the last couple of months by trying Microsoft’s ReactXP.

                                    My father’s a doctor and has a private clinic, and I thought it would be nice making a clinic appointments management app for him. Basically, it will ease his life and help him get a clearer message of the amount of time he works every day/week/month in average, recommendations for automatic appointing (for example - weekly appointments) and stay synced in all web calendars he wants to (including Google Calendar and iCloud’s calendar, which APIs I have not yet checked). Today he basically uses a paper calendar to write down anything so the transition will do good to him. I’m going with ReactXP so I can also make the app for his clinics iPhone, his own Android, and both his Laptop & Clinic Desktop running Windows.

                                    Nothing too big, just hope to get back on track again. Starting slowly..

                                    1. 3

                                      I’m flying to Montreal on thursday, wish me luck!

                                      1. 1

                                        They say flying is the safest form of travel, but still, Good Luck!

                                        1. 1

                                          Thanks. It’s been stressful to move but so far so worth it. Gonna be living near my fiancé!

                                          1. 1

                                            Montreal is great here :) The metro system is the best.

                                            You working here too? Or a remote guy like me? :D

                                            1. 1

                                              Gonna be working in Montreal, yeah. Also been working on studying French, I hope to be fluent enough in a year or two to blog in French.

                                      2. 3

                                        The academic semester is ending which means I finally have time to focus on my actual research after a month long hiatus (more due to lack of motivation than lack of time). This week is for getting back up to speed with a paper we’re writing and testing lots of things. One of the main things we’re pushing to say is that we’ve built a performant system, but I want to be able to feel confident about that result. To me, that means that I need to reimplement in the most straightforward way and build layers on it until we get to the current version we have, measuring performance along the way.

                                        To be more specific: we wrote a distributed system in Python (multi-python). There’s a straightforward single-process, multi-threaded version that can be written in C (single-C). Then we could just add a distributed layer on top so it’s multi-process, multi-threaded (multi-C). Ideally, we’ll see that multi-C is faster than single-C, and that multi-C is within an order of magnitude of multi-Python. If either one of those doesn’t hold, then it means another week of trying to speed up the system.

                                        Besides that, I hope to spend some more time writing for my blog. I’m still trying to find my voice and how I want to write posts. So far, it’s been just discussing my own projects I’ve put online, but I hope to move towards talking about other things that aren’t so “product-based.”

                                        1. 3

                                          Finally posted part 4 of my series on Event Sourcing with Elixir at my blog https://blog.nootch.net/post/event-sourcing-with-elixir-part-4/. Got some great feedback on it from the author of the lib I’m using.

                                          1. 3

                                            I’ve been hacking on an Elixir HTTP client. I call it Mojito.

                                            I wrote the first version of Mojito around a year ago, when I was desperate for a stable and performant HTTP client for Elixir/Erlang. I know, right?! Hackney and IBrowse pools would stop working after a while, and most of the other clients we tried were slow. Mojito took a prerelease client called XHTTP (now called Mint) and wrapped it in Poolboy, and that performed well.

                                            But it has two problems. One, using raw Poolboy requires the user to plan ahead for their HTTP request workload, and start a pool for each host+port they plan to connect to. Two, each pool is a bottleneck because an GenServer needs to coordinate checkins/checkouts, and as we moved to servers with more cores, we started to notice that upping the number of connections in each pool didn’t result in a linear performance increase.

                                            So this week I am adding a pool manager to Mojito. It will handle the launching of Poolboy pools for each host+port the user wants to contact, and will automatically assign a request to an appropriate pool rather than requiring the user to specify a pool manually with each request. And to combat the bottleneck problem, the pool manager will also be able to spawn N pools to the same host+port, and will choose any appropriate pool at random when the user tries to make a request.

                                            I believe this may be a novel approach, at least in Erlang/Elixir – at least I haven’t heard of it before. I know the Buoy HTTP client for Erlang handles host+port affinity by forcing the user to handle it up front, whereas Mojito intends to handle this for the user. But the fact is we’re all going to deal with more cores as time goes on, so I think the next generation of Erlang and Elixir libraries is likely to begin offering strategies against bottlenecks like this one.

                                            1. 2

                                              Continuing to develop a MMVP (massively “minimal” viable product”) and getting faster at it too, things are good (for now)

                                              1. 2

                                                I call mine AMVP (Absolute Minimum VP).

                                              2. 2

                                                I’m working on making shitmyself more skim-friendly. I’m adding auto-generated titles to all posts, and i’m planning to work on having per-discussion-thread pages, which would be more readable than one-page-per-reply, which is where it’s at now.

                                                One issue I’m still thinking about is how to address the edge case of a reply being to multiple parent items, which is allowed. Probably by not expanding the other parent(s) for now.

                                                1. 2

                                                  Taking over for my boss who quit last week. Working on his transition plan, trying to hire a few devs I know personally, and seeing if we’d work well as a team. Planning on looking back in two months to figure out if we worked well enough to warrant continuing along that road. Trying to relax and remind myself work isn’t life and life shouldn’t be too much work.

                                                  1. 2

                                                    Continuing to learn Rust and Erlang. Playing around with some ideas for different data-storage ideas, like a caching file system. Maybe trying to implement some old DHTs for fun.

                                                    1. 2

                                                      last week https://lobste.rs/s/a7eujk/what_are_you_working_on_this_week#c_zg7ajv

                                                      so I refactored things quite a bit and broke many things, so I’m spending a lot of time writing and fixing tests to make sure everything works fine, didn’t get to the do the credits system as I need to get flexible sources and destinations to work fine first and that’s what I will do this week :)

                                                      1. 2

                                                        I’ve been working on a tool to design my next tattoo. It’s been around a year since the first one, and I’ve been using it as an opportunity to explore rust web frameworks.

                                                        I picked yew arbitrarily after hacking at virtual_dom_rs with minimal success. It’s been nice to work with but I definitely feel like I’m doing way more data copying that I ought to be. The yew examples suggest all state is owned by components, but that means I end up duplicating a lot of my state between components that feel like they out to be reading from some central store a.la. reflux/redux/satchel.

                                                        Does anyone have suggestions for other libraries worth looking at for rust on the web? The ecosystem feels fresh, and I’d rather avoid spinning my own libraries from scratch while still learning the language.

                                                        1. 2

                                                          At work I’m hunting down a memory spike (and potential leak) that’s causing our Android plugin to crash with an OutOfMemory exception. I think I’m finally understanding what’s going on, so hopefully I’ll be able to fix it.

                                                          Outside of work, I’m still playing with Blend2D. I fixed a memory leak in my CL bindings, and also found a bug in the cubic path handling in the library itself. I’m using it to create some animations, and this week I’d like to combine the graphics and animation with some previous work I did to read audio from MP3 files. It’s very similar to some animations I created in the past, but it’s a fun way to play with a new graphics library.

                                                          1. 2

                                                            For work:

                                                            • Hopefully driving some change in how we do performance management for Software Devs. (We’ll see if I’ve learned anything about politics during my first stint as an Engineering Manager)

                                                            For Fun:

                                                            • I’m noodling around with some ideas for a tool for working with multiple VCS Repositories at once with a single interface. (Still wildly speculative and the ergonomics may be impossible to do properly but you don’t really know till you’ve tried.)
                                                            • Putting some more polish on https://ucg.marzhillstudios.com/
                                                            1. 2

                                                              Continuing to work on the Linux client for https://vfsforgit.com/. It’s a neat project and I’m very happy to be extending support to a third platform. (We’re documenting wherever we write Linux-specific code such that further porting efforts are made easier.)

                                                              1. 2

                                                                The same thing I do every night Pinky.. oh wait.

                                                                So, as mentioned in https://lobste.rs/s/c3g770/what_are_you_doing_this_weekend#c_ybk3gv, I made decent progress on the 2.5 release for https://bitbucket.org/koalephant/shell-script-library, so I’d really like to get that out the door. An ambitious target would be to finally get automated builds setup to be created from hg tags.

                                                                If I managed to get the first part of the above done, I’ll probably end up updating a number of other tools to take advantage of the new version.

                                                                I also need to consolidate a number of half-done or almost-finished work for a client, and probably start looking for another/more clients with less-than-full-time requirements.

                                                                At home, I’ve already managed to replace one borked PVC ball valve with a nice brass ‘stop tap’ (aka gate valve), had an argument with a shop assistant, because no amount of Teflon tape (her suggestion) will allow me to tighten both sides of said valve’s screw joints at once (I wanted some kind of coupling/joiner, where one side is left-threaded and one is right-threaded, so that turning tightens or loosens both sides at once), and extended one of the sprinkler systems to better deliver water(on a 38ºC/100ºF day!)