We are hiring software engineers

This is not technical, just a note that we are hiring.

We - Consafe Logistics - are hiring software engineers to work on our WCS (Warehouse Control System).
We are based in Lund, Sweden, but with WCS offices in Finland, Poland, Denmark as well, close to their capitals.

The WCS communicates with automation devices, and make them move pallets or totes in a way that we and customers are happy with.

We have mostly largish customers, but some less large as well.

It ca 1.2 Mloc of Ada - a mix from Ada83 → Ada22.

We (can) adapt quite some to customers so usually

  • design
  • implementation
  • testing
  • commissioning
  • support
    is part of the package

Remote is ok, but willingness to travel will then be needed sometimes

The ad is here
https://careers.consafelogistics.com/jobs/3613985-software-developer-to-the-wcs-team

To give some insight - the site shown in link below - the conveyors and Autostore are controlled by our software. We tell the devices where to pickup and where to deliver - different protocols. It went live this spring.

https://www.youtube.com/watch?v=57oSqx19C4w

What is an Autostore ?
https://www.youtube.com/watch?v=iHC9ec591lI&t=43s

What we do? We control devices like the ones in this video
https://www.youtube.com/watch?v=IW3PkMMN8ns

I’ll be at the Ada-Europe conference in Barcelona if you’d like to have a chat in person


Björn

3 Likes

I’ll be blunt. I don’t have any experience with SQL databases. With this in mind, should I even bother applying?

Well, it depends.
You’d have to be willing to learn how to use a database like

  • The importance of db-transactions
  • How to handle another process updating a record you want to update
  • don’t notify other processes when you are within a db-transaction

Designing tables can somebody else do,
but understanding relations between tables is necessary to learn.

We use to say that a programmer that is used to work
with databases will understand the system fairly quick,
he/she will only need to learn Ada - which is not too hard.

Programmers that do know Ada but do not understand databases
tend to focus more on the flaws (shockingly they do exist)
in the code rather than problem to solve.

We have a layer (that can be circumvented if needed) that is an
object-relation mapper - ORM

Using the ORM is easy
Here is a commented example of what is common to do
The Table_Bload.Data_Type is a tagged record that mirror the structure of the database table bload
All table-objects are auto-generated from same definition that created the table

declare
  Bload_Data : Table_Bload.Data_Type;
  End_Of_Set : Boolean := False;
  T          : Sql.Transaction_Type;
  use Wcs_Types;
begin
  -- transaction loop. if exception that someone else 
  -- updated at the same time, 
  -- rollback, reread and retry
  Trx : loop
    begin
      -- Start a db-transaction
      T.Start;                    
      -- bload is the load/pallet table and its 
      -- primary key is bldid 
      Bload_Data.Bldid := 123456; 
      -- get data from db to our object
      Bload_Data.Read(End_Of_Set);  
      if not End_Of_Set then
        -- update some fields
        Bload_Data.Bwanzone := Get_Zone(To_Location);
        Bload_Data.Bldsta := Wcs_Load_Status(Reserved);
        -- update in db. the withcheck checks some marker fields 
        -- for tampering and raises an exception
        -- if that is discovered
        Bload_Data.Update_Withcheck;
      end if;
      -- make it stick in db
      T.Commit;
      -- we are done - leave the loop
      exit Trx;
    exception
      -- oboy - we need to try again
      -- someone else updated after we read - 
      -- but before we updated. Yes that happens
      when Sql.Transaction_Conflict =>
        T.Rollback;
        Log_Handler.Put("trf conflict on " & Bload_Data.To_String);
    end;
  end loop Trx;        
end;

If this is within reach of learning - then apply

As always - requirements in a job ad can be negotiated.
They are a wish list - but also a pointer of
what you need to learn if not already familiar

/Björn

2 Likes

Alright, I’ll give it a shot. I know the company is European, but I couldn’t shake the idea common with American companies, which is to reject everyone who does not have every characteristic listed, no matter how unimportant.

Or how impossible. Some years back, a Cal State Northridge professor published an article describing how a lot of companies advertised for positions whose requirements included 10 years’ experience with a product that had existed for only 5 years…

Yeah, that still happens. When go came out, some companies were advertising for people with 5+ years experience.

1 Like